3 unstable releases

new 0.2.0 Feb 20, 2025
0.1.1 Feb 15, 2025
0.1.0 Feb 13, 2025

#193 in Biology

Download history 230/week @ 2025-02-11

230 downloads per month

Custom license

39KB
177 lines

dabuild

dabuild provides your analysis with genome build metadata.

Example

Use GRCh38.p13 build (Homo sapiens):

use dabuild::{GenomeBuild, GenomeBuildIdentifier};
use dabuild::builds::get_grch38_p13;

// Load the build
let build: GenomeBuild<u32> = get_grch38_p13();

// Check the basic credentials, such as major assembly and patch version
assert_eq!(build.id().major_assembly(), "GRCh38");
assert_eq!(build.id().patch(), Some("p13"));

// Obtain a contig (e.g. `chrY`) by name ...
let y = build.contig_by_name("Y");
assert!(y.is_some());

/// ... or GenBank accession ...
let y = build.contig_by_name("CM000686.2");
assert!(y.is_some());

/// ... or RefSeq accession ...
let y = build.contig_by_name("NC_000024.10");
assert!(y.is_some());

/// ... or UCSC identifier.
let y = build.contig_by_name("chrY");
assert!(y.is_some());

Documentation

See more examples along with the complete documentation at docs.rs.


lib.rs:

dabuild

dabuild provides you with genome build metadata.

Examples

Load genome build

The builds module provides several bundled builds. Alternatively, you can load a build from an assembly report.

See the builds documentation for more info.

Use genome build

Genome build is basically a data container and the usage involves accessing the data.

Examples

We show several examples with the GRCh38.p13 genome build.

use dabuild::{GenomeBuild, GenomeBuildIdentifier};
use dabuild::builds::get_grch38_p13;

let build: GenomeBuild<u32> = get_grch38_p13();

Check build identifiers

We can check the major assembly and the patch of the build:


assert_eq!(build.id().major_assembly(), "GRCh38");
assert_eq!(build.id().patch(), Some("p13"));

Access contigs

The genome build contains one or more contigs.

We can iterate over all contigs, e.g. to count them:


let count = build.contigs().count();
assert_eq!(count, 640);

and we can also access a contig (e.g. chrY) by one of its names:


// Query by name ...
let y = build.contig_by_name("Y");
assert!(y.is_some());

/// ... or GenBank accession ...
let y = build.contig_by_name("CM000686.2");
assert!(y.is_some());

/// ... or RefSeq accession ...
let y = build.contig_by_name("NC_000024.10");
assert!(y.is_some());

/// ... or UCSC identifier.
let y = build.contig_by_name("chrY");
assert!(y.is_some());

Dependencies

~150KB