Netiquette · Download · News · Gallery · Homepage · DSSR Manual · G-quadruplexes · DSSR-Jmol · DSSR-PyMOL · DSSR Licensing · Video Overview· RNA Covers

Author Topic: haddock compatible pdb  (Read 17374 times)

Offline sumedharoy

  • with-posts
  • *
  • Posts: 6
    • View Profile
haddock compatible pdb
« on: February 29, 2012, 05:11:23 am »
Hello!

I am using fiber to generate B-DNA models but the resulting pdb file is not HADDOCK compatible. I know how to do that on the 3D-DART webserver but not on the standalone software. Pls help.

Regards
Sumedha

Offline xiangjun

  • Administrator
  • with-posts
  • *****
  • Posts: 1640
    • View Profile
    • 3DNA homepage
Re: haddock compatible pdb
« Reply #1 on: February 29, 2012, 08:20:10 am »
Hi Sumedha,

Thanks for posting at the 3DNA forum. Could you please show us, by a specific example, where the problem is? What is the required HADDOCK compatible PDB file? Since 3D-DART is 3DNA-driven, so what is needed may just be a simple conversion between fiber-generated PDB and the one required by HADDOCK. I need more detailed information.

Please help us to help you.

Xiang-Jun
« Last Edit: February 29, 2012, 06:59:19 pm by xiangjun »

Offline sumedharoy

  • with-posts
  • *
  • Posts: 6
    • View Profile
Re: haddock compatible pdb
« Reply #2 on: March 01, 2012, 07:52:17 am »
I have attached the two different versions - one that I got from fiber and second one is the Haddock compatible version (from 3D-DART).
I will be obliged if you could help.

Thank you!

Offline xiangjun

  • Administrator
  • with-posts
  • *****
  • Posts: 1640
    • View Profile
    • 3DNA homepage
Re: haddock compatible pdb
« Reply #3 on: March 01, 2012, 09:54:08 am »
Hi,

Thanks for the two example PDB files, which helped clarify the issue. Please download the updated 3DNA v2.1beta version I compiled on 2012-02-29, which should fix the problem, i.e., the revised fiber output PDB should be directly useable with HADDOCK.

Please have a try and report back how it goes.

Xiang-Jun

Offline sumedharoy

  • with-posts
  • *
  • Posts: 6
    • View Profile
Re: haddock compatible pdb
« Reply #4 on: March 02, 2012, 04:16:05 am »
Hi!

Thank you, it works perfectly!

Sumedha

Offline sumedharoy

  • with-posts
  • *
  • Posts: 6
    • View Profile
Re: haddock compatible pdb
« Reply #5 on: March 02, 2012, 04:55:06 am »
Well sorry, actually the pdb is almost ok except that haddock expects the new PDB format for nucleotides which has three letter notations like ADE, GUA, CYT, THY. 3DNA v2.1 stil returns single letters ATCG.


Offline xiangjun

  • Administrator
  • with-posts
  • *****
  • Posts: 1640
    • View Profile
    • 3DNA homepage
Re: haddock compatible pdb
« Reply #6 on: March 02, 2012, 11:31:32 am »
Quote
except that haddock expects the new PDB format for nucleotides which has three letter notations like ADE, GUA, CYT, THY.
Well, if that's indeed the case, HADDOCK is not using the new PDB format as documented in "Remediation of the protein data bank archive". Specifically, DNA residues now should be named DA, DC, DG, and DT, as shown in an example (355d) below:
ATOM     26  C2'  DG A   2      22.447  27.195  19.590  1.00 10.31           C  
ATOM     27  C1'  DG A   2      21.722  26.527  20.744  1.00  8.31           C 
ATOM     28  N9   DG A   2      20.293  26.737  20.884  1.00  6.86           N 
ATOM     29  C8   DG A   2      19.536  27.799  20.464  1.00  7.02           C 

3DNA generated nucleic acid structures (including fiber) do not follow strictly the PDB guideline, which seems having not caused any practical problems. As a rule, I do not tailor core 3DNA to any specific third-party tool. For background information, please see my blog post "PDB format, how many variants are there?".

That said, you may easily write up a format-converting script to fit your needs. In 3DNA v2.1beta, the perl_scripts/ directory contains a simple script named x3dna2charmm_pdb that converts DNA residue names from one-letter to three. It is enclosed below for reference, and you are welcome to customize it (especially the two lines in red).

Let us know how it goes.

Xiang-Jun

------------------------------------------------------------------------------------------------
#!/usr/bin/env perl
use strict;
use warnings;

## This is utility Perl script for converting 3DNA generated PDB file
## to that accepted by CHARMM. Initially written in response to a
## request from a 3DNA user.

