Update mussa to build on ubuntu 10.04 with qt 4.6.2 +boost 1.40.0.1
[mussa.git] / seqcomp.cpp
1 //  This file is part of the Mussa source distribution.
2 //  http://mussa.caltech.edu/
3 //  Contact author: Tristan  De Buysscher, tristan@caltech.edu
4
5 // This program and all associated source code files are Copyright (C) 2005
6 // the California Institute of Technology, Pasadena, CA, 91125 USA.  It is
7 // under the GNU Public License; please see the included LICENSE.txt
8 // file for more information, or contact Tristan directly.
9
10
11 #include "flp.hh"
12 #include "sequence.hh"
13 #include <time.h>
14 #include <iomanip>
15
16 using namespace std;
17
18 int main(int argc, char **argv) 
19 {
20   Sequence seqA, seqB;
21   FLPs analysis;
22   string seqA_file, seqB_file, output_file;
23   string ana_type;
24   int window, threshold;
25   int seqA_len, seqB_len;
26
27   time_t t1, t2, begin, end;
28   double setuptime, comp1time, comp2time, sorttime, savetime, totaltime;
29
30   begin = time(NULL);
31
32   cout << "fee fie foe fum" << endl;
33
34   ana_type = * ++argv;
35   seqA_file = * ++argv;
36   seqB_file = * ++argv;
37   window = atoi(* ++argv);
38   threshold = atoi(* ++argv);
39   output_file = * ++argv;
40
41   t1 = time(NULL);
42  
43   seqA.load_fasta(seqA_file, 1, 0, 0);
44   seqA_len = seqA.len();
45   //cout << setw(60) << seqA.hdr() << "\n";
46
47   seqB.load_fasta(seqB_file, 1, 0, 0);
48   seqB_len = seqB.len();
49   //cout << seqB.hdr() << "\n";
50
51
52   cout << "Length: Seq A = " << seqA_len;
53   cout << "; Seq B = " << seqB_len << "\n";
54
55   analysis.setup(ana_type, window, threshold, seqA_len, seqB_len);
56
57   t2 = time(NULL);
58   setuptime = difftime(t2, t1);
59
60   t1 = time(NULL);
61   analysis.seqcomp(seqA.seq(), seqB.seq(), false);
62   t2 = time(NULL);
63   comp1time = difftime(t2, t1);
64
65   t1 = time(NULL);
66   analysis.seqcomp(seqA.seq(), seqB.rev_comp(), true);
67   t2 = time(NULL);
68   comp2time = difftime(t2, t1);
69   /*
70   t1 = time(NULL);
71   analysis.sort();
72   t2 = time(NULL);
73   sorttime = difftime(t2, t1);
74   */
75   t1 = time(NULL);
76   analysis.save(output_file);
77   t2 = time(NULL);
78   savetime = difftime(t2, t1);
79
80   end = time(NULL);
81   totaltime = difftime(end, begin);
82
83   cout << "setup\tcomp\trc_comp\tsave\ttotal\n";
84   cout << setuptime << "\t"; 
85   cout << comp1time << "\t";
86   cout << comp2time << "\t";
87   //cout << sorttime << "\t";
88   cout << savetime << "\t";
89   cout << totaltime << "\n";
90 }
91
92 /*
93       cout << "fee\n";
94       cout << "fie\n";
95       cout << "foe  ";
96       cout << "fum\n";
97 */