I wanted to generate 3D Cartesian coordinates of a peptide sequence for fixed bond lengths and bond angles for a given set of backbone dihedral angles and side dihedral angles. I also wanted to compute non-bonded van der Waal interactions (1-4 atoms) for each of the peptide generated from the dihedral angles. I initially tried frag builder module in python although it works fine. There are few issues,

  1. I could not fix bond length and bond angle of my own choice.

  2. It generates PDB file and save it inside the hard disk. So I need to read it again and parse it to compute non-bonded van der Waal interactions (1-4 atom). It consumes lot of time

  3. Also I find fragbuilder is not that fast in generating peptides.

  4. Reading , parsing and computing the interactions takes around 30 mins to complete the task for 200,000 3D ensemble of structures of given peptide sequence of length 18.

Kindly suggest me a better module in python which does the job faster and also give reference to it.

  • $\begingroup$ Don't ask multiple questions in a single post. Focus on solving one problem at a time. $\endgroup$
    – Ram RS
    Commented May 9, 2023 at 15:58
  • $\begingroup$ @M__ Yes Fragbuilder has many shortcomings as pointed out in the questing itself. So I am looking for better alternative. Yes, I am limited to python. Is there any other modules which could handle this inside python ? Yet, I want to know whether there is any other method outside python as well. Thanks in advance ! $\endgroup$ Commented May 10, 2023 at 8:58
  • $\begingroup$ Thanks @vigneshwarankannan updating the question would be cool. $\endgroup$
    – M__
    Commented May 10, 2023 at 12:42

1 Answer 1


The PDB module in Biopython is worth checking out for obtaining angles, distances, torsion angles. It is described from p208 at http://biopython.org/DIST/docs/tutorial/Tutorial.pdf. It doesn't do van der Waal interactions.

For example,

from Bio.PDB.PDBParser import PDBParser
from Bio.PDB.Chain import Chain
from Bio.PDB.internal_coords import *
from Bio.PDB.PICIO import write_PIC, read_PIC, read_PIC_seq
from Bio.PDB.ic_rebuild import write_PDB, IC_duplicate, structure_rebuild_test
from Bio.PDB.SCADIO import write_SCAD
from Bio.PDB.PDBIO import PDBIO

parser = PDBParser(PERMISSIVE=1)
myProtein = parser.get_structure("1a8o", "1A8O.pdb")
myChain = myProtein[0]["A"]
IC_Chain.MaxPeptideBond = 4.0
myChain.internal_coord = None
r2 = myChain.child_list[1]
r2ic = r2.internal_coord
r2chi1 = r2ic.get_angle("chi1")
  • $\begingroup$ I wanted to compute the 3D structures of the peptides (i.e) x,y,z coordinates of the atoms for the given set of input Ramachandran angles for a fixed bond lengths and bond angles. I don't require to compute the Ramachandran angles of a given PDB file. $\endgroup$ Commented May 10, 2023 at 13:32
  • $\begingroup$ @vigneshwarankannan thanks for the feedback. What you want is simply to extend the Biopython module with appropriate code for the trigonometric calculation, i.e. angles and distances. It's not my area - but it would be doable. $\endgroup$
    – M__
    Commented May 10, 2023 at 14:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.