Exploring Assembly of Globular Multi-Subunit Complexes Using Deterministic Steric-Free Vectorized Simulator
Author: Spencer Loggia
The easiest way to install the simulator is to clone this repo and then build an environment containing all dependencies using the provided base_requirements.txt file. In order to do this you will need to have an up to date version of the anaconda package manager (https://www.anaconda.com/products/individual#Downloads).
- first clone this repository into the desired directory on your system.
git clone git@github.com:mjohn218/multi_assembly.git - navigate to the
steric_free_simulatordirectory and runconda create --name <env> --file base_requirements.txtwhere<env>is the desired name of your new environment. NOTE: This requirements file only includes dependencies available from conda or pip. For any application involving rosetta, for example estimating free energies from pdb structures, you will need to also install pyrosetta to your environment from http://www.pyrosetta.org/ - now run
conda activate <env>in order to use the new environment. - you may now use the included modules.
Detailed functionality and documentation can be found in the Jupyter Notebooks located in the docs directory.
You can start the jupyter server by activating the conda environment and then running jupyter notebook. This should open a browser window
showing the current directory. You can then open the docs folder and then any of the notebooks therewithin.
Essentially, the module consists of the following components:
-
The
ReactionNetworkclass. Provides methods for generating a full set of possible system states and interactions from a list of pairwise rule and free energies specified in a input.pwrfile. -
The
VectorizedReactionNetworkclass. Takes aReactionNetworkas input and converts its networkx explicit graph representation into a pytorch Tensor representatio. Also provides methods for some computations on the system -
The
VecSimclass. A vectorized deterministic simulator runs a rule based simulation on the system specified by aVectorizedReactionNetwork -
The
Optimizerclass. Runs a certain number of simulations and adjusts input parameters in order to optimize a metric of complex yield. -
The
EqSolverclass. Takes aReactionNetworkas input and finds the equilibrium solution using a numerical solver. -
The
EnergyExplorerclass. Somewhat sepeperate. This takes a reaction network and a directory of pdbs for each of the monomer subunits, and generates a list of approximate free energies for each of the pairwise reactions. Requires pyrosetta to be installed.
Similar to the above, some initial results are contained in notebooks located in the results folder.