Quick Start¶
Installation¶
SeqChain uses mamba as a single environment manager for compiled tools (bowtie, samtools) and Python packages alike.
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:
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¶
# 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):
Or programmatically: