LncRNA framework for identification of lncRNA dysregulations from RNAseq data.
The lncRNA framework pipeline provides a comprehensive solution for lncRNA analysis, encompassing preprocessing, alignment, transcript quantification, differential expression analysis, and functional annotation. This document outlines the steps for processing a single sample. For batch processing, refer to the scripts folder.
- FastQC
- fastp
- STAR
- Use
--quantMode GeneCountsfor quantification.
- Use
- SAMtools
- StringTie
- Use
-e -Bfor quantification. - Use
StringTie Mergewith-Gfor reference-based merging.
- Use
- gffcompare (use
-Gfor compatibility). - awk (for processing files).
- CPAT (for coding potential assessment).
- featureCounts (use
-p -B -Cfor paired-end data). - DESeq2 (for differential expression analysis).
- FEELnc (for functional annotation).
- Miranda (for target prediction).
- ClusterProfiler (for pathway enrichment).
- Visualization tools:
- GENCODE Annotations
- Genome: GRCh38.p14
- Annotation Files: GENCODE v47 GTF/GFF
fastq-dump SRR24709142 --split-3 --gzipfastqc SRR24709142_1.fastq.gz SRR24709142_2.fastq.gz -o qc_resultsfastp -i SRR24709142_1.fastq.gz -I SRR24709142_2.fastq.gz -o SRR24709142_1_clean.fastq.gz -O SRR24709142_2_clean.fastq.gz -h SRR24709142_report.html --trim_poly_g --cut_tail --cut_mean_quality 20 --length_required 50STAR --runThreadN 50 --runMode genomeGenerate --genomeDir human_genome/STAR_index --genomeFastaFiles human_genome/GRCh38.p14.genome.fa --sjdbGTFfile human_genome/gencode.v47.long_noncoding_RNAs.gtfSTAR --runThreadN 50 --genomeDir human_genome/STAR_index --readFilesIn SRR24709142_1_clean.fastq.gz SRR24709142_2_clean.fastq.gz --readFilesCommand zcat --outSAMtype BAM SortedByCoordinate --outFileNamePrefix SRR24709142_ --quantMode TranscriptomeSAM GeneCounts --outSAMstrandField intronMotifcufflinks -g human_genome/gencode.v47.long_noncoding_RNAs.gtf -o SRR24709142_cufflinks_out -p 8 SRR24709142_Aligned.sortedByCoord.out.bamCreate a mergelist.txt file with paths to all transcripts.gtf files.
cat $(<mergelist.txt)> merged.gtfawk '!seen[$1, $4, $5]++' merged.gtf > merged_without_duplicates.gtfpython Remove_Duplicate_transcript_ID.py merged_without_duplicates.gtf output_merged_without_duplicates.gtfawk '/^>/{p=($0!="chrM MT")} p' human_genome/GRCh38.p14.genome.fa > human_genome/GRCh38.p14.genome_no_chrM.fagffread -w filtered_lncRNAs.fa -g human_genome/GRCh38.p14.genome_no_chrM.fa merged_without_duplicates.gtfDownload pre-built models and run:
cpat.py -g filtered_lncRNAs.fa -x Human_Hexamer.tsv -d Human_logitModel.RData -o cpat_output.txtThe output file (cpat_output.txt) is filtered to retain only transcripts with low coding potential scores (i.e., non-coding). A typical threshold for non-coding classification is applied (e.g., coding potential score < 0.38 for human lncRNAs).
awk '$4 < 0.38' cpat_output.txt > high_confidence_lncRNAs.txtThis command filters the 4th column (coding potential score) and extracts only those classified as non-coding. The high-confidence lncRNAs are cross-referenced with GTF files (e.g., filtered_gencode.gtf) to update annotations, ensuring they align with transcript IDs of interest. The high-confidence lncRNAs identified in high_confidence_lncRNAs.txt are used as input for functional annotation (e.g., with FEELnc_filter.pl) to classify lncRNAs into various functional categories (e.g., intergenic or antisense).
awk '{print $1}' high_confidence_lncRNAs.txt > high_confidence_transcripts.txtgrep -Ff high_confidence_transcripts.txt merged_without_duplicates.gtf > updated_filtered_gencode.gtfhead updated_filtered_gencode.gtffeatureCounts -a merged_without_duplicates.gtf -o SRR24709142_counts.txt -T 8 -p -B -C SRR24709142_Aligned.sortedByCoord.out.bamExtract and combine processed data:
forfilein*_counts.txt;do
sed '1d'"$file"| awk -v OFS="\t"'{print $1, $7}'>"processed_$file"done
cut -f1 processed_SRR24709142_counts.txt > combined_file.txt
forfilein processed_*_counts.txt;do
awk '{print $2}'"$file"| paste combined_file.txt - > temp.txt
mv temp.txt combined_file.txt
doneUse R with DESeq2 for differential expression analysis and visualization. Refer to the R scripts in repository.
Refer to the R scripts in repository.
FEELnc_filter.pl -i updated_filtered_gencode.gtf -a gencode.v47.annotation.gtf -b transcript_biotype=protein_coding -l > candidate_lncRNA.gtf
awk 'BEGIN{FS="\t"; OFS="\t"} {match($9, /gene_id \"([^\"]+)\"/, a); if (a[1] != "") print a[1]}' candidate_lncRNA.gtf | sort | uniq > lncRNA_target_genes.txtUse clusterProfiler in R for pathway enrichment analysis. Refer to the R scripts in repository.
- Processed Counts:
combined_file.txt - Differential Expression Results:
differential_expression_results_with_labels.csv - Pathway Enrichment Results:
pathway_enrichment_results_ENSEMBL_ID.csv
- Ensure all tools are installed and configured in a dedicated Conda environment.
- Use sufficient computational resources for STAR alignment and StringTie assembly.
- Verify input file formats before running each step.