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 Licensing · Video Overview· RNA Covers

Messages - xiangjun

Pages: 1 ... 45 46 [47] 48 49 ... 63
1151
MD simulations / Re: About output files from x3dna_md.rb
« on: September 07, 2012, 12:31:11 pm »
Thanks for using 3DNA, and posting your questions on the forum.

Regarding your two questions:

1º) The missing atom messages are normal; they are for information only. "This structure has broken O3' to P[i+1] linkages" -- it means that there is an occurrence where nucleotides i and i+1 are not connected, as judged by out of range distance from O3'(i) to P(i+1). I am glad that you pay attention to this little detail. It may not be a concern -- you need to check a sample structure to be sure. If you need help, please attach such a structure with your follow up post.

2º) The two .out files are fine, and only 'RNA.out' is what you need. The example folder has four .out files correspond to the four different options:

Code: [Select]
  --ensemble, -e <s>:   Ensemble delineated with MODEL/ENDMDL pairs
    --models, -m <s>:   File containing an explicit list of model numbers
   --pattern, -p <s>:   Pattern of model files to process (e.g., *.pdb)
      --list, -l <s>:   File containing an explicit list of models

I am glad to see details on how 3DNA ('x3dna_md.rb' script) is being used.

Quote
I work in Gromacs program with Amber force field. I converted my trajectory, in separeted pdbs files such as example folder.

As noted above, the script can be run in four different modes, so you don't need to convert your trajectory into separate PDB files; the snapshots can be put into a single MODEL/ENDMDL delineated ensemble, as NMR structures in the PDB.

Note that in the current v2.1(beta), x3dna_md.rb has been replaced by x3dna_ensemble which has far more enhanced functionality. Please consider to update to the latest version.

HTH,

Xiang-Jun

1152
Quote
I'd like to ask about the DNA set used for the analysis that is presented in Fig 5. in the NAR 2003 paper. Are those structures previously classified as A, B and TA DNA by other means (?) before doing the Zp and Zp(h) calculations to confirm their differences? Where can I look for the structures which were used? (I guess it is somewhere in reference 81, Patikoglou,G.A. et al (1999))

Thanks for asking about the DNA datasets used in Figure 5 of the 3DNA 2003 NAR paper. Yes, the structures are previously assigned as A-, B- and TA-DNA by other means before we introduced Zp and Zp(h) to classify the three types of dinucleotide steps automatically. A- and B-DNA are based on conventional parameters (Slide/Roll, sugar puckers etc), as in the NDB, and the TA-DNA is mainly inspired by the work of Guzikevich‐Guerstein and Shakked (ref. 80):

Quote from: 3DNA 2003 NAR paper
A detailed structural analysis of two early examples of the TATA‐box DNA bound to the TATA‐box binding protein (TBP) (10,79) led Guzikevich‐Guerstein and Shakked (80) to propose that the 8 bp TATA‐box adopts a novel TA‐DNA conformation, different from either A or B DNA. The structures of many more such complexes have since been determined (81) and, as shown in Table 2 and Figure 5, all TATA‐box regions share similar conformational features.

So the complete list was not taken directly from somewhere in ref. 81, but compiled specifically for the work. The actual structure list used in producing Figure 5 for the TA-DNA steps can be found in the thread "DNA standards/statistics using 3DNA", dated August 2006. For A-DNA and B-DNA structures used in Figure 5 of the 2003 paper, I need to locate my original record from (nearly) a decade ago -- I will write a post about my findings on the 3DNA homepage, possibly by next week.

HTH,

Xiang-Jun

1153
The find_pair -p option can find all base pairs and higher-order base associations. I implemented this option early on in 3DNA v1.x; yet in the 2003 Nucleic Acids Research paper and the corresponding find_pair -h output for v1.5, I deliberately omitted mentioning this functionality. I was hoping to further refine the algorithm/implementation, and to write up a detailed method paper on find_pair, a core 3DNA component. After leaving Rutgers nearly a decade ago, I've continuously maintained and refined 3DNA. However, for various reasons, up to now I've not been able to finish the long overdue 'technical' manuscript.

