• 全国 [切换]
  • 二维码
    筹货展会网

    手机WAP版

    手机也能找商机,信息同步6大终端平台!

    微信小程序

    微信公众号

    当前位置: 首页 » 行业新闻 » 热点新闻 » 正文

    R语言小记3:ENSG和基因symbol间的名称转换

    放大字体  缩小字体 发布日期:2024-11-01 14:24:48   浏览次数:24  发布人:4017****  IP:124.223.189***  评论:0
    导读

    0. 数据准备(加载自己需要转换的数据) Data <- read.table("GSE197543/GSE197543_UMIsMatrix.txt", header = T)head(row.names(Data)) ## [1] "ENSG00000225972" "ENSG00000225630" "ENSG00000237973" "ENSG00000248527" "ENSG00

    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**** 发布的作品,本文仅代表发布者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,发布者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们154208694@qq.com删除,我们积极做(权利人与发布者之间的调停者)中立处理。郑重说明:不 违规举报 视为放弃权利,本站不承担任何责任!
    有个别老鼠屎以营利为目的遇到侵权情况但不联系本站或自己发布违规信息然后直接向本站索取高额赔偿等情况,本站一概以诈骗报警处理,曾经有1例诈骗分子已经绳之以法,本站本着公平公正的原则,若遇 违规举报 我们100%在3个工作日内处理!
    0相关评论
     

    (c)2008-现在 All Rights Reserved.