sjeknic / CellTK

Toolkit for analysis of live-cell microscopy data
MIT License
3 stars 0 forks source link

Improvements for submitting jobs to SLURM #69

Closed sjeknic closed 2 years ago

sjeknic commented 2 years ago

This PR is primarily focused on increasing the usability of the SlurmController in a real-world setting (i.e. Sherlock). There are two main changes for this:

  1. Orchestrator tries to come up with unique position identifiers for duplicate conditions. It defaults to the last part of the name used to save the site. For example. A5-Site_0 and A5-Site_1 both have condition 'Control'. In Orchestrator, the Pipelines will be saved as 'Control0' and 'Control1' respectively. These are also the names they will have when loaded as a Condition. They will also have an additional metric called position_id to facilitate finding the cells physically if needed. When loaded by Experiment, those two Conditions will be combined along the cell axis and saved under the key Control. If the folder names do not follow the format above, I doubt this will work well. Also, worth noting that position_id must be numeric, otherwise Condition._arr would have dtype object.
  2. A SignalHandler class was added to the JobController class. This class uses signal to catch SIGINT, normally raised by pressing CTRL + C. When this happens, it opens a very basic interface that the user can utilize to display more information about jobs, rerun jobs, and quit the pipeline.