Millisecond Forums

fMRI timing precision

https://www.millisecond.com/forums/Topic32421.aspx

By troyh - 11/2/2021

Hello, I was wondering if someone could help me make sure my inquisit script is aligned to an fmri scanner throughout the experiment. I understand /pretrialpause will make the script wait for a pulse, however, is there additionally a way to correct for potential lag between trials? In my experiment, trials are not fixed, the timing depends on responses. 
By Dave - 11/2/2021

troyh - 11/2/2021
Hello, I was wondering if someone could help me make sure my inquisit script is aligned to an fmri scanner throughout the experiment. I understand /pretrialpause will make the script wait for a pulse, however, is there additionally a way to correct for potential lag between trials? In my experiment, trials are not fixed, the timing depends on responses. 

You will have to be way more specifica than that if you want any useful input.
By troyh - 11/2/2021

Dave - 11/2/2021
troyh - 11/2/2021
Hello, I was wondering if someone could help me make sure my inquisit script is aligned to an fmri scanner throughout the experiment. I understand /pretrialpause will make the script wait for a pulse, however, is there additionally a way to correct for potential lag between trials? In my experiment, trials are not fixed, the timing depends on responses. 

You will have to be way more specifica than that if you want any useful input.

Okay, the experiment consists of trials that require a response to complete followed by intertrial pauses. After a trial, say the script and the scanner are desynchronized by 1 second. Is there a way to update the script such that the following intertrial pause will be 1 second less in duration, so that, for the next trial, the scanner and script are synchronized again.
By Dave - 11/2/2021

troyh - 11/2/2021
Dave - 11/2/2021
troyh - 11/2/2021
Hello, I was wondering if someone could help me make sure my inquisit script is aligned to an fmri scanner throughout the experiment. I understand /pretrialpause will make the script wait for a pulse, however, is there additionally a way to correct for potential lag between trials? In my experiment, trials are not fixed, the timing depends on responses. 

You will have to be way more specific than that if you want any useful input.

Okay, the experiment consists of trials that require a response to complete followed by intertrial pauses. After a trial, say the script and the scanner are desynchronized by 1 second. Is there a way to update the script such that the following intertrial pause will be 1 second less in duration, so that, for the next trial, the scanner and script are synchronized again.

Well, how do you currently tell the script about the scanner's status, i.e. how is it supposed to learn that it's out of sync or not?
By troyh - 11/2/2021

Dave - 11/2/2021
troyh - 11/2/2021
Dave - 11/2/2021
troyh - 11/2/2021
Hello, I was wondering if someone could help me make sure my inquisit script is aligned to an fmri scanner throughout the experiment. I understand /pretrialpause will make the script wait for a pulse, however, is there additionally a way to correct for potential lag between trials? In my experiment, trials are not fixed, the timing depends on responses. 

You will have to be way more specific than that if you want any useful input.

Okay, the experiment consists of trials that require a response to complete followed by intertrial pauses. After a trial, say the script and the scanner are desynchronized by 1 second. Is there a way to update the script such that the following intertrial pause will be 1 second less in duration, so that, for the next trial, the scanner and script are synchronized again.

Well, how do you currently tell the script about the scanner's status, i.e. how is it supposed to learn that it's out of sync or not?

That's what I'm asking--how to make a script learn whether its out of sync or not, and, if it is, how to correct that. I don't mean to be vague--I haven't actually run the script in the scanner yet, so I don't have a good feel for the interfacing. I
By Dave - 11/2/2021

troyh - 11/2/2021
Dave - 11/2/2021
troyh - 11/2/2021
Dave - 11/2/2021
troyh - 11/2/2021
Hello, I was wondering if someone could help me make sure my inquisit script is aligned to an fmri scanner throughout the experiment. I understand /pretrialpause will make the script wait for a pulse, however, is there additionally a way to correct for potential lag between trials? In my experiment, trials are not fixed, the timing depends on responses. 

You will have to be way more specific than that if you want any useful input.

Okay, the experiment consists of trials that require a response to complete followed by intertrial pauses. After a trial, say the script and the scanner are desynchronized by 1 second. Is there a way to update the script such that the following intertrial pause will be 1 second less in duration, so that, for the next trial, the scanner and script are synchronized again.

Well, how do you currently tell the script about the scanner's status, i.e. how is it supposed to learn that it's out of sync or not?

That's what I'm asking--how to make a script learn whether its out of sync or not, and, if it is, how to correct that. I don't mean to be vague--I haven't actually run the script in the scanner yet, so I don't have a good feel for the interfacing. I

This is impossible to answer if you cannot describe what interfacing options your scanner setup provides and how you intend to use them.

Generally
https://www.millisecond.com/support/docs/v6/html/language/attributes/pretrialsignal.htm
https://www.millisecond.com/support/docs/v6/html/language/attributes/posttrialsignal.htm

