Links
AI / Agents
Developers
Community
Meta
Requires: Python >=3.10
Provides-Extra: docs
Package Info
Labrat is a Python framework designed to improve reproducibility, simplify laboratory management, and support common biomedical research tasks.
Features
- Create, list, and track computational biology projects from reusable templates
- Calculate solution dilutions, molarity, transmittance/absorbance conversions, and more
- Organize scientific data, images, videos, and archives by file type
- Archive projects and directories with timestamped backups
- Count canonical nucleotides, create DNA complements, and translate FASTA sequences
- Query gene, variant, and biomedical literature resources with provenance
- Use the same tools from the command line or Python
Install
Install from PyPI:
pip install pylabratOr install from source:
git clone https://github.com/sdhutchins/labrat.git
cd labrat
pip install .For development, install in editable mode:
pip install -e .Examples
Command-Line Interface
Create a new project:
labrat project new --type computational-biology --name "KARG Analysis" \
--path ./karg_analysis --description "Analyze the KARG data"List all projects:
labrat project listArchive files or directories:
labrat archive --source ./my_project --destination ~/Archive --name "project_backup"Organize scientific data files:
labrat organize --scienceQuery genes through MyGene, variants through MyVariant, and literature through PubTator 3:
labrat query gene BMPR2
labrat query gene BMPR2 --all-matches
labrat query variant rs429358
labrat query literature "BMPR2 pulmonary arterial hypertension"
labrat query literature --gene BMPR2 \
--disease "pulmonary arterial hypertension"Add --format json to retain the complete provider response and query provenance for downstream analysis. The default output uses terminal-aware Rich tables and panels that remain readable when output is redirected.
Python API
Calculate solution dilutions:
from labrat.math import dilute_stock
# Calculate final concentration
final_conc = dilute_stock(100, 2, vF=4) # Returns 50.0Manage projects programmatically:
from labrat.project import ProjectManager
# Create a new project
manager = ProjectManager('Dr. Jane Doe')
manager.new_project(
project_type='computational-biology',
project_name='KARG Analysis',
project_path='./karg_analysis',
description="Analyze the KARG data."
)
# List all projects
projects = manager.list_projects()Documentation
The complete documentation is available at www.shauritahutchins.com/labrat.
Great Docs requires Python 3.11 or later and Quarto. Build the documentation locally with:
pip install -e ".[docs]"
great-docs buildThe generated site is written to great-docs/_site/ and is not committed.
Tests
Before running tests, ensure all dependencies are installed:
pip install -r requirements.txtOr if installing the package:
pip install .Run all tests using unittest:
python -m unittest discover -s testsOr run tests with pytest (if installed):
pytest tests/To run a specific test file:
python -m unittest tests.test_archiver
python -m unittest tests.test_file_organizer
python -m unittest tests.test_project_managerRoadmap
Contributing
If you would like to contribute to this package, install the package in development mode, and check out our contributing guidelines.