Package: trailblazer
TrailblazerMonitor the progress of analysis workflows submitted to SLURMTrailblazer is a tool that aims to provide:Monitoring of processes that require submission to a workflow managerDisplay metadata for each analysis within a web based user interfaceHereyou can find a simple web UI for Trailblazer that helps you keep track of the status of multiple runsInstallationTrailblazer is written in Python 3.11 and is available on thePython Package Index(PyPI).pipinstalltrailblazerIf you would like to install the latest development version:gitclonehttps://github.com/Clinical-Genomics/trailblazercdtrailblazer
pipinstall--editable.With each push to GitHub your files will be automatically verified usingBlack. If you would like to automaticallyBlackformat your commits on your local machine:pre-commit installContributingTrailblazer uses the GitHub flow branching model as described in AtlasGitHub Flow.DocumentationHere's a brief documentation. Trailblazer functionality can be accessed from the command line interface (CLI), the monitoring web interface, the supporting REST API, as well as using the Python API.Command line interfaceCommand:trailblazer initSetup (or reset) a Trailblazer database. The command will set up all the tables in the database. You can reset an existing database by using the--resetoption.trailblazer--database"sqlite:///tb.sqlite3"init--reset
Deleteexistingtables?[analysis,info,job,user][y/N]:y
Success!Newtables:analysis,info,job,userCommand:trailblazer userThis command can be used both to add a new user to the database (and give them access to the web interface) and view information about an existing user.# add a new usertrailblazeruser--name"Paul Anderson"paul.anderson@magnolia.com
Newuseradded:paul.anderson@magnolia.com(2)# check an existing usertrailblazeruserpaul.anderson@magnolia.com{'created_at':datetime.datetime(2017,6,22,8,49,44,685977),'google_id':None,'name':'Paul Anderson','email':'paul.anderson@magnolia.com','avatar':None,'id':2}Command:trailblazer archive-userThis command archives a user in the database (and removes their access to the web interface).# archive a usertrailblazerarchive-userpaul.anderson@magnolia.com
Userarchived:paul.anderson@magnolia.comCommand:trailblazer usersThis command can be used both to list all users in the database and get a filtered list of users.# list all userstrailblazerusers
Listingusersindatabase:{'created_at':datetime.datetime(2017,6,22,8,49,44,685977),'google_id':None,'name':'Paul Anderson','email':'paul.anderson@magnolia.com','avatar':None,'id':2}# list all users named 'Anderson' that has an email with 'magnolia' in ittrailblazerusers--nameAnderson--emailmagnolia
Listingusersindatabase:{'created_at':datetime.datetime(2017,6,22,8,49,44,685977),'google_id':None,'name':'Paul Anderson','email':'paul.anderson@magnolia.com','avatar':None,'id':2}Command:trailblazer logLogs the status of a run to the supporting database. You need to point to the analysis config of a specific run.trailblazerlogpath/to/case/analysis/case_config.yamlYou can point to the same analysis multiple times, Trailblazer will detect if the same analysis has been added before and skip it if no information has been updated. If an analysis has been added previously as "running" or "pending", those entries will automatically be removed as soon as the same analysis is logged as either "completed" or "failed".Command:trailblazer scanConvenience command to scan an entire directory structure for all analyses and update their status in one go. Assumes the base directory consists of individual case folders:trailblazerscan/path/to/analyses/dir/This command can easily be setup in a crontab to run e.g. every hour and keep the analysis statuses up-to-date!Command:trailblazer lsPrints the case id for the most recently completed analyses to the console.trailblazerls
F0013487
F0013362
F000610617083F001346917085Command:trailblazer deleteDeletes an analysis log from the database. The input is the unique analysis id which is printed ones the analysis is initially logged. It's also displayed in the web interface.trailblazerdelete4