Fixing the alignment classes to handle the test case for the X edge-case mentioned two commits ago.
Fixing the alignment classes to handle the test case for the X edge-case mentioned two commits ago.

API change: PipelinePDBChainMapper.match_pdb_chains now returns a dict mapping chain IDs to a *list* of tuples of the form (chain_id_in_pdb_2, percentage_identity_score) rather than just one. match_best_pdb_chains is a replacement for the old match_pdb_chains function. This allows us to relate one chain to multiple chains in the other PDB which will be necessary for the ScaffoldModelDesignBuilder to highlight residues in the e.g. homodimer design which are related to residues in a monomer Rosetta model. When mapping to multiple chains, we allow room for error with the multiple_match_error_margin since some chains may differ slightly at the termini. multiple_match_error_margin is overridden by the cut_off option however.

In the test case X-case (3MWO, 1BN1, 3MWO), we now show differing residues in chains B of the scaffold and design (see the note however - we may want to close the relation we have under equivalence depending on how people think about difference w.r.t. directionality).

PipelinePDBChainMapper now differs from the original and more specialized PDBChainMapper which should be deprecated.

Bugfix: Fixed a bug in the old match_pdb_chains - "chain_matches = dict.fromkeys(pdb2_chains, None)" should have used pdb1_chains.
Bugfix: Fixed PipelinePDBChainMapper.from_file_paths.

Kortemme-Lab/klab,Kortemme-Lab/klab,Kortemme-Lab/klab,Kortemme-Lab/klab