I am a beginner Galaxy user, I sequenced total RNA of Coronavirus-infected huh-7 cells. First i filtered the human genome. Then mapped the rest of the reads. The problem is: there are reads belong to both genomic and sub-genomic RNA. Is there a way to separate them from each other?
Reads belong to sub-genomic mRNAs mapped on the reference genomic RNA as supplementary, I don’t know if this info can help. Thank you all so much in advance!
How do you filter the human reads? By mapping to a human genome? Mapped the rest of the reads to what? To the coronavirus genome? I assume you used reads classified as unmapped in mapping to the human genome?
Are you suspect that some reads map to both genomes? If yes, maybe skip the filtering step and map all reads to the coronavirus genome. Some tools can report both mapped and unmappped tools. You can take mapped reads and align these to the human genome.
Thank you for your reply. So, I mapped the fasta file containing the reads against the human genome using bowtie2 tool. this tool produce the unmppped reads as a separate fasta file, then i use this unmapped fasta file to map it against the corona virus 229E genome and i get 94% mapping percentage. I do not think there is an overlapping sequence between human genome and coronavirus genome, and anyway, as you said, i skipped this step. This ‘filtering’ step - in my opinion - is not the problem. The problem is that in infected cells with corona virus there are different species of RNA: gRNA and sgRNAs and they share same 61 nt at 5’ and same 1650 nt at 3’. And because the sgRNAs are much more abundant, you would see much more mapped reads at both 5’- and 3’- ends of the genome and less mapped reads in the middle (please see the attached image). So, i was wondering if there is a bioinformatic solution for this problem. To, somehow, separate the gRNA from the sgRNA? So, i don’t get this false abundant reads at both ends and get the real actual - hopefully more or less equally distributed - coverage for the gRNA?
Thank you for the explanation. It seems the question is rather about experiment design, not Galaxy. You may also consider asking it on other bioinformatics forums or talk people working in the same area.
gRNA and sgRNA - is it guide RNA or genomic (non-processed) and sub-genomic (processed) RNA? If it is genomic DNA, is it produces from the virus sequence or something else? You said gRNA and sgRNA share 1650 nt at 3’ end, but it seems that on the IGV screenshot high coverage area on the right is longer than 5 kb.
You probably can separate reads from 5’ end: reads originated from the genomic RNA will map to the genome in a single location and without long indels (assuming the sequencing reads are longer than 61 nt, say 100 or 150 nt long), while reads derived from sub-genomic RNA will map to two sites (two “exons”). This should be visible in CIGAR string in BAM/SAM files.
For 3’ end it might be more complicated. If you have PE data, you can separate some reads based on mapping of paired reads: when one read maps in “intron”, the paired read is most likely also derived from genomic RNA. As with 5’ end, you can separate “spliced” reads using CIGAR string. You also can remove reads when one of the pair is mapped as sub-genomic read to 5’ region.
I cannot figure out a way of separating gRNA and sgRNA derrived reads when both paired reads are derived from the high coverage area (right end in the IGV screenshot).
It seems the best options are via lab and experiment planning, not bioinformatics, for example, deplete sub-genomic RNA, or use long sequencing reads, like Nanopore or PacBio.
I guess the key here is what’s missing from all sub-genomic reads, which would be ORF1.
Now how do you leverage this information in a Galaxy workflow?
After mapping you can use the tool “bedtools intersect intervals” to only keep or discard those reads in the BAM input that map with an overlap to the genomic region of the ORF-1 region, which you’ll have to provide in BED format.
Maybe that’s already enough of a hint for you. If not, just say so and I’m happy to explain more.