NAME
    Bio::Tools::Run::QCons - Run Qcons to analyze protein-protein contacts

VERSION
    version 0.112900

SYNOPSIS
       my $q = Bio::Tools::Run::QCons->new(
           file => $pdbfile,
           chains => [$chain1, $chain2],
       );

       my $contacts_by_atom = $q->atom_contacts;
       my $contacts_by_residue = $q->residue_contacts;

DESCRIPTION
    This module implements a wrapper for the QCons application. QCons itself
    is an implementation of the Polyhedra algorithm for the prediction of
    protein-protein contacts. From the program's web page
    (<http://tsailab.tamu.edu/QCons/>):

    "QContacts allows for a fast and accurate analysis of protein binding
    interfaces. Given a PDB file [...] and the interacting chains of
    interest, QContacts will provide a graphical representation of the
    residues in contact. The contact map will not only indicate the contacts
    present between the two proteins, but will also indicate whether the
    contact is a packing interaction, hydrogen bond, ion pair or salt bridge
    (hydrogen-bonded ion pair). Contact maps allow for easy visualization
    and comparison of protein-protein interactions."

    For a thorough description of the algorithm, its limitations and a
    comparison with several others, refer to Fischer, T. et. al: Assessing
    methods for identifying pair-wise atomic contacts across binding
    interfaces, J. Struc. Biol., vol 153, p. 103-112, 2006.

ATTRIBUTES
  file
    Gets or sets the file with the protein structures to analyze. The file
    format should be PDB.

    Required.

  chains
        chains => ['A', 'B'];

    Gets or sets the chain IDs of the subunits whose contacts the program
    will calculate. It takes an array reference of two strings as argument.

    Required.

  probe_radius($radius);
    Gets or sets the probe radius that the program uses to calculate the
    exposed and buried surfaces. It defaults to 1.4 Angstroms, and unless
    you have a really strong reason to change this, you should refrain from
    doing it.

  verbose
    Output debugging information to "STDERR". Off by default.

  program_name
    The name of the executable. Defaults to 'Qcontacts', but it can be set
    to anything at construction time:

       my $q = Bio::Tools::Run::QCons->new(
           program_name => 'qcons',
           file => $pdbfile,
           chains => [$chain1, $chain2]
       );

    Notice that if the binary is not on your PATH environment variable, you
    should give "program_name" a full path to it.

  atom_contacts
    Return an array reference with the information of every atom-atom
    contact found.

    The structure of the array reference is as follows:

       $by_atom = [
                    {
                      'area' => '0.400',
                      'type' => 'V',
                      'atom2' => {
                                   'number' => '461',
                                   'res_name' => 'SER',
                                   'res_number' => '59',
                                   'name' => 'OG'
                                 },
                      'atom1' => {
                                   'number' => '2226',
                                   'res_name' => 'ASN',
                                   'res_number' => '318',
                                   'name' => 'CB'
                                 }
                    },
                  ]

    This corresponds to the information of one contact. Here, 'atom1' refers
    to the atom belonging to the first of the two polypeptides given to the
    'chains' method; 'atom2' refers to the second. The fields 'number' and
    'name' refer to the atom's number and name, respectively. The fields
    'res_name' and 'res_number' indicate the atom's parent residue name and
    residue id. 'type' indicates one of the five non-covalent bonds that the
    program predicts:

  residue_contacts
    Returns an array reference with the information of every residue-residue
    contact found.

    The structure of the array is organized as follows:

       $by_res = [
                   {
                     'area' => '20.033',
                     'res1' => {
                                 'number' => '318',
                                 'name' => 'ASN'
                               },
                     'res2' => {
                                 'number' => '59',
                                 'name' => 'SER'
                               }
                   },
                 ]

    Here, bond type is obviously not given since the contact can possibly
    involve more than one atom-atom contact type. 'res1' and 'res2'
    correspond to the residues of the first and second chain ID given,
    respectively. 'area' is the sum of every atom-atom contact that the
    residue pair has. Their names (as three-letter residue names) and number
    are given as hashrefs.

    Every bond type has the 'area' attribute, which indicates the surface
    (in square Angstroms) of the interaction. In addition, all N-O contacts
    (I, S and H) have a 'Rno' value that represents the N-O distance.
    Directional contacts (S and H) also have an 'angle' feature that
    indicates the contact angle. For salt bridges, estimations of the free
    energy of hydrogen bond (dGhb) and free energy of ionic pair (dGip) are
    also given.

THANKS
    To Chad Davis for prodding me to dust off and release this module to the
    CPAN.

AUTHOR
    Bruno Vecchi <vecchi.b gmail.com>

COPYRIGHT AND LICENSE
    This software is copyright (c) 2011 by Bruno Vecchi.

    This is free software; you can redistribute it and/or modify it under
    the same terms as the Perl 5 programming language system itself.