## Please note that this script may not be that sophisticated, since I
## know little about the specifications of the CHARMM PDB format.
## Please let me know if you find any bug in it.

die "Usage: $0  3DNA_generated_PDB  converted_PDB\n" unless @ARGV == 2;
my $x3dna_pdb  = $ARGV[0];
my $charmm_pdb = $ARGV[1];

open( FH, "$x3dna_pdb" )   || die "Can't open <$x3dna_pdb> for reading: $!\n";
open( FO, ">$charmm_pdb" ) || die "Can't open <$charmm_pdb> for writing: $!\n";

while (<FH>) {
    if (/^ATOM/) {
        chomp;

        # expand this list as necessary ...
        my %one2three = (
                          '  A' => 'ADE',
                          '  C' => 'CYT',
                          '  G' => 'GUA',
                          '  T' => 'THY'
                        );
        my $residue = substr( $_, 17, 3 );
        substr( $_, 17, 3 ) = $one2three{$residue}
            if ( exists $one2three{$residue} );
        my $chainID = substr( $_, 21, 1 );
        substr( $_, 21, 1 )  = ' ';
        substr( $_, 54, 18 ) = '  0.00  0.00      ';
        substr( $_, 72, 1 )  = $chainID;

        print FO "$_\n";
    } else {
        print FO;
    }
}
close(FH);
close(FO);

=for example

Sample CHARMM PDB file:
ATOM     27  H2' ADE     1      -3.643   6.134   3.867  0.00  0.00      A
ATOM     28  C3' ADE     1      -4.155   7.022   5.806  0.00  0.00      A
ATOM     29  H3' ADE     1      -5.203   7.382   5.738  0.00  0.00      A
ATOM     30  O3' ADE     1      -3.256   8.063   5.448  0.00  0.00      A
ATOM     31  P   THY     2      -3.070   8.432   3.902  0.00  0.00      A
ATOM     32  O1P THY     2      -4.195   7.871   3.120  0.00  0.00      A
ATOM     33  O2P THY     2      -2.853   9.889   3.761  0.00  0.00      A
ATOM     34  O5' THY     2      -1.722   7.646   3.549  0.00  0.00      A

Sample 3DNA generated PDB file:
ATOM     50  O3'   C A   3      -7.224  -1.903   7.585
ATOM     51  C2'   C A   3      -6.408   0.308   8.023
ATOM     52  C1'   C A   3      -5.322   0.045   6.986
ATOM     53  N1    C A   3      -4.202   0.995   7.051

Transformed file:
ATOM     50  O3' CYT     3      -7.224  -1.903   7.585  0.00  0.00      A
ATOM     51  C2' CYT     3      -6.408   0.308   8.023  0.00  0.00      A
ATOM     52  C1' CYT     3      -5.322   0.045   6.986  0.00  0.00      A
ATOM     53  N1  CYT     3      -4.202   0.995   7.051  0.00  0.00      A

=cut
------------------------------------------------------------------------------------------------
« Last Edit: March 02, 2012, 09:03:49 pm by xiangjun »

Offline sumedharoy

  • with-posts
  • *
  • Posts: 6
    • View Profile
Re: haddock compatible pdb
« Reply #7 on: March 05, 2012, 02:48:05 am »
Hi!

Thank you Dr. Xiang-Jun for such a detailed reply. I used the x3dna2charmm_pdb script and modified it as follows:

...........................................................

#!/usr/bin/env perl
use strict;
use warnings;

## This is utility Perl script, intially written by Dr. Xiang-Jun for converting 3DNA generated PDB file
## to CHARMM acceptable format, has been modified for converting to that accepted by HADDOCK.

## Please note that this script may not be that sophisticated, since I
## know little about the specifications of the HADDOCK PDB format.
## Please let me know if you find any bug in it.

die "Usage: $0  3DNA_generated_PDB  converted_PDB\n" unless @ARGV == 2;
my $x3dna_pdb  = $ARGV[0];
my $charmm_pdb = $ARGV[1];

open( FH, "$x3dna_pdb" )   || die "Can't open <$x3dna_pdb> for reading: $!\n";
open( FO, ">$charmm_pdb" ) || die "Can't open <$charmm_pdb> for writing: $!\n";

