Skip to main content

BfxPM: Bioinformatician's Project Manager for reproducible workflows.

Project description

BfxPM: Bioinformatician's 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.

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

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

🛠️ Installation

Prerequisites

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

via Pip

pip install bfxpm

via Conda

conda install jd2112::bfxpm

📖 Quick Start

Starting BfxPM Start using bfxpm or bfxpm --help to see all the available commands.

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/bfxpm.git
cd bfxpm
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.1.tar.gz (91.6 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.1-py3-none-any.whl (111.7 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for bfxpm-1.0.1.tar.gz
Algorithm Hash digest
SHA256 caf6dc6c89400d806b7ebb95e972a2198b734eff256cecc5d639e0b00b34f4bf
MD5 ac1189bad3e3384abc935ffe1a45401f
BLAKE2b-256 469b320bae8330f36cafdbe0e4abc534c23c6719a7e9ec540bb5cbb29a6f12c6

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for bfxpm-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 039bda696f73c3dc0f52ee0dfbfb3f5d1a78e840b8e59b14c67243d054dd9a8b
MD5 d52437e35af7488859c02df419340605
BLAKE2b-256 65bbe272680490a2769ca1a245bcd99a76bc9c7c083a854c36a61ab744b10680

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