https://github.com/clinical-genomics/trailblazer

Keep track of and manage analyses

https://github.com/clinical-genomics/trailblazer

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.9%) to scientific vocabulary

Keywords

bioinformatics python3

Keywords from Contributors

orchestrator genomics bioconda sambamba coverage archival projection generic reporting sequences
Last synced: 5 months ago · JSON representation

Repository

Keep track of and manage analyses

Basic Info
  • Host: GitHub
  • Owner: Clinical-Genomics
  • License: mit
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 2.13 MB
Statistics
  • Stars: 6
  • Watchers: 7
  • Forks: 2
  • Open Issues: 7
  • Releases: 0
Topics
bioinformatics python3
Created over 9 years ago · Last pushed 12 months ago
Metadata Files
Readme License Codeowners

README.md

Trailblazer Coverage Status

Monitor the progress of analysis workflows submitted to SLURM

Trailblazer is a tool that aims to provide: - Monitoring of processes that require submission to a workflow manager - Display metadata for each analysis within a web based user interface

Here you can find a simple web UI for Trailblazer that helps you keep track of the status of multiple runs

Installation

Trailblazer is written in Python 3.11 and is available on the Python Package Index (PyPI).

bash pip install trailblazer

If you would like to install the latest development version:

bash git clone https://github.com/Clinical-Genomics/trailblazer cd trailblazer pip install --editable .

With each push to GitHub your files will be automatically verified using Black . If you would like to automatically Black format your commits on your local machine:

pre-commit install

Contributing

Trailblazer uses the GitHub flow branching model as described in Atlas GitHub Flow.

Documentation

Here'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 interface

Command: trailblazer init

Setup (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 --reset option.

shell trailblazer --database "sqlite:///tb.sqlite3" init --reset Delete existing tables? [analysis, info, job, user] [y/N]: y Success! New tables: analysis, info, job, user

Command: trailblazer user

This 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.

```shell

add a new user

trailblazer user --name "Paul Anderson" paul.anderson@magnolia.com New user added: paul.anderson@magnolia.com (2)

check an existing user

trailblazer user paul.anderson@magnolia.com {'createdat': datetime.datetime(2017, 6, 22, 8, 49, 44, 685977), 'googleid': None, 'name': 'Paul Anderson', 'email': 'paul.anderson@magnolia.com', 'avatar': None, 'id': 2} ```

Command: trailblazer archive-user

This command archives a user in the database (and removes their access to the web interface).

```shell

archive a user

trailblazer archive-user paul.anderson@magnolia.com User archived: paul.anderson@magnolia.com ```

Command: trailblazer users

This command can be used both to list all users in the database and get a filtered list of users.

```shell

list all users

trailblazer users Listing users in database: {'createdat': datetime.datetime(2017, 6, 22, 8, 49, 44, 685977), 'googleid': 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 it

trailblazer users --name Anderson --email magnolia Listing users in database: {'createdat': datetime.datetime(2017, 6, 22, 8, 49, 44, 685977), 'googleid': None, 'name': 'Paul Anderson', 'email': 'paul.anderson@magnolia.com', 'avatar': None, 'id': 2} ```

Command: trailblazer log

Logs the status of a run to the supporting database. You need to point to the analysis config of a specific run.

shell trailblazer log path/to/case/analysis/case_config.yaml

You 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 scan

Convenience 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:

shell trailblazer scan /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 ls

Prints the case id for the most recently completed analyses to the console.

shell trailblazer ls F0013487 F0013362 F0006106 17083 F0013469 17085

Command: trailblazer delete

Deletes 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.

shell trailblazer delete 4

Owner

  • Name: Clinical Genomics
  • Login: Clinical-Genomics
  • Kind: organization
  • Location: Stockholm, Sweden

GitHub Events

Total
  • Create event: 23
  • Release event: 9
  • Issues event: 11
  • Delete event: 10
  • Issue comment event: 79
  • Push event: 53
  • Pull request review comment event: 15
  • Pull request review event: 25
  • Pull request event: 24
Last Year
  • Create event: 23
  • Release event: 9
  • Issues event: 11
  • Delete event: 10
  • Issue comment event: 79
  • Push event: 53
  • Pull request review comment event: 15
  • Pull request review event: 25
  • Pull request event: 24

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 1,013
  • Total Committers: 24
  • Avg Commits per committer: 42.208
  • Development Distribution Score (DDS): 0.699
Past Year
  • Commits: 92
  • Committers: 8
  • Avg Commits per committer: 11.5
  • Development Distribution Score (DDS): 0.5
Top Committers
Name Email Commits
Robin Andeer r****r@g****m 305
Clinical Genomics Bot c****m@g****m 248
Henrik Stranneheim h****m@s****e 134
Sebastian Allard s****s@g****m 103
Patrik Grenfeldt p****t@s****e 77
Maria Ropat 3****t 37
Kenny Billiau k****u@s****e 30
Eva C 2****c 14
Isak Ohlsson Ångnell 4****n 13
dependabot[bot] 4****] 8
jemten j****n 7
Emma Sernstad e****d@s****e 7
Vincent Janvid 6****v 6
ChristianOertlin c****n@g****m 5
Barry Stokman 2****n 4
Eleonora e****o@g****m 3
Sebastian Diaz j****a@s****e 3
Gustav Lagneborg 1****b 2
Github CI m****t@s****e 2
Anders Lind 6****y 1
Daniel Nilsson d****n@g****m 1
Gustav Lagneborg 1****g 1
Måns Magnusson m****n@s****e 1
Rasmus Burge 8****G 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 95
  • Total pull requests: 321
  • Average time to close issues: 6 months
  • Average time to close pull requests: 8 days
  • Total issue authors: 26
  • Total pull request authors: 16
  • Average comments per issue: 1.78
  • Average comments per pull request: 2.49
  • Merged pull requests: 271
  • Bot issues: 0
  • Bot pull requests: 4
