Hi All,
I am quite new to RNA-Seq analysis and I have some confusion as to how to perform certain filtering steps in my pipeline.
Experiment Conditions: I have three conditions tested based on viral infection experiments in human cells; Uninfected, Wildtype Virus Infected, and Mutant Virus Infected with three replicates in each condition (9 samples in total).
I have a few goals in mind:
I would like to identify significantly upregulated human long-non coding RNA between my conditions.
Compare expression of significantly upregulated human lncRNA with protein coding genes (Co-Expression?)
I have aligned my raw fastq files using merged annotation consisting of the human (GENCODE) and viral genomes and annotation from LNCipedia (lncRNA only) using HISAT2. After QC of alignments, i performed HTSeq-counts to generate a read count matrix. As i am aware of the bias of using lncRNA annotation only, HTSeq was repeated using full annotation (human genome (GENCODE), viral genome and lncipedia annotation) to generate a second count matrix with both lncRNA and protein coding genes.
DESeq2 was then used to perform DE analysis on both sets of counts. Genes which had row counts less than 30 where filtered out. I now have 3 gene-list csv files of differentially expressed genes (Wildtype vs Uninfected and Mutant vs Uninfected and Wildtype vs Mutant) . (6 files in tota- 3 from deseq2 using lncRNA only count matrix and 3 from deseq2 using full annotation count matrix)
Recently I was told that I also need to filter by a FPKM threshold value of 1.0. I performed StringTie on the bam files generated from HISAT2 using the same annotation (GENOME Human genome, Viral genome and lncipedia annotation) to generate FPKM values but i notice that many lncRNA shown to be significant from the DESeq2 result files only have FPKM values less than 0.1. I am unsure as to how to filter out low expression genes as i am aware that lncRNA have low expression in contrast to mRNA.
Questions:
- Would it be better to use the full annotation rather than lncRNA only annotation for HTSeq to identify differentially expressed lncRNA?
- Are there more appropriate filters that I should use to identify differentially upregulated lncRNA genes?
- At what stage in the RNA-Seq pipeline is filtering supposed to be done (before or after DESeq2)?
Your thoughts and feedback are most appreciated. Thanks,
Hi Kevin,
I have used the filtering criteria as per your suggestions, but what i have recently noticed is that with some highly expressed lncRNA genes, particularly with intronic ones, they tend to overlap with highly expressed protein coding genes. When i look at the raw counts generated using lncRNA only annotation, these genes show very high read counts and they pass the FDR and log2FC filters. But when I look at the read counts for the same lncRNA genes generated using the full annotation (whole human genome with lncipedia annotation) the counts for these genes across most samples are down to zero in many cases. I know this probably due to the way htseq regards these counts as ambiguous (i used the default UNION mode in htseq), but in this context, would the use of lncRNA only annotation simply produce an overestimation of the number of long non-coding RNA differentially expressed.
So my question is, if i do use lncRNA only annotation to generate the count matrix with HTSeq and do subsequent DE with DESeq2, is there a particular way to assess if the identified differentially expressed lncRNA genes are indeed being expressed and if so how to filter out these false-positives. I have performed kallisto analysis on the same data with full annotation, but i am having difficulty in understanding how to interpret both pipelines together (kallisto and hisat2/htseq) (Hope that made sense....)
Thanks,
Conor
Hey Conor, I imagine that the issue there is with multi-mapping reads. HTseq is tuned to not naïvely count all reads that align to multiple locations. There are other issues, too, such as situations where 2 genes share the same genomic position. It is impossible through short-read NGS to understand the origin of the majority of such reads.
Take a look at FAQ: https://htseq.readthedocs.io/en/master/count.html
Other read counting tools that can manage these types of 'multi-mappers' include featureCounts, mmquant, and even the 'old faithful`, BEDTools (the functionality of which most of these other tools are just replicating).
Hi Kevin,
I can definitely identify this problem in regards to multi-mapped reads, but what i'd like to know is, is there any way to differentiate expression of lncRNA genes located at intronic sites of protein-coding genes, which are also simultaneously being expressed. I haven't been able to find much literature which addresses this.
Thanks,
Conor
hi kevin Do you faver me? I need help. I have analyzied my RNA-Seq data. I have used this tools: Download sequences(SRA) from ncbi database. FastQC (Check quality of sequencing). Trimmomatic(the quality of each raw library is analyzed and sequencing adapters and bad quality reads are removed) I have used paired end datas as input in hisat2 and I convert sam file to bam file. then i have used htseq to count. I had htseq count. I have used deseq2 package to get up and dawn genes. The genome I used was zea mays. could you please tell me how can i separate coding and noncoding sequence from deseq2 result?
thank you in advance
As you have not shared examples of any data or showed any commands, I cannot advise further. Also, my knowledge of Zea mays ssp. is minimal.
thank you for reply kevin deseq2 result: partial my up genes:
So, you have the gene IDs. You need to match these to a gene biotype. Do you have a GTF for this species?
yes, there is GTF file and i have it
Cool, does it encode the gene biotype?
yes, I thought. thank you in advance