How twilightsail/citrusnce works
citrusnce is a chromosome-syntenic conserved-noncoding-element discovery and analysis pipeline for Citrus. Its main workflow prepares genome and annotation indexes, aligns assemblies by chromosome, builds constraint-leaf alignments, fits a neutral model, calls conserved elements, projects their presence across assemblies, and annotates the catalog. Published capabilities also include model diagnostics, lineage and acceleration analyses, ancestral-fate analyses, and catalog comparisons. The README documents these analysis branches; their individual implementations are not sampled here, so links are limited to paths present in the tree.
Main entry points: main.go Command dispatcher · call.go Conserved-element calling · map.go Chromosome mapping · model.go Neutral model
Components 24
Configuration and runs
- Run configuration
internal/config/config.go - Run layout and status
internal/run/layout.go - Genome preparation
internal/prep/prep.go
Element discovery
- Chromosome mapping
internal/mapstage/map.go - Mapping coverage
internal/mapstage/coverage.go - Constraint alignment
internal/msastage/msa.go - Neutral model
internal/modelstage/model.go - Model diagnostics
internal/modelstage/model.go - Conserved-element calling
internal/callstage/call.go - Coding and UTR masks
internal/mask/gff.go
Presence and annotation
- Presence projection
internal/liftstage/lift.go - Catalog annotation
internal/annotatestage/annotate.go - Catalog and tracks
Downstream analyses
- Lineage branch tests
tools/phyloacc_nce.py - LOO acceleration tests
tools/loo_nce.py - Ancestral fate
tools/ancestral_fate.py - Catalog benchmarks
tools/benchmark_catalogs.py - Analysis outputs
External tools
- Alignment tools
- phastCons and phyloP
Other components
- Pipeline user
- Command dispatcher
cmd/citrusnce/main.go - Genome FASTA and GFF
- Optional annotation tracks
Connections 37
- Pipeline user → Command dispatcher: issues commands
- Command dispatcher → Run configuration: loads configuration
- Command dispatcher → Run layout and status: selects run
- Command dispatcher → Genome preparation: dispatches prep
- Command dispatcher → Chromosome mapping: dispatches stage
- Command dispatcher → Constraint alignment: dispatches stage
- Command dispatcher → Neutral model: dispatches stage
- Command dispatcher → Conserved-element calling: dispatches stage
- Command dispatcher → Presence projection: dispatches stage
- Command dispatcher → Catalog annotation: dispatches stage
- Genome preparation → Genome FASTA and GFF: indexes inputs
- Genome preparation → Run layout and status: records preparation
- Chromosome mapping → Genome FASTA and GFF: aligns genomes
- Chromosome mapping → Alignment tools: runs alignment
- Chromosome mapping → Mapping coverage: summarizes mappings
- Chromosome mapping → Constraint alignment: writes chromosome PAFs
- Constraint alignment → Genome FASTA and GFF: extracts sequences
- Constraint alignment → Neutral model: writes constraint MSA
- Neutral model → Coding and UTR masks: uses CDS annotations
- Neutral model → Conserved-element calling: writes fitted model
- Neutral model → Model diagnostics: reports fit diagnostics
- Conserved-element calling → Constraint alignment: reads alignments
- Conserved-element calling → Coding and UTR masks: uses coding masks
- Conserved-element calling → phastCons and phyloP: runs conservation tools
- Conserved-element calling → Catalog and tracks: publishes NCEs
- Presence projection → Catalog and tracks: projects NCE presence
- Presence projection → Genome FASTA and GFF: uses assembly mappings
- Catalog annotation → Catalog and tracks: reads NCEs and writes annotations
- Catalog annotation → Optional annotation tracks: reads optional overlaps
- Lineage branch tests → Catalog and tracks: analyzes catalog
- LOO acceleration tests → Catalog and tracks: tests acceleration
- Ancestral fate → Catalog and tracks: evaluates homolog states
- Catalog benchmarks → Catalog and tracks: compares coordinates
- Lineage branch tests → Analysis outputs: writes branch results
- LOO acceleration tests → Analysis outputs: writes test results
- Ancestral fate → Analysis outputs: writes fate results
- Catalog benchmarks → Analysis outputs: writes benchmarks