summaryrefslogtreecommitdiffstats
path: root/GRPH.rs
blob: 867aade37882416e40352c4f18e48bffe1143129 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
use str::{len,view};

extern mod rosalind;
use rosalind::fasta::FASTAReader;

fn main() {
    let mut dna: ~[(~str, ~str)] = ~[];
    let reader = FASTAReader::new();
    for reader.each_sequence |cur_name, cur_seq| {
        let cur_len = len(cur_seq);
        for dna.each |&(prev_name, prev_seq)| {
            let prev_len = len(prev_seq);
            if view(cur_seq, 0, 3) == view(prev_seq, prev_len - 3, prev_len) {
                io::println(fmt!("%s %s", prev_name, cur_name));
            }
            if view(prev_seq, 0, 3) == view(cur_seq, cur_len - 3, cur_len) {
                io::println(fmt!("%s %s", cur_name, prev_name));
            }
        }
        dna.push((cur_name, cur_seq));
    }
}