mailr6658 - /branches/rdc_analysis/generic_fns/structure/internal.py


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by edward on July 04, 2008 - 14:37:
Author: bugman
Date: Fri Jul  4 14:37:18 2008
New Revision: 6658

URL: http://svn.gna.org/viewcvs/relax?rev=6658&view=rev
Log:
Fixes for the internal PDB reader.

Non ATOM or HETATM records, after these records (i.e. CONECT) no longer cause 
the reader to fail.


Modified:
    branches/rdc_analysis/generic_fns/structure/internal.py

Modified: branches/rdc_analysis/generic_fns/structure/internal.py
URL: 
http://svn.gna.org/viewcvs/relax/branches/rdc_analysis/generic_fns/structure/internal.py?rev=6658&r1=6657&r2=6658&view=diff
==============================================================================
--- branches/rdc_analysis/generic_fns/structure/internal.py (original)
+++ branches/rdc_analysis/generic_fns/structure/internal.py Fri Jul  4 
14:37:18 2008
@@ -70,8 +70,13 @@
                 # Parse the record.
                 record = self.__parse_pdb_record(record)
 
+                # Nothing to do.
+                if not record:
+                    continue
+
                 # Add the atom.
-                self.atom_add(pdb_record=record[0], atom_num=record[1], 
atom_name=record[2], res_name=record[4], chain_id=record[5], 
res_num=record[6], pos=[record[8], record[9], record[10]], 
segment_id=record[13], element=record[14], model=model)
+                if record[0] == 'ATOM' or record[0] == 'HETATM':
+                    self.atom_add(pdb_record=record[0], atom_num=record[1], 
atom_name=record[2], res_name=record[4], chain_id=record[5], 
res_num=record[6], pos=[record[8], record[9], record[10]], 
segment_id=record[13], element=record[14], model=model)
 
 
     def __get_chemical_name(self, hetID):
@@ -232,48 +237,50 @@
         # Initialise.
         fields = []
 
-        # Split up the record.
-        fields.append(record[0:6])
-        fields.append(record[6:11])
-        fields.append(record[12:16])
-        fields.append(record[16])
-        fields.append(record[17:20])
-        fields.append(record[21])
-        fields.append(record[22:26])
-        fields.append(record[26])
-        fields.append(record[30:38])
-        fields.append(record[38:46])
-        fields.append(record[46:54])
-        fields.append(record[54:60])
-        fields.append(record[60:66])
-        fields.append(record[72:76])
-        fields.append(record[76:78])
-        fields.append(record[78:80])
-
-        # Loop over the fields.
-        for i in xrange(len(fields)):
-            # Strip all whitespace.
-            fields[i] = strip(fields[i])
-
-            # Replace nothingness with None.
-            if fields[i] == '':
-                fields[i] = None
-
-        # Convert strings to numbers.
-        if fields[1]:
-            fields[1] = int(fields[1])
-        if fields[6]:
-            fields[6] = int(fields[6])
-        if fields[8]:
-            fields[8] = float(fields[8])
-        if fields[9]:
-            fields[9] = float(fields[9])
-        if fields[10]:
-            fields[10] = float(fields[10])
-        if fields[11]:
-            fields[11] = float(fields[11])
-        if fields[12]:
-            fields[12] = float(fields[12])
+        # ATOM and HETATM records.
+        if search('^ATOM', record) or search('^HETATM', record):
+            # Split up the record.
+            fields.append(record[0:6])
+            fields.append(record[6:11])
+            fields.append(record[12:16])
+            fields.append(record[16])
+            fields.append(record[17:20])
+            fields.append(record[21])
+            fields.append(record[22:26])
+            fields.append(record[26])
+            fields.append(record[30:38])
+            fields.append(record[38:46])
+            fields.append(record[46:54])
+            fields.append(record[54:60])
+            fields.append(record[60:66])
+            fields.append(record[72:76])
+            fields.append(record[76:78])
+            fields.append(record[78:80])
+
+            # Loop over the fields.
+            for i in xrange(len(fields)):
+                # Strip all whitespace.
+                fields[i] = strip(fields[i])
+
+                # Replace nothingness with None.
+                if fields[i] == '':
+                    fields[i] = None
+
+            # Convert strings to numbers.
+            if fields[1]:
+                fields[1] = int(fields[1])
+            if fields[6]:
+                fields[6] = int(fields[6])
+            if fields[8]:
+                fields[8] = float(fields[8])
+            if fields[9]:
+                fields[9] = float(fields[9])
+            if fields[10]:
+                fields[10] = float(fields[10])
+            if fields[11]:
+                fields[11] = float(fields[11])
+            if fields[12]:
+                fields[12] = float(fields[12])
 
         # Return the atomic info.
         return fields




Related Messages


Powered by MHonArc, Updated Fri Jul 04 15:00:15 2008