Skip to content

Commit 31141c1

Browse files
authored
Merge pull request #2 from Lilian92/master
adding the seed option for the simulate mode
2 parents 969d2da + e18ac40 commit 31141c1

3 files changed

Lines changed: 17 additions & 0 deletions

File tree

src/seqrequester/seqrequester.C

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,12 @@ main(int argc, char **argv) {
274274
simPar.rcProb = strtodouble(argv[++arg]);
275275
}
276276

277+
else if ((mode == modeSimulate) && (strcmp(argv[arg], "-seed") == 0)) {
278+
simPar.randomSeedValid = true;
279+
simPar.randomSeed = strtouint32(argv[++arg]);
280+
}
281+
282+
277283
//else if ((mode == modeSimulate) && (strcmp(argv[arg], "-name") == 0)) {
278284
// strncpy(simPar.sequenceName, argv[++arg], FILENAME_MAX);
279285
//}

src/seqrequester/simulate.C

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -446,6 +446,9 @@ doSimulate(vector<char *> &inputs,
446446
if (simPar.desiredNumBases > 0)
447447
nBasesMax = simPar.desiredNumBases;
448448

449+
if (simPar.randomSeedValid)
450+
simPar.mt.mtSetSeed(simPar.randomSeed);
451+
449452
// Fail?
450453

451454
if ((nBasesMax == uint64max) &&
@@ -466,6 +469,11 @@ doSimulate(vector<char *> &inputs,
466469
uint64 seqsLen = 0;
467470

468471
doSimulate_loadSequences(simPar, seqs, seqsLen);
472+
// Reset nBaseMax when the coverage is given while the genomeSize is not
473+
if ( (simPar.desiredCoverage > 0) && (simPar.genomeSize == 0) ) {
474+
simPar.genomeSize = seqsLen;
475+
nBasesMax = simPar.desiredCoverage * simPar.genomeSize;
476+
}
469477

470478
// Make reads!
471479

src/seqrequester/simulate.H

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,9 @@ public:
5555

5656
double rcProb = 0.5;
5757

58+
bool randomSeedValid = false;
59+
uint32 randomSeed = 0;
60+
5861
mtRandom mt;
5962
sampledDistribution dist;
6063

0 commit comments

Comments
 (0)