## ---- echo=TRUE,eval=FALSE---------------------------------------------------- # require(STRINGdb) # require(igraph) # require(biomaRt) # # # 1. getSTRINGdb for human # string_db <- STRINGdb$new(species=9606) # human_graph <- string_db$get_graph() # # # 2. get edges with high confidence score # edge.scores <- E(human_graph)$combined_score # ninetyth.percentile <- quantile(edge.scores, 0.9) # thresh <- data.frame(name='90th percentile', # val=ninetyth.percentile) # human_graph <- subgraph.edges(human_graph, # E(human_graph)[combined_score > ninetyth.percentile]) # # # 3. create adjacency matrix # adj_matrix <- as_adjacency_matrix(human_graph) # # # # 4. map gene ids to protein ids # # ### get gene/protein ids via Biomart # mart=useMart(host = 'grch37.ensembl.org', # biomart='ENSEMBL_MART_ENSEMBL', # dataset='hsapiens_gene_ensembl') # # ### extract protein ids from the human network # protein_ids <- sapply(strsplit(rownames(adj_matrix), '\\.'), # function(x) x[2]) # # ### get protein to gene id mappings # mart_results <- getBM(attributes = c("ensembl_gene_id", # "ensembl_peptide_id"), # filters = "ensembl_peptide_id", values = protein_ids, # mart = mart) # # ### replace protein ids with gene ids # ix <- match(protein_ids, mart_results$ensembl_peptide_id) # ix <- ix[!is.na(ix)] # # newnames <- protein_ids # newnames[match(mart_results[ix,'ensembl_peptide_id'], newnames)] <- # mart_results[ix, 'ensembl_gene_id'] # rownames(adj_matrix) <- newnames # colnames(adj_matrix) <- newnames # # ppi <- adj_matrix[!duplicated(newnames), !duplicated(newnames)] # nullrows <- Matrix::rowSums(ppi)==0 # ppi <- ppi[!nullrows,!nullrows] ## ppi is the network with gene ids ## ----------------------------------------------------------------------------- sessionInfo()