Skip to content

Commit

Permalink
Merge branch 'master' of github.com:BrainCOGS/VRrigs-documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
Alvalunasan committed May 15, 2024
2 parents 0b39293 + a1dbb57 commit efb6534
Show file tree
Hide file tree
Showing 7 changed files with 2,026 additions and 1,482 deletions.
10 changes: 6 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,14 @@
},
"license": "MIT",
"devDependencies": {
"@vuepress/plugin-back-to-top": "^1.8.2",
"@vuepress/plugin-medium-zoom": "^1.8.2",
"vuepress": "^1.8.2"
"@vuepress/plugin-back-to-top": "^1.9.10",
"@vuepress/plugin-medium-zoom": "^1.9.10",
"vuepress": "^1.9.10"
},
"resolutions": {
"vuepress/@vuepress/core/vue-server-renderer/**/chalk": "4.1.2",
"vuepress/@vuepress/core/**/webpackbar": "5.0.2",
"vuepress/@vuepress/core/webpack-dev-server": "3.11.3",
"vuepress/**/globby": "11.1.0",
"vuepress/**/chokidar": "3.5.3",
"vuepress/**/copy-webpack-plugin": "5.1.2",
Expand All @@ -34,6 +35,7 @@
"**/**/loader-utils": "1.4.2"
},
"dependencies": {
"@babel/core": "^7.18.6"
"@babel/core": "^7.24.5",
"follow-redirects": "1.15.6"
}
}
1 change: 1 addition & 0 deletions src/.vuepress/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ function getMaintenanceSidebar () {
'projection',
'reward',
'stage',
'positioning',
'miscellaneous'
]
}
Expand Down
2 changes: 1 addition & 1 deletion src/maintenance/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ lang: en-US

This website is a central repository for the documentation regarding the **maintenance** of mini virtual reality rigs as part of BRAIN CoGS at Princeton Neuroscience Institute.

Maintenance documentation is also divided into modules, each module contains the process and tools needed to perform both preventive and corrective maintenance, as well as common troubleshooting.
Maintenance documentation is also divided into modules, each module contains the process and tools needed to perform both preventive and corrective maintenance, as well as common troubleshooting.
14 changes: 14 additions & 0 deletions src/maintenance/positioning.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,20 @@ lang: en-US

# {{ $frontmatter.title }}

# Automated positioning

The automated positioning system maintenance conssist of checking the motors and making sure everything is properly tighten (use loctite if necessary, altough it is recommended). Troubleshooting is mostly related to the motors driver.

## Calibrating

If the motors don't respond correctly, open the Zaber software. Select the 'Basic Movements' option and click on the home button. This action will take the motors to their absolute zero position.

## Restore
If sending the motors home doesn't work, the next step is to restore the affected motor. In the basic options, select the motor experiencing the issue, click on the settings icon, and choose 'Restore'.

### Recomendation
After completing the training, please send all the motors home.

# Manual

The manual positioning system is low maintenance and consist mainly of tightening the Thorlabs parts and maintening the positioning tool in shape.
34 changes: 17 additions & 17 deletions src/software/automation_pipeline_developer.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ lang: en-US

The Ephys/Imaging Automation Pipeline in BRAINCoGS main goals are:

+ Automate spike sorting and imaging segmentation for all recordings
+ Automate spike sorting and imaging segmentation for all recordings
+ Centralize/Standardize paths for Recording Data Storage
+ Unify & Register Ephys/Imaging Processing
+ Store processed data in BRAINCoGS Database (DJ)
Expand All @@ -16,7 +16,7 @@ To accomplish this we developed three tools:

+ Ephys/Imaging Automation GUI (<a href="https://github.com/BrainCOGS/RecordingProcessJobGUI">RecordingProcessJobGUI</a>)
+ Recording Workflow management (<a href="https://github.com/BrainCOGS/U19-pipeline_python/tree/master/u19_pipeline/automatic_job">Automatic_job directory in U19-pipeline_python </a>)
+ Collab reposiotries to handle Ephys/Imaging Processing (<a href="https://github.com/BrainCOGS/BrainCogsEphysSorters">BrainCogsEphysSorters </a> and <a href="https://github.com/BrainCOGS/BrainCogsImagingSegmentation">BrainCogsImagingSegmentation </a>)
+ Collab reposiotries to handle Ephys/Imaging Processing (<a href="https://github.com/BrainCOGS/BrainCogsEphysSorters">BrainCogsEphysSorters </a> and <a href="https://github.com/BrainCOGS/BrainCogsImagingSegmentation">BrainCogsImagingSegmentation </a>)


## Ephys/Imaging Automation GUI
Expand Down Expand Up @@ -139,31 +139,31 @@ Workflow management is composed mainly by two classes that handles recordings an
+ Ephys recordings are composed by one or many independent probe electrophysiology recordings. Each probe recording correspond to a job in the workflow management
+ Calcium imaging recordings are composed by one or many independent field of views image stacks. Each field of view image stack correspond to a job in the workflow management.

The class that manages workflow at the recording level is (<a href="https://github.com/BrainCOGS/U19-pipeline_python/blob/master/u19_pipeline/automatic_job/u19_pipeline/automatic_job/recording_handler.py">RecordingHandler</a>)
The class that manages workflow at the recording level is (<a href="https://github.com/BrainCOGS/U19-pipeline_python/blob/master/u19_pipeline/automatic_job/recording_handler.py">RecordingHandler</a>)

<figure>
<img src='./assets/images/automation_pipeline_developer/workflow_manager_recordings.png'>
<center><figcaption>Workflow manager diagam at the recording level</figcaption></center>
</figure>

### Main functions and variables in recording workflow manager
### Main functions and variables in recording workflow manager

+ **recording_status_dict** in (<a href="https://https://github.com/BrainCOGS/U19-pipeline_python/blob/master/u19_pipeline/automatic_job/params_config.py">Params Config file</a>): This dictionary defines status definitions and corresponding functions to execute.
+ **recording_status_dict** in (<a href="https://github.com/BrainCOGS/U19-pipeline_python/blob/master/u19_pipeline/automatic_job/params_config.py">Params Config file</a>): This dictionary defines status definitions and corresponding functions to execute.
+ **pipeline_handler_main** in (<a href="https://github.com/BrainCOGS/U19-pipeline_python/blob/master/u19_pipeline/automatic_job/u19_pipeline/automatic_job/recording_handler.py">RecordingHandler</a>): Main function in recording workflow
1. Executes corresponding functions based in status.
2. Executed every 30 minutes to check for new recordings to be handled.
3. Send notifications for processed and failed functions.
+ **exception_handler** in (<a href="https://github.com/BrainCOGS/U19-pipeline_python/blob/master/u19_pipeline/automatic_job/u19_pipeline/automatic_job/recording_handler.py">RecordingHandler</a>): Python decorator for error handling.
+ **modality_preingestion** in (<a href="https://github.com/BrainCOGS/U19-pipeline_python/blob/master/u19_pipeline/automatic_job/u19_pipeline/automatic_job/recording_handler.py">RecordingHandler</a>): Main ingestion function from recording to recording_process tables. There are subcalls depending on modality of recording (ephys or imaging).
1. Executes corresponding functions based in status.
2. Executed every 30 minutes to check for new recordings to be handled.
3. Send notifications for processed and failed functions.
+ **exception_handler** in (<a href="https://github.com/BrainCOGS/U19-pipeline_python/blob/master/u19_pipeline/automatic_job/u19_pipeline/automatic_job/recording_handler.py">RecordingHandler</a>): Python decorator for error handling.
+ **modality_preingestion** in (<a href="https://github.com/BrainCOGS/U19-pipeline_python/blob/master/u19_pipeline/automatic_job/u19_pipeline/automatic_job/recording_handler.py">RecordingHandler</a>): Main ingestion function from recording to recording_process tables. There are subcalls depending on modality of recording (ephys or imaging).

#### Imaging preingestion main steps:
#### Imaging preingestion main steps:

+ **imaging_preingestion** in (<a href="https://github.com/BrainCOGS/U19-pipeline_python/blob/master/u19_pipeline/automatic_job/u19_pipeline/automatic_job/recording_handler.py">RecordingHandler</a>): Ingestion to recording_process table for an imaging recording. Get all FOVs (TIFF stacks) for the recording and assign a new job for each one with corresponding parameters fetched from selection done in automation GUI.
**AcquiredTiff populate function** in (<a href="https://github.com/BrainCOGS/U19-pipeline_python/blob/master/u19_pipeline/imaging_pipeline.py">Imaging pipeline</a>): Auxiliar script to call **populate_Imaging_AcquiredTiff** script in MATLAB.
+ **populate_Imaging_AcquiredTiff** in (<a href="https://github.com/BrainCOGS/U19-pipeline-matlab/blob/master/scripts/populate_Imaging_AcquiredTiff.m">populate_Imaging_AcquiredTiff</a>): Population calls to:
1. **u19_imaging_pipeline.AcquiredTiff**: Each recording is divided into Tiff Splits (e.g. Mesoscope recordings contain multiple tiff stacks that will be processed independently). (<a href="https://github.com/BrainCOGS/U19-pipeline-matlab/blob/master/schemas/%2Bimaging_pipeline/AcquiredTiff.m">Code here</a>)
2. **u19_imaging_pipeline.SyncImagingBehavior**: Find correspondence between virtual reality frame in the behavior experiment and Calcium Imaging frame in recording.
(<a href="https://github.com/BrainCOGS/U19-pipeline-matlab/blob/master/schemas/%2Bimaging_pipeline/SyncImagingBehavior.m">Code here</a>)
1. **u19_imaging_pipeline.AcquiredTiff**: Each recording is divided into Tiff Splits (e.g. Mesoscope recordings contain multiple tiff stacks that will be processed independently). (<a href="https://github.com/BrainCOGS/U19-pipeline-matlab/blob/master/schemas/%2Bimaging_pipeline/AcquiredTiff.m">Code here</a>)
2. **u19_imaging_pipeline.SyncImagingBehavior**: Find correspondence between virtual reality frame in the behavior experiment and Calcium Imaging frame in recording.
(<a href="https://github.com/BrainCOGS/U19-pipeline-matlab/blob/master/schemas/%2Bimaging_pipeline/SyncImagingBehavior.m">Code here</a>)



Expand All @@ -172,7 +172,7 @@ The class that manages workflow at the recording level is (<a href="https://gith
<center><figcaption>ERD for imaging pipeline at the recording level</figcaption></center>
</figure>

#### Ephys preingestion main steps:
#### Ephys preingestion main steps:

+ **electrophysiology_preingestion** in (<a href="https://github.com/BrainCOGS/U19-pipeline_python/blob/master/u19_pipeline/automatic_job/u19_pipeline/automatic_job/recording_handler.py">RecordingHandler</a>): Ingestion to recording_process table for an ephys recording. Get all probes for the recording and assign a new job for each one with corresponding parameters fetched from selection done in automation GUI.
1. Ingest **ephys_pipeline.EphysPipelineSession** table
Expand All @@ -187,9 +187,9 @@ The class that manages workflow at the recording level is (<a href="https://gith
<center><figcaption>ERD for ephys pipeline at the recording level</figcaption></center>
</figure>

### Main functions and variables in recording_process workflow manager
### Main functions and variables in recording_process workflow manager

+ **recording_process_status_dict** in (<a href="https://https://github.com/BrainCOGS/U19-pipeline_python/blob/master/u19_pipeline/automatic_job/params_config.py">Params Config file</a>): This dictionary defines status definitions and corresponding functions to execute.
+ **recording_process_status_dict** in (<a href="https://github.com/BrainCOGS/U19-pipeline_python/blob/master/u19_pipeline/automatic_job/params_config.py">Params Config file</a>): This dictionary defines status definitions and corresponding functions to execute.
+ **pipeline_handler_main** in (<a href="https://github.com/BrainCOGS/U19-pipeline_python/blob/master/u19_pipeline/automatic_job/u19_pipeline/automatic_job/recording__process_handler.py">RecProcessHandler</a>): Main function in recording process workflow
1. Executes corresponding functions based in status.
2. Executed every 30 minutes to check for new recordings to be handled.
Expand Down
4 changes: 2 additions & 2 deletions src/software/configure_systems.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,15 +32,15 @@ lang: en-US
#### Create ssh key to clone repositories

1. Open Git Bash
2. `ssh-keygen -t ed25519 -C "[email protected]"`
2. `ssh-keygen -t ed25519 -C "[email protected]"`
3. Leave empty passphrase (Hit Enter two times)
4. `eval "$(ssh-agent -s)"`
5. `ssh-add ~/.ssh/id_ed25519`

#### Add key to virmen user in github

1. Copy ssh public key to clipboard in Git Bash `clip < ~/.ssh/id_ed25519.pub`
2. Open <a href="https://github.com/login`">https://github.com/login</a>
2. Open [https://github.com/login](github.com)
2. Login with vrrigs user (ask your Lab Manager for password)

<figure>
Expand Down
Loading

0 comments on commit efb6534

Please sign in to comment.