Skip to main content

Crate skesa_rs

Crate skesa_rs 

Source
Expand description

§skesa-rs

Rust port of NCBI’s SKESA genome assembler.

This crate provides both a command-line interface and a library API for de-novo assembly of microbial genomes from short reads.

§Library Usage

use skesa_rs::read_holder::ReadHolder;
use skesa_rs::sorted_counter;
use skesa_rs::graph_digger::{self, DiggerParams};

// Load reads into a ReadHolder
let mut reads = ReadHolder::new(false);
reads.push_back_str("ACGTACGTACGTACGTACGTACGT");

// Or load from files
let rg = skesa_rs::reads_getter::ReadsGetter::new(
    &["reads.fasta".to_string()], false
).unwrap();

// Count k-mers
let mut kmers = sorted_counter::count_kmers_sorted(
    rg.reads(), 21, 2, 32,
);
sorted_counter::get_branches(&mut kmers, 21);

// Assemble
let contigs = graph_digger::assemble_contigs(
    &mut kmers, 21, &DiggerParams::default(),
);

Modules§

api
High-level builder API for embedding skesa-rs as a library.
assembler
assembly_stats
Assembly statistics and quality metrics.
bloom_filter
clean_reads
concurrent_hash
contig
contig_output
counter
db_graph
flat_counter
genetic_code
NCBI genetic code tables for codon-to-amino-acid translation. Port of SKESA’s genetic_code.hpp.
gfa
glb_align
Sequence alignment and distance utilities. Partial Rust implementation of SKESA’s glb_align.hpp/glb_align.cpp behavior.
graph_digger
graph_io
guided_assembly
guided_graph
guided_path
hash_graph_output
histogram
Histogram analysis utilities for k-mer count distributions. Port of FindValleyAndPeak, HistogramRange, GetAverageCount, CalculateGenomeSize from common_util.hpp.
kmer
kmer_counter
kmer_lookup
kmer_output
large_int
linked_contig
model
Nucleotide complement, IUPAC ambiguity codes, and related utilities. Port of SKESA’s Model.hpp.
nuc_prot_align
output
paired_reads
read_holder
reads_getter
rlimit
Optional address-space cap for development and testing.
snp_discovery
SNP discovery at fork points during graph traversal.
sorted_counter
spider_graph
untranslated
Skeleton stubs for C++ SKESA functions not yet translated to Rust.