我在生物信息学方面相对较新,需要从 RNA-seq 结果生成覆盖图。
从基因组比对的 RNA-seq 结果(tophat比对)中,我能够生成一个 Bed(或 txt)文件,指示序列读取的基因组位置来自使用bedtools的coveragebed命令。在这种情况下,我专门为我的实验目的选择了外显子区域。
结果文件(约 4gb 大小的巨型表)现在已导入 R,使用data.table提供的fread函数作为“data.frame”
为了生成单个基因的覆盖图,我在第 8 列(V8)中搜索了一个名为“Actb”的基因作为示例,这就是数据的组织方式:
Actb.coverage <-["Actb"]
V8 V1 V2 V3 V4 V5 V6 V7 V9 V10 V11
1:Actb chr5 142903116 142903797 uc009ajk.1 utr3 0 - NM_007393 1 0
2:Actb chr5 142903116 142903797 uc009ajk.1 utr3 0 - NM_007393 2 0
3:Actb chr5 142903116 142903797 uc009ajk.1 utr3 0 - NM_007393 3 0
4:Actb chr5 142903116 142903797 uc009ajk.1 utr3 0 - NM_007393 4 0
--
1879:Actb chr5 142906652 142906724 uc009ajk.1 utr5 5 - NM_007393 70 0
1880:Actb chr5 142906652 142906724 uc009ajk.1 utr5 5 - NM_007393 71 0
1881:Actb chr5 142906652 142906724 uc009ajk.1 utr5 5 - NM_007393 72 0
每行代表一个核苷酸
所以,在这个简化表中,第 0 列(没有标签)显示它总共有 1881 行(意味着 Actb 基因由 1881 个外显子核苷酸组成)
下一个V8列是基因名称,V1~V3是染色体ID以及V5和V6列中每个给定特征的起始和终止位点(即utr3,0表示第一个3'UTR外显子)。
V7 是 (-),表示基因的方向是基因组中的 3' --> 5' 端。
V11 列包含在给定核苷酸中覆盖生成的读取计数信息(这是我想要的)。它们在此表中为 0,因为此处显示的前四个核苷酸和最后三个核苷酸没有覆盖。
问题1
因此,要生成简单的覆盖图,我可以绘制从 1 到 1881 的 x 轴数字,y 轴是对应于 V11 的值,如下所示:
plot(Actb.coverage[,V0], Actb.coverage[,V11]) 但如您所见,第一列 V0 没有列名,所以我需要替代解决方案
问题2
当此方法有效时,我想添加更多选项
是否可以根据第 5 列(V5)和第 6 列(V6)细分 x 轴?例如,1881 个核苷酸的长度被细分为
utr3(V5)-0(V6),
utr3-1
cds-0
cds-1
cds-2
。
.
.
utr5-0
utr5-1
utr5-2
utr5-3
utr5-4
utr5-5
每个特征长度是通过从 V3 的值到 V2 列的值的简单减法确定的。
结果图应与问题 1 中的图相同,但我想将这些细分特征与 x 轴一起添加
我觉得这应该是可能的,但我不知道如何实现这一点。我寻求你的帮助
非常感谢
gdy