The setup

Imagine that I work on an organism without a reference genome, and that the closest reference genome I can get is quite diverged. E.g. ~10% diverged in terms of SNVs when measured with short reads, and also has a lot of structural variants too.

Now imagine I get a 1 million base-pair long-read (e.g. from Nanopore data) for my organism. The question is this:

How can I estimate the proportion of the read that is meaningful sequence vs garbage?

Some things that probably won't work

Most standard approaches won't work here. E.g. I could try mapping the read to the reference, but even if the read was perfectly good I wouldn't expect most of it to map thanks to true structural variations between the read and the reference. The same goes for standard alignment or BLAST.

Some things that might work

The best naive method here seems to be to cut the read up into smaller pieces (either overlapping or not) and use standard approaches to map/align each of these.

So, what have people tried for this? And what tools have you used and why?


As a first pass, you could check if the read is chimeric. Porechop searches for known nanopore adaptors both on the ends and through the middle of the read. This won't resolve issues around blocked or empty pores, but it will at least check if you have found two long-ish reads lumped into the same file.

By default, Porechop splits chimeric reads into two (or more, I suppose!) non-chimeric reads, but the option --discard-middle would be a quick and easy way to check - run it on a fasta file containing only your long read, and if the output is empty, the read is chimeric.

| improve this answer | |

If you're looking at a single organism, in the absence of a reference genome you can map other reads to suspect reads and look at coverage. Looking at the actual sequence can also be useful: real DNA usually doesn't have an abundance of two different bases.

Nanopore reads also give another way to see if the read looks weird by having a look at the raw signal. Our chimeric reads paper gives a few examples of what DNA sequence should look like under normal circumstances. Here's the first raw signal figure from that paper:

good raw signal

If there's lots of contiguous signal with very similar current levels (i.e. it looks like the "stall" region, then it's not a good read and any basecalls should be ignored.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.