Over the years, numerous RNA structural bioinformatics resources have taken advantage of the functionality provided by find_pair; RNAView & BPS, two Rugters-based tools, are based directly on early versions of the program. It was only in the 3DNA 2008 Nature Protocols paper that I first illustrated the functionality of the find_pair -p option, in the protocol "identification of higher-order base associations in ribosomal RNA". This post provides further detailed examples so 3DNA users can take better advantage of this still underused functionality, useful in RNA structure related applications.

Let's create a new directory (folder), named 'find_pair-p-examples', and change to that directory. Now the directory is empty (check with ls).

Code: [Select]
mkdir find_pair-p-examples
cd find_pair-p-examples
ls

As an example, here we use the crystal structure of an RNA tetraplex (UGAGGU)4 with A-tetrads, G-tetrads, U-tetrads and G-U octads: NDB id: ur0023; PDB id: 1j6s (see figure below). The structure was solved by Sundaralingam et al. at 1.4 Ångstroms resolution [Structure. 2003 Jul; 11(7):815-23]. Its asymmetric unit contains 4 single chains.The NDB/PDB provides 4 biological assemblies, each consisting of 4 identical chains from the asymmetric unit. Download biological assembly 1 from the NDB (or the PDB, if you prefer; but notice the case difference in PDB id):

Code: [Select]
wget ftp://ndbserver.rutgers.edu/NDB/coordinates/na-biol/1j6s.pdb1
Run find_pair -p on '1j6s.pdb1'. Note the -all_model option; by default, 3DNA programs (such as find_pair) handle only the first model (structure) in a given PDB data file.
Code: [Select]
find_pair -p -all_model 1j6s.pdb1 1j6s.mbp
At the end of output file '1j6s.mbp', one can see the following identified multiplets: one octad and three tetrads:
Code: [Select]
    1: #8 [1]...1>A:...1_:[BRU]u + [2]...1>A:...2_:[..G]G + [47]...2>A:...1_:[BRU]u + [48]...2>A:...2_:[..G]G + [93]...3>A:...1_:[BRU]u + [94]...3>A:...2_:[..G]G + [139]...4>A:...1_:[BRU]u + [140]...4>A:...2_:[..G]G
    2: #4 [3]...1>A:...3_:[..A]A + [49]...2>A:...3_:[..A]A + [95]...3>A:...3_:[..A]A + [141]...4>A:...3_:[..A]A
    3: #4 [4]...1>A:...4_:[..G]G + [50]...2>A:...4_:[..G]G + [96]...3>A:...4_:[..G]G + [142]...4>A:...4_:[..G]G
    4: #4 [5]...1>A:...5_:[..G]G + [51]...2>A:...5_:[..G]G + [97]...3>A:...5_:[..G]G + [143]...4>A:...5_:[..G]G

Among other outputs, there is also a file named 'multiplets.pdb' which contains the atomic coordinates of the corresponding multiplets, each oriented in its most-extended view. The base multiplets can be extracted with ex_str and then converted to .r3d format for Raster3D or PyMol rendering (see also post "What can 3DNA do for RNA structures?" for more examples).
Code: [Select]
ex_str -1 multiplets.pdb oct.pdb
r3d_atom -od -r=0.1 -b=0.2 oct.pdb stdout | render -png > oct.png

ex_str -2 multiplets.pdb A-tetrad.pdb
r3d_atom -od -r=0.1 -b=0.2 A-tetrad.pdb stdout | render -png > A-tetrad.png

ex_str -3 multiplets.pdb G-tetrad.pdb
r3d_atom -od -r=0.1 -b=0.2 G-tetrad.pdb stdout | render -png > G-tetrad.png

The three png images ('oct.png', 'A-tetrad.png' and 'G-tetrad.png') as generated directly above are attached below.

1154
Feature requests / Re: chain continuation character in analyze
« on: August 09, 2012, 07:43:01 am »
Hi Pascal,

I've implemented the -chain_markers option to analyze as of 3DNA v2.1beta dated 2012aug09. As an example, run the following commands,

