Author: bugman
Date: Fri Feb 20 10:07:31 2015
New Revision: 27690

URL: http://svn.gna.org/viewcvs/relax?rev=27690&view=rev
Log:
Improved the RelaxWarning for missing atom numbers in the PDB CONECT records.

This is for the structure.read_pdb user function.  Now only one warning is 
given for the entire PDB
file listing all of the missing atom numbers rather than one warning per 
missing atom.  This can
significantly compact the warnings, removing a lot of repetition.


Modified:
    trunk/lib/structure/internal/molecules.py

Modified: trunk/lib/structure/internal/molecules.py
URL: 
http://svn.gna.org/viewcvs/relax/trunk/lib/structure/internal/molecules.py?rev=27690&r1=27689&r2=27690&view=diff
==============================================================================
--- trunk/lib/structure/internal/molecules.py   (original)
+++ trunk/lib/structure/internal/molecules.py   Fri Feb 20 10:07:31 2015
@@ -114,9 +114,6 @@
             if self.atom_num[j] == atom_num:
                 return j
 
-        # Should not be here, the PDB connect records are incorrect.
-        warn(RelaxWarning("The atom number " + repr(atom_num) + " from the 
CONECT record cannot be found within the ATOM and HETATM records."))
-
 
     def _det_pdb_element(self, atom_name):
         """Try to determine the element from the PDB atom name.
@@ -394,6 +391,7 @@
 
         # Loop over the records.
         water = []
+        missing_connect = []
         for record in records:
             # Nothing to do.
             if not record or record == '\n':
@@ -440,13 +438,27 @@
                     if not bonded:
                         continue
 
+                    # The atom indices.
+                    serial_index = self._atom_index(serial)
+                    bonded_index = self._atom_index(bonded)
+
                     # Skip broken CONECT records (for when the record points 
to a non-existent atom).
-                    if self._atom_index(serial) == None or 
self._atom_index(bonded) == None:
+                    if serial_index == None:
+                        if serial not in missing_connect:
+                            missing_connect.append(serial)
                         continue
+                    if bonded_index == None:
+                        if bonded not in missing_connect:
+                            missing_connect.append(bonded)
+                        continue
 
                     # Make the connection.
-                    self.atom_connect(index1=self._atom_index(serial), 
index2=self._atom_index(bonded))
-
+                    self.atom_connect(index1=serial_index, index2=bonded_index)
+
+        # Warnings.
+        if len(missing_connect):
+            missing_connect.sort()
+            warn(RelaxWarning("The following atom numbers from the CONECT 
records cannot be found within the ATOM and HETATM records:  %s." % 
missing_connect))
         if len(water):
             warn(RelaxWarning("Skipping the water molecules HOH %s." % water))
 


_______________________________________________
relax (http://www.nmr-relax.com)

This is the relax-commits mailing list
[email protected]

To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-commits

Reply via email to