and
https://www.millisecond.com/support/docs/v6/html/language/elements/port.htm
for generic signalling from Inquisit to external devices.

Also https://www.millisecond.com/support/docs/v6/html/howto/howtocontroltiming.htm to understand the various timing components involved in a trial.

By troyh - 11/2/2021

Dave - 11/2/2021
troyh - 11/2/2021
Dave - 11/2/2021
troyh - 11/2/2021
Dave - 11/2/2021
troyh - 11/2/2021
Hello, I was wondering if someone could help me make sure my inquisit script is aligned to an fmri scanner throughout the experiment. I understand /pretrialpause will make the script wait for a pulse, however, is there additionally a way to correct for potential lag between trials? In my experiment, trials are not fixed, the timing depends on responses. 

You will have to be way more specific than that if you want any useful input.

Okay, the experiment consists of trials that require a response to complete followed by intertrial pauses. After a trial, say the script and the scanner are desynchronized by 1 second. Is there a way to update the script such that the following intertrial pause will be 1 second less in duration, so that, for the next trial, the scanner and script are synchronized again.

Well, how do you currently tell the script about the scanner's status, i.e. how is it supposed to learn that it's out of sync or not?

That's what I'm asking--how to make a script learn whether its out of sync or not, and, if it is, how to correct that. I don't mean to be vague--I haven't actually run the script in the scanner yet, so I don't have a good feel for the interfacing. I

This is impossible to answer if you cannot describe what interfacing options your scanner setup provides and how you intend to use them.

Generally
https://www.millisecond.com/support/docs/v6/html/language/attributes/pretrialsignal.htm
https://www.millisecond.com/support/docs/v6/html/language/attributes/posttrialsignal.htm

and
https://www.millisecond.com/support/docs/v6/html/language/elements/port.htm
for generic signalling from Inquisit to external devices.

Also https://www.millisecond.com/support/docs/v6/html/howto/howtocontroltiming.htm to understand the various timing components involved in a trial.


Thank you, it seems like /posttrialpause should work for the problem I imagined encountering per the findings from this thread https://www.millisecond.com/forums/Topic4796-3.aspx. The comp will be linked to the scanner via USB. The scanner will send a pulse every fMRI BOLD volume. The pulse is routed to the comp in the form of an apostrophe key stroke. Is this compatible somehow, ie, can /pretrialpause register an apostrophe, or is it only an integer expression?
By Dave - 11/2/2021

troyh - 11/2/2021
Dave - 11/2/2021
troyh - 11/2/2021
Dave - 11/2/2021
troyh - 11/2/2021
Dave - 11/2/2021
troyh - 11/2/2021
Hello, I was wondering if someone could help me make sure my inquisit script is aligned to an fmri scanner throughout the experiment. I understand /pretrialpause will make the script wait for a pulse, however, is there additionally a way to correct for potential lag between trials? In my experiment, trials are not fixed, the timing depends on responses. 

You will have to be way more specific than that if you want any useful input.

Okay, the experiment consists of trials that require a response to complete followed by intertrial pauses. After a trial, say the script and the scanner are desynchronized by 1 second. Is there a way to update the script such that the following intertrial pause will be 1 second less in duration, so that, for the next trial, the scanner and script are synchronized again.

Well, how do you currently tell the script about the scanner's status, i.e. how is it supposed to learn that it's out of sync or not?

That's what I'm asking--how to make a script learn whether its out of sync or not, and, if it is, how to correct that. I don't mean to be vague--I haven't actually run the script in the scanner yet, so I don't have a good feel for the interfacing. I

This is impossible to answer if you cannot describe what interfacing options your scanner setup provides and how you intend to use them.

Generally
https://www.millisecond.com/support/docs/v6/html/language/attributes/pretrialsignal.htm
https://www.millisecond.com/support/docs/v6/html/language/attributes/posttrialsignal.htm

and
https://www.millisecond.com/support/docs/v6/html/language/elements/port.htm
for generic signalling from Inquisit to external devices.

Also https://www.millisecond.com/support/docs/v6/html/howto/howtocontroltiming.htm to understand the various timing components involved in a trial.


Thank you, it seems like /posttrialpause should work for the problem I imagined encountering per the findings from this thread https://www.millisecond.com/forums/Topic4796-3.aspx. The comp will be linked to the scanner via USB. The scanner will send a pulse every fMRI BOLD volume. The pulse is routed to the comp in the form of an apostrophe key stroke. Is this compatible somehow, ie, can /pretrialpause register an apostrophe, or is it only an integer expression?

This implies that the USB interface presents to the computer as a standard keyboard. /pretrialsignal can accept keyboard input. You need to specify the numerical scancode corresponding to the character the device sends. That should be 40 for ' on a US keyboard layout.