Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Netiquette · Download · News · Gallery · Homepage · DSSR Manual · G-quadruplexes · DSSR-Jmol · DSSR-PyMOL · DSSR Download/Licensing · {Video Overview of DSSR}

Messages - mauricio esguerra

Pages: [1] 2
RNA structures (DSSR) / Re: Noncanonical base pair standards
« on: August 01, 2019, 11:13:54 am »
Hi Mike,

There was a webserver at:, which was based on a database of collected information for base-pair parameters for the PDB as of 2008. Unfortunately that webserver was not kept maintained by the Chemistry Department at Rutgers University where it used to be hosted.

One can see just the landing page of what it was, at waybackmachine:

The corresponding reference to the paper which accompanied the database-webserver is:

BPS: a database of RNA base-pair structures
Yurong Xin, Wilma K. Olson
Nucleic Acids Research, Volume 37, Issue suppl_1, 1 January 2009, Pages D83–D88,

It had precisely the type of information you're interested in.


Mauricio Esguerra Neira

General discussions (Q&As) / Re: design triple helix
« on: May 21, 2019, 03:48:49 am »
Hi Sima,

Note that the command:

Code: [Select]
fiber -pauling insideout.pdb
Will generate a "Pauling" DNA triple helix, that is, one where the inside is out, so to say. That is, the phosphate groups are in the inside and the nitrogenated bases are in the outside, unlike the common in nature DNA Triple Helix. This is why find_pair cannot manage to find any base-pairs, because in a Pauling-Corey triple helix, there are no bases pairing to each other.

You probably want a "normal" DNA Triple Helix. You can generate it with:

Code: [Select]
fiber -31 dnatriplex.pdb
See the attached images at the end of the post.

Note also that there are parallel and antiparallel DNA triple helices. 3DNA generates a fiber model of a parallel triple helix with the fiber -31 command.

An old classic DNA-Triplex review is the one by Frank-Kamenetskii and Mirkin, I suggest getting a hold of it and reading it. Even though old, it's an excellent review of pretty much all possible DNA-Triplexes one might find in biological systems.

Frank-Kamenetskii,M.D. and Mirkin,S.M. (1995) Triplex DNA structures. Annu. Rev. Biochem., 64, 65–95.

Also, I suggest our own article on the DNA antiparallel triplex:

Nucleic Acids Research, 2014, Vol. 42, No. 18 11329–11338
Triple helical DNA in a duplex context and base pair opening
Mauricio Esguerra, Lennart Nilsson and Alessandra Villa*

Good luck with your research into DNA triple helices!

P.S. I've also attached the pdb files I've generated with 3DNA's fiber and which I used for rendering with pymol.

General discussions (Q&As) / blocview
« on: June 20, 2018, 08:44:54 am »
Hi Xiang-Jun,

In using blocview I know that the radius of the backbone tube which traces the phosphate atoms can be changed in the last line of the $X3DNA/config/col_chain.dat file.

Nonetheless I would also like to change the radius of the sticks representing the sugar-phosphate backbone bonds.
I can do this manually by altering the resulting .r3d files, say, if one of these bond specifications as a cylinder in raster3D is:

Code: [Select]
  -10.965  -18.757   -1.704    0.160   -9.568  -18.592   -1.909    0.160    1.000    1.000    0.000

I can change the 0.160 value in the fourth and eight fields to whichever radius I want.
I was wondering if there's a file where this parameter can be changed in an easier way.



Hej Puru,

Perhaps a look at the original reference of Xiang-Jun Lu for 3DNA, say, Figure 5 of his 2003 paper in Nucleic Acids Research will come in handy.

In that figure Inclination vs. x-displacement, Roll vs. Slide, and Zp(h) vs. Zp are plotted and are quite neat indicators of the conformational types of nucleic acids.

There's even an older 2000 paper by the same first author, and the creator or 3DNA, which predates 3DNA. It is also quite the recommended read.

All of the parameters needed to do the figures in the two mentioned papers are easily obtained using 3DNA.

Hope this helps,


You can download x3dna from:

And then use fiber to generate any of the available models:

Then a command like:

    fiber -seq=AAAGGGTTTCCC BDNA.pdb

Will generate a BDNA with that sequence.




You can use:

Code: [Select]
fiber -seq=AAAAAAAAAAAA 12bpADE.pdb
To generate a helix of 12 base-pairs


Code: [Select]
fiber -seq=AAAAAAAAAAAA -single 12bpssADE.pdb
To generate a single strand with 12 Adenosine bases.

You can substitute with any nucleotide letter you want.

