if(requireNamespace("igraph", quietly = TRUE)){
# Read the tab-delimited file containing he proteome incidence matrix
incM_filename <- system.file( "extdata"
, "incM_example"
, package = "net4pg"
, mustWork = TRUE)
rownames_filename <- system.file( "extdata"
, "peptideIDs_incM_example"
, package = "net4pg"
, mustWork = TRUE)
colnames_filename <- system.file( "extdata"
, "proteinIDs_incM_example"
, package = "net4pg"
, mustWork = TRUE)
incM <- read_inc_matrix(incM_filename = incM_filename
, colnames_filename = colnames_filename
, rownames_filename = rownames_filename)
# Only retain proteins with at least one shared peptide and all peptides
# mapping on such proteins.
incM_reduced <- reduce_inc_matrix(incM)
# Generate adjacency matrix describing protein-to-protein mappings
adjM <- get_adj_matrix(incM_reduced)
# Generate graph of protein-to-protein connections and calculate its
# connected components
multProteinCC <- get_cc(adjM)
# For each connected component, extract peptides mapping on its protein
# members and the subset of the incidence matrix describing
# peptide-to-protein mappings
cc.peptides.incM <- cc_composition(cc.proteins = multProteinCC$cc
, incM = incM)
# Plot bipartite graph representing peptide-to-protein mappings for the
# connected component of the protein of interest (in this toy example protein
# "ENSP261"; note that identifiers are not authentic but made up for the
# example)
subgraphCC <- plot_cc(prot="ENSP261"
, cc.proteins=multProteinCC$ccs
, cc.subincM=cc.peptides.incM$cc.subincM
, tagProt = "ENSP"
, tagContam="Contam"
, incM=incM)
igraph::plot.igraph(subgraphCC$g
, edge.width = 1
, edge.arrow.width = 0.3
, vertex.size = 10
, edge.arrow.size = 0.5
, vertex.size2 = 3
, vertex.label.cex = 0.8
, asp = 0.35
, margin = -0.1) +
title(paste0("Protein ENSP261 in CC #", subgraphCC$cc_id), line = -1)
} else {
}
Run the code above in your browser using DataLab