RINFAIRE (Residue Interaction Networks From Alternate conformations In RElated structures) uses alternate conformations in crystallographic multiconformer models to calculate residue interaction networks (RINs) for sets of protein structures. It can then normalize and sum these networks, calculate differences between networks, and identify communities within a network, among other downstream analyses.
If you use this software, please cite:
If you also use qFit, please cite:
To ensure all dependencies are handled correctly, we recommend using Conda:
- Clone the latest release of RINFAIRE:
git clone -b main https://github.com/keedylab/rinfaire.git
cd rinfaire- Create the conda environment:
conda env create -f environment.yml
conda activate rinfaireRINFAIRE uses a series of commands to generate a sum network from a series of input structures and perform additional analyses.
The general steps of a typical workflow are as follows:
Before running RINFAIRE, you need three components:
- Multiconformer Models: Structures preprocessed with qFit to accurately model any missing alternate conformations.
- Input List: A
.txtfile containing the absolute paths to your qFit PDB files. - Alignment: A Multiple Sequence Alignment (MSA) file (
.fa) of your structures, generated by tools like PROMALS3D.
Optional: If you wish to generate networks from subsets of structures, create a metadata file in csv format.
See examples for examples of the files above. For more specific instructions, see the Methods section of the paper.
The core of RINFAIRE is the Multinetwork, which aligns the Residue Interaction Networks (RINs) of all input structures into a single object.
python generate_multi.py \
input_pdbs.txt \
path/to/alignment.fa \
output_directory/project_name \
--metadata path/to/metadata.csv \
--output_infoOnce you have your MultiNetwork.pkl, you can perform various downstream analyses:
One example is to normalize and sum the individual networks from the multinetwork to generate a sum network:
python analysis_sum.py \
output_directory/MultiNetwork.pkl \
output_directory/sum_network \
--output_graph_infoYou can also compare network overlap to multiple sets of residues and test whether this overlap is statistically significant:
python analysis_residues_of_interest.py \
output_directory/SumNetwork.pkl \
output_filename \
--input_set ResiduesOfInterest.csv \
--col 'Column_Name' \
--find_significance reference.pdb \
--n_iter_sig_test 100A detailed example workflow can be found in the examples directory along with additional network analyses.
Please note that scripts in the wip (work in progress) directory may not have been tested with the current code so should be used with caution.
The code is licensed under the MIT license (see LICENSE).