5
$\begingroup$

I have looked already here: Tools for simulating Oxford Nanopore reads . This doesn't answer my question, because it lists a few Nanopore read simulators, but I have specific problems with each of them.

I am trying to simulate some Nanopore reads. I could use NanoSim, but that tool seems to be very difficult to use. I only have a reference genome, but you need training data as well? anyone have any experience with this? I can only find bacterial and yeast data (and I want to try this on Arabidopsis thaliana reference)

Another promising tool I found, was a paper for SNaReSim, reference here: https://ieeexplore.ieee.org/document/8031171. However I cannot seem to find the tool itself, which is also mentioned in the other stackexchange post I mentioned above.

Does anyone have experience simulating PacBio reads with NanoSim, SNaReSim or maybe another tool? Because I am not sure about which one to use. Others like SiLiCO or ReadSim were updated 2 years ago and I believe that Nanopore technology has improved a lot in that time.

To clarify a bit on why I want to simulate data: I just want to test several tools about SV calling and simulating for a school project. All of the points mentioned in the comments I will use for the discussion, but I wanted to focus on 1 read simulator per technology and didn't know what to use, because Nanopore is difficult to simulate in that sense. That was already known to me.

$\endgroup$
5
  • $\begingroup$ Why do you need to simulate reads? There are plenty of existing public datasets for human gDNA, parasite gDNA, human RNA, human cDNA, E. coli gDNA, and I've uploaded a couple of mouse cDNA runs. $\endgroup$
    – gringer
    Oct 23 '18 at 9:10
  • $\begingroup$ because I want to test some SV callers, and for that I need to know exactly where my SVs are, and for that I need simulated reads that contain my known SVs $\endgroup$
    – Fini
    Oct 23 '18 at 11:23
  • $\begingroup$ @Fini, please edit the question to include your last comment, and perhaps more information, the answers might change/improve with it. $\endgroup$
    – llrs
    Oct 23 '18 at 15:12
  • 1
    $\begingroup$ Yes, you need to know where the SVs are, but simulated reads are not necessary for that. It's much better to use annotated true data (as suggested in conchoecia's answer), because it's not possible to know all the variation in DNA that can contribute to base caller error. This is a particular issue with nanopore data, because the underlying sequencer model (current change caused by DNA moving through a pore) is very complex. $\endgroup$
    – gringer
    Oct 23 '18 at 21:22
  • $\begingroup$ I added some lines to the question to clarify. I can use this information in my discussion. Do you possibly have a paper that claims the same thing or is this just based on your own knowledge? $\endgroup$
    – Fini
    Oct 24 '18 at 7:15
5
$\begingroup$

It is important to train an error model as NanoSim does, as we do not fully understand the error processes involved in both the nanopore sequencing process and the basecalling process. Any sort of read simulator that does not use a species-specific model is just not going to produce realistic simulated reads.

As far as datasets go, I would recommend looking at this assembly and the associated data uploaded on EMBL:

Michael, Todd P., et al. "High contiguity Arabidopsis thaliana genome assembly with a single nanopore flow cell." Nature communications 9.1 (2018): 541.

There are several data types there, as well as an assembly to train the models on.

Is it OK to train a model using reads from one individual and a reference assembly from another individual?

Generally, it is not good to map reads from one individual to the reference genome of another individual since this introduces something called reference bias. When we align reads to a reference genome generated from the same reads, or just from other reads from the same individual we remove this problem. All true reads will map to correctly assembled parts of the genome.

Why can we train a model for nanopore reads on a reference generated from ... nanopore reads? Won't we get a bad model for indels?

Yes, well, maybe. If the reference genome has been corrected to remove indels using a tool like pilon, then you can generally presume that the reference genome has very few to no indels present as a result of sequencing error from the Nanopore/PacBio reads. As a result, the model derived from aligning reads should have the correct error profile for indels.

Again, it is important that the long-read-assembly was corrected with Illumina shotgun reads from the same individual from which the long reads were derived. Otherwise the corrected reference would have a chimaera of indels and SNPs from multiple individuals.

$\endgroup$
7
  • $\begingroup$ so to get it more clear, I should use the MinION " FASTQ files (FTP)", convert this to .fasta and use this to get a training folder using ./read_analysis.py with -r as the Arabidopsis reference genome (where should i find that?). Then use "./simulator.py" and use -c to that folder and -r to get the reads from. Does it matter that the reference I want reads from is different (in size and probably sequence) from the MinION data that I use? (as long as they are similar i guess?) $\endgroup$
    – Fini
    Oct 23 '18 at 8:01
  • 1
    $\begingroup$ Yes, you would just use the basecalled fastq/fasta data and use the reference from the same dataset to align and make the model. I have updated my question above to address using reference/data from different individuals. I'm not sure of the exact commands to run but it sounds like you have the right idea. When navigating EMBL, there are a few levels of organization. Above, I linked to the project - the highest level in the hierarchy. Clicking on the "naviagation" tab reveals the other pages for the project including the assembly: ebi.ac.uk/ena/data/view/GCA_900303355 $\endgroup$
    – conchoecia
    Oct 23 '18 at 8:06
  • $\begingroup$ Thanks for the clarification. So to recap (sorry I am fairly new to this kind of data). Reference Arabidopsis = "WGS_SET_FASTA" from the assembly link. Basecalled fastq files Arabidopsis = MinION "FASTQ files (FTP)" from the Read Files tab. Use these two to get the training folder. Sequence to produce reads from: My own .fasta file (also Arabidopsis, but slightly different from the ones mentioned above) $\endgroup$
    – Fini
    Oct 23 '18 at 8:13
  • $\begingroup$ Sorry, the question just updated, i have a look $\endgroup$
    – Fini
    Oct 23 '18 at 8:14
  • 1
    $\begingroup$ nanopore fastq (FASTQ files FTP): ebi.ac.uk/ena/data/view/ERR2173373 ... Sequel fastq (FASTQ files FTP) ebi.ac.uk/ena/data/view/ERR2173371 ... reference (WGS_SET_FASTA) ebi.ac.uk/ena/data/view/GCA_900303355 . Yep - you have the right idea w/r/t how to use all of the files. $\endgroup$
    – conchoecia
    Oct 23 '18 at 8:17
1
$\begingroup$

I could use NanoSim, but that tool seems to be very difficult to use. I only have a reference genome, but you need training data as well?

Karel Břinda's fork, NanoSim-H, ships with pretrained models (or "error profiles", as they're called there), eliminating the need for training data.

Minimal usage instructions to run with the default error model (trained on 1D² reads of E. Coli on an R9 flowcell):

pip install nanosim-h
nanosimh-h your-reference.fasta
$\endgroup$

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.