|
3 | 3 | KSEQ_INIT(gzFile, gzread)
|
4 | 4 |
|
5 | 5 | void Converter::run() {
|
6 |
| - auto c = Configuration::getInstance(); |
7 |
| - string fq_path = c->fastq; |
8 |
| - string sfs_path = c->bed; |
9 |
| - int tau = c->cutoff; |
| 6 | + auto c = Configuration::getInstance(); |
| 7 | + string fq_path = c->fastq; |
| 8 | + string sfs_path = c->bed; |
| 9 | + int tau = c->cutoff; |
10 | 10 |
|
11 |
| - // 1 Parsing and storing sfss |
12 |
| - map<string, vector<SFS>> SFSs = parse_sfsfile(sfs_path, tau); |
| 11 | + // 1 Parsing and storing sfss |
| 12 | + map<string, vector<SFS>> SFSs = parse_sfsfile(sfs_path, tau); |
13 | 13 |
|
14 |
| - // 2 Parsing reads |
15 |
| - map<string, uint> allsfs; |
16 |
| - gzFile fp = gzopen(fq_path.c_str(), "r"); |
17 |
| - kseq_t *seq = kseq_init(fp); |
18 |
| - int l; |
19 |
| - uint idx = 0; |
20 |
| - while ((l = kseq_read(seq)) >= 0) { |
21 |
| - string header = seq->name.s; |
22 |
| - if (SFSs.find(header) == SFSs.end()) { |
23 |
| - // cerr << "Skipping " << header << endl; |
24 |
| - continue; |
25 |
| - } |
26 |
| - for (const SFS &sfs : SFSs.at(header)) { |
27 |
| - uint st = sfs.s; |
28 |
| - uint len = sfs.l; |
29 |
| - uint c = sfs.c; |
30 |
| - string sfsseq(seq->seq.s, st, len); |
31 |
| - |
32 |
| - string rcsfsseq(sfsseq); |
33 |
| - for (uint j = 0; j < sfsseq.size(); ++j) |
34 |
| - rcsfsseq[j] = RCN[sfsseq[j]]; |
35 |
| - reverse(rcsfsseq.begin(), rcsfsseq.end()); |
36 |
| - sfsseq = min(sfsseq, rcsfsseq); |
| 14 | + // 2 Parsing reads |
| 15 | + map<string, uint> allsfs; |
| 16 | + gzFile fp = gzopen(fq_path.c_str(), "r"); |
| 17 | + kseq_t *seq = kseq_init(fp); |
| 18 | + int l; |
| 19 | + uint idx = 0; |
| 20 | + while ((l = kseq_read(seq)) >= 0) { |
| 21 | + string header = seq->name.s; |
| 22 | + if (SFSs.find(header) == SFSs.end()) { |
| 23 | + // cerr << "Skipping " << header << endl; |
| 24 | + continue; |
| 25 | + } |
| 26 | + for (const SFS &sfs : SFSs.at(header)) { |
| 27 | + uint st = sfs.s; |
| 28 | + uint len = sfs.l; |
| 29 | + uint c = sfs.c; |
| 30 | + string sfsseq(seq->seq.s, st, len); |
| 31 | + string rcsfsseq(sfsseq); |
| 32 | + for (uint j = 0; j < sfsseq.size(); ++j) { |
| 33 | + rcsfsseq[j] = RCN[sfsseq[j]]; |
| 34 | + } |
| 35 | + reverse(rcsfsseq.begin(), rcsfsseq.end()); |
| 36 | + sfsseq = min(sfsseq, rcsfsseq); |
37 | 37 |
|
38 |
| - string qual(len, '-'); |
39 |
| - cout << "@" << header << "#" << idx << "#" << st << "#" << st + len - 1 |
40 |
| - << "#" << c << "\n" |
41 |
| - << sfsseq << "\n" |
42 |
| - << "+" |
43 |
| - << "\n" |
44 |
| - << qual << endl; |
45 |
| - ++idx; |
| 38 | + string qual(len, '-'); |
| 39 | + cout << "@" << header << "#" << idx << "#" << st << "#" << st + len - 1 |
| 40 | + << "#" << c << "\n" |
| 41 | + << sfsseq << "\n" |
| 42 | + << "+" |
| 43 | + << "\n" |
| 44 | + << qual << endl; |
| 45 | + ++idx ; |
| 46 | + } |
46 | 47 | }
|
47 |
| - } |
48 | 48 |
|
49 |
| - kseq_destroy(seq); |
50 |
| - gzclose(fp); |
| 49 | + kseq_destroy(seq); |
| 50 | + gzclose(fp); |
51 | 51 | }
|
0 commit comments