Home      Download     Tutorial     Reference     Contact    Other useful links     FAQs

How to use Dendrimer Builder Toolkit: (DBT)   

dbtv1_2.pl (G3 PAMAM protonated)

DBT was tested for generating dendrimer structure up to G8. 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 G3 protonated PAMAM dendrimer using dbtv1_2.pl

"dbtv1_2.pl is old script. This tutorial has been kept for 'special cases'. One should use dbtv2.pl unless your system is complex to be handled or some manual modifications are required you can use dbtv1_2.pl. This tutorial is given for G3 PAMAM protonated dendrimer though same can be generated by dbtv2.pl"

If you have jumped in this tutorial directly please start with dbtv2.pl (PPI or PAMAM)

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 and keep all files in same directory.

Here, the tutorial for generating the dendrimer using DBT is illustrated by taking the example of G3 protonated PAMAM dendrimer which uses library named pamam_neutral_EDA.lib and GAFF force field. If user is using his own residues in some library then, three residues should be named as aaa (core), bbb (repeating fragment) and ccc (terminals) only. Here in pamam_neutral_EDA.lib residues are named as aaa, bbb and ccc (in this tutorial we will use only protonated form of ccc residue).

Steps for generating 3D structure of G3 PAMAM protonated dendrimer using AMBER modules:

(please note G3 PAMAM can also be built with dbtv2.pl, this tutorial is kept for special purposes only. You can skip this tutorial and use dbtv2.pl)

$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 dbtv1_2.pl (see image). Press enter key (linux by default most cases has perl but install perl-tk before using perl dbtv1_2.pl). It should open GUI like this:

 2) Type entry in Number of layers desired: here put 3 (for G3 PAMAM). This number will run loops in such a way that three layers of bbb will be put around core aaa and finally terminals ccc will join the bbb.

 3) Core Multiplicity is number of arms of central core (aaa residue in pamam_neutral_EDA.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 C11, C12, C13 and C14. (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 pamam_neutral_EDA.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 C7, C8, N4. The name of joining atoms can be seen in xleap --> loadoff pamam_neutral_EDA.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 N4.

5) Terminal multiplicity is by default set to 1 only. User cannot change it. Write the name of joining atom (here it is N1), which is going to attach with repeating fragment atom (bbb residue). The name of joining atoms can be seen in xleap --> loadoff pamam_neutral_EDA.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 pamam_neutral_EDA.lib

 9) Now PRESS "go" BUTTON (above the "quit" button).

  Next step (10) is different in auto dbtv2.pl

 10) Now user should be able see some files named dbt1, dbt2, dbt3 and dbt_term. Only one dbt_term will be formed, but number of dbt files will depend upon the number of layers desired. These contain the set of instructions (tleap/xleap commands only), which defines the manner of joining the residues. The initial dbt file (dbt1) contains information about the joining of central core ‘aaa’ with single first layer of ‘bbb’ residues. Each dbt file gives information about the single sequential layers of residues (‘bbb’). The dbt_term contains information for the joining of terminal ‘ccc’ residues. For lower generations, one can see lesser number of commands/instructions in dbt files, but for higher generation there will be many number of lines (e.g. try to put Six number of layers and look for dbt6 file. Use dbtv2.pl in most of the cases, dbtv1_2.pl has been kept for special purposes only).

 11) Write file name dbt1 (generated from step 9), mdin file (input file name for minimization, given by user), mdout (output file name) in the space provided in text boxes.

 12) PRESS "OK" button and then press "sander minimization" button. Wait till minimization is done and when it is over at bottom of your terminal a message will be displayed "File name dbt1 JOB DONE".

 Now onward, 11th and 12th step will repeat; just change the name of files. The last file will be dbt_term (for joining terminal residues).

 13) Change file name as dbt2 and rest of mdin, mdout and rst names depend upon user. Repeat step 12. Similarly use dbt3 as file name and repeat step 12 and finally, use dbt_term as file name and repeat step 12.

 14) PRESS "quit" button. You can see USER.mol2 and load in xleap.

source leaprc.gaff

loadoff pamam_neutral_EDA.lib
G3 = loadmol2 USER.mol2

 15) In USER.mol2 check number of atoms. It should be 1124 for G3 protonated PAMAM.


 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. Though its not good to generate long chain linear polymer with dbtv1_2.pl. Please use dbtv2.pl  for such purposes For example, if decamer with terminal end group is desired then number of layers will be set to 10 but that will generate 10 number of dbt files!!!.



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 by itself as a separate and isolated tool is helpless. 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).