最近在处理NGS数据中碰到如下问题:拿到的表达矩阵定量时使用的gtf文件是hg19的(ensembl,GRCH37),然后我希望得到如下信息:
1、获得对应基因在hg38下的对应id
2、获得基因的染色体定位
但是看似简单的ID转换却遇到了诸多问题:
1、hg19中存在很多补丁(patch),如HG271_PATCH,在hg19的gtf中是与染色体并列存在的,但是实际上在hg38中却被划归到了1号染色体上,而在补丁上的基因的id却无法在hg38的库中检索,检索时提示该id已从原注释库中移除,并没有提供该序列的去向信息
2、hg19中很多基因名称发生了变化,由官方名降级为别名,因此依据基因名称的检索是存在问题的
在id转化的时候有多种方法
1、使用org.db进行ID转化,但是事实证明这种方法得到的id很不全,大概会有30%左右的注释缺失
2、使用在线工具,如ensembl提供的biomart工具,操作简洁,但无法进行大批量的id转化
3、使用R语言中的biomart包,很方便,也可以大批量,但由于其只能通过已知id进行检索,而如果id不在数据库中(如问题一),则无法完成注释
4、使用ensembl中提供的版本转化工具(tools>Assembly Converter),可以完成hg19->hg38gtf的整体升级,只需要自己构建gtf即可
这里只做最后一种方法结果的展示
X . gene 101390823 101396117 . + . gene_id "ENSG00000269315";gene_name "RPL36A"
X . gene 150980508 150990775 . + . gene_id "ENSG00000269411";gene_name "HMGB3"
11 . gene 118768797 118782992 . - . gene_id "ENSG00000269612";gene_name "DDX6"
X . gene 77899437 77907373 . + . gene_id "ENSG00000269083";gene_name "COX7B"
11 . gene 119015711 119018691 . - . gene_id "ENSG00000262088";gene_name "RPS25"
17 . gene 81509970 81523847 . - . gene_id "ENSG00000267807";gene_name "ACTG1"
11 . gene 118401153 118431496 . + . gene_id "ENSG00000268551";gene_name "ATP5L"
X . gene 101391010 101412297 . + . gene_id "ENSG00000269719";gene_name "RPL36A-HNRNPH2"
12 . gene 6867118 6870948 . + . gene_id "ENSG00000268548";gene_name "TPI1"
X . gene 48893446 48898143 . - . gene_id "ENSG00000267823";gene_name "TIMM17B"
17 . gene 42124975 42125893 . - . gene_id "ENSG00000261378";gene_name "RAB5C"
7 . gene 130486204 130506292 . + . gene_id "ENSG00000264872";gene_name "MEST"
X . gene 154429096 154448310 . + . gene_id "ENSG00000268963";gene_name "RPL10"
X . gene 78065187 78129296 . + . gene_id "ENSG00000269666";gene_name "PGK1"
X . gene 155065121 155099445 . + . gene_id "ENSG00000268109";gene_name "FUNDC2"
6 . gene 26596951 26600050 . + . gene_id "ENSG00000268612";gene_name "ABT1"
网友评论