Skip to main content

skesa_rs/
lib.rs

1//! # skesa-rs
2//!
3//! Rust port of NCBI's SKESA genome assembler.
4//!
5//! This crate provides both a command-line interface and a library API for
6//! de-novo assembly of microbial genomes from short reads.
7//!
8//! ## Library Usage
9//!
10//! ```no_run
11//! use skesa_rs::read_holder::ReadHolder;
12//! use skesa_rs::sorted_counter;
13//! use skesa_rs::graph_digger::{self, DiggerParams};
14//!
15//! // Load reads into a ReadHolder
16//! let mut reads = ReadHolder::new(false);
17//! reads.push_back_str("ACGTACGTACGTACGTACGTACGT");
18//!
19//! // Or load from files
20//! let rg = skesa_rs::reads_getter::ReadsGetter::new(
21//!     &["reads.fasta".to_string()], false
22//! ).unwrap();
23//!
24//! // Count k-mers
25//! let mut kmers = sorted_counter::count_kmers_sorted(
26//!     rg.reads(), 21, 2, 32,
27//! );
28//! sorted_counter::get_branches(&mut kmers, 21);
29//!
30//! // Assemble
31//! let contigs = graph_digger::assemble_contigs(
32//!     &mut kmers, 21, &DiggerParams::default(),
33//! );
34//! ```
35
36// Core types
37pub mod kmer;
38pub mod large_int;
39pub mod model;
40
41// Data structures
42pub mod bloom_filter;
43pub mod concurrent_hash;
44pub mod contig;
45pub mod counter;
46pub mod db_graph;
47pub mod flat_counter;
48pub mod histogram;
49pub mod kmer_lookup;
50pub mod read_holder;
51
52// I/O
53pub mod assembly_stats;
54pub mod clean_reads;
55#[cfg(feature = "cli")]
56pub mod cli;
57pub mod contig_output;
58pub mod genetic_code;
59pub mod gfa;
60pub mod glb_align;
61pub mod graph_io;
62pub mod guided_assembly;
63pub mod guided_graph;
64pub mod guided_path;
65pub mod hash_graph_output;
66pub mod kmer_output;
67pub mod linked_contig;
68pub mod nuc_prot_align;
69pub mod output;
70pub mod paired_reads;
71pub mod reads_getter;
72pub mod snp_discovery;
73pub mod spider_graph;
74
75// Processing pipelines
76pub mod assembler;
77pub mod graph_digger;
78pub mod kmer_counter;
79pub mod rlimit;
80pub mod sorted_counter;
81
82// High-level builder API for library users
83pub mod api;
84
85// Panic-stub skeletons for C++ functions not yet ported.
86// Generated from analysis/skesa_cpp.json + ccc_mapping.toml. Find targets with
87// `grep -rn "yet to be translated" src/untranslated.rs`.
88pub mod untranslated;