Design - polizzilab/software-wiki GitHub Wiki
sbgrid installation path: /nfs/polizzi/bfry/programs/LASErMPNN
github: https://github.com/polizzilab/LASErMPNN
pulled and maintained by: bfry
last date pulled: 12/01/2025
To use LASErMPNN, you must move into the parent directory of the LASErMPNN folder that is produced by running the command git clone https://github.com/polizzilab/LASErMPNN. You can use the shared installation by moving into the existing installation's parent directory with the following command
cd /nfs/polizzi/bfry/programsTo run the LASErMPNN scripts, you should conda activate the LASErMPNN environment with the following command
conda activate /nfs/polizzi/bfry/miniforge3/envs/lasermpnn2/To generate a sequence with LASErMPNN, make sure you put hydrogens on the ligand in the input pdb file as the code does not check that you have done this and the lack of appropriate protonation may affect the quality of the binding sites you can generate. Here is a script that does this for you given the ligand's smiles string which should be in the appropriate protonation state.
With the conda environment active and in the LASErMPNN parent directory, you should be able to print the LASErMPNN help message with the following command:
python -m LASErMPNN.run_batch_inference --helpThe default behavior of the LASErMPNN installation is to use the weights laser_weights_0p1A_nothing_heldout.pt. These weights were trained with a backbone noise of 0.1 Å and ligand atom noise of 0.05 Å. These noise levels should not be compared directly to Ligand/ProteinMPNN as the noise is applied slightly differently. An alternative option for the weights you can use is laser_weights_0p1A_noise_ligandmpnn_split.pt which was trained with the LigandMPNN test set.
python -m LASErMPNN.run_batch_inference {path to input file} {path to output directory} 10 --sequence_temp 0.2Create a version of your input file with the b-factors for the residues you want to fix set to 1.0 and residues you want designed set to 0.0
With the LASErMPNN conda environment active, type python to create an interactive terminal.
import prody as pr
prot = pr.parsePDB('path_to_input_file')
prot.setBetas(0.0)
prot.select('chid B').setBetas(1.0) # Fix the residues in chain B and design everything else
pr.writePDB('input_fixed_bfac.pdb', prot)You can replace the 'chid B' selection with anything you want to fix following the ProDy selection syntax which you can see more examples of here. Just make sure the CA of each residue you're interested in fixing the identity of is contained in the selection. If you want to do a distance based selection make sure to use the 'same residue as' syntax
python -m LASErMPNN.run_batch_inference input_fixed_bfac.pdb {path to output directory} 10 --sequence_temp 0.2 --fix_betasBy default, the run_batch_inference script will take the rotamers of the fixed residues. The --repack_all flag will sample new rotamers for all residues while fixing the sequence.
sbgrid installation path: /nfs/polizzi/bfry/programs/NISE
github: https://github.com/polizzilab/NISE
pulled and maintained by: bfry
last date pulled: 12/01/2025
To run NISE with Boltz-2x, activate the LASErMPNN conda environment as instructed above. The default implementation of this is at /nfs/polizzi/shared/NISE/run_nise_boltz2x.py. Make a copy of this script in the directory you want to generate designs in since you will need to modify it. If you move the script out of the /nfs/polizzi/shared/NISE directory, update the NISE_DIRECTORY_PATH variable at the top of the script like so NISE_DIRECTORY_PATH='/nfs/polizzi/shared/NISE/'
Next, create a directory inside your working directory where you've copied the run_nise_boltz2x.py script. Create an input directory where the NISE outputs will be saved such as ./nise_traj_1 and a subdirectory ./nise_traj_1/input_backbones. Then copy a single .pdb file containing the input you want to start the NISE trajectory with into the ./nise_traj_1/input_backbones directory. You should then update the params dictionary at the bottom of the copied nise submission script following the instructions in the comments for each parameter.
Make sure to:
- Check that the NISE input backbone that you've copied to
./nise_traj_1/input_backbones/is protonated appropriately using theprotonate_and_add_conect_records.pyscript. - Update the
input_dirpath to./nise_traj_1 - Update the
ligand_rmsd_mask_atoms,ligand_3lc,ligand_atoms_enforce_buried,ligand_atoms_enforce_exposed - Update the
ligand_smiles - Update the ligand self-consistency and protein RMSD thresholds.
- Update the
boltz_inference_devicesto specify which GPUs to use with structure prediction.
workstation installation path: /nfs/polizzi/shared/programs/design/Combs2/
o2 installation path: /n/data1/hms/bcmp/polizzi/lab/Combs2/
github: https://github.com/npolizzi/Combs2 (Note: the most up-to-date branch is called combs2prop)
pulled and maintained by: jchang, jmou, npolizzi
last date pulled: 08/05/23
- A general overview of the algorithm can be found in this google doc
- Brief tutorials on how to run combs can be found in the repo under tutorials/:
- A brief explanation of the steps are in this notebook
- An example python script to run combs with biotin is here
- Various lab members have written scripts which use Combs for design:
- Jody has made a detailed explanation of the full design workflow is illustrated with the ligand doxorubicin in the repo polizzilab/doxo
- Jerry has scripts to run a parameter sweep of combs here. Note that this is with a fixed ligand placement!
workstation installation path: /nfs/polizzi/shared/programs/design/RFdiffusion/
github: https://github.com/RosettaCommons/RFdiffusion
pulled and maintained by: jmou
last date pulled: 4/01/23
- if you don't want to install the environment yourself, you can use
/nfs/polizzi/jmou/miniconda3/envs/SEnv- I also added prody to this environment - see github and example scripts at https://github.com/RosettaCommons/RFdiffusion/tree/main/examples
- RFdiffusion uses hydra to parse inputs. The full set of available options are in the config file here.
- using the
inpaint_seqoption generally has given lower quality results, i.e. backbone irregularities and larger backbone deviation from the fixed structure
workstation installation path: /nfs/polizzi/shared/programs/design/ProteinMPNN/
github: https://github.com/dauparas/ProteinMPNN
pulled and maintained by: jmou
last date pulled: 3/24/23
- the github readme provide a reasonable introduction
- a number of example scripts can be found in
/nfs/polizzi/shared/programs/design/ProteinMPNN/examples/ - a full list of run settings can be found in the argparse descriptions of
protein_mpnn_run.py - helper scripts are uploaded here:
-
run_mpnn.sh
- example run script for the workstation (adapted from example scripts)
-
get_unique_seqs.py
- extract and deduplicate sequence outputs and scores into a dataframe
- run using
python get_unique_seqs.py -i path/to/fasta.fa -o path/to/output/
-
outputs.ipynb
- jupyter notebook to analyze proteinMPNN outputs by making sequence logos, plotting the probabilities and scores
-
run_mpnn.sh
workstation installation path: /nfs/polizzi/shared/programs/design/AttnPacker
github: https://github.com/MattMcPartlon/AttnPacker/
pulled and maintained by: jchang
last date pulled: 11/13/23
- see the readme file at
/nfs/polizzi/shared/programs/design/AttnPacker/README_polizzi
workstation installation path: /nfs/polizzi/shared/miniconda3/envs/evcouplings/
github: https://github.com/debbiemarkslab/EVcouplings
pulled and maintained by: jchang
last date pulled: 02/01/2024
do conda activate /nfs/polizzi/shared/miniconda3/envs/evcouplings/
(I installed this by making a new conda environment, installing pip, and then running pip install of the latest development version .zip)