[project @ 13]
[mussa.git] / seqcomp.cc
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 <time.h>
13 #include <iomanip>
14
15 int main(int argc, char **argv) 
16 {
17   Sequence seqA, seqB;
18   FLPs analysis;
19   string seqA_file, seqB_file, output_file;
20   string ana_type;
21   int window, threshold;
22   int seqA_len, seqB_len;
23
24   time_t t1, t2, begin, end;
25   double setuptime, comp1time, comp2time, sorttime, savetime, totaltime;
26
27   begin = time(NULL);
28
29   cout << "fee fie foe fum" << endl;
30
31   ana_type = * ++argv;
32   seqA_file = * ++argv;
33   seqB_file = * ++argv;
34   window = atoi(* ++argv);
35   threshold = atoi(* ++argv);
36   output_file = * ++argv;
37
38   t1 = time(NULL);
39  
40   seqA.load_fasta(seqA_file, 1, 0, 0);
41   seqA_len = seqA.len();
42   //cout << setw(60) << seqA.hdr() << "\n";
43
44   seqB.load_fasta(seqB_file, 1, 0, 0);
45   seqB_len = seqB.len();
46   //cout << seqB.hdr() << "\n";
47
48
49   cout << "Length: Seq A = " << seqA_len;
50   cout << "; Seq B = " << seqB_len << "\n";
51
52   analysis.setup(ana_type, window, threshold, seqA_len, seqB_len);
53
54   t2 = time(NULL);
55   setuptime = difftime(t2, t1);
56
57   t1 = time(NULL);
58   analysis.seqcomp(seqA.seq(), seqB.seq(), false);
59   t2 = time(NULL);
60   comp1time = difftime(t2, t1);
61
62   t1 = time(NULL);
63   analysis.seqcomp(seqA.seq(), seqB.rev_comp(), true);
64   t2 = time(NULL);
65   comp2time = difftime(t2, t1);
66   /*
67   t1 = time(NULL);
68   analysis.sort();
69   t2 = time(NULL);
70   sorttime = difftime(t2, t1);
71   */
72   t1 = time(NULL);
73   analysis.file_save(output_file);
74   t2 = time(NULL);
75   savetime = difftime(t2, t1);
76
77   end = time(NULL);
78   totaltime = difftime(end, begin);
79
80   cout << "setup\tcomp\trc_comp\tsave\ttotal\n";
81   cout << setuptime << "\t"; 
82   cout << comp1time << "\t";
83   cout << comp2time << "\t";
84   //cout << sorttime << "\t";
85   cout << savetime << "\t";
86   cout << totaltime << "\n";
87 }
88
89 /*
90       cout << "fee\n";
91       cout << "fie\n";
92       cout << "foe  ";
93       cout << "fum\n";
94 */