I'll give it a try..
I am trying to assemble the genome of a tree, and I have strong evidence that the DNA could be heavily contaminated with a foreign DNA. It is not the leaves were used were externally contaminated with other organisms. I am talking about a millennial tree that could be supporting another form of live internally
How can I discover what is the source of that DNA? BlastN done with billions of sequences is not an alternative..
4 answers
Blobology (https://github.com/blaxterlab/blobology) is a great tool for discovering contaminants.
From what I understand based on the description, blobology needs the reads to be assembled. This biases it greatly towards the genome size of the contaminant. If the contaminant has a small genome, it is more likely to be assembled. If the contaminant has a large genome, it will not get assembled, so those reads will be filtered out in the analysis.
I was struggling with the same question myself and eventually built a simple classifier based on Pfam domains that I find in the assembled scaffolds. I used the species assignment of Pfam domains (can be downloaded from their website) and after assembly got ORFs and searched for domains using interproscan, I then computed the log probability that the sequence is bacterial.
Sounds pretty interesting..
This biases the analysis towards the genome size of the contaminant. If the contaminant has a small genome, it is more likely to be assembled. If the contaminant has a large genome, it will not generate any scaffolds, so those reads will be filtered out in the analysis.
Both approaches are pretty different. Blobology needs to assemble your reads in a genome or pseudo-genome. Then, it maps the reads to it and analyze the SAM/BAM files. It includes a bash script that many novice will find interesting to look because it contains a whole pipeline to do that
Kraken don't need to do that. It simply compares k-mers from your reads to the k-mers from a taxonomic classified kramer database that has been obtained from public databases and run a BLAST-like program which is much faster than BLAST
I definitevely will give a try to both of them. Thank you to both of you for your answers
Log in to answer this question.
My first thought was to use FastQ Screen, but I guess that's not an option with billions of sequences. Could you cluster similar sequences into groups, then run FastQ Screen or blastn on a representative sequence from each group? You could prioritise this by running the search on decreasing group sizes. If you have a lot of contamination the first number of groups you try would be from an alternative species?
I see that FastQ Screen is somehow similar to bbsplit.sh from the set of bbmap tools
I have already used some genomes with bbsplit, and now I know that only 0,0002% of the reads are from Verticillium (as an example)..
But this approach means that I have to download the genome(s) and have some serendipity and luck in finding the contaminated genome..
I am looking for an approach similar to a classic metagenomic study, in which you give the sequences and the program or/and service will find for me the source of contamination.