美文网首页ggplot集锦
WGCNA衍生:差异基因取一步邻居(蛋白互作)

WGCNA衍生:差异基因取一步邻居(蛋白互作)

作者: 挽山 | 来源:发表于2020-06-30 08:00 被阅读0次
    #在string网络中取差异基因的一步邻居
    DEGs<-read.delim(file.choose(),header=T,sep="\t") #file=1.7-protein_coding_?.txt
    pc<-DEGs[DEGs$Gene.type=='protein_coding',][,1]
    head(pc)
    #如果是list,取邻居报错
    typeof(pc);pc<-as.vector(unlist(pc));length(pc)
    
    #自定义取一邻居函数
    getneighbor<-function(gene,net){
      neighbor=c()
      for (i in gene){
        neighbor=c(neighbor,which(net[i,]>0))
      }
      neighbor=colnames(net)[unique(neighbor)]
    }
    
    library(igraph)
    string<-read.table(file.choose(),header=F,sep="\t") # file=string_700_si.txt
    g<-graph.data.frame(string,directed = F)
    #g<-simplify(g0) 
    
    net<-get.adjacency(g)
    
    nodes<-1:nrow(net)
    names(nodes)<-rownames(net)
    
    #在PPI中的DEGs
    PPI_pc<-intersect(names(nodes),pc);length(PPI_pc)
    write.table(paste('PCgene_in_net','Neighbor',sep = '\t'),"8.1-CC_pc-edges_0.05_2.txt",append=T,row.names=F,col.names = F,quote = F)
    
    for (i in 1:length(PPI_pc)) {
      Nei=getneighbor(c(PPI_pc[i]),net)
      write.table(paste(PPI_pc[i],Nei,sep = '\t'),"8.1-CC_pc-edges_0.05_2.txt",append=T,row.names=F,col.names = F,quote = F)
    }
    
    Nei<-getneighbor(PPI_pc,net);length(Nei)
    
    wgcna<-union(pc,Nei);length(wgcna)
    
    wgcna<-as.matrix(wgcna);colnames(wgcna)<-'W_gene';head(wgcna)
    
    #WGCNA matrix
    matrix<-read.table(file = file.choose(),header = T,sep = '\t')
    head(matrix)
    co_expression<-merge(wgcna,matrix,by.x = 'W_gene',by.y = 'Symbol')
    head(co_expression);dim(co_expression)
    
    write.table(co_expression,"6-CC_PPI_WGCNA.txt",row.names = F,quote = F,sep="\t")
    
    

    相关文章

      网友评论

        本文标题:WGCNA衍生:差异基因取一步邻居(蛋白互作)

        本文链接:https://www.haomeiwen.com/subject/bpoxhhtx.html