Creating Protein Structure Networks
Hello, I’ve read the tutorials about Protein Structure Network and I tried to use my own data but failed.
Before I use the bio3D, I’ve finished Correlation Analysis and got a matrix in txt format which means I want to skip some steps in the tutorial to reach my goal. PDB file can be correctly read while my matrix can’t. I think some changes in the tutorials need to be done in the following lines:
modes <- nma(pdb)
cij <- dccm(modes)
net <- cna(cij, cutoff.cij=0.3)
However, I’m still a green hand in R and cannot correctly shift my matrix.txt file into the cij variable. I wish someone could help me solve the issue.
Thx a lot.
Comments (10)
-
-
reporter Yes, I’ve tried this but something is still wrong. I couldn’t get the net plot as the picture shown below.
I checked the class(cij) in the tutorials example and it turned out to be “dccm” “matrix” while mine result is just “matrix”. I don’t know whether this is the key to the problem.
Attached with the comment is part of my matrix since I wonder whether something is wrong with my matrix file and hope you can help me find the solution.
Thank you.
-
reporter - attached matrix_part.txt
part of my matrix file
-
The class of matrix should be fine.
Try just typing
net
, what does it tell you? If no error/warning, the network object should be fine. And the problem must be from pdb.Try just
plot(net)
. Do you see a plot?One possibility is the pdb contain non-protein atoms, or the number of residues does not match the number of nodes in the network.
Let me know if it helps.
-
reporter Yes, it worked after I removed some ions in the pdb file. Besides, I wonder whether some non-standard amino acids in the pdb file could affect the accuracy of the result.
Hope to hear from you soon.
Thank you.
-
Bio3D can recognize non-standard amino acids.
Type
pdb
and see if it says Non-protein/nucleic atoms#: 0.If non-standard amino acids are expected to be in the network, the result should be fine.
-
reporter By typing pdb, I got this:
Non-protein/nucleic Atoms#: 221 (residues: 20)
Non-protein/nucleic resid values: [ CY1 (8), CY2 (3), CY3 (6), HD1 (2), HE1 (1) ]These are some residues closely similar to CYS and HIS, differing only a few hydrogen ions. Is that necessary to manually edit the pdb file or could you please give me a better solution.
Thanks.
-
If you didn’t get any error/warning, I don’t think you need to change the names. The function distinguishes residues by residue numbers and extracts C-alpha coordinates to build the layout of the plot. I assume all those unrecognized residues have C-alpha, right?
You may change the residue name for double checking anyway. For example,
pdb$atom$resid[pdb$atom$resid=="CY1"] <- "CYS" ...
-
reporter I think it’s working properly now.
Thank you very much.
-
reporter - changed status to resolved
- Log in to comment
Hi,
Try
cij <- as.matrix(read.table("cij.txt"))