Skip to content

Quick Start

Installation

SeqChain uses mamba as a single environment manager for compiled tools (bowtie, samtools) and Python packages alike.

mamba env create -f environment.yml
conda activate seqchain
pip install -e . --no-deps

Design CRISPR guides

The fastest path from genome to guides:

from seqchain.io.genome import load_genbank
from seqchain.recipes import load_preset
from seqchain.recipes.crispr import design_guides

genome = load_genbank("zymomonas.gb")
guides = design_guides(genome, load_preset("spcas9"))

for g in guides[:5]:
    print(f"{g.chrom}:{g.start}-{g.end} {g.strand} spacer={g.tags['spacer']}")

Or use the CLI:

seqchain design zymomonas.gb --preset spcas9 --output guides.tsv

Transform track scores

All 13 transforms are pure functions: Track in, Track out.

from seqchain.io.tracks import load_bed
from seqchain.transform import add_pseudocount, log_transform, normalize

peaks = load_bed("peaks.bed")

# Chain transforms
result = normalize(
    log_transform(
        add_pseudocount(peaks, value=1.0),
        base=2,
    ),
    method="cpm",
)

Compare conditions

Fold-change comparison aligns two tracks and computes per-region ratios:

from seqchain.compare import interval_fold_change

result = interval_fold_change(control, treated, label_a="control", label_b="treated")

for r in result.regions("chr1", 0, 100_000):
    print(f"{r.name}: fold_change={r.tags['fold_change']:.2f}")

Start the REST API

seqchain serve --port 8000
# Load the demo dataset
curl -X POST localhost:8000/api/demo/atacflux | python -m json.tool

# List presets
curl localhost:8000/api/presets/crispr

Run the demo

Generate the ATF1 CRISPRa demo dataset (synthetic 20 kb yeast locus with three signal tracks, chromatin states, and 1,453 guides):

seqchain demo atacflux --output-dir ./atacflux_data

Or programmatically:

from seqchain.demo.atacflux import generate

result = generate()
print(f"{len(result.all_guides)} guides across {len(result.genome.chroms)} chromosomes")
result.export_json("./atacflux_data")