I have noticed that in rare cases, gencore will remove reads from the input entirely. This can cause PE reads to become unpaired and causes problems for certain downstream tools that expect the .bam to contain only paired reads.
Specifically, I think the problem is due to cluster.cpp line 322-324:
if(mostContainedByNum < containedByList.size()*0.4 && containedByList.size() != 1) { return NULL; }
If the major read does not make up at least 40%, no read is selected at all. I think it would be better to always take the best consensus read, choosing randomly if necessary, because I'd rather have slightly imperfect data than no data at all.
Could you add a --nevertoss option, so the user can specify that reads shall never be discarded, even if there is no clear consensus? I have very little experience in C++ and am unable to add this in myself (although commenting out the above and recompiling fixes the problem).
Hi,
I have noticed that in rare cases, gencore will remove reads from the input entirely. This can cause PE reads to become unpaired and causes problems for certain downstream tools that expect the .bam to contain only paired reads.
Specifically, I think the problem is due to cluster.cpp line 322-324:
if(mostContainedByNum < containedByList.size()*0.4 && containedByList.size() != 1) { return NULL; }
If the major read does not make up at least 40%, no read is selected at all. I think it would be better to always take the best consensus read, choosing randomly if necessary, because I'd rather have slightly imperfect data than no data at all.
Could you add a
--nevertoss
option, so the user can specify that reads shall never be discarded, even if there is no clear consensus? I have very little experience in C++ and am unable to add this in myself (although commenting out the above and recompiling fixes the problem).Thanks and best regards, Florian