Skip to main content

Rlooper Simulation Python Implementation with Snakemake Workflow

Project description

rlooper_sim_python

PyPI version Python 3.7+ License: MIT

Rlooper with R-loop Peak Simulation - Python Implementation

Installation

Option 1: Install from PyPI (Recommended)

# Install the package
pip install rlooper-sim-python

# Run single simulation
rlooper-sim example.fasta

# Initialize and run workflow
rlooper-workflow --init-project my_project
cd my_project
rlooper-workflow all

Option 2: Install from Source

# Clone repository
git clone https://github.com/srhartono/rlooper_sim_python.git
cd rlooper_sim_python

# Install in development mode
pip install -e .

# Or install for production
pip install .

Quick Start

After installation, you can use rlooper in two ways:

1. Single File Simulation

# Run simulation on a single FASTA file
rlooper-sim my_sequence.fasta

# Copy example files to current directory
rlooper-sim --copy-examples .
rlooper-sim example.fasta

2. Snakemake Workflow (Multiple Files)

# Initialize a new project
rlooper-workflow --init-project my_rlooper_project
cd my_rlooper_project

# Run the complete workflow
rlooper-workflow all

# Generate DAG visualization
rlooper-workflow dag

# Generate summary report
rlooper-workflow summary

Synopsis

Original Usage (standalone)

python main.py example.fasta

Snakemake Workflow Usage (recommended)

This project now includes a Snakemake workflow that automates the execution of rlooper simulations on multiple FASTA files.

Prerequisites

  • Python 3.7 or higher

Setup (One-time)

Choose one of the following setup methods:

Method 1: Automatic setup (recommended)

python setup_venv.py

Method 2: Manual setup

# Create virtual environment
python -m venv .venv

# Activate virtual environment
# On Windows:
.venv\Scripts\activate
# On Unix/macOS:
source .venv/bin/activate

# Install dependencies
pip install -r requirements.txt

Method 3: Platform-specific scripts

  • Windows: setup_venv.bat
  • Unix/Linux: bash setup_venv.sh

Quick Start

  1. Setup (first time only): python setup_venv.py
  2. Configure your input files in config.yaml
  3. Run the workflow:
python run_workflow.py all

Alternative methods:

  • Direct Snakemake: snakemake --cores 1 (if activated manually)
  • With venv activation:
    # Windows
    .venv\Scripts\activate
    python run_workflow.py all
    
    # Unix/macOS  
    source .venv/bin/activate
    python run_workflow.py all
    

Adding New Samples

  1. Place your FASTA files in the input/ folder
  2. Add entries to config.yaml:
    samples:
      my_sample: "my_sample.fasta"    # References input/my_sample.fasta
    
  3. Run the workflow: python run_workflow.py all

Project Structure

rlooper_sim_python/
├── input/                    # FASTA input files
│   ├── example.fasta
│   └── example_short.fasta
├── bin/                      # Python source code and energy data
│   ├── main.py
│   ├── simulation.py
│   ├── model.py
│   ├── gene.py
│   ├── structure.py
│   └── energy.csv
├── results/                  # Output directory (created by workflow)
├── config.yaml              # Workflow configuration
├── Snakefile                # Workflow definition
└── run_workflow.py          # Convenience wrapper script

Configuration

Edit config.yaml to specify your FASTA files (relative to the input/ folder):

samples:
  sample1: "sample1.fasta"
  sample2: "sample2.fasta" 
  example: "example.fasta"
  example_short: "example_short.fasta"

Available Commands

Using wrapper script:

  • python run_workflow.py all - Run all simulations
  • python run_workflow.py summary - Generate summary report
  • python run_workflow.py clean - Remove all output files
  • python run_workflow.py dry-run - Show what would be executed
  • python run_workflow.py dag - Generate workflow DAG visualization

Direct Snakemake commands:

  • snakemake --cores 1 - Run all simulations
  • snakemake create_summary --cores 1 - Generate summary report
  • snakemake clean - Remove all output files

Output Structure

results/
├── <sample_name>/
│   ├── rlooper_output.csv    # Main simulation results
│   ├── rlooper_peaks.csv     # Identified peaks
│   └── energy.csv            # Copy of energy parameters
└── summary_report.txt        # Summary of all samples

DAG Visualization (Optional)

To generate workflow diagrams as PDFs, you need to install Graphviz:

Windows:

# Option 1: Using Chocolatey
choco install graphviz

# Option 2: Using winget
winget install graphviz

# Option 3: Manual download from https://graphviz.org/download/

macOS:

brew install graphviz

Ubuntu/Debian:

sudo apt-get install graphviz

After installing Graphviz:

python run_workflow.py dag  # Creates dag.dot and dag.pdf

Without Graphviz installed:

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

rlooper_sim_python-1.0.0.tar.gz (22.2 kB view details)

Uploaded Source

Built Distribution

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

rlooper_sim_python-1.0.0-py3-none-any.whl (17.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for rlooper_sim_python-1.0.0.tar.gz
Algorithm Hash digest
SHA256 8d27f339ca0f1d4d0047b73971e7332c1e99d41f98329bc3259ea5656a63696b
MD5 340d0ece30ce341602f3b88ed87af076
BLAKE2b-256 c9a00b9ba3c44388d0265da82c03a09a5721bf5a968b613b74487b935a4a2c44

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rlooper_sim_python-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 40ee84a8b1173b5ae8caa4cfdfd1a9910131246fa1df0cb64110ea23614834fc
MD5 5caa78da026a6e36fb222b5b39bfb553
BLAKE2b-256 30f6c4622dc322dff5e081aafa0c30fe1ca68bc6ef83e1db730cdfb8f8a13fd4

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