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

Add Tingley metabolic #49

Merged
merged 48 commits into from
Sep 6, 2024
Merged

Add Tingley metabolic #49

merged 48 commits into from
Sep 6, 2024

Conversation

CodyCBakerPhD
Copy link
Member

@CodyCBakerPhD CodyCBakerPhD commented Apr 15, 2022

Primary Data to Include

All sessions have raw, LFP, and accelerometer (see accelerometer interface for details on how to read).

Other common but not ubiquitous data types I may include are...

  • ripples that look like they can be TimeIntervals tables with some columns containing matrices, not unlike a units table with waveforms
  • occasional sleep state intervals; will use previous interfaces for this since it's in the same format

Subjects have an experiment-wide spreadsheet that tracks the ISIG values (see https://dspace.mit.edu/bitstream/handle/1721.1/122291/nihms-977830.pdf?sequence=2&isAllowed=y and https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3876347/) that are 'related' to glucose levels. Very low sampling rate (every 5 minutes or so), however, and can be monitored outside/in-between of ecephys sessions.

Data Types to Skip

There's an occasional file called 'zeittimes.mat' that has only a short 1D vector of values from 4.1e-6 to 4.9e-6... I have no idea what this is, paper doesn't seem to mention 'zeit' at all. Also German for 'time', so these are 'time times'?

There's also a time.dat binary with no info on sampling rate or number of channels - trying channels=1,2,3,4 doesn't give any length that matches either the primary .dat or .lfp; doing test_time = read_binary(file="./time.dat", numchan=1, dtype="int16")[0][::2] however, gives a vector equivalent to np.array(list(range(len(test_time)), dtype="int16"); that is, the signal is counting up from 0 at every other element (skipped elements are all zero). This happens until it reaches the maximum range of the int16, which it then wraps around to the negative range for int16 and continues to increment again from there.

See comments specific to each session in section below for miscellaneous other files that I'll skip. Personally, I don't think we should include the EMG or thetaPower, since they were only calculated on very specific subsets of available channels, and there a lot of hyperparameters used in their calculation. It would be a worthy challenge for the data reuse of this to re-compute the metrics from the data and reperform the analysis, but I don't think that's the responsibility of the NWBFile.

Contents and upload progress for sessions

  • CGM1
  • CGM2 - sleep states, empty stimTimes.mat, non-empty movement.mat (but it just contains a 1D vector with _s on the end, no timestamps, unknown units or even what it represents. Suspect it is simply scalar 'score' used in regression from paper), thetaPower.mat (but 'raw' powers are empty, _s fields are 1D vectors mostly NaN but unknown how dims map onto anything)
  • CGM3
  • CGM4 - Sleep states, empty movement, empty stimTimes,, thetaPower
  • CGM30, 31, 32
  • CGM36, 37 , 38
  • CGM48

As you can see, some sessions have a few extra files. I will not include movement.mat files since it just seems to be a light processing of accelerometer signal and is rarely included.

Questions for author

  • what are the AUX channels, what should we call them? , which one is glucose?
  • confirm units of EMG are mV
  • how to map supplementary table 45 rats onto 30 shared folders?
    • 30/45 folders are for the ecephys apparently, they haven't shared the optical stim data?
    • Plan for this is to simply add it as metadata detail somewhere on the dandiset page, if Tingley can provide it at all
  • what are the zeit times?
  • when there are .evt files, they indicate start/stop of auxiliary, start/stop of supply, start/stop of 'time'. Does that mean the aux.dat doesn't overlap with the lfp or raw?
  • for understanding content of .csv logs, what is 'ISIG', what is its value/unit, and GSR = 'galvonic skin response', right?
    • Values and unit are are current and nA, from papers written about the metronic system.
  • some log timestamps stop before the sessions for that subject do

@CodyCBakerPhD CodyCBakerPhD self-assigned this Apr 15, 2022
@CodyCBakerPhD CodyCBakerPhD marked this pull request as draft April 15, 2022 15:01
@CodyCBakerPhD CodyCBakerPhD marked this pull request as ready for review September 6, 2024 19:55
@CodyCBakerPhD CodyCBakerPhD merged commit 5f6a375 into master Sep 6, 2024
1 check failed
@CodyCBakerPhD CodyCBakerPhD deleted the add_final_tingley branch September 6, 2024 19:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants