Skip to content

sdhutchins/labrat

Repository files navigation

labrat

Build Status codecov PyPI - Version DOI

A basic science lab framework aimed at reproducibility and lab management. This package is in the very early stages of development.

Features

  • Create, list, and track/manage computational biology projects with structured templates
  • Calculate solution dilutions, molarity, transmittance/absorbance conversions, and more
  • Automatically organize scientific data files (FASTQ, FASTA, SAM, BAM, VCF, etc.) and others files like pictures, videos, and archives
  • Archive projects and directories with timestamped backups
  • Convert DNA sequences to amino acids and analyze genetic data
  • Full-featured CLI for all major operations

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

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()

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

ToDo

  • Add a lab inventory app
  • Add project report template
  • Integrate exmemo

Author

Shaurita Hutchins · @sdhutchins · 📧

Contributing

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

License

MIT