Crate grumpy

Source
Expand description

Grumpy, genetic analysis in Rust.

This library provides a set of tools for genetic analysis, including:

  • Genome representation
  • Gene representation
  • VCF file parsing
  • Finding effects of a given VCF file at both genome and gene levels

§Example

use grumpy::genome::{Genome, mutate};
use grumpy::vcf::VCFFile;
use grumpy::difference::{GenomeDifference, GeneDifference};
use grumpy::common::MinorType;

let mut reference = Genome::new("reference/MN908947.3.gb");
let vcf = VCFFile::new("test/dummy.vcf".to_string(), false, 3);
let mut sample = mutate(&reference, vcf);

let genome_diff = GenomeDifference::new(reference.clone(), sample.clone(), MinorType::COV);
for variant in genome_diff.variants.iter(){
   println!("{}", variant.variant);
}

for gene_name in sample.genes_with_mutations.clone().iter(){
  let gene_diff = GeneDifference::new(reference.get_gene(gene_name.clone()), sample.get_gene(gene_name.clone()), MinorType::COV);
  for mutation in gene_diff.mutations.iter(){
    println!("{}", mutation.mutation);
  }
}

Also provides an interface to this library as a Python module using PyO3. pip install bio-grumpy

Modules§

common
Module of common structs and enums used throughout the program
difference
Module for handling differences between genomes and genes
gene
Module for handling gene data
genome
Module for handling genome data
vcf
Module for handling VCF files