Skip to content

Commit 0dd90d2

Browse files
committed
Fixed catching missing sequences in input files
1 parent 5d8d9d9 commit 0dd90d2

File tree

3 files changed

+10
-8
lines changed

3 files changed

+10
-8
lines changed

src/main.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
#include "sequence.hpp"
1010
#include "polisher.hpp"
1111

12-
static const char* version = "v1.1.0";
12+
static const char* version = "v1.1.1";
1313

1414
static struct option options[] = {
1515
{"include-unpolished", no_argument, 0, 'u'},

src/overlap.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ void Overlap::transmute(const std::unordered_map<std::string, uint64_t>& name_to
141141
}
142142

143143
if (!q_name_.empty()) {
144-
if (!transmuteId(name_to_id, q_name_, q_id_)) {
144+
if (!transmuteId(name_to_id, q_name_ + "q", q_id_)) {
145145
fprintf(stderr, "[racon::Overlap::transmute] error: "
146146
"missing sequence with name %s!\n", q_name_.c_str());
147147
exit(1);
@@ -154,7 +154,7 @@ void Overlap::transmute(const std::unordered_map<std::string, uint64_t>& name_to
154154
}
155155
}
156156
if (!t_name_.empty()) {
157-
if (!transmuteId(name_to_id, t_name_, t_id_)) {
157+
if (!transmuteId(name_to_id, t_name_ + "t", t_id_)) {
158158
fprintf(stderr, "[racon::Overlap::transmute] error: "
159159
"missing target sequence with name %s!\n", t_name_.c_str());
160160
exit(1);
@@ -187,7 +187,7 @@ void Overlap::find_breaking_points(const std::vector<std::unique_ptr<Sequence>>&
187187
q_length_ != sequences[q_id_]->reverse_complement().size()) {
188188

189189
fprintf(stderr, "[racon::overlap::find_breaking_points] error: "
190-
"unmatched sequences lengths!\n");
190+
"mismatched sequence lengths in sequence and overlap file!\n");
191191
exit(1);
192192
}
193193

src/polisher.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ void Polisher::initialize() {
178178
std::unordered_map<std::string, uint64_t> name_to_id;
179179
std::unordered_map<uint64_t, uint64_t> id_to_id;
180180
for (uint64_t i = 0; i < targets_size; ++i) {
181-
name_to_id[sequences_[i]->name()] = i;
181+
name_to_id[sequences_[i]->name() + "t"] = i;
182182
id_to_id[i << 1 | 1] = i;
183183
}
184184

@@ -200,7 +200,7 @@ void Polisher::initialize() {
200200
for (uint64_t i = l; i < sequences_.size(); ++i, ++sequences_size) {
201201
total_sequences_length += sequences_[i]->data().size();
202202

203-
auto it = name_to_id.find(sequences_[i]->name());
203+
auto it = name_to_id.find(sequences_[i]->name() + "t");
204204
if (it != name_to_id.end()) {
205205
uint64_t j = it->second;
206206
if (j >= targets_size) {
@@ -218,12 +218,14 @@ void Polisher::initialize() {
218218
exit(1);
219219
}
220220

221+
name_to_id[sequences_[i]->name() + "q"] = j;
222+
id_to_id[sequences_size << 1 | 0] = j;
223+
221224
duplicate_sequences.insert(j);
222225
sequences_[i].reset();
223226
++n;
224-
id_to_id[sequences_size << 1 | 0] = j;
225227
} else {
226-
name_to_id[sequences_[i]->name()] = i - n;
228+
name_to_id[sequences_[i]->name() + "q"] = i - n;
227229
id_to_id[sequences_size << 1 | 0] = i - n;
228230
}
229231
}

0 commit comments

Comments
 (0)