MoonBit GFF3/GTF genome annotation parser, query library, and CLI.
Dependencies
moon version --allmoon check --target all --deny-warn
moon test --target all --deny-warn
moon fmt --check
moon infomoon run cmd/gffkit -- validate testdata/basic.gff3
moon run cmd/gffkit -- stats testdata/basic.gtf
moon run cmd/gffkit -- filter exon testdata/basic.gff3
moon run cmd/gffkit -- to-bed testdata/basic.gff3
moon run cmd/gffkit -- to-json testdata/basic.gtffeatures 5
genes 1
transcripts 1
exons 2
cds 1let text =
#|chr1 RefSeq gene 1000 5000 . + . ID=gene:BRCA1;Name=BRCA1
#|
let annotation = parse_gff3(text)
let genes = annotation.to_gene_models()
println(genes[0].id)fn Annotation::overlapping(self : Annotation, seqid~ : String, start~ : Int, end~ : Int) -> Array[Feature]pub(all) struct AttributeSchemaRow {
key : String
count : Int
feature_count : Int
presence : AttributePresence
example_value : String
} derive(Eq, Debug)fn IntervalIndex::query(self : IntervalIndex, seqid~ : String, start~ : Int, end~ : Int) -> Array[IntervalHit]fn ValidationReport::filter_by_code(self : ValidationReport, code : String) -> Array[ValidationIssue]fn ValidationReport::filter_by_feature_type(self : ValidationReport, feature_type : String) -> Array[ValidationIssue]MoonBit GFF3/GTF genome annotation parser, query library, and CLI.
Dependencies