[visionegg] Dimstim
- From: Martin Spacek <mspacek@xxxxxxxxxxxxxxx>
- To: visionegg@xxxxxxxxxxxxx
- Date: Wed, 08 Jun 2005 14:32:38 -0700
Hello,
I've created an alternative to the EPhys module which comes with
VisionEgg, and now I'd like to release it back to the VisionEgg
community. I've been calling it "Dimstim". For any given stimulus type,
you can specify which stimulus attributes you want to be dimensions,
that is, which attributes you want to change on each stimulus "sweep".
There can be multiple attributes per dimension (this forces those
attributes to covary with each other). The order of presentation of each
dimension can be as specified, shuffled (without replacement), or
randomized (with replacement). You can independently set the order of
presentation for all of the dimensions you've chosen to control. Sweeps
can have arbitrary duration. In fact sweep duration can itself be a
dimension.
Dimstim has no GUI. It's completely script based. The only exception is
a mouse and keyboard controlled manual bar stimulus, which lets you
roughly locate and save the receptive field and preferred orientation of
a visually responsive cell (or at least the best trade-off for a group
of many simultaneously recorded cells). This information is saved to a
config file and is then used to correctly locate, size, and orient all
subsequent stimuli that are run. Everything is described and controlled
in degrees of visual field, degrees per second, cycles per degree, etc.
This means that the distance and size of the monitor must be entered.
We managed to buy ourselves a pair of hard-to-find 200Hz Iiyama monitors
(HM903DTB and HM204DTA) which we drive with an ATI Radeon 9800 video
card, on a PC running Windows 2000. We've been using a vga splitter
(made by Aten) to display the same signal on both monitors. Dimstim uses
custom vsync loops instead of the presentation loop in VisionEgg, and
great pains were taken (photodiodes, oscilloscopes) to ensure that at no
point is a 5ms frame ever dropped. Keith Godfrey and I created a Python
C extension that interfaces with Data Translation's digital boards, in
our case a DT340. Dimstim writes a digital word to the port on every
frame, recorded by our electrophysiology rig (called "Surf") which is
triggered by the vsync signal coming from the video card. This gives us
5 ms temporal precision in relating the state of the screen to our spike
data. A header that describes the stimulus is sent before the experiment
starts.
For now, the Dimstim module and example "Experiment" scripts that use it
can be downloaded from:
http://www.ece.ualberta.ca/~mspacek/Dimstim_2005-06-08.zip
I hope some of you will find this useful. The C extension for
interfacing with Data Translations boards is probably the most broadly
useful.
Cheers,
--
Martin Spacek
PhD student, Graduate Program in Neuroscience
Swindale lab
Dept. of Ophthalmology and Visual Sciences
University of British Columbia, Vancouver, BC, Canada
+1-604-875-4555 ext. 66282
mspacek@xxxxxxxxxxxxxxx | http://swindale.ecc.ubc.ca
======================================
The Vision Egg mailing list
Archives: http://www.freelists.org/archives/visionegg
Website: http://www.visionegg.org/mailinglist.html
Other related posts: