北京治疗白癜风哪间医院疗效好 http://pf.39.net/bdfyy/tslf/在挖掘GEO数据库的过程中,第一步就是获取并整理数据集的表达矩阵。有部分文章会好心的在GSE数据集页面上传整理好的表达矩阵,但绝大多数文章都仅仅是上传基础的信息,需要自行整理表达矩阵。
(如果原作者上传了整理后的表达矩阵,一般都会放在GSE数据集页面的Supplementaryfile处,但是此处的文件也可能是作者的其他附件,需要自行下载并检查是不是我们需要的表达矩阵)
那么整理表达矩阵的关键一步,就是将探针名(probe)转换为基因名(genesymbol),即注释探针。今天小编会介绍第三种注释探针的方法:使用一些R包进行探针注释
一、数据集准备
这次使用的数据集是GSE,是两例H5N1流感后死亡患者肺组织的表达数据,和之前教程的数据集相比,这个数据集样本数较少,数据量也相应的会小一些,应该比较方便重复操作。值得注意的是,一般我们需要一个实验组有三个重复样本,但是该数据集正常样本仅有一例,实验组有四例(如果把患者A、B分开看,两个实验组各有两例)。考虑到是年上传的数据,当年的芯片测序价格可能十分昂贵,而且经查询资料发现-年泰国共计只有25名患者确诊,17名患者死亡,整个国家的样本数量就很少,这个数据集只有两例患者的共4个样品也是能够理解的。
不过总的来说,样本数量的多少并不影响我们后续进行探针注释,但可能影响到差异分析的结果,不过差异分析不在本次教程的范围内,感兴趣的小伙伴可以期待后续的教程~~
回归正题~
这个数据集的芯片是GPL,查看GPL文件后发现这个芯片可以用GPL文件进行注释,和之前两篇教程的操作基本大同小异。
不过本次教程将会用第三种方法进行注释,即用相应的R包进行注释~
二、实际操作
首先,我们需要知道这个芯片能用哪个R包进行注释,我们的芯片是GPLIlluminahuman-6v2.0expressionbeadchip,在bioconductor中查询后发现该芯片可以用illuminaHumanv2.db注释~
PS:细心的小伙伴可能会问,明明芯片名是Illuminahuman-6v2.0expressionbeadchip,为什么不选择下面那个illuminaHumanv2BeadID.db包进行注释?其实我也尝试过了,但是调用以后提示该包已停止维护,请使用最新的包~
表达矩阵有了,芯片对应的包也有了,那我们就开始注释吧~
BiocManager::install("illuminaHumanv2.db")
library(illuminaHumanv2.db)
ls("package:illuminaHumanv2.db")#[1]"illuminaHumanv2""illuminaHumanv2.db"#[3]"illuminaHumanv2ACCNUM""illuminaHumanv2ALIAS2PROBE"#[5]"illuminaHumanv2ARRAYADDRESS""illuminaHumanv2CHR"#[7]"illuminaHumanv2CHRLENGTHS""illuminaHumanv2CHRLOC"#[9]"illuminaHumanv2CHRLOCEND""illuminaHumanv2CODINGZONE"#[11]"illuminaHumanv2ENSEMBL""illuminaHumanv2ENSEMBL2PROBE"#[13]"illuminaHumanv2ENSEMBLREANNOTATED""illuminaHumanv2ENTREZID"#[15]"illuminaHumanv2ENTREZREANNOTATED""illuminaHumanv2ENZYME"#[17]"illuminaHumanv2ENZYME2PROBE""illuminaHumanv2GENENAME"#[19]"illuminaHumanv2GENOMICLOCATION""illuminaHumanv2GO"#[21]"illuminaHumanv2GO2ALLPROBES""illuminaHumanv2GO2PROBE"#[23]"illuminaHumanv2MAP""illuminaHumanv2MAPCOUNTS"#[25]"illuminaHumanv2NUID""illuminaHumanv2OMIM"#[27]"illuminaHumanv2ORGANISM""illuminaHumanv2ORGPKG"#[29]"illuminaHumanv2OTHERGENOMICMATCHES""illuminaHumanv2OVERLAPPINGSNP"#[31]"illuminaHumanv2PATH""illuminaHumanv2PATH2PROBE"#[33]"illuminaHumanv2PFAM""illuminaHumanv2PMID"#[35]"illuminaHumanv2PMID2PROBE""illuminaHumanv2PROBEQUALITY"#[37]"illuminaHumanv2PROBESEQUENCE""illuminaHumanv2PROSITE"#[39]"illuminaHumanv2REFSEQ""illuminaHumanv2REPEATMASK"#[41]"illuminaHumanv2REPORTERGROUPID""illuminaHumanv2REPORTERGROUPNAME"#[43]"illuminaHumanv2SECONDMATCHES""illuminaHumanv2SYMBOL"#[45]"illuminaHumanv2SYMBOLREANNOTATED""illuminaHumanv2UNIGENE"#[47]"illuminaHumanv2UNIPROT""illuminaHumanv2_dbInfo"#[49]"illuminaHumanv2_dbconn""illuminaHumanv2_dbfile"#[51]"illuminaHumanv2_dbschema""illuminaHumanv2fullReannotation"#[53]"illuminaHumanv2listNewMappings"
ids=toTable(illuminaHumanv2SYMBOL)
这里需要特别解释一下,像illuminaHumanv2.db这种包一般都是包含了数据的包,我们可以使用ls()函数查看包内有哪些内容,然后使用toTable函数获得相应的对应关系,这里我们需要把探针转换成SYMBOL,因此我们选择“illuminaHumanv2SYMBOL”。
后续的就很简单了~和前两期类似
ID2gene=idsexprSet-exprSet[ID2gene$probe_id,]dim(exprSet)exprSet[1:5,1:5]tail(sort(table(ID2gene[,2])),n=12L)#注释到相同基因的探针,保留表达量最大的那个探针{MAX=by(exprSet,ID2gene[,2],function(x)rownames(x)[which.max(rowMeans(x))])MAX=as.character(MAX)exprSet=exprSet[rownames(exprSet)%in%MAX,]rownames(exprSet)=ID2gene[match(rownames(exprSet),ID2gene[,1]),2]}dim(exprSet)exprSet[1:5,1:5]#GSMGSMGSMGSMGSM#UBC8.....#EEF1A19.....#TXN9.....#ACTB11.....#SLC35E2A8.....
到这里注释就结束啦~
其实除了官方会在bioconductor上传注释包以外,其他有些作者也会写一些注释用的R包放在bioconductor或者github上,例如Annoprobe就很好用,还有很多其他的包我就不一一列举了,希望各位小伙伴们自行探索哦。注释探针的系列教程系列教程到此结束,希望看完的你能有所收获~~~
注:此推文未经许可禁止转载!阅读推荐:
生信实操丨高级转录组分析WGCNA应该这么做
生信实操丨带你复现单细胞转录组纯分析文章(一)
生信实操
转录本编码区预测神器-TransDecoder详细教程
生信实操
注释芯片探针的三种方法(一)
生信实操
注释芯片探针的三种方法(二)
预览时标签不可点收录于话题#个上一篇下一篇