labrat

Test Package Build codecov PyPI - Version DOI

AI / Agents

Skills
llms.txt
llms-full.txt

Developers

Shaurita Hutchins

Author

Community

Contributing guide
Full license MIT

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 pylabrat

Or 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 list

Archive files or directories:

labrat archive --source ./my_project --destination ~/Archive --name "project_backup"

Organize scientific data files:

labrat organize --science

Query 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.0

Manage 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 build

The 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.txt

Or if installing the package:

pip install .

Run all tests using unittest:

python -m unittest discover -s tests

Or 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_manager

Roadmap

Author

Shaurita Hutchins · @sdhutchins · :email:

Contributing

If you would like to contribute to this package, install the package in development mode, and check out our contributing guidelines.

License

MIT