Multiple residues for cnapath()
Hello,
Is it possible to include multiple residues in cnapath() for the source and sink? There are multiple residues involved in the binding site.
If possible,
How to define the residues in the function?
cnapath(net, from= 2:18, to=(114, 126), k=50, ncore=4)
Thank you
Comments (7)
-
-
reporter Thank you
-
reporter Hi,
Moreover, is it possible to define source and sink between two different domains/chains?
For example:
from=(chain=”A”, resno=2:18) to= (chain=”B”, elety=c(62,90,92,114))
Thank you
-
Yes, it is possible but not the way you posted. All residues in the network are renumbered from 1 to the total number of nodes. So, in your case, you need to find out what node No. is for the corresponding residue/atom.
One solution is to use the
atom.select()
. Create two atom lists: First, all atoms used to build the network.
inds0 <- atom.select(pdb, XXX) # replace "XXX" with content that matches your case.
Then, atoms defined for the “source”:
inds1 <- atom.select(pdb, chain="A", resno=2:18)
Finally, find the numbering of residues in the network:
myinds <- match(inds1$atom, inds0$atom)
Use the last variable for the “source” (similarly, you can do it for the “sink”).
-
reporter Worked!
Thank you
-
reporter Hello again,
Path analysis for multiple source and sink residues worked as you proposed. I’m having difficulty understanding the “normalized“ and “un-normalized“ node degeneracy values. I have attached the summary file (pa.png) and extracted un-normalized (node_degeneracy.png) data.For example, node 17, the normalized degeneracy is 0.12. The corresponding number of paths are 4670 (circled in the image) and the total number of paths calculated are 95200. 4670/95200 doesn't give 0.12.
Am I missing something?
Thanks.
Below is the code I used,
cij <- filter.dccm(cij, cutoff.cij = 0.4)
net <- cna(cij, cutoff.cij=0)
pdb1 <- convert.pdb(pdb1, renumber=TRUE,verbose=TRUE)
inds0 <- atom.select(pdb1)
inds1 <- atom.select(pdb1, chain=c("A","B","C","D","E","F","G"), resno=c(2:18, 195:211, 388:404, 581:597, 774:790, 967:983, 1160:1176))
inds2 <- atom.select(pdb1, chain="A", resno=c(62,90,92,114,189,22,23,28,30,44,48,82,49,52,60,51))myinds1 <- match(inds1$atom, inds0$atom)
myinds2 <- match(inds2$atom, inds0$atom)############################################################################
pa_whole <- cnapath(net, from= myinds1, to=myinds2, k=50, ncore=20)'
-
Hi,
Can you send me the
pa_whole
result so I can look into it? You can save it by, e.g.,save(pa_whole, file="pa.RData")
and attached the file here (if it is not too large). Or, you can send the file to xinqiu.yao@gmail.com.
- Log in to comment
Hi,
Yes, it is possible. Use something like:
cnapath(net, from= 2:18, to=c(114, 126), k=50, ncore=4)
.Note that it will search
k
paths for all pairs between "from" and "to", meaning it will return maximally 50x17x2=1700 paths.