Code: [Select]
find_pair -s 1egk.pdb stdout | analyze -chain_markers='+|x*' stdin
You will see the the portion below in output file '1egk.outs':

   1   (0.013) ....>A:...1_:[..A]A     +    
   2   (0.020) ....>A:...2_:[..G]G     |   
   3   (0.019) ....>A:...3_:[..G]G     |   
   4   (0.014) ....>A:...4_:[..A]A     |   
   5   (0.014) ....>A:...5_:[..G]G     |   
   6   (0.016) ....>A:...6_:[..A]A     |   
   7   (0.020) ....>A:...7_:[..G]G     |   
   8   (0.015) ....>A:...8_:[..A]A     |   
   9   (0.028) ....>A:...9_:[..G]G     |   
  10   (0.015) ....>A:..10_:[..A]A     |   
  11   (0.015) ....>A:..11_:[..U]U     |
  12   (0.022) ....>A:..12_:[..G]G     |
  13   (0.015) ....>A:..13_:[..G]G     |
  14   (0.021) ....>A:..14_:[..G]G     |
  15   (0.025) ....>A:..15_:[..U]U     |
  16   (0.016) ....>A:..16_:[..G]G     |
  17   (0.016) ....>A:..17_:[..C]C     |
  18   (0.016) ....>A:..18_:[..G]G     |
  19   (0.012) ....>A:..19_:[..A]A     |
  20   (0.017) ....>A:..20_:[..G]G     x
  21   (0.010) ....>B:..21_:[..C]C     +
  22   (0.018) ....>B:..22_:[..T]T     |
  23   (0.007) ....>B:..23_:[..C]C     |
  24   (0.016) ....>B:..24_:[..G]G     |
  25   (0.011) ....>B:..25_:[..C]C     |
  26   (0.013) ....>B:..26_:[..A]A     |
  27   (0.011) ....>B:..27_:[..C]C     |
  28   (0.006) ....>B:..28_:[..C]C     |
  29   (0.010) ....>B:..29_:[..C]C     |

As always, check it out and report back if that fits the bill.

Xiang-Jun

1155
Feature requests / Re: chain continuation character in analyze
« on: August 08, 2012, 12:00:46 pm »
I will think about the issue, and try to find a consistent way to handle find_pair in default and with the -s option, and streamline the output style between find_pair and analyze. I will post back in this thread once it is done.

The -pdbv3 is globally set to TRUE, so it also applies to o1p_o2p.

HTH

Xiang-Jun

1156
Feature requests / Re: chain continuation character in analyze
« on: August 08, 2012, 09:38:32 am »
The -chain_markers option works only for duplexes (default for find_pair), not yet with the -s option for single-stranded (ss) structures. 3DNA analyze checks for O3'(i) to P(i+1) distance with a cut-off of 2.5 Å for chain breaks; only two characters are used: 'x' for a break, and '-' for a covalent bond. I am a bit hesitated to make the current settings more complicated; you are the first 3DNA user to notice such little detailed info at all. Do you a solid use case to convince me?

In current 3DNA v2.1beta, no need to set -pdbv3; it's the default.

Xiang-Jun

1157
Feature requests / Re: chain continuation character in analyze
« on: August 06, 2012, 01:04:12 pm »
Please download the updated aug06 release of 3DNA v2.1beta. Now you can specify helix begin/continuation/end and isolated bp characters through option -chain_markers. For example,

Code: [Select]
find_pair 1egk.pdb stdout
    #  default as before
find_pair -chain_markers='o|x+' 1egk.pdb stdout
    #  with helix beginning character assigned to 'o'

The same option can also be applied to 'analyze'.

Also, as noted previously, the same strand P...P and C1'...C1' distances are now output in two decimals.

Have a try and report back how it goes.

Xiang-Jun

1158
Feature requests / Re: BI/BII issue
« on: August 04, 2012, 03:13:30 pm »
As noted in the -tor output file,

Code: [Select]
          e-z: epsilon - zeta
              BI:  e-z = [-160, +20]
              BII: e-z = [+20, +200]

The criteria are based on "Nucleic acid backbone parameters" at the Jena website. Do you have another definition?

Also, the BI/BII classification is purely backbone-based (epsilon and zeta torsion angles), not specific to "B-DNA" whose definition may require characterization of the base pair geometry.

Xiang-Jun

1159
Feature requests / Re: chain continuation character in analyze
« on: August 04, 2012, 03:01:52 pm »
Quote
In the analyze file, you insert the '-' character when a strand is not broken and 'x' when its broken.
Then a new chain starts. May be you could add a third '+' character for these residues ?
Could you provide an example?

Quote
Also, for the same strand P...P and C1'...C1' distances, could you add two decimals instead of one?
Done -- the distribution will be updated after clarification of the above point.

Xiang-Jun

1160
General discussions (Q&As) / Re: how to bend a big DNA soomthly?
« on: July 27, 2012, 10:29:11 am »
3DNA per se does not provide a prescription "to bend a big DNA smoothly". How to choose roll angles to fit a smooth curve is problem specific; 3DNA is mechanical and rigorous in that it constructs a structure corresponding to the parameters you fed into "rebuild", or (reversibly) it can "analyze" a given DNA structure to provide parameters that fully describe its base geometry.

As mentioned previously, and made clear in the 2008 3DNA Nature Protocols paper, the various prescriptions of roll-introduced DNA bending in Figure 3 are based on the classic work of Calladine and Drew. That protocol was intended to illustrate 3DNA's capability of building structures, in schematic representation, based on user-supplied parameters, not to show how to derive roll angles for any desired DNA bending.

That said, 3DNA is handy for constructing and visualizing a DNA structure in three dimensions to help verify if a roll prescription fulfills one's assumptions -- seeing is believing as well as understanding. For example, by noticing a bend structure in zigzag type, you immediately realized that your roll parameters (as sinusoidal) were not chosen correctly.

There are literature publications on how to fit a smooth ribbon to curved DNA. Pubmed or Google Scholar is your friend; it helps if you could share your findings.

HTH,

Xiang-Jun
 

1161
General discussions (Q&As) / Re: Analysis_assumptions!
« on: July 24, 2012, 02:41:05 pm »
The 3DNA program mutate_bases does exactly as its name suggests, i.e., mutate DNA/RNA bases, and from a pure geometric approach. It is up to the user (with any other desirable tools) to make sense of "structural and binding differences" between mutated and native structures.

Xiang-Jun

1162
General discussions (Q&As) / Re: mutate_bases error
« on: July 24, 2012, 02:35:49 pm »
Quote
mutate_bases 'c=Y, s=14, m=DC' 3DFV.pdb 3DFV_mut.pdb

Change comma to space, as below:
Code: [Select]
mutate_bases 'c=Y s=14 m=DC' 3DFV.pdb 3DFV_mut.pdb
Comma or semicolon is used to separate multiple mutations. I am updating command line help message to make this point clearer.

Xiang-Jun
 

1163
  • Well, with the excerpt from find_pair output, I can see what nucleotides (nts) you are referring to. As always, it's the details that count.
  • Quote
    I also thought you know what hairpin loop is, i don't know why, I'm sorry.
    I know what a hairpin loop is, but I certainly did not see what you were referring to in your previous post. Thanks for your wikipedia quota and link on "step-loop", however, I still miss your point as to how it is related to the helix (see attached figure) formed by nts 149-155 with 171-177 on chain A of PDB entry 3uzn.
  • So at this point, I have no comment to your initial question: "Can you say something about it?"
  • Quote
    Oh, and I was using 3DNA ver 1.5.
    I am glad to know that 3DNA v1.5, which was compiled (nearly) a decade ago, is still in use. As noted in "Download instructions", that version is obsolete, and "no longer supported". So it's the time to upgrade to v2.1 (beta).

Xiang-Jun

PS. Note that I have once again split the posts on hairpin-loop from the original thread 'Helices and Isolates in output of find_pair' to make each one focused on a specific topic, and not too lengthy.

1164
Could you provide us reproducible details how you got this "hairpin loop of length zero (between 155 and 156)"? Which version of 3DNA are you using? I did not see nucleotides 156-162 (chain A) at all in PDB entry 3uzn downloaded from the current RCSB website.

Xiang-Jun

1165
Thanks for your new question :). I have split this post from the original thread 'Helices and Isolates in output of find_pair' to make each one focused on a specific topic, and not too lengthy.

I am sure I've answered this question before, maybe through priviate emails. I'll write a post on this issue on the 3DNA homepage soon [link added on 2012-07-30]. Here is the short answer to your question:

The general patten of a base-pair id string is M-XYZ-N for bases M and N. Only when XYZ equals --- would M and N be a possible Watson-Crick pair. If Z is '+', the two z-axes of bases are pointing the same direction and thus have a positive dot product. See my post "Hoogsteen and reverse Hoogsteen base pairs".

