community.aln {bio3d} | R Documentation |
Find equivalent communities from two or more networks and renumber them in a consistent way across networks.
community.aln(x, ...)
x, ... |
two or more objects of class |
This function facilitates the inspection on the variance of the community
partition in a group of similar networks. The original community numbering
(and so coloring in plot.cna
) can be inconsistent across networks,
i.e. equivalent communities may have different numbering in different
networks. The function calculates the dissimilarity between all communities
and clusters communities with ‘hclust’ funciton. In each cluster, 0 or
1 community per network is included. Communities are then renumbered
according to the clusters through all networks. Note that the
‘membership’ in $communities
is not updated because some basic
‘igraph’ functions such as length
assume the ‘membership’
a consecutive integer vector. Instead, a ‘renumbered’ membership
vector is added as an extra component in the returned ‘cna’ object.
Returns a list of updated cna
objects.
# Needs MUSCLE installed - testing excluded if(check.utility("muscle")) { if (!requireNamespace("igraph", quietly = TRUE)) { message('Need igraph installed to run this example') } else { ## Fetch PDB files and split to chain A only PDB files ids <- c("1tnd_A", "1tag_A") files <- get.pdb(ids, split = TRUE, path = tempdir()) ## Sequence Alignement pdbs <- pdbaln(files, outfile = tempfile()) ## Normal mode analysis on aligned data modes <- nma(pdbs, rm.gaps=TRUE) ## Dynamic Cross Correlation Matrix cijs <- dccm(modes)$all.dccm ## Correlation Network nets <- cna(cijs, cutoff.cij=0.3) ## Align network communities nets.aln <- community.aln(nets) ## plot all-residue and coarse-grained (community) networks pdb <- pdbs2pdb(pdbs, inds=1, rm.gaps=TRUE)[[1]] op <- par(no.readonly=TRUE) # before alignment par(mar=c(0.1, 0.1, 0.1, 0.1), mfrow=c(2,2)) invisible( lapply(nets, function(x) plot(x, layout=layout.cna(x, pdb=pdb, k=3, full=TRUE)[, 1:2], full=TRUE)) ) invisible( lapply(nets, function(x) plot(x, layout=layout.cna(x, pdb=pdb, k=3)[, 1:2])) ) # after alignment par(mar=c(0.1, 0.1, 0.1, 0.1), mfrow=c(2,2)) invisible( lapply(nets.aln, function(x) plot(x, layout=layout.cna(x, pdb=pdb, k=3, full=TRUE)[, 1:2], full=TRUE)) ) invisible( lapply(nets.aln, function(x) plot(x, layout=layout.cna(x, pdb=pdb, k=3)[, 1:2])) ) par(op) } }