Skip to content

Biobuild - v3.10.11

Compare
Choose a tag to compare
@NoahHenrikKleinschmidt NoahHenrikKleinschmidt released this 03 Sep 10:41
· 432 commits to main since this release

Biobuild is a molecular building suite designed to facilitate the creation of large biomolecules such as glycans.
It allows for an easy molecule creation process in a jupyter-notebook environment. Biobuild offers direct integrations
to PubChem, and the PDBE component library as well as the CHARMM project for pre-defined component structures and linkage types.

Biobuild allows users to:

  • build any larger molecular structure they like
  • improve the conformation of an existing structure
  • convert data formats
  • visualize the structures as they build them
  • quickly obtain molecular structures for chemical compounds

Biobuild cannot:

  • generate circular structures (users need to choose suitable templates with rings already present)
  • imitate real-life chemical reaction mechanisms
  • perform molecular dynamics or quantum chemistry computations
  • generate molecules for the user - the user needs to know what they want to build...

Example - building a dendrimer

Let's build a polyphenylene dendrimer

import biobuild as bb

bb.load_small_molecules()

benzene = bb.molecule("benzene")

# -----------------------------
#     make the periphery
# -----------------------------
periphery = benzene.copy()

# set up the linkage instructions
# always shifting the carbon at which to attach
link = bb.linkage("C1", "C1")
for carbon in range(1, 6):
    link.atom1 = f"C{carbon}"
    periphery.attach(benzene, link, at_residue=1)

# -----------------------------
#     assemble the molecule
# -----------------------------
mol = benzene.copy()

link2 = bb.linkage("C1", "C4")

# and attach the periphery to the core
for carbon in mol.get_atoms("C", by="element"):
    link2.atom1 = carbon
    mol.attach(periphery, link2, at_residue=1, other_residue=2)

# -----------------------------
#   optimize the conformation
# -----------------------------
mol.optimize()
mol.to_pdb("polyphenylene.pdb")