Welcome to BEMM-GEN

September 26, 2024 Β· View on GitHub




Biomolecular Environment Mimicking Model GENerator


Welcome to BEMM-GEN


Tutorial

Installation

conda create -n bemm-gen-env
conda activate bemm-gen-env
conda install -c conda-forge openbabel psi4 resp ambertools
pip install bemm-gen

To install from GitHub repository, use the following command.

git clone https://github.com/y4suda/BEMM-GEN.git
pip install ./BEMM-GEN

After installation, the first startup may take some time because various libraries are initialized.

Basic Usage

# Make a cylindrical model
bemm-gen cylinder

# Make a spherical model
bemm-gen sphere

# Make parameters for a new residue
bemm-gen makeparam

# Show available parameters
bemm-gen listparam

πŸ”­ Make a cylindrical model

bemm-gen cylinder --proteinseq GASGASGASGAS --proteinSS HHHHHHHHHHHH --resnames MTY:HYD --composition 1:2.5

🌐 Make a spherical model

bemm-gen sphere --proteinpdb protein.pdb --resnames MTY:HYD --composition 0.3:0.7

🍳 Protein structure input or generation

BEMM-GEN can place a protein structure in the generated model. There are two ways to specify a protein structure.

  1. Specify a .pdb file --proteinpdb

    A .pdb file containing a protein structure can be specified.

  2. Specify an amino acid sequence and the secondary structure --proteinseq and --proteinSS

    The structure is automatically generated using the tleap program in Ambertools. The amino acid sequence should be provided in one-letter code. Only straight chain (coil) C or helix H are allowed as secondary structures. An error will be returned if the amino acid sequence does not match the length.

[!TIP] In either case, the long and short axes of the protein are automatically calculated and reflected in the model size. If --length of cylinder is specified and the protein protrudes, a warning is issued, but the structure generation is allowed. Please check the final structure carefully. If --radius is specified, an error will be returned if the protein size protrudes. To create a model that fits the size of the protein, use --padding-radius.

🎨 Specify the chemical properties within models

BEMM-GEN can specify probability of the functional residues.

  1. Specify residue type --resnames XXX:YYY:ZZZ:..

  2. Speficy residue populations --resnames i:j:k:..

  3. (OptinalοΌ‰ Specify min-distance between each residues --min-distance x [Γ…] (defalt:4.0)

πŸš€ Output

BEMM-GEN finally generate the input files for MD simulation in AMBER (. prmtop, .inpcrd) or GROMACS (.top, .gro) format.

πŸ–₯ Perfome MD simulations

Please perform MD simulations using the generated files.

In case of GROMACS

The position restraint for the model has already been set in the .top file. To apply position restraints to the protein so that it does not move during the relaxation calculation, add the following setting to the .mdp file.

define = -DPROTEINPOSRES

In case of AMBER

The position restraint for the model should be set in the .in file based on the log. For the protein during the relaxation calculation, set the position restraint in the .in file in the same way.

πŸ“– List of available residue parameters

The list of available residues can be obtained with the listparam subcommand.

bemm-gen listparam

If you add the --dump option, the list of available residues will be output as an HTML file.

πŸ’» Make parameters for a new residue

To create a new residue parameter, use the makeparam subcommand.

bemm-gen makeparam --smiles CCC --resname MTY --description "Methyl group"

Minimal required options

  • Chemical structure in SMILES format --smiles
    • The first two atom should be carbon atoms to apply the position restraint. (OK: CCN; NG: CN)
  • Residue name --resname
    • Please name the residue with a three-letter name that does not conflict with the already used amino acid residue names.
  • Description --description
    • Please enter a description when registering a residue.

Skip structure optimization

BEMM-GEN uses the ETKDGv3 method of RDKit to generate structures, and then optimizes them with the functional specified by --method-opt and --basisSet-opt. If you want to skip this step (e.g., if the structure optimization is not completed), run it with the --singlePoint option.

Charge setting

If the residue has a charge, specify the charge with the --netcharge option. If the charge is not zero, add the --no-neutralize option. For carboxy groups with negative charges, please specify the aromatic bond : in the SMILES. Example: CCC(:O):O

--num-thread specifies the number of threads to use. --memory-sizeGB specifies the available memory size. If all cores and memory of the machine are used, other operations may not be possible, so set them with sufficient margin.

Re-build a existing residue

If you want to re-build an existing residue, please specify --overwrite. The default system residue cannot be modified, but the residue in the current directory takes precedence.

List of the default residues


AMO
(Amino group)
CCCN

ARM
(Aromatic group)
CCc1ccccc1

ARO
(Tyrosine-like group)
CCc1ccc(O)cc1

BLA
(Blank group)
CC

CBO
(Carbonyl group)
CC=O

CBX
(Carboxy group)
CCC(=O)O

ETY
(Ethyl group)
CCCC

GUA
(Guanidino group)
CCNC(=N)N

HYD
(Hydroxy group)
CCO

MTI
(Methionine group)
CCSC

MTO
(Methoxy group)
CCOC

MTY
(Methyl group)
CCC

NEG
(Negatively charged carboxy group)
CCC(:O):O

POS
(Positively charged amino group)
CCC[NH3+]

THE
(Thiolate group)
CC[S-]

THI
(Thiol group)
CCS

Citation

If you use this program to create papers or other documents, please cite the following literature as much as possible.

Takunori Yasuda, Rikuri Morita, Yasuteru Shigeta, Ryuhei Harada. (2024) BEMM-GEN: A toolkit for generating a biomolecular environment mimicking model. Submitted.