Source code for haddock.clis.restraints.passive_from_active

"""haddock3-restraints passive_from_active subcommand.

Given a list of active_residues and a PDB structure, it will return a list of
surface exposed passive residues within a 6.5A radius from the active residues.

When provided with a list of surface residues, it will filter the list for those
that are within 6.5A from the active residues.

Usage:
    haddock3-restraints passive_from_active <pdb_file> <active_list> [-c <chain_id>] [-s <surface_list>]
"""

import sys

from haddock.libs.librestraints import passive_from_active_raw


[docs] def add_pass_from_act_arguments(pass_from_act_subcommand): """Add arguments to the pass_from_act subcommand.""" pass_from_act_subcommand.add_argument( "structure", type=str, help="input PDB structure.", ) pass_from_act_subcommand.add_argument( "active_list", help="List of active residues IDs (int) separated by commas", type=str, ) pass_from_act_subcommand.add_argument( "-c", "--chain-id", help="Chain id to be used in the PDB file (default: All)", required=False, ) pass_from_act_subcommand.add_argument( "-s", "--surface-list", help="List of surface residues IDs (int) separated by commas", required=False, type=str, ) return pass_from_act_subcommand
[docs] def passive_from_active(structure, active_list, chain_id=None, surface_list=""): """Get the passive residues.""" active = [int(res) for res in active_list.split(',')] surface = [] if surface_list: surface = [int(res) for res in surface_list.split(',')] try: passive = passive_from_active_raw( structure, active, chain_id, surface ) except Exception as e: print(e) sys.exit(1) print(' '.join([str(r) for r in passive])) return