Database Organization
- The next sections will describe all DBs on the BRAINCoGS host (datajoint00.pni.princeton.edu). DBs are subdivided in these categories:
- Lab & subject DBs
- Behavior DBs
- Ephys & Imaging DBs
Lab & Subject DBs
1. u19_lab
- Stores all general information that apply for entire BRAINCoGS projects. Aditionally general information for researchers are stored here.
Main tables
- User Stores general information for all researchers and technicians in BRAINCoGS. Being registered in this table is a requirement to add subjects in your behalf Check here for more information. Important fields include, user_id (NETID), active_gui_user & slack_webhook URLS for users (for notifications). Check set slack alerts for more info.
- Location All systems associated with rigs, recordings & technician use. All behavior sessions are associated with one of the systems recorded here, each recording (ephys/imaging) is associated with a system recorded here. Check here for more information. Important fields include, user_id (NETID), active_gui_user & slack_webhook (for notifications). Check Configure systems section for more info.
- Path Paths for the cup drives in BRAINCoGS. Paths are divided by OS and local or network system types.
- AcquisitionType All possible acquisitions modalities in BRAINCoGS. (Each location in Path is associated with one modality as well). Modalities include: behavior, electrophysiology, 2photon, mesoscope, etc).
- DjCustomVariables Configuration variables for datajoint, mainly paths for special directories. This table is used in the background when DB access configuration is set for a system is made. Check DB Access section
- DjStores External storage path locations on the network drives (cup) for several Datajoint tables. This table is used in the background when DB access configuration is set for a system is made. Check DB Access section
- InsertionDevice Device types for insertion in subjects. (From ephys electrodes, to optogenetic cannula). Paired with u19_action.SurgeryLocation table.
- SlackWebhooks Slack webhooks URLs for general notifications. Check set slack alerts for more info.
2. u19_subject
- Stores all general information for subjects (mice) registered for experiments.
Main tables
- Subject Stores general information for all subjects in BRAINCoGS. Being registered in this table is a requirement to train and perform behavior sessions.
- LickometerMotorPosition Stores ml, ap, & dv motor coordinates for a subject in a rig with positioning motor installed. Check Set up motor positioning subsection for more information.
- CagingStatus Subject-Cage relationship storage.
- HealthStatus Daily health assesment for subject. Fields like normal_behavior, posture_grooming, technician_comments etc.
- Allele All subjects' genotypes in BRAINCoGS.
- Cage Cage list for subjects.
Behavior DBs
1. u19_acquisition:
- Stores all reference and general information of behavior sessions. Other tables in this DB also stores reference to blocks, trials, manipulation and subtasks of a behavior session.
Main tables
- SessionStarted Reference to all sessions that are started with training GUI. Path to behavior file ia located here.
- Session Basic information (performance, experiment code used, etc.) for a behavior session. Record written after training is finished
- SessionBlock Basic reference to all blocks from all behavior sessions.
- SessionBlockTrial Basic reference to all trials from all behavior sessions.
- SessionManipulation Reference to which manipulation (if any) was performed for a behavior session. Check manipulation pipeline section for more information.
- SessioSubtask Reference to which subtask (if any) was performed for a behavior session. Check subtask pipeline section for more information.
- SessionVideo Reference to video adquisition if performed while behavior session. Check Pupillometry Pipeline Guide for more information.
2. u19_action:
- Stores daily, recurrent and specific actions performed to subjects.
Main tables
- Weighing Records daily weight of subjects. Written by weighingGUI used by technicians.
- WaterAdministration Records daily water administration to subjects. Earned water written at the end of training. Supplement water Written by weighingGUI used by technicians.
- Surgery Records from surgeries performed to subjects. Written by Ephys/Imaging automation pipeline section
- SurgeryLocation Records device locations implanted to subjects from surgeries (eg. NeuroPixel probes). . Written by Ephys/Imaging automation pipeline section
- DaiyPositionData For subjects with automatic motor positioning on rig, stores daily ml,ap & dv coordinates. If cameras are present on rig a lateral and tops reference images are also stored.
3. u19_behavior:
- Stores detailed data for behavior sessions. DB built to support Towers Task data but stores data from all behavior sessions.
Main tables
- TowersBlock Specific block data from behavior sessions. (level, main_level, block_performance, etc).
- TowersBlockTrial Specific trial data from behavior sessions. (towers positions, trial_type, choice, position, velocity etc).
- SpatialTimeBlobs Efficient time, position, velocity storage (per session and not by trial). Check get_full_trial_data with SpatialTimeBlobs to know how to use this.
- Towers Session/Subject ** Psych Group of tables with Psychometric Curves parameters per session, block_type (main, guiding), subject, etc. Check Using psychometric data to know how to use this. Check BRAINCoGS Data viewer to check psychometric curves.
4. u19_behavior_subtask:
5. u19_optogenetics
Main tables
- OptogeneticSession Reference to a behavior session that is also an optogenetic session. Stores which protocol and software parameter set were used fot the session.
- OptogeneticSessionTrial Stores specific optogenetic data on a trial by trial basis.
- OptogeneticSoftwareParameters MATLAB Structure with parameters to be used during the behavior session specific for a subset of optogenetic sessions.
- OptogeneticProtocol Describes metadata that will be associated with optogenetic sessions. (e.g. laser wavelength, stimulation frequency, etc.)
6. u19_thermal
7. u19_puffs
- Air puff task sessions specific data.
Main tables
- PuffsSession Reference to a behavior session that is also a puff session.
- PuffsSessionTrial Stores specific puffs data on a trial by trial basis.
Ephys/Imaging DBs
1. u19_recording:
- Stores all reference to any recording (ephys & imaging) performed on BRAINCoGS. Check Automation pipeline section for more information.
Main tables
- Recording Reference to all recordings. Stores information like location, status_recording & recording directory on the network drives.
- RecordingBehaviorSessions Relationship between recordings and behavior sessions. (recording_id <-> session_key (subject, date, #)
- RecordingRecordingSession Relationship between recordings and subject/date. Used when no behavior is attached to recording.
- Modality List of all possible modalities supported by the automation pipeline.
2. u19_recording_process:
- Stores all reference to all processing jobs for ephys & imaging on the automation pipeline. Almost all information in this table is shown in the Automation pipeline GUI .
Main tables
- Processing Reference to all processing jobs. For ephys it has a one to one relationship with recording probes. For imaging it has a one to one relationship with Field of View. Stores status_processing, raw_path (recording_process_pre_path), processed_path (recording_process_post_path) for each of these "fragments" of recording.
- ProcessingEphysParams Relationship between jobs & which ephys processing parameters were used for that job.
- ProcessingImagingParams Relationship between jobs & which imaging processing parameters were used for that job.
- LogStatus Stores all status change for processing jobs and corresponding messages & exceptions if applicable.
3. u19_ephys_pipeline:
- Basic reference to recordings and behavior synchronization data.
Main tables
- EphysPipelineSession List of recording_ids that correspond with ephys recordings.
- BehaviorSync Synchronization data between ephys recording and behavior session. trial_index_nidq & iteration_index_nidq are trial and iteration # for each sample on the electrophysiology data.
4. u19_pipeline_ephys_element:
- Datajoint element array electrophysiology DB. Database schema is designed to store all data from an ephys recording and subsequent kilosort processing. More info: Datajoint element array electrophysiology docs. For BRAINCoGS ephys_precluster schema was used.
Main tables
- ClusteringParamSet Table that contains a list of parameter dictionaries/structures used for sorting process.
- PreClusterparamSet Table that contains a list of parameter dictionaries/structures used for preprocessing steps.
- PreClusterparamSteps Table that contains lists of lists of preCluster param Sets that form a preprocessing sequence for recordings.
preprocessing steps. (e.g. catgt)
- CuratedClusteringUnit Main data for all the units found in sorting process. (spike_times, cluster_quality_label, etc.)
- LFPElectrode LFP data for each of the electrodes in recording.
- WaveformSetWaveform All waveforms from a unit captured by each electrode in recording.
- ProbeInsertion Records which probe was used for the corresponding recording-insertion_number pair. Check 5. u19_pipeline_probe_element.
5. u19_pipeline_probe_element:
- Datajoint element array electrophysiology DB for probes. Database schema is designed to store probes and electorde configurations used in recordings. More info: Datajoint element array electrophysiology docs. For BRAINCoGS ephys_precluster schema was used.
Main tables
- Probe Table that contains all physicial probes used in recordings.
- ProbeTypElectrode Table that contains coordinates, shank# and id for each electrode in a probe.
6. u19_imaging_pipeline:
- Reference to all imaging recordings and subsequent fields of view (FOV) identification and splitting for processing.
Main tables
- ImagingPipelineSession List of recording_ids that correspond with imaging recordings.
- TiffSplit Identified fields of view for a single recording (regularly 2photon = 1 FOV, mesoscope = 3 FOV). Each FOV is processed separately.
- AcquiredTiff TIFF file header metadata for each FOV.
- SyncImagingBehavior Synchronization data between imaging recording and behavior session. sync_behav_%%_by_im_frame = Correspoding behavior block, trial and iteration for each imaging frame.
sync_im_frame_span_by_behav_%% = Fist and last imaging frame for each behavior block, trial and iteration.
7. u19_pipeline_imaging_element:
- Datajoint element calcium imaging DB. Database schema is designed to store all data from an imaging recording and subsequent segmentation process. More info: Datajoint element calcium imaging docs.
Main tables
- ProcessingParamSet Table that contains a list of parameter dictionaries/structures used for segmentation process.
- ActivityTrace Activity trace signals for all masks identified in segmentation process.
- FluorescenceTrace Fluorescence trace signals for all masks identified in segmentation process.
- MaskClassificationMaskType Mask types (soma, blob, doughnut, etc) and confidence for each mask identified in segmentation process.
- MotionCorrection(non)RigidMotionCorrection Motion correction details (shifts, outlier_frames, etc) performed durinc processing.
- MotionCorrectionSummary Summary (average, correlation, max_proj) images for each field and channel after motion correction.
8. u19_pipeline_scan_element:
Main tables
- ScanInfo Similar to u19_imaging_pipeline.Acquiredtiff. General data and metadata from scans.
- ScanInfoField Data specific to each of the fields of the scan.
- ScanInfoScanFile All files that are part of a scan.
9. u19_pupillometry:
- Stores all thing related to pupillometry recordings. From reference to behavior sessions to final results. Check Pupillometry Pipeline Guide for more information.
Main tables
- PupillometrySession Reference to behavior session that had pupillometry acquisition.
- PupillometryModels Training models ready to use for processing pupillometry data.
- PupillometrySyncBehavior Time correspondence between each trial-iteration in behavior file and each video frame.
- PupillometrySyncBehavior Time correspondence between each trial-iteration in behavior file and each video frame.
- PupillometrySessionModel Reference to which model was used to process a behavior session (More than one model can be used to process data from a session).
- PupillometrySessionModelData Status of pupillometry processing and final result storage.