From 5666e01ade72d6c7d1e12e4d783e647b92901ad5 Mon Sep 17 00:00:00 2001 From: Yi Zhou <17245097+y1zhou@users.noreply.github.com> Date: Mon, 7 Apr 2025 15:46:20 +0800 Subject: [PATCH] fix(numbering): avoid NoneType errors for PDBs with non-Fv chains When the input contains chains that could not be numbered by ANARCI, previous code would first drop entries in the `numbering` list, resulting in a length mismatch between `numbering` and `details`. --- abangle/number.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/abangle/number.py b/abangle/number.py index cae393b..d212f5c 100755 --- a/abangle/number.py +++ b/abangle/number.py @@ -76,19 +76,19 @@ def number_sequences(sequences: Dict[str, SeqRecord], scheme: str = 'chothia') - numbering, details, _ = anarci(formatted_input, scheme = scheme) - numbering = [ + numbering_fv = [ [(' ', res_id[0][0], res_id[0][1]) for res_id in num[0][0] #(hetcode, seqid, icode) if res_id[1] != '-'] # remove gapped elements for num in numbering if num # drop numbering where no Fv could be found ] - details = dict2obj([det[0] for num, det in zip(numbering, details) if num]) # extract details from list wrapper + details_fv = dict2obj([det[0] for num, det in zip(numbering, details) if num]) # extract details from list wrapper return dict2obj({ det.query_name: {'chain': parse_chain_type(det),'span': slice(det.query_start, det.query_end), 'numbering': num} - for num, det in zip(numbering, details) + for num, det in zip(numbering_fv, details_fv) }) def contains_single_model(structure: Structure) -> bool: