<p>This is my first time posting to stack exchange, as well as to using data-driven approaches, so please correct me if my questions is not clear enough.</p>
<p>I am trying to parse 200+ <em>.pdb</em> files to extract residues within 15 angstroms of a certain ligand. I have managed to extract the resnames in a text file.</p>
<p>In order to do a sanity check, I first ran my code on the first 5 pdb files of this list and compared the outputs to expected output. However, I was wondering if there are any other steps I can take to make my check more robust.</p>
<p>Are there any 'gold standard'/good  practices related to this?</p>

CC BY-SA 4.0
2023-06-24T01:24:00.693Z
Please clarify your specific problem or provide additional details to highlight exactly what you need. As it's currently written, it's hard to tell exactly what you're asking.
Community
CC BY-SA 4.0
2023-06-24T02:13:00.140Z
Welcome to the site. Could you kindly provide further details, e.g. are you using pymol, biopython PDB and what code have you written to date? Any reproducible example is always welcome.
M__
CC BY-SA 4.0
2023-06-25T19:31:09.230Z
Add a counter to be sure you're parsing the exact amount of pdbs you expect to parse ? Check for the ligand before extracting the interacting residue ? Check for duplicate pdbs ?
pippo1980
CC BY-SA 4.0
2023-06-27T22:15:36.820Z
Thank you @M__. I am using VMD to parse through the PDB files. I can share my algorithm as follows:

1. Load the PDB into vmd. \

2. Identify the number of occurances of ligand, say Na+. \

3. For each of the occurance of Na+, identify the atoms within 5A of distance from it. \

4. Extract the resid and chain names for each of those atoms and store it as a pair in a variable pair_list. \

5. Filter out the repeated pairs to make sure I am counting every residue only once **bold**(quick Q: do you think the combo of resid and chain are sufficient to avoid repeated counting?) **bold**
Priyanshu Gupta
CC BY-SA 4.0
2023-06-27T22:20:28.383Z
6. Extract the resnames of those unique residues and save it in a text file.

7. Repeat this process for all the PDB in current directory.

I have added the TCL script doing this for NH4+ at this github link: https://github.com/priyanshurg/TCLScripts/blob/main/reslist4-Within5.tcl
Priyanshu Gupta
CC BY-SA 4.0
2023-06-27T22:29:02.580Z
Thank you @pippo1980ONSTRIKE! <br>
Could you recommend what property in the PDB file I can use to classify PDBs as similar? For example there are many versions of the KcsA protein in RCSB. <br> 
Your point about _duplicate pdbs_ made me realise that my database may be biased by proteins that are studied more often compared to others. Do you have any thoughts on how you'd go about mitigating this bias?
Priyanshu Gupta
CC BY-SA 4.0
2023-06-28T09:32:29.600Z
dont know see  https://actanaturae.ru/2075-8251/article/view/10699/pdf materials % methods, you could drop structures too similar or sequences too similar I believe its on you , try both and look at the differences  or you could just concentrate on the active site alone using similar approach
pippo1980
<proteins><database><pdb>
Good practices for doing sanity checks when parsing multiple PDB files
# Good practices for doing sanity checks when parsing multiple PDB files

(Asked by: username_0 on 2023-06-24)

This is my first time posting to stack exchange, as well as to using data-driven approaches, so please correct me if my questions is not clear enough.

I am trying to parse 200+ *.pdb* files to extract residues within 15 angstroms of a certain ligand. I have managed to extract the resnames in a text file.

In order to do a sanity check, I first ran my code on the first 5 pdb files of this list and compared the outputs to expected output. However, I was wondering if there are any other steps I can take to make my check more robust.

Are there any 'gold standard'/good practices related to this?

**Tags:** proteins, database, pdb
> **Comments:**
> **username_1**: Please clarify your specific problem or provide additional details to highlight exactly what you need. As it's currently written, it's hard to tell exactly what you're asking.  
> **username_2**: Welcome to the site. Could you kindly provide further details, e.g. are you using pymol, biopython PDB and what code have you written to date? Any reproducible example is always welcome.  
> **username_3**: Add a counter to be sure you're parsing the exact amount of pdbs you expect to parse ? Check for the ligand before extracting the interacting residue ? Check for duplicate pdbs ?  
> **username_0**: Thank you @M__. I am using VMD to parse through the PDB files. I can share my algorithm as follows:  1. Load the PDB into vmd. \  2. Identify the number of occurances of ligand, say Na+. \  3. For each of the occurance of Na+, identify the atoms within 5A of distance from it. \  4. Extract the resid and chain names for each of those atoms and store it as a pair in a variable pair_list. \  5. Filter out the repeated pairs to make sure I am counting every residue only once **bold**(quick Q: do you think the combo of resid and chain are sufficient to avoid repeated counting?) **bold**  
> **username_0**: 6. Extract the resnames of those unique residues and save it in a text file.  7. Repeat this process for all the PDB in current directory.  I have added the TCL script doing this for NH4+ at this github link: https://github.com/priyanshurg/TCLScripts/blob/main/reslist4-Within5.tcl  
> **username_0**: Thank you @pippo1980ONSTRIKE! <br> Could you recommend what property in the PDB file I can use to classify PDBs as similar? For example there are many versions of the KcsA protein in RCSB. <br>  Your point about _duplicate pdbs_ made me realise that my database may be biased by proteins that are studied more often compared to others. Do you have any thoughts on how you'd go about mitigating this bias?  
> **username_3**: dont know see  https://actanaturae.ru/2075-8251/article/view/10699/pdf materials % methods, you could drop structures too similar or sequences too similar I believe its on you , try both and look at the differences  or you could just concentrate on the active site alone using similar approach  

---

## 0 answers

