起因是在阅读一篇文献时发现了这么一段话: In the initial step,we spiked 2 × 106 mRNA-GFP and 2 × 106 mRNA-RFP, transcribed in vitro, into each lysed sample for RNA isolation.
关于什么是spike-in,可以先移步从spike-in到DESeq2:文库normalization这篇。
概括一下就是在建库前往不同样本的total RNA中掺入已知序列的定量外源mRNA,然后通过比较它们的reads数,能比较不同样本间mRNA的总量,对基因表达数据进行绝对值的矫正。
目前使用最多的spike-in是ERCC( The External RNA Control Consortium)的spike-in MIX,有mix1和mix2两只试剂,混合有92种不同的mRNA。ERCC的试剂盒售价高达2万元,若非必要一般也不会去买。这篇文献的作者没有使用ERCC,所以就简单的拿GFP和RFP来当spike in。
首先,我从EBI上下载了原文献的原始数据,然后质量过滤,得到clean fastq。由于文中未提到具体的GFP和RFP序列,我便在SnapGene里挑了常用的GFP,EGFP,mChery,DsRed1试试能不能map出来。
我用的软件是HISAT2,首先要建立index。有两种选择,一是将四个荧光蛋白序列加入到小鼠基因组的fasta文件里,这样可以一次性全读出来;二是就用这四条序列建个index。我选择了第二种,将四条序列加到一个fasta文件中,大致就是下图这样。
然后就hisat2 build ,index建好后就比对,具体指令可以看相应的文章。
比对得到的sam文件用samtools 转换为bam格式,然后以位置排序。我使用的计reads数的软件是stringtie,用其他计数软件也没问题。
重点是用来计数的annotation文件该怎么处理?
GFP havana exon 1 717 . + . gene_id "GFP"; transcript_id "GFP"; gene_name "GFP";
EGFP havana exon 1 720 . + . gene_id "EGFP"; transcript_id "EGFP"; gene_name "EGFP";
mCherry havana exon 1 711 . + . gene_id "mCherry"; transcript_id "mCherry"; gene_name "mCherry";
DsRed1 havana exon 1 681 . + . gene_id "DsRed1"; transcript_id "DsRed1"; gene_name "DsRed1";
创建一个gtf文件,将上面的信息复制进去就好了,注意windows和linux编码的区别。
计数结果如上,可见作者是使用EGFP和mCherry作为spike in,DsRed1和mCherry有部分序列接近,所以也显示有少量reads。
文献链接:BTG4 is a meiotic cell cycle–coupled maternal-zygotic-transition licensing factor in oocytes