Workflows

siRNAforge provides flexible workflows from quick gene-to-siRNA analysis to custom multi-step pipelines.

Complete Workflow

The workflow command handles everything: gene search β†’ design β†’ scoring β†’ filtering.

sirnaforge workflow TP53 --output-dir results/

Output Structure

results/
β”œβ”€β”€ sirnaforge/
β”‚   β”œβ”€β”€ TP53_pass.csv          # βœ“ Use these for experiments
β”‚   └── TP53_all.csv           # All candidates with scores
β”œβ”€β”€ transcripts/
β”‚   β”œβ”€β”€ TP53_transcripts.fasta # Retrieved sequences
β”‚   └── TP53_canonical.fasta   # Canonical isoform
β”œβ”€β”€ logs/
β”‚   └── workflow_summary.json  # Analysis statistics
└── off_target/
    └── input_candidates.fasta # For Nextflow pipeline

Common Options

# Stricter quality filters
sirnaforge workflow TP53 --gc-min 35 --gc-max 55 --top-n 30

# More candidates
sirnaforge workflow BRCA1 --top-n 50

# Verbose output
sirnaforge workflow EGFR --verbose

Step-by-Step Workflow

For more control, run individual commands:

# 1. Get transcripts
sirnaforge search TP53 -o transcripts.fasta

# 2. Design candidates
sirnaforge design transcripts.fasta -o candidates.csv --top-n 20

Batch Processing

Process multiple genes efficiently:

for gene in TP53 BRCA1 EGFR KRAS; do
  sirnaforge workflow $gene --output-dir results/$gene
done

Variant Targeting (documented runs)

Five offline variant-resolution runs were executed with the bundled FASTA (examples/sample_transcripts.fasta) and demo VCF (examples/variant_demo.vcf). Minimal outputs live under docs/documented_workflows/:

  • Summary: docs/documented_workflows/variant_examples.json (command, mode, min-af, resolved variants)

  • Reports: docs/documented_workflows/*/logs/resolved_variants.json

Example commands mirrored in the summary:

# Avoid mode with default AF threshold
sirnaforge workflow TP53 --input-fasta examples/sample_transcripts.fasta --snp-file examples/variant_demo.vcf --variant-mode avoid --min-af 0.01 --output-dir workflow_output/avoid_baseline

# Target common alleles
sirnaforge workflow TP53 --input-fasta examples/sample_transcripts.fasta --snp-file examples/variant_demo.vcf --variant-mode target --min-af 0.03 --output-dir workflow_output/target_focus

Docker Workflow

docker run --rm -v $(pwd):/data -w /data \
  ghcr.io/austin-s-h/sirnaforge:latest \
  sirnaforge workflow TP53 --output-dir results/

Note

Inside the container, Nextflow uses the local profile automaticallyβ€”no Docker-in-Docker needed.

Nextflow Pipeline

siRNAforge runs off-target analysis via an embedded Nextflow workflow.

# Full workflow (includes embedded Nextflow off-target analysis)
sirnaforge workflow TP53 --output-dir results/

# Off-target only (runs the embedded Nextflow workflow)
sirnaforge offtarget \
  --input-candidates-fasta results/off_target/input_candidates.fasta \
  --output-dir results/off_target \
  --species "human,mouse"

Advanced: discover and run the embedded pipeline directly:

PIPELINE_NF=$(uv run python -c "from sirnaforge.pipeline.nextflow.runner import NextflowRunner; print(NextflowRunner().get_main_workflow())")
nextflow run "$PIPELINE_NF" --help