Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extract non-neural events recorded by SYNC channels from each 1.0 probe #4

Open
chongtianyifa opened this issue Sep 25, 2024 · 3 comments

Comments

@chongtianyifa
Copy link

Hi,

I was told that each imec probe was not sampled simultaneously. To align the spike timings from each probe, a synchronized signal (1s on-off every 30 seconds, generated by an Arduino board) was input to and recorded by the SYNC channel. Then I tried to extract the timings of these synchronized pulse using CatGT, but only got the timings from the first probe. It seems that the GatGT did not attempt to extract these events from other channels.

Here is the script inside the .bat:
set LOCALARGS=-dir=F: -run=B12M2S10 -g=0 -t=0 ^ -prb_fld -prb_miss_ok ^ -maxsecs=500 ^ -ap -prb=0:1 ^ -gblcar ^ -xd=2,0,-1,6,1000

There is a output file named 'B12M2S10_g0_tcat.imec0.ap.xd_384_6_1000.txt' in the first probe folder. No such file in the other probes folder.

Thank you!
Chris

@billkarsh
Copy link
Owner

Hi Chris, This is a how to question, best directed to the slack channel.

If you are using SpikeGLX, the recommended signal type for sync is a 1 Hz square wave, which is generated by the imec module or NI, no arduino involved. That is explained in the UserManual included with SpikeGLX. A 1 Hz wave is expected, as well, by the SpikeGLX tool set. CatGT will by default find and extract a 1 Hz square wave from each stream.

Because of arduino, I expect you use Open EPhys, which is fine, and CatGT can extract custom signals for you. Here, you should include -no_auto_sync to turn off the auto extraction of a 1 Hz wave. And you should include -xd extractors matched to your arduino signal. You can have several -xd in your command line. You would want at least one for each probe, so one like -xd=2,0,-1,6,... for probe 0 and -xd=2,1,-1,6,... for probe 1. The final parameter in xd is the pulse length. You have specified 1000 meaning xd is looking for pulses that stay high for 1000 ms. You have to craft the xd parameters to match what features you want to capture. This is detailed in the CatGT ReadMe.

@chongtianyifa
Copy link
Author

Hi Bill,

Thank you for the quick response. I used SpikeGLX to record the data. It works after modifying the script as you suggested! It seemed that the drift was small, changing from 0.2 ms to 1.2 ms over 2 hours.

@billkarsh
Copy link
Owner

OK, I'm glad you're making progress. I want to advise you that TPrime is only applicable for a square sync wave form with about 50% duty cycle. So with your irregular sync signals you will have to roll your own synchronizing/alignment solution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants