我正在处理单细胞测序数据,并希望通过 RNA 速度 ( https://www.nature.com/articles/s41586-018-0414-6 ) 运行它。为此,我需要映射拼接和未拼接的读取。我正在使用的数据集是 SMARTseq 数据集,没有 UMI 或条形码(https://www.embopress.org/doi/full/10.15252/embj.2018100164)。数据作为每个单元格的单个 sra 文件提供,可以使用 SRAtoolkit 通过 GEO 获取并解压缩到单端 fastq 文件中。
我的目标是使用 STAR 对齐将数据映射两次。首先,我想将读数映射到外显子区域,然后再映射到内含子区域。为此,我从 ensembl 参考基因组 GRCm38 build 100 ( https://www.ensembl.org/Mus_musculus/Info/Index ) 下载了 fasta 和 gtf 文件。gtf 文件本身不包含 intronic 信息,我使用以下代码在 R 中添加了这些信息:
library(gread) # https://rdrr.io/github/asrinivasan-oa/gread/
library(rtracklayer)
dir <- "/to/reference/genome"
gtf_file <- file.path(dir, "GRCm38build100.gtf")
gtf <- read_format(gtf_file)
gtf.new <- construct_introns(gtf, update = TRUE)[]
export(gtf.new, "GRCm38build100withIntrons.gtf", format = "gtf")
然后,我生成了一个 STAR 基因组,如下所示:
STAR \
--runMode genomeGenerate \
--runThreadN 8 \
--sjdbOverhang 50 \
--genomeDir GRCm38build100/50bp/ \
--genomeFastaFiles GRCm38build100/GRCm38build100.fa \
--sjdbGTFfile GRCm38build100/GRCm38build100withIntrons.gtf \
针对外显子序列映射读取的代码如下:
STAR \
--runMode alignReads \
--runThreadN 8 \
--genomeDir GRCm38build100/50bp \
--readFilesIn $R1 \
--outSAMtype None \
--twopassMode Basic \
--sjdbGTFfeatureExon exon \
--quantMode GeneCounts \
--outFileNamePrefix output/${SAMPLE}_exon_
这工作得很好。对于未拼接的读取,我想做以下事情:
STAR \
--runMode alignReads \
--runThreadN 8 \
--genomeDir GRCm38build100/50bp \
--readFilesIn $R1 \
--outSAMtype None \
--twopassMode Basic \
--sjdbGTFfeatureExon intron \
--quantMode GeneCounts \
--outFileNamePrefix output/${SAMPLE}_intron_
奇怪的是,这给了我与外显子读取映射完全相同的结果。我很困惑,我确定我做错了什么,但我不知道是什么。任何帮助将非常感激!
最好的问候,莱昂