datajoint-company / dj-nwb-li-daie-2015-2016 Goto Github PK
View Code? Open in Web Editor NEWDataJoint-NWB conversion project for Li et al., 2015 and Li, Daie, et al., 2016 paper
License: MIT License
DataJoint-NWB conversion project for Li et al., 2015 and Li, Daie, et al., 2016 paper
License: MIT License
In the below code, if there is no stop time associated with a trial, the value 5.0 is entered instead. Why 5.0? Using 5.0 would confuse any algorithms that uses this column to segment and visualize the data. np.nan seems more appropriate. If there is a reason behind using 5.0, please add it to the description of the stop_time
column or the trials
table.
The electrode device is currently just an obscure part number, e.g. "A4x8-5mm-100-200-177". It would be helpful to have a description of what the device actually is. For Li et al., 2015, you could set the device description to "NeuroNexus silicon probes (part no. A4x8-5mm-100-200-177). The 32 channel voltage signals were multiplexed, recorded on a PCI6133 board at 312.5 kHz (National instrument), and digitized at 14 bit. The signals were demultiplexed into the 32 voltage traces, sampled at 19531.25 Hz and stored for offline analyses."
In the below code, a lick trace is added as a TimeSeries
to the BehavioralTimeSeries
data interface. I see that the units are 'a.u.' but what do the data values represent? They are floating point values between 0.11 and 0.15.
Please add a description
argument for create_time_series
that describes what the values represent so that they can be interpreted by other users.
File ANM278733_2015-05-31_3.nwb cannot be read. It is also only 181 KB instead of around 200 MB like the other files. These suggest that something went wrong during the conversion process.
The unsorted MUA data per session by channel and trial are available at CRCNS. It would be useful for users to have this data available in DataJoint and the exported NWB files in case they want to re-spike-sort the data or re-segment the waveforms using other methods. Using low threshold multi-units may reveal interesting, different results compared with the manually sorted data.
Ideally there would be zero loss of information in the process of exporting to NWB. Animal strain and source are part of the Subject table in DataJoint but not stored in the NWB subject. Although NWB does not have a structured field for those data, please add them into the subject's description
.
The early_lick
field of a trial is stored as a string ("early" or "no early"), but would be more effectively stored as a boolean. In the NWB export, this would also allow early_lick
to be stored as a boolean in the trials table.
The EarlyLick schema says that there are three possible values, but the second value is never encountered in either of these datasets. Unless this schema is used for other datasets and there is a need to keep this consistent across datasets, I think EarlyLick should be a boolean instead of a varchar.
The virus information is being converted from structured key-value pairs into JSON and then being stored as a string in NWBFile.virus
.
For one file, this value is:
[{"injection_id": "1",
"virus": "Addgene41015",
"injection_date": "2013-05-23",
"injection_volume": "30.0",
"brain_location_name": "left_m2",
"ml_location": "2500.0",
"ap_location": "-1500.0",
"dv_location": "500.0",
"virus_source": "Janelia core",
"virus_lot_number": "",
"virus_titer": "None"},
{"injection_id": "2",
"virus": "Addgene41015",
"injection_date": "2013-05-23",
"injection_volume": "30.0",
"brain_location_name": "left_m2",
"ml_location": "2500.0",
"ap_location": "-1500.0",
"dv_location": "850.0",
"virus_source": "Janelia core",
"virus_lot_number": "",
"virus_titer": "None"}]
I recommend making an extension to NWB that introduces a new data type called "Injections" that extends the DynamicTable type, and has "virus", "injection_date", "injection_volume", etc. as columns. Extensions to NWB for such structured information are useful for making the data machine-readable and encouraging a full description of the metadata. I can see this new data type being generally useful for storing virus data for many different datasets, so it would be good to create a single standard and use it across datasets. If the extension is popular or useful enough, then it would be considered for integration into the core NWB schema.
I would be happy to help you get started with creating and using an extension for virus injection metadata if you are interested in doing this.
Empty strings are used for required values here
and here
This is not good practice and is causing problems for the file to be read in matnwb.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.