Giter Site home page Giter Site logo

asitedesign's Introduction

Alt text

AsiteDesign

AsiteDesign combines PyRosetta modules with enhanced sampling techniques to both design catalytic residues, as well as, perform in silico directed evolution of an existing active site.

Installation

A set of Python libraries are necessary to run the scripts of this Git repository; mainly OpenMM, PyRosetta, and Biotite. An easy way to install these dependencies is by using a yaml file with all the required packages to create a conda environment to use AsiteDesign. The PyRosetta credentials of the user must be added to the yaml file ("$USER" and "$PASS" must be changed). The command should be the following:

conda env create -f asitedesign.yaml 

Then, activate the conda environment:

conda activate asitedesign

Finally, you have to execute the Setup Python script to use the algorithm:

python Setup.py install

If the user wants to use the scripts for analysis and plotting (for instance, PlotSimulation.py), you must install the following dependencies in the created environment:

conda install matplotlib seaborn scikit-learn

Requirements

  • Python Python 3.7 or higher must be installed.
  • PyRosetta (licensed software), Biotite, MPI4py, OpenMM.

Usage

To run AsiteDesign, you need the following:

  • An input PDB file with the complex (ligand docked to the protein, otherwise the ligand can be placed by the code, but it's better to have it already bound)
  • The parameters of all ligands, cofactors, and non-conventional amino acids that appear in the simulation (to generate them, for instance, save the ligand as mol2 file from Pymol. Then, use the facilitated molfile_to_params Python script to transform to a params file)

To start using it, the parameters that should be set in the input yaml file are the following:

  • PDB --> Add the name of your input PDB file
  • ParameterFiles --> Add the name of all the used params files (list them with "-")
  • Name --> Add the name of the desired output folder
  • DesignResidues --> Add the list of residues allowed to be mutated (ZZ leaves the residue as frozen. ZX stands for not mutable, but repackable. XX stands for mutable and repackable and XX+ adds the option to use the native residue as well. You can also specify to which residues you want to allow it to mutate by listing them, for instance, 100-A: AILFWVPY)
  • CatalyticResidues --> Specify the number of residues of the active site that wants to be added (RES1, RES2 ... RESN: H)
  • Ligands, 1-L (you have to specify the ligand by giving the residue number and the chain of the specific LIG). Also, the torsions that want to be excluded must be specified by the user ("ExcludedTorsions")
  • Constraints --> Add the distance and sequence constraints that you want. The distance constraints should be added by passing two residues (with residue_number-chain) and two atoms (atomname) and to which values you want to constraint them (lb: value in angstroms, hb: value in angstroms)
  • nIterations --> Number of adaptive sampling epochs that want to be performed
  • nSteps --> Number of steps performed in each epoch/iteration
  • nPoses --> Number of final poses (mutants/designs) to be reported (each one given to a processor/CPU)
  • Time --> Time in the queue (if it's run in a cluster)

To get a better understanding, check the examples (both yaml files) in the Templatized_control_file folder

Citation

If AsiteDesign is used in one of your publications, please cite the paper: https://doi.org/10.1021/acs.jpcb.2c07091

Contact

For any queries, feel free to ask us:

Masoud Kazemi, (@masoudk), Biomatter Designs, Vilnius, Lithuania Sergi Roda, (@SergiR1996), Barcelona Supercomputing Center, Barcelona, Spain

asitedesign's People

Contributors

masoudk avatar sergir1996 avatar

Stargazers

Miquel Canyelles Niño avatar  avatar Ding Luo avatar Daniel DeMonte avatar Akos Nyerges avatar Robert Huang avatar  avatar  avatar Bruno Di Geronimo avatar Bipin Singh avatar

Watchers

 avatar

asitedesign's Issues

Error reading input file, Ligand could not be initialized

Despite correctly installing and testing the tool with provided examples I have encountered an issue while trying to use Asitedesigne for my file , I guess encountered errors when attempting to generate parameter files using molfile_to_params.py.

python3.7 ../ActiveSiteDesign.py 03_DesignCatalyticSite_7wab_pepfold.yaml
PyRosetta-4 2020 [Rosetta PyRosetta4.conda.linux.cxx11thread.serialization.CentOS.python37.Release 2020.20+release.c522e9e9054813e62f9415bcc29478af67fee549 2020-05-14T10:55:54] retrieved from: http://www.pyrosetta.org
(C) Copyright Rosetta Commons Member Institutions. Created in JHU by Sergey Lyskov and PyRosetta Team.

Starting ActiveSiteDesign using 0 explorers with 1 thread(s)
Reading Input file: 03_DesignCatalyticSite_7wab_pepfold.yaml.
Initiating pose.
Initiating simulation parameters.
Initiating output paths.
Initiating Spawning/Ranking.
Initiating Design residues.
Initiating Catalytic residues.
Initiating Design Modes.
Initiating Sampling Modes.
Initiating ligands.
Warning >>> No DockingCenter is defined for ligand 1-X, will be computed from ligand's centroid.
Warning >>> No SimulationCenter is defined for ligand 1-X, will be computed from ligand's centroid.
Warning >>> No DockingCenter is defined for ligand 2-X, will be computed from ligand's centroid.
Warning >>> No SimulationCenter is defined for ligand 2-X, will be computed from ligand's centroid.
File "../ActiveSiteDesign.py", line 752, in initializeInputs
inputs.read(inputFile)
File "/media/mostafa/DATA/Project/project_bin/bin/AsiteDesign/IO.py", line 1518, in read
self.ligands = inputFile.get('Ligands', None)
File "/media/mostafa/DATA/Project/project_bin/bin/AsiteDesign/IO.py", line 1181, in ligands
ligand = Ligand(pose=self.pose, resID=ID, chain=chain, excludedTorsions=ligParms['ExcludedTorsions'])
File "/media/mostafa/DATA/Project/project_bin/bin/AsiteDesign/BaseClases.py", line 111, in init
self.initiate(pose, resID, chain, excludedTorsions)
File "/media/mostafa/DATA/Project/project_bin/bin/AsiteDesign/BaseClases.py", line 156, in initiate
self.checkLigandAtoms()
File "/media/mostafa/DATA/Project/project_bin/bin/AsiteDesign/BaseClases.py", line 205, in checkLigandAtoms
raise ValueError('Ligand could not be initialized. The total atoms in ligand core and side chains differ '

Traceback (most recent call last):
File "../ActiveSiteDesign.py", line 752, in initializeInputs
inputs.read(inputFile)
File "/media/mostafa/DATA/Project/project_bin/bin/AsiteDesign/IO.py", line 1518, in read
self.ligands = inputFile.get('Ligands', None)
File "/media/mostafa/DATA/Project/project_bin/bin/AsiteDesign/IO.py", line 1181, in ligands
ligand = Ligand(pose=self.pose, resID=ID, chain=chain, excludedTorsions=ligParms['ExcludedTorsions'])
File "/media/mostafa/DATA/Project/project_bin/bin/AsiteDesign/BaseClases.py", line 111, in init
self.initiate(pose, resID, chain, excludedTorsions)
File "/media/mostafa/DATA/Project/project_bin/bin/AsiteDesign/BaseClases.py", line 156, in initiate
self.checkLigandAtoms()
File "/media/mostafa/DATA/Project/project_bin/bin/AsiteDesign/BaseClases.py", line 205, in checkLigandAtoms
raise ValueError('Ligand could not be initialized. The total atoms in ligand core and side chains differ '
ValueError: Ligand could not be initialized. The total atoms in ligand core and side chains differ from ligand total number of atoms.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "../ActiveSiteDesign.py", line 818, in
results = design.run(confFile)
File "../ActiveSiteDesign.py", line 72, in run
self.designCatalyticResidueSerial(confFile)
File "../ActiveSiteDesign.py", line 88, in designCatalyticResidueSerial
inputs = self.initializeInputs(confFile)
File "../ActiveSiteDesign.py", line 757, in initializeInputs
raise ValueError('Error reading input file, {}'.format(e))
ValueError: Error reading input file, Ligand could not be initialized. The total atoms in ligand core and side chains differ from ligand total number of atoms.

Any assistance or guidance on resolving this issue would be greatly appreciated.

Issue with molfile_to_params.py

I have encountered an issue while trying to use the molfile_to_params.py script from the ASiteesign tool. Despite correctly installing and testing the tool with provided examples, I encountered errors when attempting to generate parameter files using molfile_to_params.py.
Error Message:
bash parm.sh
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
"main", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/media/mostafa/DATA/Project/project_bin/bin/AsiteDesign/7wab_second_flexpep/molfile_to_params.py", line 26, in
from rosetta_py.io.mdl_molfile import *
ImportError: No module named rosetta_py.io.mdl_molfile

python2 molfile_to_params.py
Traceback (most recent call last):
File "molfile_to_params.py", line 26, in
from rosetta_py.io.mdl_molfile import *
ImportError: No module named rosetta_py.io.mdl_molfile

python3 molfile_to_params.py
File "molfile_to_params.py", line 171
print "WARNING: atom %s has valence > 4" % atom.name
^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("WARNING: atom %s has valence > 4" % atom.name)?

I have tried running the script with both Python 2 and Python 3, but encountered different errors as outlined above.

Any assistance or guidance on resolving this issue would be greatly appreciated.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.