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.1.tar.gz (22.3 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.1-py3-none-any.whl (17.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: rlooper_sim_python-1.0.1.tar.gz
  • Upload date:
  • Size: 22.3 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.1.tar.gz
Algorithm Hash digest
SHA256 903c76b5aeb1d45af6ac65099dd100234c560df39de0043dbfe08a2cd78ba4e0
MD5 936f428cb36e8d3fe7da534d14788854
BLAKE2b-256 74a7dbc0745ff32c2740b6f6ff5a3a42a37875d4804406764c89b5c0cd2bdf2e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rlooper_sim_python-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c79fdf1dbbf4e94d228d0d51e49a7dffe9437af917f75fe975864cab8aa5458a
MD5 7fef007e0d5bbbb325e7cc6466fed6a0
BLAKE2b-256 e82e41e2e35e93276bc0dbb252cd3fee4fba985efc1e717f19b27f5bdb8611d3

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