Skip to main content

BfxPM: Bioinformatician’s Project Manager for reproducible workflows.

Project description

BfxPM: Bioinformatics Project Manager

BfxPM Logo

Python 3.13+ License: MIT Conda Standards: FAIR

BfxPM is a professional-grade CLI ecosystem designed for the high-throughput, data-heavy workflows of modern computational biology. It transforms messy research directories into standardized, FAIR-compliant project structures, while providing an Agentic AI layer to assist with complex bioinformatic tasks.


🤖 New: Agentic AI Integration

BfxPM now features a built-in BioAssistant powered by SmolAgents and the Gemini 1.5 Pro/Flash SDK.

  • bfxpm ai chat: Interactive, project-aware assistant that understands your directory structure and data types.
  • Transparent Reasoning: Real-time "Internal Thoughts" display shows the agent's logic before it acts.
  • Safety Interceptor: Automatically intercepts destructive commands (like rm), creates timestamped backups in .bfxpm/backups/, and requires manual confirmation.
  • Local & Cloud Flexibility: Configure via bfxpm ai setup to use either local (Ollama) or cloud models.

🚀 Key Features

📂 Professional Scaffolding

  • FAIR Compliance: Instantly scaffold projects with CONTRIBUTING.md, CITATION.cff, LICENSE, and standard GitHub Action workflows.
  • MkDocs Ready: One-command generation of a complete documentation suite (docs/, mkdocs.yml).
  • Scientific Attribution: Auto-populates metadata with your ORCID ID and project specifics.

🔄 Intelligent Organization & Mapping

  • bfxpm organize: A specialized detection engine that routes sequences, alignments, and reports (PDF/HTML) into dedicated subfolders (results/reports vs results/figures).
  • Outside-In Vacuum: Run organization from a parent folder to "vacuum" messy files into your project structure.
  • bfxpm map --rollback: Take immutable snapshots of your project state and revert instantly.

🧬 Bioinformatics Toolset

  • bfxpm env: Standardized environment management for common bioinformatic stacks.
  • bfxpm pipeline: Scaffold analysis pipelines specifically for Nextflow and Snakemake.
  • bfxpm fetch: Intelligent data retrieval and routing from external biological repositories.
  • bfxpm tree: A high-performance scientific tree viewer with pager support and hidden file toggles.

🛡️ Data Integrity & Publication

  • bfxpm checksum: Full manifest management to detect bit-rot in massive datasets.
  • bfxpm flow: Record interactive terminal sessions into reproducible shell scripts.
  • bfxpm deposit: One-command preparation for deposition to Zenodo, FigShare, and Dryad.

🛠️ Installation

Prerequisites

  • Python 3.13+ (Recommended)
  • Conda (Optional, for bfxpm env features)

via Pip

pip install bfxpm-bio

via Conda

conda install -c bioconda bfxpm

📖 Quick Start

1. Initialize a "Gold Standard" project:

bfxpm init

2. Interact with your BioAssistant:

bfxpm ai setup  # Configure your API keys
bfxpm ai chat   # "How should I structure my differential expression analysis?"

3. Clean up the "Mess":

bfxpm organize  # Automatically routes files and asks about unknown folders

4. Visualize & Document:

bfxpm tree --all  # View all files including hidden .git/
bfxpm report      # Generate a comprehensive project status report
bfxpm exit        # Safely exit the BfxPM session

🏢 Architecture & Development

Project Structure

BfxPM follows a modular, production-grade architecture:

  • src/bfxpm/agents/: AI agent logic and safety interceptors.
  • src/bfxpm/commands/: Individual CLI command modules.
  • scripts/publish.py: One-touch interactive publishing to PyPI and Anaconda.

Developer Environment

To set up for contributions:

git clone https://github.com/jyoda68/bioinformatics_project_manager.git
cd bioinformatics_project_manager
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

📄 License & Attribution

Licensed under the MIT License. See LICENSE for details. Developed and maintained by Jyotirmoy Das.


Developer's Notes

  • Python 3.13 Upgrade: Migrated to Python 3.13 to leverage the latest performance improvements and resolver features.
  • SDK Transition: Switched to the google-genai unified SDK for more robust Gemini integrations.
  • Safety First: Destructive command interception is now a core part of the codebase to prevent accidental data loss in large-scale bioinformatic projects.

Developed with ❤️ for Bioinformaticians by a Bioinformatician

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bfxpm-1.0.0.tar.gz (91.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bfxpm-1.0.0-py3-none-any.whl (111.4 kB view details)

Uploaded Python 3

File details

Details for the file bfxpm-1.0.0.tar.gz.

File metadata

  • Download URL: bfxpm-1.0.0.tar.gz
  • Upload date:
  • Size: 91.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for bfxpm-1.0.0.tar.gz
Algorithm Hash digest
SHA256 65fca16bad29170fbec17718f261bed91098d7a987238cb10a89d06eeb3a4a48
MD5 14abeae24c0ba906d4fceb0968aba700
BLAKE2b-256 499aafc6e9d035bf35ebe6875cce199eca97120cee39c95ceed89492087cc9cf

See more details on using hashes here.

File details

Details for the file bfxpm-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: bfxpm-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 111.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for bfxpm-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 96f70dafce7afd9ceb8225e4a4dc3a663911471ebaa1ec81c11c3ee1eeca89f1
MD5 3d02c6b716b24742381ffdc30c9b7fce
BLAKE2b-256 8aca751686df46923cd317d80552ed1aefb91c8f502f91e946c05d4ef0474e74

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page