热点新闻
R语言小记3:ENSG和基因symbol间的名称转换
2024-11-01 14:24  浏览:5453  搜索引擎搜索“手机奥展网”
温馨提示:信息一旦丢失不一定找得到,请务必收藏信息以备急用!本站所有信息均是注册会员发布如遇到侵权请联系文章中的联系方式或客服删除!
联系我时,请说明是在手机奥展网看到的信息,谢谢。
展会发布 展会网站大全 报名观展合作 软文发布

0. 数据准备(加载自己需要转换的数据)

Data <- read.table("GSE197543/GSE197543_UMIsMatrix.txt", header = T) head(row.names(Data)) ## [1] "ENSG00000225972" "ENSG00000225630" "ENSG00000237973" "ENSG00000248527" "ENSG00000237491" "ENSG00000228794"

1. 使用其他R包"AnnotationDbi"和"org.Hs.eg.db"

# 加载需要的包 library(AnnotationDbi) library(org.Hs.eg.db) # 进行转换 gene_symbols <- select(org.Hs.eg.db, keys = row.names(Data), columns = "SYMBOL", keytype = "ENSEMBL") ## 'select()' returned 1:many mapping between keys and columns

ꔷ 发现存在一个ENSG(Ensembl基因ID)可能对应多个基因符号(gene symbols),这通常是由于以下几个原因:
1)基因的异构体:同一基因可能产生多个转录本,每个转录本有不同的基因符号
2)基因重命名:基因符号可能会随时间的推移而变化,特别是在注释版本更新时
3)基因家族:某些基因可能属于同一基因家族,导致多个基因符号被标记为相同的ENSG

# 计算每个值的频次 freq_table <- table(gene_symbols$ENSEMBL) # 提取频次大于1的值 duplicate_values <- names(freq_table[freq_table > 1]) # 取出重复行 duplicates <- gene_symbols[gene_symbols$ENSEMBL %in% duplicate_values, ]


ENSG-1

2. 从Ensembl下载GTF文件自行转换

2.1 GTF文件的下载(网页端或服务器端)

1)打开浏览器,访问 Ensembl数据库. 选择物种:Human
2)在物种页面,找到"Gene annotation"版面,通常在页面的右侧,点击Download GTF or GFF3
3)在下载页面,查找"GTF"格式的文件,选择最新版本下载。这里下载"Homo_sapiens.GRCh38.113.gtf.gz"

# 也可在服务器端直接进行下载 $ wget https://ftp.ensembl.org/pub/release-113/gtf/homo_sapiens/Homo_sapiens.GRCh38.113.gtf.gz

2.2 数据的提取及整合

# 加载需要的包 library(rtracklayer) # 读取GTF文件 gtf_data <- import("/data/shumin/GBM/GSE197543/Homo_sapiens.GRCh38.113.gtf.gz") # 查看数据结构 head(gtf_data) ## GRanges object with 6 ranges and 22 metadata columns: ## seqnames ranges strand | source type score phase gene_id gene_version gene_name gene_source gene_biotype transcript_id transcript_version transcript_name transcript_source transcript_biotype ## <Rle> <IRanges> <Rle> | <factor> <factor> <numeric> <integer> <character> <character> <character> <character> <character> <character> <character> <character> <character> <character> ## [1] 1 3069168-3438621 + | ensembl_havana gene NA <NA> ENSG00000142611 17 PRDM16 ensembl_havana protein_coding <NA> <NA> <NA> <NA> <NA> ## [2] 1 3069168-3434342 + | havana transcript NA <NA> ENSG00000142611 17 PRDM16 ensembl_havana protein_coding ENST00000511072 5 PRDM16-206 havana protein_coding ## [3] 1 3069168-3069296 + | havana exon NA <NA> ENSG00000142611 17 PRDM16 ensembl_havana protein_coding ENST00000511072 5 PRDM16-206 havana protein_coding ## [4] 1 3069260-3069296 + | havana CDS NA 0 ENSG00000142611 17 PRDM16 ensembl_havana protein_coding ENST00000511072 5 PRDM16-206 havana protein_coding ## [5] 1 3069260-3069262 + | havana start_codon NA 0 ENSG00000142611 17 PRDM16 ensembl_havana protein_coding ENST00000511072 5 PRDM16-206 havana protein_coding ## [6] 1 3186125-3186474 + | havana exon NA <NA> ENSG00000142611 17 PRDM16 ensembl_havana protein_coding ENST00000511072 5 PRDM16-206 havana protein_coding ## tag transcript_support_level exon_number exon_id exon_version protein_id protein_version ccds_id ## <character> <character> <character> <character> <character> <character> <character> <character> ## [1] <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> ## [2] gencode_primary 5 <NA> <NA> <NA> <NA> <NA> <NA> ## [3] gencode_primary 5 1 ENSE00002048533 1 <NA> <NA> <NA> ## [4] gencode_primary 5 1 <NA> <NA> ENSP00000426975 1 <NA> ## [5] gencode_primary 5 1 <NA> <NA> <NA> <NA> <NA> ## [6] gencode_primary 5 2 ENSE00001754112 1 <NA> <NA> <NA> ## ------- ## seqinfo: 70 sequences from an unspecified genome; no seqlengths # 提取ENSG ID和基因符号 gene_info <- data.frame( ensembl_gene_id = gtf_data$gene_id, gene_symbol = gtf_data$gene_name ) # 去重(如果有重复项) gene_info <- unique(gene_info) # 查看结果 head(gene_info) ## ensembl_gene_id gene_symbol ## 1 ENSG00000142611 PRDM16 ## 221 ENSG00000284616 <NA> ## 227 ENSG00000157911 PEX10 ## 347 ENSG00000260972 <NA> ## 350 ENSG00000224340 RPL21P21 ## 353 ENSG00000229280 EEF1DP6

ꔷ 发现存在多个ENSG(Ensembl基因ID)可能对应一个基因符号(gene symbols),猜测原因:
1)基因重叠和融合:一些基因在基因组上可能会相互重叠,或者通过基因融合事件而形成新的基因。在这种情况下,新的基因可能会共享相同的基因符号。
2)转录本的多样性:基因可以产生多个转录本,这些转录本可能在功能上有不同的角色。尽管它们共享相同的基因符号,但在不同的情况下可能会被分配到不同的ENSG ID。
3)基因家族:某些基因可能属于同一基因家族,可能共享相同的基因符号。

# 计算每个值的频次 freq_table_2 <- table(gene_info$SYMBOL) # 提取频次大于1的值 duplicate_values_2 <- names(freq_table_2[freq_table_2 > 1]) # 取出重复行 duplicates_2 <- gene_info[gene_info$SYMBOL %in% duplicate_values_2, ]


ENSG-2

发布人:4017****    IP:124.223.189***     举报/删稿
展会推荐
让朕来说2句
评论
收藏
点赞
转发