Multiple residues for cnapath()

Issue #895 new
ashan dayananda created an issue

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)

  1. Xinqiu Yao

    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.

  2. ashan dayananda 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

  3. Xinqiu Yao

    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”).

  4. ashan dayananda 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)'

  5. Xinqiu Yao

    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.

  6. Log in to comment