Crate rosalind [−] [src]
The rosalind
crate provides fuctions to solve probles from Rosalind site.
Counting DNA Nucleotides
Examples
use rosalind::RosalindError::UnknownNucleotide; use rosalind::dna::*; let dna = "AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC"; let dna_nucleotides = DNANucleotides {A: 20, C: 12, G: 17, T: 21}; assert_eq!(count_dna_nucleotides(dna).unwrap(), dna_nucleotides); assert_eq!(dna_nucleotides.to_string(), "20 12 17 21"); assert_eq!(count_dna_nucleotides("\n").unwrap(), DNANucleotides {A: 0, C: 0, G: 0, T: 0}); assert_eq!(count_dna_nucleotides("Z").unwrap_err(), UnknownNucleotide('Z'));
Transcribing DNA into RNA
Examples
use rosalind::RosalindError::UnknownNucleotide; use rosalind::rna::*; let dna = "GATGGAACTTGACTACGTAAATT"; assert_eq!(transcribe_dna_into_rna(dna).unwrap(), "GAUGGAACUUGACUACGUAAAUU"); assert_eq!(transcribe_dna_into_rna("\n").unwrap(), ""); assert_eq!(transcribe_dna_into_rna("Z").unwrap_err(), UnknownNucleotide('Z'));
Complementing a Strand of DNA
Examples
use rosalind::RosalindError::UnknownNucleotide; use rosalind::revc::*; let dna = "AAAACCCGGT"; assert_eq!(reverse_complement_dna(dna).unwrap(), "ACCGGGTTTT"); assert_eq!(reverse_complement_dna("\n").unwrap(), ""); assert_eq!(reverse_complement_dna("Z").unwrap_err(), UnknownNucleotide('Z'));
Rabbits and Recurrence Relations
Examples
use rosalind::fib::*; use num::{BigUint}; use num::bigint::{ToBigUint}; let mut expected_relation: BigUint = 19.to_biguint().unwrap(); assert_eq!(recurrence_relation(5, 3).unwrap(), expected_relation); expected_relation = 4.to_biguint().unwrap(); assert_eq!(recurrence_relation_with_stop(6, 3).unwrap(), expected_relation);
Translating RNA into Protein, Inferring mRNA from Protein, Calculating Protein Mass
Examples
use rosalind::RosalindError::{CodonParseError, UnknownCodon, UnknownAminoAcid}; use rosalind::prot::*; let rna = "AUGGCCAUGGCGCCCAGAACUGAGAUCAAUAGUACCCGUAUUAACGGGUGA"; assert_eq!(translate_rna_into_protein(rna).unwrap(), "MAMAPRTEINSTRING"); assert_eq!(translate_rna_into_protein("AUGUGA\n").unwrap(), "M"); assert_eq!(translate_rna_into_protein("Z").unwrap_err(), CodonParseError); assert_eq!(translate_rna_into_protein("ZZZ").unwrap_err(), UnknownCodon("ZZZ".to_string())); assert_eq!(get_number_of_rna_from_protein("MA").unwrap(), 12); assert_eq!(get_number_of_rna_from_protein("").unwrap(), 0); assert_eq!(get_number_of_rna_from_protein("\n").unwrap(), 3); assert_eq!(get_number_of_rna_from_protein("B").unwrap_err(), UnknownAminoAcid('B')); assert_eq!(get_protein_mass("SKADYEK\n").unwrap(), 821.392f64); assert_eq!(get_protein_mass("AB").unwrap_err(), UnknownAminoAcid('B'));
Counting Point Mutations
Examples
use rosalind::RosalindError::HammingStringsLengthError; use rosalind::hamm::*; let s = "GAGCCTACTAACGGGAT"; let t = "CATCGTAATGACGGCCT"; assert_eq!(hamming_distance(s, t).unwrap(), 7); assert_eq!(hamming_distance("G", "").unwrap_err(), HammingStringsLengthError);
Finding a Motif in DNA
Examples
use rosalind::RosalindError::MotifStringsLengthError; use rosalind::subs::*; let s = "GATATATGCATATACTT"; let t = "ATAT"; assert_eq!(motif_lookup(s, t).unwrap(), vec![2, 4, 10]); assert_eq!(motif_lookup(t, s).unwrap_err(), MotifStringsLengthError);
Computing GC Content
Examples
use rosalind::gc::*; assert_eq!(gc_content("").unwrap(), 0f32); assert_eq!(gc_content("AGCTATAG").unwrap(), 37.5f32); let dataset = ">Rosalind_6404 CCTGCGGAAGATCGGCACTAGAATAGCCAGAACCGTTTCTCTGAGGCTTCCGGCCTTCCC TCCCACTAATAATTCTGAGG >Rosalind_5959 CCATCGGTAGCGCATCCTTAGTCCAATTAAGTCCCTATCCAGGCGCTCCGCCGAAGGTCT ATATCCATTTGTCAGCAGACACGC >Rosalind_0808 CCACCCTCGTGGTATGGCTAGGCATTCAGGAACCGGAGAACGCTTCAGACCAGCCCGGAC TGGGAACCTGCGGGCAGTAGGTGGAAT"; assert_eq!(best_gc_content_in_dataset(dataset).unwrap(), GCcontent {string_id: "Rosalind_0808".to_string(), gc_content: 60.919540f32});
Mendel's First Law
Examples
use rosalind::RosalindError::InvalidInputParameters; use rosalind::iprb::*; assert_eq!(dominant_allele_probability(0, 1, 1).unwrap_err(), InvalidInputParameters); assert_eq!(dominant_allele_probability(1, 0, 1).unwrap_err(), InvalidInputParameters); assert_eq!(dominant_allele_probability(1, 1, 0).unwrap_err(), InvalidInputParameters); assert_eq!(dominant_allele_probability(2, 2, 2).unwrap(), 0.7833333);
Modules
dna |
Module for |
fib |
Module for |
gc |
Module for |
hamm |
Module for |
iprb |
Module for |
prot |
Module for |
revc |
Module for |
rna |
Module for |
subs |
Module for |
Enums
RosalindError |
Type Definitions
RosalindResult |
Unified return type for all modules and methods of |