【直播】我的基因组78:简单解析一下蛋白编码基因的测序深度及覆盖度

上一讲中,我们对蛋白的编码基因的测序深度和覆盖度进行了统计,其中有的覆盖度很高,有的覆盖度却又很低,针对这个统计出的测序深度及覆盖度,我们就可以做一些简单的统计及分析。

首先,可以看看覆盖度为10%~100%区间的基因都有多少,并可视化,R代码如下:

hist(dat$coverage,breaks =(0:10)/10)
library(ggplot2)
ggplot(dat,aes(x=coverage))+geom_histogram(binwidth = 0.1 )+
stat_bin(binwidth=0.1, geom="text", aes(label=..count..), vjust=-1.5)+
theme_set(theme_set(theme_bw(base_size=20)))+
theme(text=element_text(face='bold'),
axis.text.x=element_text(angle=30,hjust=1,size =15),
plot.title = element_text(hjust = 0.5) ,
panel.grid = element_blank()
)

很明显,大部分基因(18800/19735=95.26%)都是100%覆盖的,只有少部分基因覆盖度不完整。

值得注意的是,居然有295个基因是完全没有被覆盖到,这个现象值得深究。

我们也顺便看看GC含量跟测序深度的关系。

当然,这里仅仅是选择那些覆盖度大于90%的基因,还有不考虑X,Y,MT等非常染色体基因咯。

dat_new=subset(dat,coverage>0.9)
dat_new=subset(dat_new,chr %in% paste0('chr',1:22))
plot(dat_new$depth,dat_new$gc)

这个趋势实在是太明显了,GC含量越高,测序深度越低,说明二代测序的硬伤是存在的。因为GC含量高的区域很难PCR扩增。

上图我截掉了测序深度超过100的那些基因,单独显示如下:

这些基因为什么测序深度这么高呢?我的WGS数据全基因组平均测序深度只有45X。

接着回过头看看那230个完全没有被覆盖到的基因吧~

dat_new=subset(dat,coverage ==0)
sort(table(dat_new$chr))
barplot(sort(table(dat_new$chr)))

我看了一下,6号染色体就占了一多半了,很有可能是6号染色体的注释不够完全,而不是我的基因组的问题。因为性染色体就排在后面,它们上面的基因没办法覆盖到这很正常了。

我仔细检查了6号染色体的这些基因,发现很多是orf系列基因,我在我们生信技能树论坛里面曾经发帖提到过这件事情。然后就是一堆主要组织相容性的复合物,这个没什么好说的了,免疫的相关基因本来就乱乱的。还有几个锌指蛋白,几个嗅觉受体蛋白编码基因,还有一些多肽,反正我也不认识。也说不出来个所以然来。

至于性染色体中,X主要是几个cancer/testis antigen family基因,还有cancer/testis antigen family chromosome X open reading frame基因,SPANX家族,X 抗体家族,G抗体家族,还有热激蛋白。Y染色体上面没有被覆盖到的基因,我貌似都不认识呀。

而1号染色体上面覆盖度为0的都是histone cluster基因,为什么它们无法被测序呢?GC含量比较低38%,可是GC含量低,应该是测序深度高呀!基因长度比较短,貌似也不是理由。

4号染色体我检查了一下,都是ubiquitin specific peptidase 17-like family member系列基因,这个很容易理解了,本身这个家族基因注释就很烂,它们内部相似性太高了,比对的时候压根就没办法把reads唯一定位到家族的某个具体基因。所以导致家族某些基因超高深度测序结果,而有些基因根本就没有测序结果。

原文发布于微信公众号 - 生信技能树(biotrainee)

原文发表时间:2017-05-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏码匠的流水账

聊聊EurekaRibbonClientConfiguration

spring-cloud-netflix-eureka-client-2.0.0.RELEASE-sources.jar!/org/springframewor...

1171
来自专栏互联网开发者交流社区

WinForm之窗体应用程序

1863
来自专栏玩转JavaEE

RestTemplate的逆袭之路,从发送请求到负载均衡

上篇文章我们详细的介绍了RestTemplate发送请求的问题,熟悉Spring的小伙伴可能会发现:RestTemplate不就是Spring提供的一个发送请求...

1.1K4
来自专栏DT乱“码”

简单的考勤系统

连接数据库类 package com.lianrui.it; import java.sql.Connection; import java.sql.Driv...

3499
来自专栏葡萄城控件技术团队

Table-values parameter(TVP)系列之二: 利用DataTable将其作为参数传给SP

一,回顾         上一部分讲述了“在T-SQL中创建和使用TVP”,通过T-SQL建立如下的对象:         1)Tables ...

2069
来自专栏c#开发者

C# : row-clickable GridView and get and set gridview rows using JavaScript

Complete C# code: ---------------- using System; using System.ComponentModel; ...

2996
来自专栏闻道于事

商城项目整理(三)JDBC增删改查

商品表的增加,修改,删除,订单表的增加,确认,用户表的查看,日志表的增加,查看 商品表建表语句: 1 create table TEST.GOODS_TABL...

5485
来自专栏xingoo, 一个梦想做发明家的程序员

windows程序设计-第四章 system1.c

/*---------------------------------------------------- SYSMETS1.C -- System M...

23710
来自专栏菩提树下的杨过

SqlTransaction事务使用示例

using System; using System.Data; using System.Data.SqlClient; using System.Co...

1878
来自专栏张善友的专栏

Using sqlite with .NET

The other day I found that there is a .NET wrapper for sqlite. sqlite is a very ...

2308

扫码关注云+社区