![]() > (regEmo_sessao1.From psychopy.gui import DlgFromDict from psychopy.visual import Window from re import Clock, quit, wait from psychopy.event import Mouse from import Keyboard # DIALOG BOX ROUTINE # exp_info =. > Indeed, I was trying to adapt your idea to my experiment > AttributeError: MonotonicClock instance has no attribute 'reset' > "/Applications/PsychoPy2.app/Contents/Resources/lib/python2.7/psychopy/hardware/emulator.py", > File "/Users/fernandap/Data/teste_psychopy/fMRI_lastrun.py", line 85, in > When I try to run it, I get this error message: > I've found your code (fMRI.pysexp) here. > my fMRI experiment using a parallel port trigger. > I'm not sure if you remember this post, but I'm having trouble synchronizing Several people, if you do come up with a solution. I've never had to use a parallel port, so I am unsure about how to ![]() In the call to launchScan (in wait4scan, Begin routine code): The error you get in that old script is due to changes in PsychoPy It switches to using a global clock when that's possible. But we could probably make it smarter so that, If the trial ends when subjects make a response that is the really Unfortunately Builder only uses the relative timing method so far. With this method, each epoch will accommodate for the half frame Say, 1/2 second before the required epoch. Insert something like a routine that waits for a scanner pulse for, To get around it you should either code to use a global clock or Stimuli using this method you'll overshoot by roughly 200/60 seconds BUT it always results in one extra screenįrame (or fraction of one) per epoch/trial. ![]() It's fine, and when you end a trial based on a subject's response it That's super-easy to code, for precise timing of an individual trial While trialClock.getTime() ![]() so then the log timing values can be used as the stimulus onsets. I think its resetting the clock that's used for psychopy's logging back to zero when the scan starts. so you have to keep track of what you mean by "the start of the scan".Īnd then Erik's " globalClock=faultClock" looks like its doing objective #2 in a somewhat sneaky way. Note that if your pulse sequence does not send a few initial pulses ("disdaqs" for T1 stabilization) then launchScan will NOT magically know about them. just to elaborate Erik's points and usage: launchScan accomplishes objective #1 = wait for the first scan pulse. This is much better than trying to reconstruct onset times using cumulative times of multiple events. Its good to record timing in terms of time since the start of the scanning run. Instead in software, it generates a key-board based sync pulse (default = "5").įor data analysis, you'll probably want to use the saveAsWideText option when saving the data output. This is intended to help test and debug sync issues without needing any hardware (such as a scanner, or a sync-pulse generator). For simple fMRI paradigms, it should be relatively easy, and its likely that many of the needed tweaks can be accomplished through code components.Īs you probably know, the two biggest considerations for fMRI (above and beyond a regular behavioral study) are a) how to sync to the scanner, and b) how to analyze the data afterwards (esp to extract timing info for trial onsets).įor sync'ing, check out the fMRI_launchScan.py demo in coder demos (under "experiment control"). ![]() Using the builder and then tweaking as necessary is often a great way to go. (I have scanned using psychopy, but it was a very unusual design, with 45-min long scans.) I don't have a handy script I can just send, I'm hoping someone else can do so. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |