From 13d8700c58f369d25343436f02b669b7783e4b7b Mon Sep 17 00:00:00 2001 From: Christian Tabedzki <35670232+tabedzki@users.noreply.github.com> Date: Tue, 19 Mar 2024 15:25:19 -0400 Subject: [PATCH 01/11] Added newline to the end of index.md --- src/maintenance/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/maintenance/index.md b/src/maintenance/index.md index 372ef87..dbb550f 100644 --- a/src/maintenance/index.md +++ b/src/maintenance/index.md @@ -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. \ No newline at end of file +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. From 82071417996014dc3fbbe90386b37ea1880b6ad9 Mon Sep 17 00:00:00 2001 From: mmagos28 <119622721+mmagos28@users.noreply.github.com> Date: Tue, 19 Mar 2024 16:16:30 -0400 Subject: [PATCH 02/11] test --- src/building/positioning.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/building/positioning.md b/src/building/positioning.md index 603a520..1702b80 100644 --- a/src/building/positioning.md +++ b/src/building/positioning.md @@ -7,6 +7,8 @@ lang: en-US The positioning system is designed to fix the subject within the projection and correct posture boundaries, but also to have high repeatibility, allowing to have specific coordinates for different subjects trained on the same rig. There are two different positioning systems currently used at our facilities, an automated positioning system that ensures repeatibility and personalized positioning for each subject across training rigs and training sessions; and the manual positioning system, which consist of low cost thorlabs components and a positioning tool developed in house. +test +
Automatic (left) and manual (right) positioning system.
From a58cd43972b7370551dc024ee036eb0cf3e4ce77 Mon Sep 17 00:00:00 2001 From: mmagos28 <119622721+mmagos28@users.noreply.github.com> Date: Tue, 19 Mar 2024 16:26:54 -0400 Subject: [PATCH 03/11] Revert "test" This reverts commit 82071417996014dc3fbbe90386b37ea1880b6ad9. --- src/building/positioning.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/building/positioning.md b/src/building/positioning.md index 1702b80..603a520 100644 --- a/src/building/positioning.md +++ b/src/building/positioning.md @@ -7,8 +7,6 @@ lang: en-US The positioning system is designed to fix the subject within the projection and correct posture boundaries, but also to have high repeatibility, allowing to have specific coordinates for different subjects trained on the same rig. There are two different positioning systems currently used at our facilities, an automated positioning system that ensures repeatibility and personalized positioning for each subject across training rigs and training sessions; and the manual positioning system, which consist of low cost thorlabs components and a positioning tool developed in house. -test -
Automatic (left) and manual (right) positioning system.
From 93a707612fb0dff8494c05f06eca1c20f921882a Mon Sep 17 00:00:00 2001 From: Christian Tabedzki <35670232+tabedzki@users.noreply.github.com> Date: Thu, 21 Mar 2024 10:19:30 -0400 Subject: [PATCH 04/11] fixed broken link --- src/software/automation_pipeline_developer.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/software/automation_pipeline_developer.md b/src/software/automation_pipeline_developer.md index 8dd1448..aa68bdf 100644 --- a/src/software/automation_pipeline_developer.md +++ b/src/software/automation_pipeline_developer.md @@ -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) @@ -16,7 +16,7 @@ To accomplish this we developed three tools: + Ephys/Imaging Automation GUI (RecordingProcessJobGUI) + Recording Workflow management (Automatic_job directory in U19-pipeline_python ) -+ Collab reposiotries to handle Ephys/Imaging Processing (BrainCogsEphysSorters and BrainCogsImagingSegmentation ) ++ Collab reposiotries to handle Ephys/Imaging Processing (BrainCogsEphysSorters and BrainCogsImagingSegmentation ) ## Ephys/Imaging Automation GUI @@ -33,14 +33,14 @@ 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 (RecordingHandler) +The class that manages workflow at the recording level is (RecordingHandler)
Workflow manager diagam at the recording level
-### Main functions and variables in recording workflow manager +### Main functions and variables in recording workflow manager + **recording_status_dict** in (Params Config file): This dictionary defines status definitions and corresponding functions to execute. + **pipeline_handler_main** in (RecordingHandler): Main function in recording workflow @@ -48,9 +48,9 @@ The class that manages workflow at the recording level is (RecordingHandler): Python decorator for error handling. -+ **modality_preingestion** in (RecordingHandler): Main ingestion function from recording to recording_process tables. There are subcalls depending on modality of recording (ephys or imaging). ++ **modality_preingestion** in (RecordingHandler): 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 (RecordingHandler): 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 (Imaging pipeline): Auxiliar script to call **populate_Imaging_AcquiredTiff** script in MATLAB. @@ -66,7 +66,7 @@ The class that manages workflow at the recording level is (RecordingHandler): 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 @@ -81,7 +81,7 @@ The class that manages workflow at the recording level is (Params Config file): This dictionary defines status definitions and corresponding functions to execute. + **pipeline_handler_main** in (RecProcessHandler): Main function in recording process workflow @@ -110,4 +110,4 @@ The class that manages workflow at the recording level is (Params Config file): This dictionary defines status definitions and corresponding functions to execute. ++ **recording_status_dict** in (Params Config file): This dictionary defines status definitions and corresponding functions to execute. + **pipeline_handler_main** in (RecordingHandler): 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. From 9d02c2361e7805eac8bb88d526c12a5ac93305e5 Mon Sep 17 00:00:00 2001 From: Christian Tabedzki <35670232+tabedzki@users.noreply.github.com> Date: Thu, 21 Mar 2024 10:22:23 -0400 Subject: [PATCH 06/11] updated indentation --- src/software/automation_pipeline_developer.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/software/automation_pipeline_developer.md b/src/software/automation_pipeline_developer.md index 34f181a..75b39b4 100644 --- a/src/software/automation_pipeline_developer.md +++ b/src/software/automation_pipeline_developer.md @@ -44,10 +44,10 @@ The class that manages workflow at the recording level is (Params Config file): This dictionary defines status definitions and corresponding functions to execute. + **pipeline_handler_main** in (RecordingHandler): 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 (RecordingHandler): Python decorator for error handling. + 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 (RecordingHandler): Python decorator for error handling. + **modality_preingestion** in (RecordingHandler): Main ingestion function from recording to recording_process tables. There are subcalls depending on modality of recording (ephys or imaging). #### Imaging preingestion main steps: @@ -55,9 +55,9 @@ The class that manages workflow at the recording level is (RecordingHandler): 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 (Imaging pipeline): Auxiliar script to call **populate_Imaging_AcquiredTiff** script in MATLAB. + **populate_Imaging_AcquiredTiff** in (populate_Imaging_AcquiredTiff): 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). (Code here) -2. **u19_imaging_pipeline.SyncImagingBehavior**: Find correspondence between virtual reality frame in the behavior experiment and Calcium Imaging frame in recording. -(Code here) + 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). (Code here) + 2. **u19_imaging_pipeline.SyncImagingBehavior**: Find correspondence between virtual reality frame in the behavior experiment and Calcium Imaging frame in recording. + (Code here) From d21c6200af35469af601a621fbd338944abff59f Mon Sep 17 00:00:00 2001 From: Christian Tabedzki <35670232+tabedzki@users.noreply.github.com> Date: Thu, 21 Mar 2024 10:31:11 -0400 Subject: [PATCH 07/11] fixed double https:// --- src/software/automation_pipeline_developer.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/software/automation_pipeline_developer.md b/src/software/automation_pipeline_developer.md index 75b39b4..2d96f92 100644 --- a/src/software/automation_pipeline_developer.md +++ b/src/software/automation_pipeline_developer.md @@ -83,7 +83,7 @@ The class that manages workflow at the recording level is (Params Config file): This dictionary defines status definitions and corresponding functions to execute. + + **recording_process_status_dict** in (Params Config file): This dictionary defines status definitions and corresponding functions to execute. + **pipeline_handler_main** in (RecProcessHandler): 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. From 645ba9caa223b28d9538b3f60385414aa5b481d3 Mon Sep 17 00:00:00 2001 From: mmagos28 <119622721+mmagos28@users.noreply.github.com> Date: Fri, 22 Mar 2024 13:40:48 -0400 Subject: [PATCH 08/11] test --- src/maintenance/positioning.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/maintenance/positioning.md b/src/maintenance/positioning.md index d46cb70..b798841 100644 --- a/src/maintenance/positioning.md +++ b/src/maintenance/positioning.md @@ -7,4 +7,16 @@ lang: en-US 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. \ No newline at end of file From 55573dfc17b3d7973ea94082145a9d238bd8ef12 Mon Sep 17 00:00:00 2001 From: mmagos28 <119622721+mmagos28@users.noreply.github.com> Date: Fri, 22 Mar 2024 14:15:11 -0400 Subject: [PATCH 09/11] t2 --- src/maintenance/positioning.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/maintenance/positioning.md b/src/maintenance/positioning.md index b798841..bddbc7a 100644 --- a/src/maintenance/positioning.md +++ b/src/maintenance/positioning.md @@ -5,6 +5,8 @@ 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 From f25d66e7e49e97c554000381dc90fca7ec1cf748 Mon Sep 17 00:00:00 2001 From: mmagos28 <119622721+mmagos28@users.noreply.github.com> Date: Fri, 22 Mar 2024 14:16:06 -0400 Subject: [PATCH 10/11] t3 --- src/maintenance/positioning.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/maintenance/positioning.md b/src/maintenance/positioning.md index bddbc7a..dc12d6e 100644 --- a/src/maintenance/positioning.md +++ b/src/maintenance/positioning.md @@ -5,7 +5,7 @@ lang: en-US # {{ $frontmatter.title }} -## Automated positioning +# 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. @@ -16,7 +16,7 @@ If the motors don't respond correctly, open the Zaber software. Select the 'Basi ## 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 +### Recomendation After completing the training, please send all the motors home. # Manual From aafffe3e204778b07560f69868d6149caff8a2ef Mon Sep 17 00:00:00 2001 From: mmagos28 <119622721+mmagos28@users.noreply.github.com> Date: Fri, 22 Mar 2024 14:51:14 -0400 Subject: [PATCH 11/11] t3 --- src/.vuepress/config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/.vuepress/config.js b/src/.vuepress/config.js index 889c917..f0ac3ab 100755 --- a/src/.vuepress/config.js +++ b/src/.vuepress/config.js @@ -97,6 +97,7 @@ function getMaintenanceSidebar () { 'projection', 'reward', 'stage', + 'positioning', 'miscellaneous' ] }