Code: [Select]
fiber -seq=ACTGTGCTGCTG my12bp.pdb
In general the fiber program (which is included in X3DNA) is what you're looking for.

RNA structures (DSSR) / Re: cif file compatibility?
« on: May 28, 2015, 04:47:20 am »
Hi Xiang-Jun,

Note that in the 3j9m_rna.pdb file you produced, the "Atom serial number" in columns 7-11 is a based on CIF "", and is not necessarily continuous sequentially. You could write a short script to make the "Atom serial number" field consecutive from 1 to n. Please have a try and report back if that does the trick.

Yes, that solves the problem for 3j9m, but for molecules which have a higher content of atoms than 99999, for example the whole 70S ribosome of  thermus thermophilus (pdbid=4v63), which has 200836 atoms, then the same problem comes back because it finds repeated atom numbers in the 7-11 columns.

Although much harder and messy to implement I think what would be ideal for users would be to have the same functionality of get_part but producing .cif output.



General discussions (Q&As) / Re: Intrinsic Curvature of DNA
« on: May 26, 2015, 05:33:54 am »
Hi Lara,

If your interest is in generating circular DNA then I suggest using the Virtual DNA Viewer plugin of Tom Bishop which comes integrated into the latest versions of VMD.

You can combine this plugin with 3DNA to get your circular DNA models.

One first example of use:

  • Open VMD
  • Go to Extensions/Visualization/Virtual DNA Viewer
  • Notice that there is a box Next to where it says "Draw it". Select Circular DNA there and then click in Draw it.
  • Click on Save Parameters.
  • This will generate a vdna.par file which contains base-pair and step parameters you can use to rebuild using 3dna.
