[package]
name = "cyanea-io"
description = "File format parsing for the Cyanea bioinformatics ecosystem"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
rust-version.workspace = true
keywords = ["bioinformatics", "vcf", "sam", "bam", "gff"]
categories = ["science", "parser-implementations"]

[features]
default = ["csv"]
csv = ["dep:csv", "dep:serde", "dep:serde_json"]
vcf = ["dep:cyanea-omics"]
bed = ["dep:cyanea-omics"]
gff = ["dep:cyanea-omics"]
sam = []
bam = ["sam", "dep:flate2"]
indexed-bam = ["bam", "dep:noodles-bam", "dep:noodles-bgzf", "dep:noodles-sam", "dep:noodles-core", "dep:noodles-csi"]
indexed-vcf = ["vcf", "dep:noodles-bgzf", "dep:noodles-csi", "dep:noodles-vcf", "dep:noodles-tabix", "dep:noodles-core"]
indexed = ["indexed-bam", "indexed-vcf"]
parquet = ["dep:parquet", "dep:arrow", "vcf", "bed"]
cram = ["sam", "dep:noodles-cram", "dep:noodles-sam", "dep:noodles-fasta", "dep:noodles-core"]
blast = []
maf = []
gtf = ["dep:cyanea-omics"]
genbank = []
bigwig = ["dep:flate2"]
bcf = ["vcf", "dep:flate2"]
stockholm = []
clustal = []
phylip = []
embl = []
pir = []
bedgraph = []
gfa = []
blast-xml = []
abi = []
fetch = []
wasm = []
parallel = ["dep:rayon"]
variant-calling = ["sam", "vcf", "dep:cyanea-stats"]

[dependencies]
cyanea-core = { path = "../cyanea-core", version = "0.1.0", default-features = false }
cyanea-omics = { path = "../cyanea-omics", version = "0.1.0", default-features = false, optional = true }
cyanea-stats = { path = "../cyanea-stats", version = "0.1.0", default-features = false, optional = true }
csv = { workspace = true, optional = true }
serde = { workspace = true, optional = true }
serde_json = { workspace = true, optional = true }
rayon = { workspace = true, optional = true }
flate2 = { workspace = true, optional = true }
parquet = { workspace = true, optional = true }
arrow = { workspace = true, optional = true }
noodles-cram = { workspace = true, optional = true }
noodles-sam = { workspace = true, optional = true }
noodles-fasta = { workspace = true, optional = true }
noodles-core = { workspace = true, optional = true }
noodles-bam = { workspace = true, optional = true }
noodles-bgzf = { workspace = true, optional = true }
noodles-csi = { workspace = true, optional = true }
noodles-vcf = { workspace = true, optional = true }
noodles-tabix = { workspace = true, optional = true }

[dev-dependencies]
tempfile = { workspace = true }