while (<FH>) {
    if (/^ATOM/) {
        chomp;

        # expand this list as necessary ...
        my %one2three = (
                          '  A' => 'ADE',
                          '  C' => 'CYT',
                          '  G' => 'GUA',
                          '  T' => 'THY'
                        );
        my $residue = substr( $_, 17, 3 );
        substr( $_, 17, 3 ) = $one2three{$residue}
            if ( exists $one2three{$residue} );
        my $chainID = substr( $_, 21, 1 );
        substr( $_, 21, 1 )  = $chainID;
        substr( $_, 54, 18 ) = '  1.00  0.00      ';
        my $rc = substr( $_, 13, 1 );
   my $addspace = "     ";
   my $replace_copy = $addspace.$rc;
      substr( $_, 72, 1 )  = $replace_copy;
        print FO "$_\n";
    } else {
        print FO;
    }
}
close(FH);
close(FO);

=for example

Sample HADDOCK PDB file:
ATOM     27  H2'   ADE A    1      -3.643   6.134   3.867  1.00  0.00          H
ATOM     28  C3'   ADE A    1      -4.155   7.022   5.806  1.00  0.00          C
ATOM     29  H3'   ADE A    1      -5.203   7.382   5.738  1.00  0.00          H
ATOM     30  O3'   ADE A    1      -3.256   8.063   5.448  1.00  0.00          O
ATOM     31  P       THY A    2      -3.070   8.432   3.902  1.00  0.00          P
ATOM     32  O1P THY A    2      -4.195   7.871   3.120  1.00  0.00          O
ATOM     33  O2P THY A    2      -2.853   9.889   3.761  1.00  0.00          O
ATOM     34  O5'   THY A    2      -1.722   7.646   3.549  1.00  0.00          O

Sample CHARMM PDB file:
ATOM     27  H2'   ADE     1      -3.643   6.134   3.867  0.00  0.00      A
ATOM     28  C3'   ADE     1      -4.155   7.022   5.806  0.00  0.00      A
ATOM     29  H3'   ADE     1      -5.203   7.382   5.738  0.00  0.00      A
ATOM     30  O3'   ADE     1      -3.256   8.063   5.448  0.00  0.00      A
ATOM     31  P       THY     2      -3.070   8.432   3.902  0.00  0.00      A
ATOM     32  O1P THY     2      -4.195   7.871   3.120  0.00  0.00      A
ATOM     33  O2P THY     2      -2.853   9.889   3.761  0.00  0.00      A
ATOM     34  O5'   THY     2      -1.722   7.646   3.549  0.00  0.00      A

Sample 3DNA generated PDB file:
ATOM     50  O3'   C A   3      -7.224  -1.903   7.585
ATOM     51  C2'   C A   3      -6.408   0.308   8.023
ATOM     52  C1'   C A   3      -5.322   0.045   6.986
ATOM     53  N1    C A   3      -4.202   0.995   7.051



=cut

.........................................

This works perfectly fine. thank you!

Regards
Sumedha


Offline xiangjun

  • Administrator
  • with-posts
  • *****
  • Posts: 1640
    • View Profile
    • 3DNA homepage
Re: haddock compatible pdb
« Reply #8 on: March 05, 2012, 11:43:20 am »
Hi Sumedha,

Glad to hear that adapting x3dna2charmm_pdb has helped solve your problem!

Now I have better news: on second thought following our previous discussions, I reasoned that adding an option for 3-letter nucleotide names to fiber/rebuild-generated PDB files may not be a bad idea -- at least CHARMM and HADDOCK require them. So, I have revised the fiber program per se by adding two more options:
  • -three_letter_nts (can be abbreviated to -three) to generate a PDB file with three-letter names for nucleotides. Note this only applies to the standard nucleotides, ADE/CYT/GUA/THY/URA.
  • -connect (can be abbreviated to -co) to add CONECT records in the generated PDB file. I noticed the HADDOCK-compatible PDB file you attached, AAACCCAAA_fixed.pdb, contains such CONECT records.
Using the sequence AAACCCAAA as in your attached example, I have generated two PDB files as below:
    fiber -a -three -seq=AAACCCAAA AAACCCAAA-three.pdb
    fiber -a -co -three -seq=AAACCCAAA AAACCCAAA-three-connect.pdb
Both PDB files, AAACCCAAA-three.pdb and AAACCCAAA-three-connect.pdb, are attached for your verification. If I understand the issue correctly, both should be compatible with HADDOCK.

As always, please let me know how it goes.

Xiang-Jun
« Last Edit: March 06, 2012, 12:44:59 am by xiangjun »

Offline sumedharoy

  • with-posts
  • *
  • Posts: 6
    • View Profile
Re: haddock compatible pdb
« Reply #9 on: March 13, 2012, 01:39:17 am »
Thank you so much... as I intend to use 3DNA for a large number of samples, my job has been much simplified now that -three has been added directly to the fiber program... and it works alright with HADDOCK without the need for -connect.

 

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