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::*;

assert_eq!(recurrence_relation(5, 3).unwrap(), 19);

Translating RNA into Protein

Examples

use rosalind::RosalindError::{CodonParseError, UnknownCodon};
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"));

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});

Modules

dna

Module for Counting DNA Nucleotides

fib

Module for Rabbits and Recurrence Relations

gc

Module for Computing GC Content

hamm

Module for Counting Point Mutations

prot

Module for Translating RNA into Protein

revc

Module for Complementing a Strand of DNA

rna

Module for Transcribing DNA into RNA

subs

Module for Finding a Motif in DNA

Enums

RosalindError

Type Definitions

RosalindResult