Past Year
  • Issues: 8
  • Pull requests: 33
  • Average time to close issues: 26 days
  • Average time to close pull requests: 7 days
  • Issue authors: 5
  • Pull request authors: 6
  • Average comments per issue: 2.75
  • Average comments per pull request: 1.7
  • Merged pull requests: 22
  • Bot issues: 0
  • Bot pull requests: 3
Top Authors
Issue Authors
  • seallard (26)
  • fevac (9)
  • henrikstranneheim (8)
  • emmser (8)
  • elevu (6)
  • ChrOertlin (5)
  • diitaz93 (4)
  • Vince-janv (3)
  • barrystokman (3)
  • hassanfa (2)
  • keyvanelhami (2)
  • emiliaol (2)
  • karlnyr (2)
  • mathiasbio (2)
  • moonso (2)
Pull Request Authors
  • seallard (197)
  • henrikstranneheim (121)
  • Mropat (26)
  • islean (25)
  • ChrOertlin (15)
  • fevac (14)
  • Vince-janv (8)
  • patrikgrenfeldt (5)
  • dependabot[bot] (5)
  • diitaz93 (4)
  • gustavlagneborg (3)
  • RasmusBurge-CG (2)
  • elevu (2)
  • moonso (1)
  • pbiology (1)
Top Labels
Issue Labels
Bug (23) Gain M (7) Urgency M (6) Effort S (6) Enhancement (5) Urgency S (5) on hold (3) PBL Team <teamname> (3) Effort M (3) Urgency L (3) Needs refinement (2) Gain L (2) Gain S (2) WIP (1) NIPT NovaSeq (1) Project Task (1) Technical debt (1) Effort L (1)
Pull Request Labels
Project Task (36) Enhancement (35) dependencies (5) Bug (4) python (4) Effort S (3) Urgency M (2) Gain S (1) Urgency S (1) Gain M (1) Gain L (1) vm-server-farm (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 1,394 last-month
  • Total dependent packages: 1
  • Total dependent repositories: 1
  • Total versions: 312
  • Total maintainers: 4
pypi.org: trailblazer

Keep track of and manage analyses

  • Versions: 312
  • Dependent Packages: 1
  • Dependent Repositories: 1
  • Downloads: 1,394 Last month
Rankings
Dependent packages count: 4.8%
Downloads: 5.6%
Average: 14.8%
Forks count: 19.1%
Dependent repos count: 21.5%
Stargazers count: 23.1%
Maintainers (4)
Last synced: 6 months ago

Dependencies

requirements-dev.txt pypi
  • docutils * development
  • pytest >=5.2 development
requirements.txt pypi
  • Alchy *
  • Click <7
  • Flask >=1.1.1
  • Flask-Alchy *
  • Flask-CORS *
  • Flask-Reverse-Proxy *
  • Flask-SQLAlchemy ==2.1
  • SQLAlchemy <1.4
  • coloredlogs *
  • cryptography *
  • google-auth *
  • gunicorn *
  • marshmallow *
  • pandas *
  • pymysql *
  • python-dateutil *
  • requests *
  • ruamel.yaml *
  • tabulate *
.github/workflows/black.yml actions
  • actions/checkout v2.5.0 composite
  • actions/setup-python v4.3.1 composite
  • psf/black stable composite
.github/workflows/build_dockerfile_on_push.yml actions
  • actions/checkout v2.5.0 composite
  • docker/build-push-action v3.2.0 composite
  • docker/login-action v2.1.0 composite
  • docker/setup-buildx-action v2.2.1 composite
.github/workflows/build_dockerfile_on_release.yml actions
  • actions/checkout v2.5.0 composite
  • docker/build-push-action v3.2.0 composite
  • docker/login-action v2.1.0 composite
  • docker/setup-buildx-action v2.2.1 composite
.github/workflows/bumpversion_on_merge_master.yml actions
  • Clinical-Genomics/bump2version-ci v3 composite
.github/workflows/publish_to_pypi.yaml actions
  • actions/checkout v2.5.0 composite
  • actions/setup-python v4.3.1 composite
  • pypa/gh-action-pypi-publish master composite
.github/workflows/test_and_coverage.yml actions
  • actions/checkout v2.5.0 composite
  • actions/setup-python v4.3.1 composite
Dockerfile docker
  • python 3.6-slim build
.github/workflows/deploy_prod.yml actions
.github/workflows/deploy_stage.yml actions
.github/workflows/production_install.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
pyproject.toml pypi
setup.py pypi