@@ -421,7 +421,8 @@ def postprocess_pruned_pairs(raw_pdb_dir: str, external_feats_dir: str, pair_fil
421
421
422
422
def postprocess_pruned_pair (raw_pdb_filenames : List [str ], external_feats_dir : str , original_pair , source_type : str ):
423
423
"""Construct a new Pair consisting of residues of structures with DSSP-derivable features and append DSSP secondary structure (SS) features to each protein structure dataframe as well."""
424
- chains_selected = [original_pair .df0 ['chain' ][0 ], original_pair .df1 ['chain' ][0 ]]
424
+ chains_selected = list (set ([chain for chain in original_pair .df0 ['chain' ].values ] +
425
+ [chain for chain in original_pair .df1 ['chain' ].values ])) # Support all multimer chains
425
426
df0_ss_values , df0_rsa_values , df0_rd_values , df0_protrusion_indices , \
426
427
df0_hsaacs , df0_cn_values , df0_sequence_feats , df0_amide_norm_vecs , \
427
428
df1_ss_values , df1_rsa_values , df1_rd_values , df1_protrusion_indices , \
@@ -492,7 +493,7 @@ def postprocess_pruned_pair(raw_pdb_filenames: List[str], external_feats_dir: st
492
493
df0_rd_dict = rd_dicts [0 ]
493
494
df0_hsaac_matrix = hsaac_matrices [0 ]
494
495
df0_coordinate_numbers = coordinate_numbers_list [0 ]
495
- df0_raw_pdf_filename = raw_pdb_filenames [0 ]
496
+ df0_raw_pdb_filename = raw_pdb_filenames [0 ]
496
497
df0_psaia_df = psaia_dfs [0 ]
497
498
df0_sequence_feats_df = sequence_feats_dfs [0 ]
498
499
@@ -533,7 +534,7 @@ def postprocess_pruned_pair(raw_pdb_filenames: List[str], external_feats_dir: st
533
534
# Handle missing normal vectors
534
535
if is_ca_atom and np .nan in norm_vec_for_atom :
535
536
logging .info (f'Normal vector missing for df0 residue { row .residue } '
536
- f'in chain { row .chain } in file { df0_raw_pdf_filename } ' )
537
+ f'in chain { row .chain } in file { df0_raw_pdb_filename } ' )
537
538
df0_amide_norm_vecs .append (np .array (norm_vec_for_atom ))
538
539
elif is_ca_atom : # Normal vector was found successfully
539
540
df0_amide_norm_vecs .append (norm_vec_for_atom [0 ]) # 2D array with a single inner array -> 1D array
@@ -586,7 +587,7 @@ def postprocess_pruned_pair(raw_pdb_filenames: List[str], external_feats_dir: st
586
587
df1_rd_dict = rd_dicts [0 ] if single_raw_pdb_file_provided else rd_dicts [1 ]
587
588
df1_hsaac_matrix = hsaac_matrices [0 ] if single_raw_pdb_file_provided else hsaac_matrices [1 ]
588
589
df1_coordinate_numbers = coordinate_numbers_list [0 ] if single_raw_pdb_file_provided else coordinate_numbers_list [1 ]
589
- df1_raw_pdf_filename = raw_pdb_filenames [0 ] if single_raw_pdb_file_provided else raw_pdb_filenames [1 ]
590
+ df1_raw_pdb_filename = raw_pdb_filenames [0 ] if single_raw_pdb_file_provided else raw_pdb_filenames [1 ]
590
591
df1_psaia_df = psaia_dfs [0 ] if single_raw_pdb_file_provided else psaia_dfs [1 ]
591
592
df1_sequence_feats_df = sequence_feats_dfs [0 ] if single_raw_pdb_file_provided else sequence_feats_dfs [1 ]
592
593
@@ -627,7 +628,7 @@ def postprocess_pruned_pair(raw_pdb_filenames: List[str], external_feats_dir: st
627
628
# Handle missing normal vectors
628
629
if is_ca_atom and np .nan in norm_vec_for_atom :
629
630
logging .info (f'Normal vector missing for df1 residue { row .residue } '
630
- f'in chain { row .chain } in file { df1_raw_pdf_filename } ' )
631
+ f'in chain { row .chain } in file { df1_raw_pdb_filename } ' )
631
632
df1_amide_norm_vecs .append (np .array (norm_vec_for_atom ))
632
633
elif is_ca_atom : # Normal vector was found successfully
633
634
df1_amide_norm_vecs .append (norm_vec_for_atom [0 ]) # 2D array with a single inner array -> 1D array
0 commit comments