geo读取表达矩阵 RNA-seq R语言部分(表达矩阵合并及id转换)

这篇具有很好参考价值的文章主要介绍了geo读取表达矩阵 RNA-seq R语言部分(表达矩阵合并及id转换)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

geo读取表达矩阵 RNA-seq R语言
方法一:1.从geo页面直接下载表达矩阵,然后通过r读取表达矩阵
2.利用getgeo函数读取表达矩阵
3.利用geo自带的geo2r,调整p值为1,获取探针和基因名的对应关系

1


#http://zouyawen.top/2020/10/09/%E8%BD%AC%E5%BD%95%E7%BB%844/

getwd()
setwd("G:/silicosis/geo/GSE103548_rna-seq_llc_mle-12/GSE150425_a549_kras_organoid/")

expr.df=read.csv("G:/silicosis/geo/GSE103548_rna-seq_llc_mle-12/GSE150425_a549_kras_organoid/GSE150425_Cufflinks_Gene_Counts/GSE150425_Cufflinks_Gene_Counts.csv",
                   header=T,
                   sep=",", #Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec
                   comment.char="!")
head(expr.df)
head(expr.df)
expr.df[expr.df$Gene_ID %in% 'RETN',]
library(dplyr)



colnames(expr.df)[1]='Gene_Symbol'
expr.df[expr.df$Gene_Symbol=='Retn'|
          expr.df$Gene_Symbol=='Retnlb'|
          expr.df$Gene_Symbol=='Jchain'|
          expr.df$Gene_Symbol=='Igha1'|
          expr.df$Gene_Symbol=='Pdk4'|
          expr.df$Gene_Symbol=='Actb',]

geo rna-seq,笔记,r语言,矩阵,数据挖掘

#http://zouyawen.top/2020/10/09/%E8%BD%AC%E5%BD%95%E7%BB%844/

getwd()
setwd("G:/silicosis/geo/GSE103548_rna-seq_llc_mle-12/GSE133037_a549_transfection 0f runx__tgfb/")

expr.df=read.table("G:/silicosis/geo/GSE103548_rna-seq_llc_mle-12/GSE133037_a549_transfection 0f runx__tgfb/GSE133037_VK-Rx3.TGFb_FPKM/GSE133037_VK.Rx3.TGFb_FPKM.txt",
                          header=T,
                          sep="\t", #Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec
                          comment.char="!")
head(expr.df)

#colnames(expr.df)=expr.df[1,]
input=expr.df
head(input)
library(dplyr)
input=input[,!(grepl(colnames(input),pattern = 'Chr')|
                 grepl(colnames(input),pattern = 'Start')|
                 grepl(colnames(input),pattern = 'End')|
                 grepl(colnames(input),pattern = 'Strand'))]
head(input)
colnames(input)[1]='Gene.ID'
colnames(input)[2]='Gene.Name'

head(input)
mydata=input %>% filter(Gene.Name=='RETNLB'|Gene.Name=='ACTB'|Gene.ID=='1053'|
                          Gene.Name=='56729'|Gene.ID=='3493'|
                          Gene.ID=='3512'|Gene.ID=='3934')
mydata
dim(input)

多个组别 合并 id转化


#http://zouyawen.top/2020/10/09/%E8%BD%AC%E5%BD%95%E7%BB%844/

getwd()
setwd("G:/silicosis/geo/GSE103548_rna-seq_llc_mle-12/GSE135402_A549_TD_tgfb/GSE135402_RAW/GSM4007697_A549-2/")

expr_SRR957678=read.table("G:/silicosis/geo/GSE103548_rna-seq_llc_mle-12/GSE135402_A549_TD_tgfb/GSE135402_RAW/GSM4007697_A549-2/GSM4007696_A549-1.htseq.count.txt",
                             header=FALSE,
                             sep="\t", #Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec
                             comment.char="!")
expr_SRR957677=read.table("G:/silicosis/geo/GSE103548_rna-seq_llc_mle-12/GSE135402_A549_TD_tgfb/GSE135402_RAW/GSM4007697_A549-2/GSM4007697_A549-2.htseq.count.txt",
                          header=FALSE,
                          sep="\t", #Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec
                          comment.char="!")

expr_SRR957679 =read.table("G:/silicosis/geo/GSE103548_rna-seq_llc_mle-12/GSE135402_A549_TD_tgfb/GSE135402_RAW/GSM4007699_TD-2/GSM4007698_TD-1.htseq.count.txt",
                          header=FALSE,
                          sep="\t", #Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec
                          comment.char="!")
expr_SRR957680 =read.table("G:/silicosis/geo/GSE103548_rna-seq_llc_mle-12/GSE135402_A549_TD_tgfb/GSE135402_RAW/GSM4007699_TD-2/GSM4007699_TD-2.htseq.count.txt",
                           header=FALSE,
                           sep="\t", #Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec
                           comment.char="!")


head(expr_SRR957677)
head(expr_SRR957678)


#先对照和实验组分别合并到一个data.frame再合并为一个总的数据框
control <- merge(expr_SRR957677,expr_SRR957678,by="V1")#by="gene_id"按照gene_id这列合并
head(control)

treat <- merge(expr_SRR957679,expr_SRR957680,by="V1")
head(treat)
raw_count <- merge(control,treat,by="V1")
head(raw_count)
colnames(raw_count)=c('gene_id','a5491','a5492','td1','td2')
raw_count <-raw_count[-1:-5,]#删掉前五行,由上一步结果可以看出前五行gene_id有问题
head(raw_count)



2#.去除gene_id名字中的小数点
#EBI数据库中无法搜到ENSG00000000003.10这样的基因,只能是整数ENSG00000000003才能进行id转换

library(stringr)
ENSEMBL <- raw_count$gene_id
 head(ENSEMBL)

 ENSEMBL <- str_split_fixed(ENSEMBL,'[.]',2)[,1]#将小数点及后面的数字去掉,ensembl_gene_id是整数
 head(ENSEMBL)

 rownames(raw_count) <- ENSEMBL#将去除小数点后的ensembl_gene_id作为行名后期方便绘图
 raw_count$ensembl_gene_id <-  ENSEMBL#新建ensembl_gene_id列便于合并
 head(raw_count)


 3.#对基因进行注释,获取gene_symbol
 #bioMart包是一个连接bioMart数据库的R语言接口,能通过这个软件包自由连接到bioMart数据库
# BiocManager::install('biomaRt')
 library(biomaRt)
 
 #显示一下能连接的数据库
 listMarts()
  listMarts()

  #用useMart函数选定数据库
  plant<-useMart("ensembl")
  #用listDatasets()函数显示当前数据库所含的基因组注释,我们要获取的基因注释的基因是人类基因,所以选择hsapiens_gene_ensembl
   listDatasets(plant)
grep(listDatasets(plant)[,1],pattern = 'hsa')
   #选定ensembl数据库中的hsapiens_gene_ensembl基因组
   mart <- useDataset("hsapiens_gene_ensembl", useMart("ensembl"))


   
   #选定我们需要获得的注释类型
   #用lsitFilters()函数查看可选择的类型,选定要获取的注释类型,以及已知注释的类型用lsitFilters()函数查看可选择的类型,选定要获取的注释类型,以及已知注释的类型
    listFilters(mart)   
    #这里我们选择这些要获得数值的类型ensembl_gene_id ,hgnc_symbol chromosome_name start_position end_position band我们已知的类型是ensembl_gene_id选择好数据库,基因组,要获得的注释类型,和已知的注释类型,就可以开始获取注释了
    
    #用getBM()函数获取注释
    hg_symbols<- getBM(attributes=c('ensembl_gene_id','hgnc_symbol',"chromosome_name", "start_position","end_position", "band"), filters= 'ensembl_gene_id', values = ENSEMBL, mart = mart)
    
    #attributers()里面的值为我们要获取的注释类型ensembl_gene_id ,hgnc_symbol chromosome_name start_position end_position band
    #filters()里面的值为我们已知的注释类型ensembl_gene_id
    #values= 这个值就是我们已知的注释类型的数据,把上面我们通过数据处理得到的ensembl基因序号作为ensembl_gene_id 的值
    #mart= 这个值是我们所选定的数据库的基因组
    head(hg_symbols)   
   
 getwd()  
 setwd("G:/silicosis/geo/GSE103548_rna-seq_llc_mle-12/GSE135402_A549_TD_tgfb")
    save(mart, file = "mart.RData")#将mart变量保存为mart.RData
    save(hg_symbols, file = "hg_symbols.RData")#将hg_symbols变量保存为hg_symbols,biomart包不太稳定,有时连不上    
    
    
    4.#将合并后的表达数据框raw_count与注释得到的hg_symbols整合    
    
 read_count <- merge(raw_count,hg_symbols,by="ensembl_gene_id")#将raw_count与注释后得到的hg_symbols合并
     head(read_count)    
    openxlsx::write.xlsx(read_count,file = "readcount_all.xlsx")    

   input =openxlsx::read.xlsx("G:/silicosis/geo/GSE103548_rna-seq_llc_mle-12/GSE135402_A549_TD_tgfb/readcount_all.xlsx") 
     
library(dplyr)
input=input[,!(grepl(colnames(input),pattern = 'Chr')|
                 grepl(colnames(input),pattern = 'Start')|
                 grepl(colnames(input),pattern = 'End')|
                 grepl(colnames(input),pattern = 'Strand'))]
head(input)
colnames(input)[1]='Gene.ID'
colnames(input)[7]='Gene.Name'

head(input)
mydata=input %>% filter(Gene.Name=='RETNLB'|Gene.Name=='ACTB'|Gene.ID=='ENSG00000104918'|
                          Gene.Name=='RETN'|Gene.ID=='ENSG00000132465'|
                          Gene.ID=='ENSG00000211895'|Gene.ID=='ENSG00000092067')
mydata
dim(input)

下载表达矩阵和getgeo函数联合使用


#http://zouyawen.top/2020/10/09/%E8%BD%AC%E5%BD%95%E7%BB%844/

getwd()
setwd("G:/silicosis/geo/GSE103548_rna-seq_llc_mle-12/GSE114761_various_A549_TGFB/")

expr.df=read.table("G:/silicosis/geo/GSE103548_rna-seq_llc_mle-12/GSE114761_various_A549_TGFB/geo2r.tsv",
                   header=T,
                   sep="\t", #Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec
                   comment.char="!")
head(expr.df)
expr.df[1:10,]
#colnames(expr.df)=expr.df[1,]
input=expr.df
head(input)
library(dplyr)
input=input[,!(grepl(colnames(input),pattern = 'Chr')|
                 grepl(colnames(input),pattern = 'Start')|
                 grepl(colnames(input),pattern = 'End')|
                 grepl(colnames(input),pattern = 'Strand'))]
head(input)
grep(input$Gene.title,pattern = 'RETN')
input[grep(input$Gene.symbol,pattern = 'RETN'),]
input[grep(input$Gene.symbol,pattern = 'IGHA1'),]
input[grep(input$Gene.title,pattern = 'immunoglobulin heavy'),]



library(GEOquery)
f='GSE114761_eSet.Rdata'
if(!file.exists(f)){
  gset <- getGEO('GSE114761', destdir=".",
                 AnnotGPL = F,     ## 注释文件
                 getGPL = F)       ## 平台文件
  save(gset,file=f)   ## 保存到本地
}

getwd()
load('GSE114761_eSet.Rdata')  ## 载入数据
class(gset)  #查看数据类型
length(gset)  #
class(gset[[1]])
gset
exprs(gset[[1]])
gset[[1]]


a=exprs(gset[[1]])
head(a)
a['220570_at',]
a[rownames(a)=='220570_at',]

input[grep(input$Gene.symbol,pattern = 'IGHA1'),][,1]
a[rownames(a) %in% input[grep(input$Gene.symbol,pattern = 'IGHA1'),][,1],]
a[rownames(a) %in% input[grep(input$Gene.title,pattern = 'IGCJ'),][,1],]


myexpression=as.data.frame(a)
head(myexpression)
myexpression$probe_id=rownames(myexpression)
head(myexpression)

head(input)
input$probe_id=input$ID
head(input)

mydata=merge(myexpression,input,by='probe_id')
head(mydata)

colnames(a)
boxplot(mydata[,2:42])
getwd()
save(mydata,file = "G:/silicosis/geo/GSE103548_rna-seq_llc_mle-12/GSE114761_various_A549_TGFB/myexpression_matrix.rds")
load("G:/silicosis/geo/GSE103548_rna-seq_llc_mle-12/GSE114761_various_A549_TGFB/myexpression_matrix.rds")

colnames(mydata)
a=read.table(file = 'clipboard')
head(a)
a=a[-1,]
a
colnames(mydata)[2:43]=a$V2
head(mydata)


mydata[mydata$Gene.symbol=='RETN'|
         mydata$Gene.symbol=='IGHA1'|
         mydata$Gene.symbol=='RETNLB',]




读取excel表达矩阵文章来源地址https://www.toymoban.com/news/detail-615344.html


getwd()
setwd("G:/silicosis/geo/GSE103548_rna-seq_llc_mle-12/GSE164160_CMT64_TGFB_Alveogenic lung carcinoma/")

syndecan_fibrosis=openxlsx::read.xlsx("G:/silicosis/geo/GSE103548_rna-seq_llc_mle-12/GSE164160_CMT64_TGFB_Alveogenic lung carcinoma/GSE164160_RAW/GSM4998575_TGFb_1.clean_trimmed_GE_.xlsx",
                                      colNames = T)
head(syndecan_fibrosis)

input=syndecan_fibrosis
library(dplyr)
input=input[,!(grepl(colnames(input),pattern = 'Region')|
                 grepl(colnames(input),pattern = 'Start')|
                 grepl(colnames(input),pattern = 'End')|
                 grepl(colnames(input),pattern = 'Strand'))]
head(input)
mydata=input %>% filter(Name=='Regnla'|Name=='Actb'|ENSEMBL=='ENSMUSG00000061100'|ENSEMBL=='ENSMUSG00000015839'|
                          Name=='Retnlg'|ENSEMBL=='ENSMUSG00000052435'|
                          ENSEMBL=='ENSMUSG00000095079'|ENSEMBL=='ENSMUSG00000067149')
mydata
dim(input)
#################################33
syndecan_fibrosis=openxlsx::read.xlsx("G:/silicosis/geo/GSE103548_rna-seq_llc_mle-12/GSE164160_CMT64_TGFB_Alveogenic lung carcinoma/GSE164160_RAW/GSM4998576_TNFa_1.clean_trimmed_GE_.xlsx",
                                      colNames = T)
head(syndecan_fibrosis)

input=syndecan_fibrosis
library(dplyr)
input=input[,!(grepl(colnames(input),pattern = 'Region')|
                 grepl(colnames(input),pattern = 'Start')|
                 grepl(colnames(input),pattern = 'End')|
                 grepl(colnames(input),pattern = 'Strand'))]
head(input)
mydata=input %>% filter(Name=='Regnla'|Name=='Actb'|ENSEMBL=='ENSMUSG00000061100'|ENSEMBL=='ENSMUSG00000015839'|
                          Name=='Retnlg'|ENSEMBL=='ENSMUSG00000052435'|
                          ENSEMBL=='ENSMUSG00000095079'|ENSEMBL=='ENSMUSG00000067149')
mydata
dim(input)

到了这里,关于geo读取表达矩阵 RNA-seq R语言部分(表达矩阵合并及id转换)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何快速下载GEO数据并获取其表达矩阵与临床信息 | 附完整代码 + 注释

    GEO数据库可以说是大家使用频率贼高的数据库啦!那它里面的数据怎么下载大家知道嘛!今天给大家展示一种快速获取它的表达矩阵和临床信息的方法! 话不多说!咱们直接开始! 在GEO数据库中,你找到了你需要的数据,接下来怎么办嘞!下载它!处理它! 比如,咱们今天

    2024年04月08日
    浏览(94)
  • 表达矩阵任意两个基因相关性分析 批量相关性分析 tcga geo 矩阵中相关性强的基因对 基因相关性 ecm matrisome与gpx3

    使用场景 1.已经确定研究的基因,但是想探索他潜在的功能,可以通过跟这个基因表达最相关的基因来反推他的功能,这种方法在英语中称为 guilt of association,协同犯罪 。 2.我们的注释方法依赖于TCGA大样本,既然他可以注释基因,那么任何跟肿瘤相关的基因都可以被注释,

    2024年02月01日
    浏览(60)
  • 使用cbind函数合并矩阵数据的方法(R语言)

    使用cbind函数合并矩阵数据的方法(R语言) 在R语言中,cbind函数是一个常用的函数,用于将多个向量、矩阵或数据框按列合并成一个新的矩阵。本文将介绍如何使用cbind函数将数据合并成一个矩阵,并提供相应的源代码示例。 假设我们有两个矩阵A和B,它们的维度分别为m×

    2024年02月03日
    浏览(36)
  • NLP-语义解析(Text2SQL):技术路线【Seq2Seq、模板槽位填充、中间表达、强化学习、图网络】

      目前关于NL2SQL技术路线的发展主要包含以下几种: Seq2Seq方法: 在深度学习的研究背景下,很多研究人员将Text-to-SQL看作一个类似神经机器翻译的任务,主要采取Seq2Seq的模型框架。基线模型Seq2Seq在加入Attention、Copying等机制后,能够在ATIS、GeoQuery数据集上达到84%的精确匹配,但是在

    2024年02月12日
    浏览(65)
  • C语言数据结构课设:矩阵的运算(转置.求和.求差.矩阵相乘.求逆.数乘),文件读取矩阵

      #include stdio.h #include string.h #includestdlib.h #includemath.h // 定义一个结构体类型,表示一个矩阵 typedef struct matrix {     int nrow; // 矩阵的行数     int ncol; // 矩阵的列数     double data[10][10]; // 矩阵的数据,最大为 10 x 10 } matrix; // 定义一个函数,用于显示一个矩阵的内容  void dis

    2024年03月27日
    浏览(58)
  • 【生物信息学】单细胞RNA测序数据分析:计算亲和力矩阵(基于距离、皮尔逊相关系数)及绘制热图(Heatmap)

      计算亲和力矩阵,一般按照以下步骤进行: 导入数据:加载单细胞RNA测序数据集。 数据预处理:根据需要对数据进行预处理,例如 基因过滤 、 归一化 等。 计算亲和力:使用合适的算法(例如, 欧几里德距离 、 Pearson相关系数 或其他距离/相似度度量)计算样本之间的

    2024年02月06日
    浏览(47)
  • 自然语言处理: 第四章Seq2Seq

    开始之前,首先提出一个问题,电脑是怎么识别人类的命令的,首先人们通过输入代码(编码) ,带入输入给计算机然后再经过处理(解码)得到最终的命令。所以可以看到这其实是一个编码 + 解码的过程。可以看到首先我们将初始的信息通过编码,得到涵盖全局的信息的特征然

    2024年02月12日
    浏览(53)
  • 生信小白学单细胞转录组(sc-RNA)测序数据分析——R语言

    10X单细胞转录组理论上有3个文件才能被读入R进行seurat分析,分别是barcodes.tsv 、 genes.tsv和matrix.mtx,文件barcodes.tsv 和 genes.tsv,就是表达矩阵的行名和列名 genes.tsv文件(有时也叫features.tsv文件) 文件内容:有两列,第一列为基因ID,第二列为基因Symbol ID,区分 各个基因 。 b

    2024年02月04日
    浏览(65)
  • GPM合并资料整理-GEM部分

    1. CPU模块 上报键值 说明 采集平台 cpu 当前进程cpu使用率平均值 Android iOS totcpu 系统cpu总使用率平均值 Android iOS cpu_temp_max cpu最高温度 Android cpu_temp_avg cpu温度平均值 Android gpu_temp_avg gpu温度平均值 Android gpu_temp_max gpu最高温度 Android gpu gpu使用率平均值 Android gpu_model gpu型号 Androi

    2024年02月02日
    浏览(39)
  • git从其他分支merge个别文件,部分合并文件

    简介 git 使用的过程中,有时候我们可能会有这样的需求, 别的分支上有部分文件是我们当前分支需要的,但是如果使用常规的merge,就会将别的分支的内容全部合并过来,这不是我们想要的,下面简单介绍一个小技巧可以实现只合并指定的文件。 场景一 目前有master 和 dev

    2024年02月07日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包