@@ -170,34 +170,32 @@ void commandView(string infile, bool verbose)
170
170
cout << endl;
171
171
172
172
char *sampleName = new char [sim->sampleNameSize ];
173
- int vectorSize = sim->numSamples * sim->numProbes ;
174
- vector<uint16_t > *intensity_int = new vector<uint16_t >;
175
- vector<float > *intensity_float = new vector<float >;
176
- intensity_int->reserve (vectorSize);
177
- intensity_float->reserve (vectorSize);
173
+ uint16_t *intensity_int =
174
+ (uint16_t *) calloc (sim->sampleIntensityTotal , sizeof (uint16_t ));
175
+ float *intensity_float =
176
+ (float *) calloc (sim->sampleIntensityTotal , sizeof (float ));
178
177
178
+ int i;
179
179
for (unsigned int n = 0 ; n < sim->numSamples ; n++) {
180
- intensity_int->clear ();
181
- intensity_float->clear ();
182
180
if (sim->numberFormat == 0 ) sim->getNextRecord (sampleName,intensity_float);
183
181
else sim->getNextRecord (sampleName,intensity_int);
184
182
cout << sampleName << " \t : " ;
185
183
if (verbose) { // dump intensities as well as sample names
186
184
// there *must* be a better way of doing this...
187
185
if (sim->numberFormat == 0 ) {
188
- for (vector< float >::iterator i = intensity_float-> begin () ; i != intensity_float-> end () ; i++) {
189
- cout << *i << " " ;
190
- }
186
+ for (i= 0 ; i<sim-> sampleIntensityTotal ; i++) {
187
+ cout << intensity_float[i] << " " ;
188
+ }
191
189
} else {
192
- for (vector< uint16_t >::iterator i = intensity_int-> begin () ; i != intensity_int-> end () ; i++) {
193
- cout << *i << " " ;
194
- }
190
+ for (i= 0 ; i<sim-> sampleIntensityTotal ; i++) {
191
+ cout << intensity_int[i] << " " ;
192
+ }
195
193
}
196
194
}
197
195
cout << endl;
198
196
}
199
- delete intensity_int;
200
- delete intensity_float;
197
+ free ( intensity_int) ;
198
+ free ( intensity_float) ;
201
199
delete sampleName;
202
200
}
203
201
@@ -269,7 +267,9 @@ void commandCreate(string infile, string outfile, bool normalize, string manfile
269
267
sort (manifest->snps .begin (), manifest->snps .end (), SortByPosition);
270
268
271
269
// Create the SIM file and write the header
270
+ cerr << " Ready to create .sim file." << endl;
272
271
sim->createFile (outfile);
272
+ cerr << " Writing header." << endl;
273
273
sim->writeHeader (infiles.size (),gtc->numSnps , 2 , numberFormat);
274
274
275
275
// For each GTC file, write the sample name and intensities to the SIM file
@@ -333,7 +333,7 @@ void commandCreate(string infile, string outfile, bool normalize, string manfile
333
333
}
334
334
335
335
}
336
-
336
+ cerr << " Closing sim file " << endl;
337
337
sim->close ();
338
338
}
339
339
@@ -353,8 +353,6 @@ void commandIlluminus(string infile, string outfile, string manfile, int start_p
353
353
ofstream outFStream;
354
354
ostream *outStream;
355
355
char *sampleName;
356
- vector<uint16_t > *intensity_int = new vector<uint16_t >;
357
- vector<float > *intensity_float = new vector<float >;
358
356
vector<vector<float > > SampleArray;
359
357
Manifest *manifest = new Manifest ();
360
358
@@ -368,7 +366,10 @@ void commandIlluminus(string infile, string outfile, string manfile, int start_p
368
366
sim->open (infile);
369
367
370
368
if (sim->numChannels != 2 ) throw (" simtools can only handle SIM files with exactly 2 channels at present" );
371
-
369
+ uint16_t *intensity_int =
370
+ (uint16_t *) calloc (sim->sampleIntensityTotal , sizeof (uint16_t ));
371
+ float *intensity_float =
372
+ (float *) calloc (sim->sampleIntensityTotal , sizeof (float ));
372
373
sampleName = new char [sim->sampleNameSize ];
373
374
374
375
// We need a manifest file to sort the SNPs
@@ -384,16 +385,14 @@ void commandIlluminus(string infile, string outfile, string manfile, int start_p
384
385
for (unsigned int n=0 ; n < sim->numSamples ; n++) {
385
386
vector<float > *s = new vector<float >;
386
387
if (!s) { cerr << " new s failed" << endl; exit (1 ); }
387
- intensity_float->clear ();
388
- intensity_int->clear ();
389
388
if (sim->numberFormat == 0 ) sim->getNextRecord (sampleName, intensity_float);
390
389
else sim->getNextRecord (sampleName, intensity_int);
391
390
for (int i=start_pos; i <= end_pos; i++) {
392
391
for (int c=0 ; c < sim->numChannels ; c++) {
393
392
float v;
394
393
int k = i * sim->numChannels + c;
395
- if (sim->numberFormat ==0 ) v = intensity_float-> at (k) ;
396
- else v = intensity_int-> at (k) ;
394
+ if (sim->numberFormat ==0 ) v = intensity_float[k] ;
395
+ else v = intensity_int[k] ;
397
396
s->push_back (v);
398
397
}
399
398
}
@@ -416,7 +415,8 @@ void commandIlluminus(string infile, string outfile, string manfile, int start_p
416
415
}
417
416
*outStream << endl;
418
417
}
419
-
418
+ free (intensity_int);
419
+ free (intensity_float);
420
420
}
421
421
422
422
void commandGenoSNP (string infile, string outfile, string manfile, int start_pos, int end_pos, bool verbose)
@@ -437,20 +437,22 @@ void commandGenoSNP(string infile, string outfile, string manfile, int start_pos
437
437
if (end_pos == -1 ) end_pos = sim->numSamples - 1 ;
438
438
439
439
char *sampleName = new char [sim->sampleNameSize ];
440
- vector<uint16_t > *intensity = new vector<uint16_t >;;
440
+ uint16_t *intensity = (uint16_t *) calloc (sim->sampleIntensityTotal ,
441
+ sizeof (uint16_t ));
441
442
for (int n=0 ; n <= end_pos ; n++) {
442
- intensity->clear ();
443
443
sim->getNextRecord (sampleName, intensity);
444
444
if (n < start_pos) continue ;
445
- *outStream << sampleName << " \t " << sampleName;
446
- for (vector<uint16_t >::iterator i = intensity->begin (); i != intensity->end (); i+=2 ) {
447
- *outStream << " \t " << std::fixed << setprecision (3 ) << *i;
448
- *outStream << " " << std::fixed << setprecision (3 ) << *(i+1 );
449
- }
450
- *outStream << endl;
445
+ *outStream << sampleName << " \t " << sampleName;
446
+ for (int i=0 ; i<sim->sampleIntensityTotal ; i+=2 ) {
447
+ *outStream << " \t " << std::fixed << setprecision (3 ) << intensity[i];
448
+ *outStream << " " << std::fixed << setprecision (3 ) << intensity[i+1 ];
451
449
}
450
+ *outStream << endl;
451
+ }
452
452
453
- delete sim;
453
+ free (sampleName);
454
+ free (intensity);
455
+ delete sim;
454
456
}
455
457
456
458
void commandQC (string infile, string magnitude, string xydiff, bool verbose)
0 commit comments