Home      Download     Tutorial     Reference     Contact    Other useful links     FAQs

How to use Dendrimer Builder Toolkit: (DBT)

(G5 PPI non-protonated)

DBT was tested for generating dendrimer structure up to G8 PAMAM. For any query and comments please send mail to dbt.query aT gmail.com. This tool works fine with GAFF. We have not tried using other available force field in AMBER. Below we give outline procedure generating G5 non-protnated PPI dendrimer using dbtv2.pl

Tutorial with example

Requirements: Linux with latest PERL-Tk, AMBER10 and AMBERTOOL-1.2 (Other versions not tried).

While preparing this tutorial it was assumed that user has some prior knowledge/experience with AMBER software.

Download DBT.tar. It contains necessary files to run DBT PERL-Tk script and README file. Extract DBT.tar.

Here, the tutorial for generating dendrimer using dbtv2.pl is illustrated by taking example of non-protonated PPI dendrimer (G5) which uses library named ppi_basic_DAB.lib and GAFF force field. If users are using their own residues in some library then three residues should be named as aaa (core), bbb (repeating fragment) and ccc (terminals) only. Here in pnp.lib residues are named as aaa, bbb and ccc (in this tutorial we will use non-protonated form of ccc residue).

Steps for generating 3D structure of G5-PPI protonated dendrimer using DBT+AMBER modules:

$AMBERHOME should be defined in .bashrc file. If not done, you can do it simply by adding these two lines in .bashrc file in home:

export AMBERHOME=/your/path/to/amber10

This was for bash terminal. One can define $AMBERHOME in cshrc also.

1) Open terminal and type: perl dbtv2.pl (see image). Press enter key (linux by default most cases has perl but install perl-tk before using dbtv2.pl). It should open GUI like this:

 2) In number of layers desired field enter 4 (for G5 PPI) and in "to" field enter 4 again {Note: Number of layers does not corresponds to the generation number. Its is just a number which  is equal to layers of bbb residues around core aaa. So if size of bbb residue is large then number of layers desired to obtain same generation will be less. But in PAMAM tutorial you will find generation number = number of layers desired}. These numbers will run loops in such a way that four layers of bbb will be put around core aaa and finally terminals ccc will join the bbb. Note: You can give any number like 3 to 4 or 1 to 7 or if one desires number of generations of PPI in single run, e.g. G3, G4 and G5 PPI then put number of layers 2 to 4. So present example will generate G5 non-protonated PPI dendrimer.

 3) Core Multiplicity is number of arms of central core (aaa residue in ppi_basic_DAB.lib): set it 4 by clicking between 1 to 6 buttons. Then, write the name of joining atoms that you want to join with bbb. Only one atom name in each box, here it is C6, C9, C12 and C15. (For your own residues and library the name of joining atoms can be seen in xleap --> loadoff your.lib --> edit aaa --> display names or also from your.ac file while preparing residues. In this tutorial, you can see the atom name by loading ppi_basic_DAB.lib in xleap).

 4) Fragment multiplicity is number of arms minus one, that is n-1. Set it 2 in this case (3 arms - 1) and write atom names. One atom name in each box, here it is C2, C5, C7. The name of joining atoms can be seen in xleap --> loadoff ppi_basic_DAB.lib --> edit bbb --> display names or also from your.ac file while preparing residues.

Important: Please note, the atom which becomes joining head atom is written last. Here it is C7.

5) Terminal multiplicity is by default set to 1 only. User cannot change it. Write the name of joining atom (here it is C2), which is going to attach with repeating fragment atom (bbb residue). The name of joining atoms can be seen in xleap --> loadoff ppi_basic_DAB.lib --> edit ccc --> display names or also from your.ac file while preparing residues.

 6) Write the name of force field file, here it is gaff.

 7) Write the name of frcmod file for residues aaa, bbb and ccc, if any, otherwise keep it blank. In this tutorial it is not desired.

 8) Write residue containing library name. Here ppi_basic_DAB.lib

 9) Now click "go" BUTTON, then click "OK" BUTTON and finally click "sander minimization" (NOTE: min.in should be there in your working directory. The number of steps you can modify according to your need). Read step 10 and 11 below.


dbtv2.pl vs dbtv1_2.pl

Comparison: If you have used manual dbtv1_2.pl earlier then you will find difference at this step, as all layers will be added without manual interference. But there will be instances in future which can compel to use manual dbtv1_2.pl as one can have intermediate files which contains AMBER commands to join the residues. But in dbtv2.pl the AMBER commands are stored in temporary files which are washed away when one quits the perl. This has big advantage. Suppose one needs to build linear (read below also) or bi-forked polymer having 100 layers!!! (here layer would mean number of monomers). So by using dbtv2.pl , as compared to  dbtv1_2.pl, one need not to see all those text files having AMBER instructions and also using dbtv1_2.pl for such cases will unnecessarily fill the directory where you are working.

 User can provide their residues in library of desired multiplicity; core (upto 6) and fragment multiplicity (upto 5). Simplest case will be core multiplicity being 1 and fragment multiplicity also 1. This will generate linear polymer.


 10) When all dendrimer generations are built finally a message will be displayed at bottom of your terminal window displaying "JOB DONE".

11) PRESS "quit" button. You should now be able to see L4.mol2 ("L" means layer) which is actually a G5 PPI. This mol2 will be having gaff atom types. So please be sure to source gaff in xleap that is:

source leaprc.gaff

loadoff pnp.lib
L4 = loadmol2 L4.mol2
edit L4
and so on...

"Note: You will see only *.mol2 files not any intermediate *.out files which are sander outputs and other files. This is because they are removed knowingly or else there will be number of files in your working directory. If you want all files should come you can use --info flag like this:

perl dbtv2.pl --info number

where number can have valid 0,1,2 or 999 values. If you try any other number like perl dbtv2.pl --info 328 DBT will quit displaying valid numbers allowed and what they do. This --info flag is not available in dbtv1_2.pl".


1) The DBT could have written in more professional way, more short form, better algorithm or more user friendly.

2) Its further development depends on number of users, suggestions, comments etc., though support for users will be given and related query, suggestions, comments can be sent to maiti aT physics.iisc.ernet.in and please must 'cc' mail to dbt.query aT gmail.com (replace aT with @). Your comments and suggestions are strongly desired to keep DBT alive.

3) Geometry management is not that good as may be expected but newer versions will be better.

4) DBT alone cannot build dendrimer. It uses AMBER suite of programmes like xleap and sander modules for its functioning. DBT just calculates the number of residues to be joined according to the desired generation, and how they need to be joined is defined by set of xleap commands (dbt1,dbt2....dbtN files)which are input to xleap. DBT can be used to generate desired dendrimer of any core (upto 6) and fragment multiplicity (upto 5).