5 * Created by Sarah Westcott on 1/16/09.
6 * Copyright 2009 Schloss Lab UMASS AMherst. All rights reserved.
12 /*******************************************************************************/
13 FastaMap::FastaMap(ifstream& in) {
14 //int numberOfSequences = 0;
16 string name, sequence, line;
20 name = line.substr(1, line.length()); //rips off '>'
23 while (getline(in, line)) {
24 if (isalnum(line.at(0))){ //if it's a sequence line
28 //input sequence info into map
29 it = data.find(sequence);
30 if (it == data.end()) { //it's unique.
31 data[sequence].groupname = name; //group name will be the name of the first duplicate sequence found.
32 data[sequence].groupnumber = 1;
33 data[sequence].names = name;
34 }else { // its a duplicate.
35 data[sequence].names += "," + name;
36 data[sequence].groupnumber++;
38 name = (line.substr(1, (line.npos))); //The line you just read is a new name so rip off '>'
42 //store last sequence and name info.
43 it = data.find(sequence);
44 if (it == data.end()) { //it's unique.
45 data[sequence].groupname = name; //group name will be the name of the first duplicate sequence found.
46 data[sequence].groupnumber = 1;
47 data[sequence].names = name;
48 }else { // its a duplicate.
49 data[sequence].names += "," + name;
50 data[sequence].groupnumber++;
53 /*******************************************************************************/
54 string FastaMap::getGroupName(string seq) { //pass a sequence name get its group
55 return data[seq].groupname;
57 /*******************************************************************************/
58 int FastaMap::getGroupNumber(string seq) { //pass a sequence name get number of sequence in its group
59 return data[seq].groupnumber;
61 /*******************************************************************************/
62 string FastaMap::getNames(string seq) { //pass a sequence get the string of names in the group separated by ','s.
63 return data[seq].names;
65 /*******************************************************************************/
66 void FastaMap::push_back(string seq, string Name) {//sequencename, name
67 data[seq].groupname = Name;
68 data[seq].groupnumber = 1;
69 data[seq].names = Name;
71 /*******************************************************************************/
72 void FastaMap::clear() { //clears out data
75 /*******************************************************************************/
76 int FastaMap::size(){ //returns datas size which is the number of unique sequences
79 /*******************************************************************************/
80 void FastaMap::print(ostream&){ //prints data
83 /*******************************************************************************/