Shared functionality between PrepWizard GUI and command-line 
  PrepWizard.
  Copyright Schrodinger, LLC. All rights reserved.
    |  | 
        
          | _count_bonds(a) Count number of bonds to the given StructureAtom (double bonds = 2 
      bonds), zero-order bonds are not counted.
 |  |  | 
    |  | 
        
          | fix_common_structure_mistakes(st) Fixes common problems in structures and returns a list of correction 
      strings that are to be reported to the user.
 |  |  | 
    |  | 
        
          | check_st_valences(st) Will raise a RuntimeError if any atom in the specified structure has 
      more bonds than is allowed for that element.
 |  |  | 
    |  | 
        
          | atomsasl(atoms) Generates an ASL expression for the specified atoms.
 |  |  | 
    |  | 
        
          | create_disulfide_bonds(st,
        dist=3.2,
        verbose=False) Create bonds between proximal Sulfurs, deleting any hydrogens on 
      them.
 |  |  | 
    |  |  | 
    |  | 
        
          | _set_oxygen_orders(st,
        mainatom,
        double,
        single,
        charge) Sets the orders of phosphate-oxygen or sulfate-oxygen bonds.
 |  |  | 
    |  | 
        
          | _generate_phosphate_states(st,
        atoms) Returns a list of structures (expanded states)
 |  |  | 
    |  | 
        
          | _generate_sulfate_states(st,
        atoms) Returns a list of structures (expanded states)
 |  |  | 
    |  | 
        
          | count_phosphates_and_sulfurs(st) |  |  | 
    |  | 
        
          | extend_phosphate_states(st) For specified structure, generates phosphate states, and returns list
      of output structures.
 |  |  | 
    |  | 
        
          | extend_sulfate_states(st) For specified structure, generates sulfate states, and returns list 
      of output structures.
 |  |  | 
    |  | 
        
          | get_chain_sequences(st,
        remove_tails=True) Will read the PDB sequences from the sequence block, and will return 
      a dictionary (keys: chain names; values: sequence strings).
 |  |  | 
    |  | 
        
          | write_sequences_to_fasta(pdbid,
        sequences_dict,
        fastafile) |  |  | 
    |  | 
        
          | _run_prime_job(st,
        keywords,
        prime_jobname,
        app=None) Run the Prime job specified by the keywords on the <st> with 
      jobname <prime_jobname>.
 |  |  | 
    |  | 
        
          | fill_missing_loops(st,
        fasta_file,
        prime_jobname,
        build_tail=False,
        app=None) st - Input Structure object fasta_file - Associated .fasta file 
      prime_jobname - Job name to use for the Prime job.
 |  |  | 
    |  |  | 
    |  | 
        
          | do_any_residues_have_missing_side_chains(st) Returns True if at least one of the residue in the given structure 
      has missing side-chain atoms (backbone atoms are ignored).
 |  |  | 
    |  | 
        
          | fill_missing_side_chains(st,
        prime_jobname,
        app=None) st - Input Structure object prime_jobname - Job name to use for the 
      Prime job.
 |  |  | 
    |  | 
        
          | fix_sulfur_charges(st) Post process by fixing the charge on zero-order-bonded Sulfurs Gives 
      -1 or -2 charge to Sulfurs as appropriate.
 |  |  | 
    |  | 
        
          | prepare_for_epik(st,
        het_asls,
        app=None) Extract the structures to run Epik on from the input complex CT.
 |  |  | 
    | List of structure.Structure | 
        
          | filter_undesired_states(orig_st,
        state_sts) Returns a subset of state structures, which excludes metal-binding 
      states for hets that are not within 5A of a metal.
 |  |  | 
    |  | 
        
          | find_ppw_atom(st,
        anum) Find the atom in the given structure whose i_ppw_anum property is set
      to the given value.
 |  |  | 
    |  | 
        
          | apply_state(complex_st,
        state_st) Modify the het in complex_st complex (protein/ligand) structure such 
      that its ionization state matches the output that we got from Epik 
      (state_st).
 |  |  | 
    | (float, float/None, str) | 
        
          | apply_state_and_calc_score(complex_st,
        state_st) Apply the state <state_st> to <complex_st>, and return 
      the score for the state in the context of the protein complex.
 |  |  | 
    |  | 
        
          | _generate_metal_states(st) Ionize the metal atom in st (only one, if exists) and return a list 
      of ionized sts
 |  |  | 
    |  | 
        
          | generate_special_states(sts,
        app=None) |  |  | 
    |  |  | 
    |  | 
        
          | get_bridging_waters(st,
        min_hbonds=3) Return a list of all waters in the specified structure that make at 
      least <min_hbonds> number of H-bonds (H-bonds to other waters 
      excluded).
 |  |  | 
    | list of ints. | 
        
          | hydrogen_neighbors(st,
        atoms) Returns the list of neighbor (bonded) atoms that are hydrogens.
 |  |  | 
    |  | 
        
          | get_pdb_id(st) Returns the PDB ID of the given structure.
 |  |  | 
    |  | 
        
          | get_het_name(st,
        het_atoms) Return the het "name" to display for the user for the given het.
 |  |  | 
    |  | maestro = Nonehash(x)
 | 
    |  | maxvalence = [0, 1, 1, 1, 2, 6, 4, 4, 2, 1, 1, 1, 2, 8, 8, 8, ... | 
    |  | EPIK_EXCLUSION_LIST = ['HEM', 'HEC'] | 
    |  | STATE_PANELTY_PROP = 'r_epik_State_Penalty' | 
    |  | METAL_PENALTY_PROP = 'r_epik_Metal_State_Penalty' | 
    |  | HBOND_ENERGY = 1.0 | 
    |  | PDBNAME_ELEMENT_DICT = {' CD ': 'C', ' CD2': 'C', ' CE1': 'C',... | 
    |  | metal_charges = {11: [1], 12: [2], 19: [1], 20: [2], 25: [2, 3... | 
    |  | __package__ = 'schrodinger.application' | 
    |  | pdbname = ' CE1' |