HTH,

Xiang-Jun

1166
Thanks for providing a PDB list where find_pair cannot properly assign certain helices. It'd be more helpful if you could provide specific problematic helices, for at least some PDB entries, as you did for 1z58.

Best regards,

Xiang-Jun

1167
Thanks for providing detailed info about a mis-assigned helix by find_pair. As shown in the attached image, in PDB entry 1z58, nucleotides 336-338 and 346-348 should indeed be assigned into a helix. While the helix assignment algorithm of find_pair works elegantly for the majority of cases, it is clearly not sophisticated enough to properly handle complicated structures such as 1z58 (the large ribosomal subunit from the eubacterium Deinococcus radiodurans): if you pay close attention to the output from find_pair, you will see warning messages in such cases.

I'm interested in refining 3DNA on those complicated structures, and your reported example is a concrete case to start with. Do you have more examples? The more varied and detailed cases I have, the easier to test find_pair against, and the more 3DNA can work for you in the end.

Xiang-Jun

1168
For model #5 of PDB entry 1aju, let's store its coordinates in file 1aju-m5.pdb. Run
Code: [Select]
find_pair 1aju-m5.pdb 1aju-m5.bpsyou get 1aju-m5.bps, with the following content:
1aju-m5.pdb
1aju-m5.out
    2         # duplex
   13         # number of base-pairs
    1    1    # explicit bp numbering/hetero atoms
    1   30  0 #    1 | ...5>A:..16_:[..G]G-----C[..C]:..46_:A<...5  1.26  0.86 43.33  8.60  0.14
    2   29  0 #    2 | ...5>A:..17_:[..G]G-----C[..C]:..45_:A<...5  1.05  0.14 21.15  8.79 -2.62
    3   28  0 #    3 | ...5>A:..18_:[..C]C-----G[..G]:..44_:A<...5  0.47  0.27 13.69  9.09 -3.30
    4   27  0 #    4 | ...5>A:..19_:[..C]C-----G[..G]:..43_:A<...5  0.55  0.43 20.29  9.06 -2.56
    5   26  0 #    5 | ...5>A:..20_:[..A]A-----U[..U]:..42_:A<...5  1.04  1.00 16.36  8.68 -1.15
    6   25  0 #    6 | ...5>A:..21_:[..G]G-----C[..C]:..41_:A<...5  1.01  0.44  9.82  8.78 -2.61
    7   24  0 #    7 | ...5>A:..22_:[..A]A-----U[..U]:..40_:A<...5  0.88  0.75 23.30  8.87 -1.45
   10   23  0 #    8 | ...5>A:..26_:[..G]G-----C[..C]:..39_:A<...5  1.16  0.44 20.37  8.79 -1.94
   11   22  0 #    9 | ...5>A:..27_:[..A]A-----U[..U]:..38_:A<...5  1.09  1.03 16.74  8.87 -1.00
   12   21  0 #   10 | ...5>A:..28_:[..G]G-----C[..C]:..37_:A<...5  0.94  0.83 22.27  8.99 -1.29
   13   20  9 #   11 x ...5>A:..29_:[..C]C-----G[..G]:..36_:A<...5  1.14  0.55 24.72  8.76 -1.53
   15   18  1 #   12 + ...5>A:..31_:[..U]U-**--G[..G]:..34_:A<...5  4.82  2.03 40.01  7.97  7.88
   16   17  1 #   13 + ...5>A:..32_:[..G]G-**+-G[..G]:..33_:A<...5  6.66  0.32 62.30  6.72  9.42

