annotate mrfast-2.1.0.4/baseFAST.c @ 0:7b3dc85dc7fd

Uploaded mrfast source tarball
author calkan
date Tue, 21 Feb 2012 10:29:47 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
1 /*
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
2 * Copyright (c) <2008 - 2012>, University of Washington, Simon Fraser University
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
3 * All rights reserved.
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
4 *
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
5 * Redistribution and use in source and binary forms, with or without modification,
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
6 * are permitted provided that the following conditions are met:
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
7 *
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
8 * Redistributions of source code must retain the above copyright notice, this list
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
9 * of conditions and the following disclaimer.
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
10 * - Redistributions in binary form must reproduce the above copyright notice, this
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
11 * list of conditions and the following disclaimer in the documentation and/or other
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
12 * materials provided with the distribution.
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
13 * - Neither the names of the University of Washington, Simon Fraser University,
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
14 * nor the names of its contributors may be
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
15 * used to endorse or promote products derived from this software without specific
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
16 * prior written permission.
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
17 *
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
22 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
23 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
24 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
25 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
26 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
27 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
28 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
29 */
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
30
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
31 /*
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
32 Authors:
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
33 Farhad Hormozdiari
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
34 Faraz Hach
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
35 Can Alkan
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
36 Emails:
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
37 farhadh AT uw DOT edu
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
38 fhach AT cs DOT sfu DOT ca
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
39 calkan AT uw DOT edu
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
40 */
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
41
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
42
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
43
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
44
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
45
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
46 #include <stdio.h>
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
47 #include <stdlib.h>
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
48 #include <string.h>
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
49 #include <math.h>
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
50 #include "Common.h"
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
51 #include "CommandLineParser.h"
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
52 #include "Reads.h"
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
53 #include "Output.h"
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
54 #include "HashTable.h"
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
55 #include "MrFAST.h"
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
56
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
57 char *versionNumber = "2.1"; // Current Version
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
58 unsigned char seqFastq;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
59
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
60 int main(int argc, char *argv[])
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
61 {
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
62 if (!parseCommandLine(argc, argv))
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
63 return 1;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
64
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
65 configHashTable();
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
66 /****************************************************
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
67 * INDEXING
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
68 ***************************************************/
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
69 if (indexingMode)
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
70 {
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
71 int i;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
72 /********************************
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
73 * Regular Mode
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
74 ********************************/
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
75 configHashTable();
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
76 for (i = 0; i < fileCnt; i++)
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
77 {
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
78 generateHashTable(fileName[i][0], fileName[i][1]);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
79 }
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
80 }
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
81 /****************************************************
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
82 * SEARCHING
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
83 ***************************************************/
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
84 else
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
85 {
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
86 Read *seqList;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
87 unsigned int seqListSize;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
88 int fc;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
89 int samplingLocsSize;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
90 int *samplingLocs;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
91 double totalLoadingTime = 0;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
92 double totalMappingTime = 0;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
93 double startTime;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
94 double loadingTime;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
95 double mappingTime;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
96 double lstartTime;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
97 double ppTime = 0.0;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
98 double tmpTime;;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
99 char *prevGen = getMem(CONTIG_NAME_SIZE);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
100 prevGen[0]='\0';
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
101 char *curGen;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
102 int flag;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
103 double maxMem=0;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
104 char fname1[FILE_NAME_LENGTH];
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
105 char fname2[FILE_NAME_LENGTH];
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
106 char fname3[FILE_NAME_LENGTH];
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
107 char fname4[FILE_NAME_LENGTH];
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
108 char fname5[FILE_NAME_LENGTH];
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
109
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
110 char outputFileName[FILE_NAME_LENGTH];
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
111 // Loading Sequences & Sampling Locations
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
112 startTime = getTime();
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
113 if (!readAllReads(seqFile1, seqFile2, seqCompressed, &seqFastq, pairedEndMode, &seqList, &seqListSize))
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
114 {
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
115 return 1;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
116 }
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
117
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
118 loadSamplingLocations(&samplingLocs, &samplingLocsSize);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
119 totalLoadingTime += getTime()-startTime;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
120
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
121 if (pairedEndMode)
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
122 {
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
123 //Switching to Inferred Size
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
124 minPairEndedDistance = minPairEndedDistance - SEQ_LENGTH + 2;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
125 maxPairEndedDistance = maxPairEndedDistance - SEQ_LENGTH + 2;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
126 if (pairedEndDiscordantMode)
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
127 {
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
128 maxPairEndedDiscordantDistance = maxPairEndedDiscordantDistance - SEQ_LENGTH + 2;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
129 minPairEndedDiscordantDistance = minPairEndedDiscordantDistance - SEQ_LENGTH + 2;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
130 }
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
131
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
132 sprintf(fname1, "__%s__1", mappingOutput);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
133 sprintf(fname2, "__%s__2", mappingOutput);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
134 sprintf(fname3, "__%s__disc", mappingOutput);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
135 sprintf(fname4, "__%s__oea1", mappingOutput);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
136 sprintf(fname5, "__%s__oea2", mappingOutput);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
137 unlink(fname1);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
138 unlink(fname2);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
139 unlink(fname3);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
140 unlink(fname4);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
141 unlink(fname5);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
142 }
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
143
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
144 sprintf(outputFileName, "%s%s",mappingOutputPath , mappingOutput);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
145 // Preparing output
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
146 initOutput(outputFileName, outCompressed);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
147
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
148 fprintf(stdout, "-----------------------------------------------------------------------------------------------------------\n");
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
149 fprintf(stdout, "| %15s | %15s | %15s | %15s | %15s %15s |\n","Genome Name","Loading Time", "Mapping Time", "Memory Usage(M)","Total Mappings","Mapped reads");
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
150 fprintf(stdout, "-----------------------------------------------------------------------------------------------------------\n");
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
151
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
152 /********************************
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
153 * Regular Mode
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
154 ********************************/
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
155 if (!pairedEndMode)
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
156 {
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
157 initLookUpTable();
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
158 if(bestMode)
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
159 initBestMapping(seqListSize);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
160
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
161 for (fc = 0; fc <fileCnt; fc++)
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
162 {
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
163 if (!initLoadingHashTable(fileName[fc][1]))
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
164 {
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
165 return 1;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
166 }
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
167
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
168 mappingTime = 0;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
169 loadingTime = 0;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
170 prevGen[0] = '\0';
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
171 flag = 1;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
172
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
173 do
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
174 {
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
175 flag = loadHashTable ( &tmpTime, errThreshold); // Reading a fragment
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
176 curGen = getRefGenomeName();
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
177
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
178 // First Time
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
179 if (flag && prevGen[0]== '\0')
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
180 {
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
181 sprintf(prevGen, "%s", curGen);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
182 }
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
183
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
184 if ( !flag || strcmp(prevGen, curGen)!=0)
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
185 {
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
186
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
187 fprintf(stdout, "| %15s | %15.2f | %15.2f | %15.2f | %15lld %15lld |\n",
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
188 prevGen,loadingTime, mappingTime, maxMem, mappingCnt , mappedSeqCnt);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
189 fflush(stdout);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
190
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
191 totalMappingTime += mappingTime;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
192 totalLoadingTime += loadingTime;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
193
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
194 loadingTime = 0;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
195 mappingTime = 0;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
196 maxMem = 0;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
197
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
198 if (!flag)
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
199 {
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
200 break;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
201 }
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
202 }
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
203 else if (progressRep && mappingTime != 0)
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
204 {
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
205 fprintf(stdout, "| %15s | %15.2f | %15.2f | %15.2f | %15lld %15lld |\n",
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
206 prevGen,loadingTime, mappingTime, maxMem, mappingCnt , mappedSeqCnt);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
207 fflush(stdout);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
208 }
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
209
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
210 sprintf(prevGen, "%s", curGen);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
211
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
212 loadingTime += tmpTime;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
213 // lstartTime = getTime();
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
214
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
215 initFAST(seqList, seqListSize, samplingLocs, samplingLocsSize, fileName[fc][0]);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
216
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
217 lstartTime = getTime();
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
218
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
219
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
220 mapAllSingleEndSeq();
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
221
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
222
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
223
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
224 mappingTime += getTime() - lstartTime;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
225 if (maxMem < getMemUsage())
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
226 {
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
227 maxMem = getMemUsage();
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
228 }
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
229 } while (flag);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
230
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
231 } // end for;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
232 if(bestMode)
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
233 finalizeBestSingleMapping();
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
234 finalizeFAST();
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
235 finalizeLoadingHashTable();
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
236
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
237 }
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
238 // Pairedend Mapping Mode
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
239 else
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
240 {
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
241 initLookUpTable();
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
242 if(pairedEndMode)
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
243 initBestConcordantDiscordant(seqListSize);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
244 for (fc = 0; fc < fileCnt; fc++)
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
245 {
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
246 if (!initLoadingHashTable(fileName[fc][1]))
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
247 {
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
248 return 1;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
249 }
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
250 mappingTime = 0;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
251 loadingTime = 0;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
252 prevGen[0] = '\0';
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
253 flag = 1;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
254
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
255 do
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
256 {
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
257 flag = loadHashTable ( &tmpTime , errThreshold); // Reading a fragment
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
258 curGen = getRefGenomeName();
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
259
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
260 // First Time
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
261 if (flag && prevGen[0]== '\0')
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
262 {
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
263 sprintf(prevGen, "%s", curGen);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
264 }
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
265
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
266 if ( !flag || strcmp(prevGen, curGen)!=0)
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
267 {
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
268
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
269 // DISCORDANT
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
270 lstartTime = getTime();
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
271 outputPairedEnd();
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
272 mappingTime += getTime() - lstartTime;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
273 //DISCORDANT
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
274
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
275 fprintf(stdout, "| %15s | %15.2f | %15.2f | %15.2f | %15lld %15lld |\n",
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
276 prevGen,loadingTime, mappingTime, maxMem, mappingCnt , mappedSeqCnt);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
277 fflush(stdout);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
278
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
279 totalMappingTime += mappingTime;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
280 totalLoadingTime += loadingTime;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
281
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
282 loadingTime = 0;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
283 mappingTime = 0;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
284 maxMem = 0;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
285
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
286 if (!flag)
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
287 {
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
288 break;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
289 }
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
290 }
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
291 else if (progressRep && mappingTime != 0)
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
292 {
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
293 fprintf(stdout, "| %15s | %15.2f | %15.2f | %15.2f | %15lld %15lld |\n",
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
294 prevGen,loadingTime, mappingTime, maxMem, mappingCnt , mappedSeqCnt);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
295 fflush(stdout);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
296 }
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
297
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
298 sprintf(prevGen, "%s", curGen);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
299
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
300 loadingTime += tmpTime;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
301 lstartTime = getTime();
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
302
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
303 initFAST(seqList, seqListSize, samplingLocs, samplingLocsSize, fileName[fc][0]);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
304
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
305 mapPairedEndSeq();
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
306
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
307 mappingTime += getTime() - lstartTime;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
308 if (maxMem < getMemUsage())
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
309 {
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
310 maxMem = getMemUsage();
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
311 }
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
312
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
313 } while (flag);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
314
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
315 } // end for;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
316
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
317 if(pairedEndMode)
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
318 {
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
319 sprintf(outputFileName, "%s%s",mappingOutputPath , mappingOutput);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
320 finalizeOEAReads(outputFileName);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
321 outputAllTransChromosal(transChromosal);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
322 finalizeBestConcordantDiscordant();
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
323 }
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
324
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
325 finalizeLoadingHashTable();
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
326
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
327 if (pairedEndDiscordantMode)
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
328 {
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
329 lstartTime = getTime();
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
330 outputPairedEndDiscPP();
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
331 ppTime = getTime() - lstartTime;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
332 }
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
333 finalizeFAST();
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
334 } //else
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
335
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
336 finalizeOutput();
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
337
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
338 fprintf(stdout, "-----------------------------------------------------------------------------------------------------------\n");
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
339 fprintf(stdout, "%19s%16.2f%18.2f\n\n", "Total:",totalLoadingTime, totalMappingTime);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
340 if (pairedEndDiscordantMode)
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
341 fprintf(stdout, "Post Processing Time: %18.2f \n", ppTime);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
342 fprintf(stdout, "%-30s%10.2f\n","Total Time:", totalMappingTime+totalLoadingTime);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
343 fprintf(stdout, "%-30s%10d\n","Total No. of Reads:", seqListSize);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
344 fprintf(stdout, "%-30s%10lld\n","Total No. of Mappings:", mappingCnt);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
345 fprintf(stdout, "%-30s%10.0f\n\n","Avg No. of locations verified:", ceil((float)verificationCnt/seqListSize));
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
346
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
347 int cof = (pairedEndMode)?2:1;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
348
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
349 if (progressRep && maxHits != 0)
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
350 {
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
351 int frequency[maxHits+1];
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
352 int i;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
353 for ( i=0 ; i <= maxHits; i++)
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
354 {
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
355 frequency[i] = 0;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
356 }
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
357
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
358
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
359 for (fc = 0; fc < seqListSize; fc++)
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
360 {
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
361 frequency[(int)(*(seqList[fc*cof].hits))]++;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
362 }
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
363 frequency[maxHits] = completedSeqCnt;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
364 for ( i=0 ; i <= maxHits; i++)
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
365 {
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
366 fprintf(stdout, "%-30s%10d%10d%10.2f%%\n","Reads Mapped to ", i, frequency[i], 100*(float)frequency[i]/(float)seqListSize);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
367 }
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
368 }
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
369
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
370
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
371 finalizeReads(unmappedOutput);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
372 freeMem(prevGen, CONTIG_NAME_SIZE);
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
373 }
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
374
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
375 return 1;
7b3dc85dc7fd Uploaded mrfast source tarball
calkan
parents:
diff changeset
376 }