@@ -144,7 +144,7 @@ def _make_npz(coord_list, coord_mask_list, bfactor_list):
144144 def _make_domain (start , end , delta = 0 ):
145145 return (start + delta , end + delta )
146146
147- chain_id , seq , domains = None , [], []
147+ chain_id , seq , domains , chain_skip = None , [], [], False
148148 int_resseq_start , int_resseq_end = None , None
149149 int_resseq_delta , int_resseq_offset = 0 , 0
150150 coord_list , coord_mask_list , bfactor_list = [], [], []
@@ -160,7 +160,7 @@ def _make_domain(start, end, delta=0):
160160 continue
161161
162162 if chain_id_list [i ] != chain_id :
163- if exists (chain_id ) and seq : # FIX: 5wj3
163+ if exists (chain_id ) and seq and not chain_skip : # FIX: 5wj3
164164 domains += [
165165 _make_domain (
166166 int_resseq_start , int_resseq_end + int_resseq_offset , int_resseq_delta
@@ -172,7 +172,7 @@ def _make_domain(start, end, delta=0):
172172 bfactor_list .append (bfactors )
173173 npz = _make_npz (coord_list , coord_mask_list , bfactor_list )
174174 yield chain_id , chain_type_dict [chain_id ], seq , domains , npz
175- chain_id , seq , domains = chain_id_list [i ], [], []
175+ chain_id , seq , domains , chain_skip = chain_id_list [i ], [], [], False
176176 # assert chain_id in chain_type_dict
177177 int_resseq_start , int_resseq_end = None , None
178178 int_resseq_delta , int_resseq_offset = 0 , 0
@@ -256,8 +256,14 @@ def _make_domain(start, end, delta=0):
256256 logger .debug (
257257 'residue_id: %s, chain_type: %s, exception: %s' , residue_id , chain_type , e
258258 )
259+ except IndexError as e : # FIX: 5HT2
260+ logger .error (
261+ 'entry.id: %s, residue_id: %s, chain_type: %s, exception: %s' ,
262+ mmcif_dict ['_entry.id' ], residue_id , chain_type , e
263+ )
264+ chain_skip = True
259265
260- if exists (chain_id ) and seq :
266+ if exists (chain_id ) and seq and not chain_skip :
261267 domains += [
262268 _make_domain (
263269 int_resseq_start , int_resseq_end + int_resseq_offset , int_resseq_delta
0 commit comments