Code: [Select]
x3dna_utils cp_std -d B-DNA
Code: [Select]
rebuild -atomic vdna.par circulardna.pdb
Code: [Select]
pymol circulardna.pdb



    RNA structures (DSSR) / Re: cif file compatibility?
    « on: May 11, 2015, 05:25:11 am »
    Hi Xiang-Jun,

    I have tried using:

    Code: [Select]
    dssr --select=nt -i=3j9m.cif -o=3j9m_rna.pdb
    For the recent structure of the full human mitochondrial ribosome.
    Even though it's quite a large structure it finishes in 31 seconds.

    It almost gets it right but it clumps parts of the residues into a column, or at least that is what pymol shows (see attached image at the end).

    It would also be useful to get the protein part, sort of like with get_part -p instead of -n.



    RNA structures (DSSR) / Re: cif file compatibility?
    « on: May 07, 2015, 11:36:58 am »
    Hi Xiang-Jun,

    That would be great!

    I have tried using openbabel, CIFTr (cif translator), cif2pdb, and have tried reading the cif format using mdtraj in the hopes of being able to translate it to pdb, but all fails for now.

    Something very simple such as aligning the bacterial mitocondrial ribosome (4v63.cif) and the human one (3j9m), becomes very difficult.

    Once more, having this additional feature in dssr would be great!

    Thank you,


    RNA structures (DSSR) / cif file compatibility?
    « on: May 07, 2015, 10:11:05 am »
    Hi Xiang-Jun,

    I'm wondering if you have any tips or tricks as to what to do now that the cif format is the official pdb format and giving a lot of us a hard time on adjusting our analysis protocols.
    I wanted to use get_part to easily split protein apart from rna in the latest structure of the mitochondrial ribosome from Venkatakrishnan's lab. and I'm having a hard time finding an efficient way to do it.

    Any recommendations?

    Thank you,


    General discussions (Q&As) / Re: How to define rotation
    « on: March 24, 2015, 12:31:10 pm »

    Maybe the attached script will help.

    This one is for doing a DNA with A conformation from the base-pair step parameters taken from the adna.par file.

    It might be a bit convoluted and Xiang-Jun might have a better idea but it works to get the helical axis displayed perpendicular to the horizon.

    x3dna_utils cp_std ADNA
    ##  ADNA from fiber
    rebuild -base_p adna.par adna.pdb
    rebuild adna.par adna.alc
    rebuild -atomic adna.par adna.pdb
    find_pair adna.pdb stdout | analyze stdin
    frame_mol -max -2,12 ref_frames.dat adna.alc adnab.alc
    alc2img -al -s=20 adnab.alc
    alc2img -r adnab.alc adnab.r3d
    echo "by rotation x 90" | rotate_mol -r=stdin adnab.alc adnac.alc
    alc2img -al -s=20 adnac.alc

    General discussions (Q&As) / Re: How to define rotation
    « on: March 24, 2015, 05:03:59 am »
    You can try:

    echo 'by rotation x 90' | rotate_mol -r=stdin first.alc rotated.alc

    you can rotate along any axis, x, y, or z.

    Hope this helps,


    General discussions (Q&As) / Re: I want to find PDB file
    « on: March 14, 2015, 11:30:35 am »

    Perhaps if what you want to do is build a 3D model knowing that your DNA is double stranded, then you can use:

    w3dna is just a web interface to x3dna. So you can achieve the same results using the command line version of the package with the fiber program inside the x3dna package.

    For RNA 1D to 3D you could also use the MC-fold / MC-sym pipeline from Francois Major lab at the University of Montreal.

    Perhaps if you are more specific on the details of your artificial DNA strand, and the context in which it's found, people in the forum can give better help.
    What do you mean by artificial DNA strand?
    Do you mean to say that the composing nucleotides have chemical modifications?
    Is your DNA strand perhaps part of a CRISPR-cas complex, for example?

    General discussions (Q&As) / Re: Zp parameter A/vs B DNA
    « on: November 18, 2013, 01:40:59 pm »

    That being said, it looks like your input file might be a single strand instead of a double strand. If such is the case the definition of the Zp value for a single-base to single-base STEP might be slightly different as it most likely is not an average, which is the case for the BASE-PAIR step Zp values.

    In the output file using the -t option as you have done one can additionally see the following information:

    Code: [Select]
       Zp: z-coordinate of the 3' phosphorus atom (P) expressed in the
                standard base reference frame; it's POSITIVE when P is on
                the +z-axis side (base in anti conformation); NEGATIVE if
                P is on the -z-axis side (base in syn conformation)

    I am also interested in seeing Xiang-Jun's reply as the single-stranded Zp parameter is a new implementation in 3DNA.

    I am guessing that it might be "risky" to call something A-DNA or B-DNA outside of the context of a double-strand.



    General discussions (Q&As) / Re: Zp parameter A/vs B DNA
    « on: November 18, 2013, 01:11:57 pm »

    You can just try:

    Code: [Select]
    find_pair bdl084.pdb stdout | analyze stdin
    And look at the automatically generated output file bdl084.out

    The Zp and Zph values will be there.

    For your structure just type:

    Code: [Select]
    find_pair caa.pdb stdout | analyze stdin
    And this will produce the caa.out file with your results for the average of the projections on the Z-axis in both reference frames.

    Hope this helps,

    Mauricio Esguerra

    General discussions (Q&As) / Re: one comment + one question
    « on: February 22, 2013, 07:54:34 am »
    Hi Leonardo,

    You can use -s or -1, as options to treat the nucleic acid structure as a single strand.
    From find_pair help you get:

    Code: [Select]
            find_pair - locate base-pairs and helical regions
            find_pair [OPTION] PDBFILE OUTFILE
            locate base-pairs and helical regions given a PDB data file. Its
            output can be directly fed into analyze, cehs and Lavery's Curves
            -s, -1  treat the whole structure as a continuous single helix.
                    Useful for getting all backbone torsion angles
            -c      get Curves input for a duplex
            -c+     get input for Curves+ (duplex, ATOM records only)
            -d      generate a separate output file for each helical region
            -p      find all base-pairs and higher base associations
            -a      read in only ATOM records, ignoring HETATM records
            -z      more detailed base-pairing information in the output
            -h      this help message (any non-recognized options will do)
            PDB data file
            One-letter options can be in either case, any order and combined
            find_pair sample.pdb sample.inp
            find_pair -p sample.pdb allbp_list
            find_pair -c sample.pdb sample_curves.inp
            base-pair listing for input to analyze, cehs and Curves
            bestpairs.pdb, hel_regions.pdb, col_chains.scr, col_helices.scr
            allpairs.pdb, multiplets.pdb, mulbp.inp
            analyze, cehs, anyhelix, ex_str, stack2img
            3DNA v2.1 (c) 2012 Dr. Xiang-Jun Lu (

    To add hydrogens I use pymol.
    You can just issue the
    Code: [Select]
    h_add command and it will correctly add hydrogens.

    You can even choose a selection to decide which unfilled valence area you want to populate with hydrogens.



    General discussions (Q&As) / Details in Zp(h) definition.
    « on: February 20, 2013, 10:18:16 am »

    Dear Xiang-Jun,

    In your cool  and very influential NAR 2003 paper you describe the Zp(h) parameter as:

    "Zp(h), equal to half the projection on the local helical axis of the vector, P(II) -> P(I), that links the phosphorus atoms on the two strands forming a given base pair step..."

    It appears to me as the only difference between Zp and Zp(h) is that of the election of the reference frame, that is, the middle-frame vs. the local helical axis reference frame.
    Is this assumption right?

    Thanks for your time on replying to such simple questions,


    Hi Xiang-Jun,

    That was exactly the problem.  :)
    I deleted the canonical bases Atomic_[CGTU].pdb, and it works with no problem.
    Or also by just running the new:
    Code: [Select]

    x3dna_utils cp_std BDNA


    Hi Xiang-Jun,

    I have just downloaded the latest version of 3DNA dated October 16 for Intel Mac.

    I have OS X 10.8.2 (Lion) on a MacBookPro 9.2.

    When running find_pair i get the following output:

    Code: [Select]
    find_pair 1ehz.pdb 1ehz.inp                       ──(Wed,Oct24)─┘

    handling file <1ehz.pdb>
    uncommon residue 2MG   10  on chain A [#10] assigned to: g
    uncommon residue H2U   16  on chain A [#16] assigned to: u
    uncommon residue H2U   17  on chain A [#17] assigned to: u
    uncommon residue M2G   26  on chain A [#26] assigned to: g
    uncommon residue OMC   32  on chain A [#32] assigned to: c
    uncommon residue OMG   34  on chain A [#34] assigned to: g
    uncommon residue YYG   37  on chain A [#37] assigned to: g
    uncommon residue PSU   39  on chain A [#39] assigned to: P
    uncommon residue 5MC   40  on chain A [#40] assigned to: c
    uncommon residue 7MG   46  on chain A [#46] assigned to: g
    uncommon residue 5MC   49  on chain A [#49] assigned to: c
    uncommon residue 5MU   54  on chain A [#54] assigned to: u
    uncommon residue PSU   55  on chain A [#55] assigned to: P
    uncommon residue 1MA   58  on chain A [#58] assigned to: a
    open_file <./Atomic.g.pdb> failed: No such file or directory

    I thought this was a problem related to not including config in the path and added $X3DNA/config to the path, unsuccessfully.

    So 1ehz.inp, with the base-pairing results is not produced as output.

    Other commands such as, get_part, work well.

    Thanks once more,


    General discussions (Q&As) / Re: how to bend a big DNA soomthly?
    « on: July 28, 2012, 07:39:18 am »
    Hi Sudipta,

    You might find Tom Bishop's VDNA plugin for VMD useful:

    You will find it by default in new versions of VMD at:
    Extensions -> Visualization -> Virtual DNA Viewer.

    The good thing about the plugin is that it allows you to produce various sets of step-parameters which you can later use with 3DNA rebuild for a full-atom reconstruction. For example, you can tell the GUI to make a dna-circle of 88 centers and to "save parameters" which you can later use.

    I could make a step-by-step example if you have a hard time finding your way around.



    General discussions (Q&As) / Re: mutate_bases problem
    « on: June 27, 2012, 09:06:33 am »
    Hi khannakanika11,

    To see what's happening one can follow the next steps:

    get_part -n 2r5y.pdb 2r5y_dna.pdb
    mutate_bases 'c=c s=5 m=DG' 2r5y_dna.pdb 2r5y_mut.pdb

    find_pair -p 2r5y_dna.pdb 2r5y_dna.inp
    ex_str -4 bestpairs.pdb pair4original.pdb
    stack2img -cdolt pair4original.pdb

    find_pair -p 2r5y_mut.pdb 2r5y_mut.inp
    ex_str -4 allpairs.pdb pair4mutated.pdb
    stack2img -cdolt pair4mutated.pdb

    You can see that the mutation creates a non-canonical G-A base-pair (see attached pic which is a merge of the two ps images created in the previous steps).

    Perhaps your answer is just in using the -p option in find_pair, and then looking at the allpairs.ana file which can be given as input to analyze:

    analyze allpairs.ana

    Hope this helps,


    General discussions (Q&As) / Re: mutate_bases problem
    « on: June 26, 2012, 10:25:12 am »
    Hi khannakanika11,

    A little more background would help forum users to help with your problem.
    For example, are you trying to mutate in an RNA structure or just plain double helical DNA?
    Perhaps you have non-canonical Watson-Crick base-pairing in an RNA structure?

    Also, it might be better to download 3dna new version 2.1 and use the mutate_bases program directly.




    As far as I understand such information is obtained by parsing PDB files and 3DNA output using an (afaik) unpublished python parser called X3DNA-Parser by Yurong Xin.

    You can find her e-mail address at:

    Perhaps you can drop her a line. I remember vaguely that perhaps she had a UML diagram of the parser in her PhD thesis.



    Pages: [1] 2

    Created and maintained by Dr. Xiang-Jun Lu [律祥俊] (
    The Bussemaker Laboratory at the Department of Biological Sciences, Columbia University.