Skip to main content

Crate segul

Crate segul 

Source
Expand description

§Utilities for alignment manipulation and summary statistics

SEGUL provides fast and memory efficient utilities for alignment manipulation and summary statistics.

§Features:

  1. Alignment concatenation
  2. Alignment conversion
  3. Alignment filtering
  4. Alignment partition conversion
  5. Alignment splitting
  6. Alignment summary statistics
  7. Unalign alignments
  8. Contiguous sequence summary statistics
  9. Raw read summary statistics
  10. Sample distribution mapping
  11. Sequence extraction
  12. Sequence filtering
  13. Sequence ID renaming
  14. Sequence removal
  15. Sequence translation
  16. Sequence unique ID parsing

§Example

§Convert fasta to philip alignment

use std::path::Path;

use tempdir::TempDir;

use segul::helper::types::{DataType, Header, InputFmt, OutputFmt, SeqMatrix};
use segul::helper::sequence::SeqParser;
use segul::writer::sequences::SeqWriter;

let input = Path::new("tests/files/simple.fas");
let input_fmt = InputFmt::Fasta;
let datatype = DataType::Dna;
// Replace binding with your output directory, for example:
// let output_path = Path::new("output").join("my_output_alignment");
let binding = TempDir::new("temp").unwrap();
let output_path = binding.path().join("my_output_alignment");
let output_fmt = OutputFmt::Phylip;
let (sequence_matrix, header) = SeqParser::new(input, &datatype).parse(&input_fmt);
let mut writer = SeqWriter::new(&output_path, &sequence_matrix, &header);
writer.write_sequence(&output_fmt).unwrap()

Modules§

cli
Command line interface for parsing and executing commands.
core
Handle segul main functions.
helper
Helper functions for the SEGUL features.
parser
All the parsers for the supported formats.
stats
Sequence summary statistics
writer
Writer trait and its implementations.