##### Base-pair criteria used:     4.00     0.00    15.00     2.50    65.00     4.50     7.50 [ O N]
##### 2 non-Watson-Crick base-pairs, and 3 helices (2 isolated bps)
##### Helix #1 (11): 1 - 11  ***broken O3'(i) to P(i+1) linkage***
##### Helix #2 (1): 12
##### Helix #3 (1): 13
The helix continues up to base pair (bp) "A:..29_:[..C]C-----G[..G]:..36_:A" (#11). The next two bps are isolated, i.e., not part of a continuous helix formed by bps from 1 to 11. Please see the attached blocview-image showing nucleotides 28 to 37, with green for G, cyan for U, red for A, and yellow for C.

Regarding your question,
Quote
When bp is represented with bigger number first (like 20-9) does it mean anything?
As shown above, the numerical values for bps (the left two columns) from find_pair are nucleotide sequential numbers as they appear in the input PDB file. What do you mean "does it mean anything?". As always, please be specific, using an example to illustrate your point.

HTH,

Xiang-Jun

1169
Thanks for using 3DNA. In 'find_pair' output, '+' means isolated base-pair (bp), i.e., a bp not in a helical context. '|' means the bp is part of a helix, and 'x' means helix breaks at the bp.

It would help if you provide an example -- then our discussion would be more specific.

Xiang-Jun

1170
Quote
is there any way to incorporate protein information in the bp_step.par file such that the whole complex undergoes bend.
No. The rebuilding process in 3DNA is purely geometric, and it does not handle protein explicitly. If you have a DNA-protein complex to start with, bending DNA will most likely cause steric clashes.

Xiang-Jun

1171
Could you please make your point specific by using a concreate example? What do your mean "it is easy to make that bend DNA using 3DNA"?

Xiang-Jun

1172
General discussions (Q&As) / Re: create bases?
« on: July 12, 2012, 11:49:04 am »
Quote
The output file generated by analyze shows only 18 base pairs and does not include the first two TT in Y chain.

The first two TTs on chain Y are not paired to AAs in 3dfv: 'find_pair' identifies all 18 bps available and 'analyze' outputs only parameters for those 18 bps. Everything is as expected.

As for your first question, i.e., pairing the two TTs in chain Y with two AAs in chain Z, have you checked if the two ends are pseudo-continuous in crystal packing? If so, write the full coordinates in a PDB file, and then 3DNA 'find_pair/analyze' will work accordingly. If not, you need to model the pairing with certain assumption/approximations. 3DNA has no direct facility for the job, but may be tailored for the purpose. On the other hand, please have a check of Coot, NAB, PyMol etc tools which may fit the job better. Please report back how it goes, and I will consider adapting 3DNA for your requirement if no other practical approach is available.

Xiang-Jun

1173
Updated to 2012jul09 -- have a look and report back how it works.

Xiang-Jun

1174
There are two aspects to your question:
  • You want the original coordinates of the base pairs (bp) instead of those reoriented w.r.t. bp reference frames.
  • You are concerned about the speed of transformations or extracting from PDB files.
Using Python or any other scripting language, you do not need to parse hundreds of PDBs, but only two: one is the the original PDB file, and the other is 'allpairs.pdb'. By scanning the later, you have a list of all bps, then you can extract one-by-one from the same original PDB file. Have a try and report back how it goes -- I do not think speed is an issue here.

That said, the most efficient way would be to add an option to 'find_pair', presumably -original_coordinate, so that instead of transforming to bp reference frame, the original atomic coordinates are written directly to 'allpairs.pdb'. I will update the 3DNA v2.1beta distribution soon, so stay tuned.

Xiang-Jun



1175
Thanks for using 3DNA and your kind words about it! Over the years, user feedback/encouragement has been the driving force to move the project forward.

As you noticed, 'allpairs.pdb' has each of its base-pair (bp) reoriented in the local bp reference frame. If you want the all-atom bp coordinates in the native PDB, you can write a simple Python script to extract them from the original PDB file -- certainly no "complex matrix transformation" required. To make the point clear, let's use '6tna' as an example.

Code: [Select]
find_pair -p 6tna.pdb 6tna.bps
    # This generates 'allpairs.pdb', where each bp is delineated by a MODEL/ENDMDL pair
head allpairs.pdb
        # The first 2 lines are as below:
    # MODEL        1
    # REMARK    Section #0001 ....>A:...1_:[..G]G-----C[..C]:..72_:A<....

For the first bp, you can then simply extract nucleotides G1 on chain A (A.G1) and A.C72 from '6tna.pdb'. Check $X3DNA/perl_scripts/pdb_frag for a rudimentary implementation in Perl. By looping through 'allpairs.pdb' and checking for pattern "REMARK    Section #", you can convert all the bps to their native PDB coordinates.

HTH,

Xiang-Jun




Pages: 1 ... 45 46 [47] 48 49 ... 63

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