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 ... 47 48 [49] 50 51 ... 63
1201
General discussions (Q&As) / Re: extend dna duplex at both terminals?
« on: June 02, 2012, 10:00:28 pm »
That's understandable and case-specific. Please attach data files and images to make your point unambiguous.

Xiang-Jun
 

1202
General discussions (Q&As) / Re: extend dna duplex at both terminals?
« on: June 02, 2012, 09:05:12 pm »
For the fiber model (CGC), re-orient it using its 3'-terminal C, i.e., use -3 instead of -1 for 'frame_mol'.

Does this help?

Xiang-Jun

1203
General discussions (Q&As) / Re: extend dna duplex at both terminals?
« on: June 02, 2012, 05:56:59 pm »
Okay, "analyze" your DNA duplex the normal way. You will get a file named 'ref_frames.dat'. Then run 'frame_mol' to reorient your duplex to the reference frame of one terminal pair (say the right-side C). Build a fiber B-DNA model of your preferred sequence (e.g., CAC), and then reset it to its 1st base-pair reference frame. Since two structures have a common reference frame, you can extract the "extended" part of the fiber model to the original structure. Repeat the same procedure for the other end, you should get what you want.

The above text description may sound a bit abstract, but the basic idea is very simple and generally applicable. If you work through a concrete example step-by-step, and meet any technical problem, please post back.

Xiang-Jun

1204
General discussions (Q&As) / Re: extend dna duplex at both terminals?
« on: June 02, 2012, 08:27:34 am »
3DNA should be applicable here, at least in principle. As always, please use a concrete example to illustrate exactly what you want to achieve, then I may offer more specific help.

Xiang-Jun
 

1205
MD simulations / Re: Naming Conventions in x3dna_md output
« on: June 01, 2012, 11:16:59 pm »
Hi Gavin,

Thanks for using the 'x3dna_ensemble' Ruby script. I am glad you ask "about the naming conventions" of the output parameters. To address your question, it helps to know how the script works -- it calls 'analyze' for each model/snapshot and then extract the corresponding parameters of double helical structures.

Simply run 'analyze' on a single structure, you'd notice the following section at the very beginning of the .out file:
Code: [Select]
1. The list of the parameters given below correspond to the 5' to 3' direction
   of strand I and 3' to 5' direction of strand II.

2. All angular parameters, except for the phase angle of sugar pseudo-
   rotation, are measured in degrees in the range of [-180, +180], and all
   displacements are measured in Angstrom units.
Listing strand II parameters in the 3'->5' direction makes its base numbering consistent with base-pairs in a duplex.

So you are right in assuming "that puckering1 refers to the pucker data from strand1 and puckering2 refers to data from strand2.  I also assume that column 1 generated by extracting puckering1 refers to base 1 in the 5'->3' direction". However, as noted above, the puckering2 etc parameters are listed in 3'->5' direction.

As a general rule, whenever in doubt with any 3DNA-related issue, check with a concrete example, and do not hesitate to ask on the forum.

Xiang-Jun

1206
General discussions (Q&As) / Re: build dna bulge via 3dna?
« on: May 31, 2012, 10:35:53 am »
Thanks for using 3DNA. As to your question "to build a DNA duplex with bulges with -1, -2 up to -3 deletion, such as in PDB 1AX6 (-2 deletion)", I do not think 3DNA can do the magic automatically in a general sense -- there are so many possible variabilities to introduce bulges with -1, -2 or -3 deletions. Nevertheless, some components of 3DNA can help to some extent in the modeling process:
  • Starting from a known structure, e.g. 1ax6, you can use "mutate_bases" to change the bases to your desired DNA sequence while preserving the backbone conformation and base orientation.
  • By using "find_pair -s your.pdb stdout | analyze stdin", (manually) editing the generated file "bp_step.par" and then running "rebuild -atomic", you can build any DNA structure with your prescribed sequence and step parameters, but only approximate sugar-phosphate backbone.
HTH,

Xiang-Jun

1207
MD simulations / Re: pdb files created using v 1.5 and v 2.1 beta
« on: May 29, 2012, 09:03:44 pm »
To be clearer and more specific, please attach two PDB files you generated with 3DNA v1.5 and v2.1. What's your concern regarding the two PDB files? Overall, the v2.1 version is supposed to be more standard compliant, but the xyz coordinates should be the same.

Xiang-Jun

1208
General discussions (Q&As) / Re: ssdna binding protein, again
« on: May 25, 2012, 05:50:26 pm »
No, as discussed previously in the forum.

Xiang-Jun

1209
General discussions (Q&As) / Re: ssdna binding protein, again
« on: May 25, 2012, 10:53:01 am »
Thanks for posting your question on the forum and sending me the data. Your PDB file is an NMR ensemble consisting of 20 models. As you mentioned, the ssDNA is split into two parts, without a connecting loop.

You can run 'find_pair' with the -s option following by 'analyze', as shown below:
Code: [Select]
find_pair -s complex_ENSW_2.pdb ssDNA-protein.inp
analyze ssDNA-protein.inp

The list of nucleotides in your structure is in file 'ssDNA-protein.inp', with content:
complex_ENSW_2.pdb
complex_ENSW_2.outs
    1      # single helix
   14      # number of bases
    1    1 # explicit bp numbering/hetero atoms
  149      # ...1>B:..99_:[THY]T
  150      # ...1>B:.100_:[THY]T
  151      # ...1>B:.101_:[THY]T
  152      # ...1>B:.102_:[THY]T
  153      # ...1>B:.103_:[THY]T
  154      # ...1>B:.104_:[THY]T
  155      # ...1>B:.105_:[THY]T
  156      # ...1>B:.299_:[THY]T
  157      # ...1>B:.300_:[THY]T
  158      # ...1>B:.301_:[THY]T
  159      # ...1>B:.302_:[THY]T
  160      # ...1>B:.303_:[THY]T
  161      # ...1>B:.304_:[THY]T
  162      # ...1>B:.305_:[THY]T

The parameters for the first model in your ensemble is in file "complex_ENSW_2.outs".

Please note the follows:
  • Since your ssDNA is not in a helical conformation, the twist/rise/roll etc step parameters may not be useful; the backbone torsions have the normal meaning.
  • Since you have an ensemble, you may want to analyze all of the 20 models to see variations along the chain. Currently, the Ruby script 'x3dna_ensemble analyze' applies only to duplexes. If needed, I will consider extending the script to ssDNA as well.
  • Since you are studying a ssDNA-protein complex, the most interesting part maybe to know how ssDNA interacts with protein. Currently, 3DNA's analysis is nucleic-acid centered, i.e., without caring about the protein part. I am planning to extend 3DNA's functionality to the analysis of DNA-protein complexes from a more balanced point of view. As always, I welcome user feedback to make the forthcoming tool most relavant to real-world application.

HTH,

Xiang-Jun

1210
Thanks for using 3DNA. Regarding 1le5, if you display 1le5.pdb (downloaded from PDB) in Jmol/PyMOL/RasMol, you will immediately notice that the structure in its asymmetric unit contains two copies of DNA duplexes. The two 'fragments' are not covalently connected, thus the message "This structure has broken O3' to P[i+1] linkages." -- it is for information only, not an error.

For the benefit of other viewers, here is what it looks like:
find_pair 1le5.pdb 1le5.inp
File '1le5.inp' has the following content:
1le5.pdb
1le5.out
    2         # duplex
   22         # number of base-pairs
    1    1    # explicit bp numbering/hetero atoms
    2   24  0 #    1 | ....>C:...2_:[GUA]G-----C[CYT]:..24_:D<....  0.61  0.60 14.96  9.14 -2.43
    3   23  0 #    2 | ....>C:...3_:[GUA]G-----C[CYT]:..23_:D<....  1.51  1.46 20.49  8.77  0.45
    4   22  0 #    3 | ....>C:...4_:[GUA]G-----C[CYT]:..22_:D<....  0.22  0.16 15.16  9.16 -3.69
    5   21  0 #    4 | ....>C:...5_:[ADE]A-----T[THY]:..21_:D<....  0.62  0.47 31.07  9.04 -1.89
    6   20  0 #    5 | ....>C:...6_:[ADE]A-----T[THY]:..20_:D<....  0.29  0.26  5.82  8.99 -3.91
    7   19  0 #    6 | ....>C:...7_:[ADE]A-----T[THY]:..19_:D<....  0.33  0.28 13.21  8.86 -3.45
    8   18  0 #    7 | ....>C:...8_:[THY]T-----A[ADE]:..18_:D<....  0.38  0.31 21.55  8.63 -2.92
    9   17  0 #    8 | ....>C:...9_:[THY]T-----A[ADE]:..17_:D<....  1.06  1.02 10.85  8.99 -1.37
   10   16  0 #    9 | ....>C:..10_:[CYT]C-----G[GUA]:..16_:D<....  1.03  1.00  4.76  9.04 -1.73
   11   15  0 #   10 | ....>C:..11_:[CYT]C-----G[GUA]:..15_:D<....  0.56  0.51 11.05  9.05 -2.87
   12   14  9 #   11 x ....>C:..12_:[THY]T-----A[ADE]:..14_:D<....  0.55  0.50 30.25  8.91 -1.94
   26   48  0 #   12 | ....>G:...2_:[GUA]G-----C[CYT]:..24_:H<....  0.88  0.72  5.00  8.59 -2.43
   27   47  0 #   13 | ....>G:...3_:[GUA]G-----C[CYT]:..23_:H<....  1.08  0.96 14.49  8.78 -1.27
   28   46  0 #   14 | ....>G:...4_:[GUA]G-----C[CYT]:..22_:H<....  0.40  0.24 12.49  8.79 -3.50
   29   45  0 #   15 | ....>G:...5_:[ADE]A-----T[THY]:..21_:H<....  0.41  0.30 13.27  8.63 -3.33
   30   44  0 #   16 | ....>G:...6_:[ADE]A-----T[THY]:..20_:H<....  0.95  0.80 21.23  8.37 -1.38
   31   43  0 #   17 | ....>G:...7_:[ADE]A-----T[THY]:..19_:H<....  0.86  0.81 19.69  8.59  0.46
   32   42  0 #   18 | ....>G:...8_:[THY]T-----A[ADE]:..18_:H<....  0.88  0.80 21.14  8.77 -1.45
   33   41  0 #   19 | ....>G:...9_:[THY]T-----A[ADE]:..17_:H<....  0.88  0.29 20.88  8.50 -2.50
   34   40  0 #   20 | ....>G:..10_:[CYT]C-----G[GUA]:..16_:H<....  0.70  0.34 11.58  8.42 -0.03
   35   39  0 #   21 | ....>G:..11_:[CYT]C-----G[GUA]:..15_:H<....  0.82  0.56  5.73  8.42  0.22
   36   38  0 #   22 | ....>G:..12_:[THY]T-----A[ADE]:..14_:H<....  1.18  0.85  5.25  8.14  0.13
##### Base-pair criteria used:     4.00     0.00    15.00     2.50    65.00     4.50     7.50 [ O N]
##### 0 non-Watson-Crick base-pairs, and 2 helices (0 isolated bps)
##### Helix #1 (11): 1 - 11
##### Helix #2 (11): 12 - 22
[/color]
The output from running "analyze 1le5.inp" contains parameters in file '1le5.out'. For groove widths, you just need to consider one section:
                  Minor Groove        Major Groove
                 P-P     Refined     P-P     Refined
   1 GG/CC       ---       ---       ---       ---
   2 GG/CC       ---       ---       ---       ---
   3 GA/TC      10.2       ---      20.6       ---
   4 AA/TT       8.1       8.1      18.2      18.1
   5 AA/TT       9.2       9.2      16.6      16.1
   6 AT/AT      10.5      10.5      17.1      17.0
   7 TT/AA       9.6       9.5      18.9      18.8
   8 TC/GA      10.9       ---      22.6       ---
   9 CC/GG       ---       ---       ---       ---
  10 CT/AG       ---       ---       ---       ---
  11 TG/CA       ---       ---       ---       ---

Alternatively, you may manually extract only chains C and D, and repeat the above procedure.

HTH,

Xiang-Jun

1211
How about:

Code: [Select]
find_pair -p 437d.pdb 437d.all
analyze -c allpairs.ana

I used the PDB entry 437d. Note the -c option of 'analyze'. Does it fit the bill?

Xiang-Jun

1212
Hi Pascal,

First to clarify, in 'find_pair', the -z option does not combine with -p; try for example 355d with -pz and -p only, you will get the same output file. The -z option is for detailed output of base-pair parameters of duplex structures (mainly for debugging without running 'analyze'). The -p option is for detection of all base pairs without regarding whether they are in double helices and its output is not to be fed into 'analyze'. This option had existed even before v1.5 and it formed the basis of BPS and RNAView. However, I did not have an opportunity to document this feature until v2.0 to accompany the 2008 3DNA Nature Protocols paper -- such thing won't happen again.

Second, and more important, please be specific with an example on what do you want to get (with -p). I will see if your request fits in core 3DNA or better served with a script.

Xiang-Jun

1213
Thanks for clarifying your question. The info you asked for is still available in 3DNA output from 'analyze' as shown below for 355d/bdl084:
****************************************************************************
Global linear helical axis defined by equivalent C1' and RN9/YN1 atom pairs
Deviation from regular linear helix: 3.30(0.52)
Helix:    -0.127  -0.275  -0.953
HETATM 9998  XS    X X 999      17.536  25.713  25.665
HETATM 9999  XE    X X 999      12.911  15.677  -9.080
Average and standard deviation of helix radius:
      P: 9.42(0.82), O4': 6.37(0.85),  C1': 5.85(0.86)

Global parameters based on C1'-C1' vectors:

disp.: displacement of the middle C1'-C1' point from the helix
angle: inclination between C1'-C1' vector and helix (subtracted from 90)
twist: helical twist angle between consecutive C1'-C1' vectors
rise:  helical rise by projection of the vector connecting consecutive
       C1'-C1' middle points onto the helical axis

     bp       disp.    angle     twist      rise
   1 C-G      1.95      5.18     36.25      3.50
   2 G-C      2.04      4.65     40.52      2.43
   3 C-G      2.26      4.02     28.36      4.27
   4 G-C      3.04     -0.22     36.02      3.07
   5 A-T      3.53     -5.05     36.82      3.14
   6 A-T      3.32     -5.83     32.80      3.09
   7 T-A      2.98     -6.44     34.14      3.23
   8 T-A      2.99     -7.13     39.93      2.82
   9 C-G      2.88     -4.95     29.46      4.19
  10 G-C      2.34     -6.66     39.85      2.81
  11 C-G      2.37    -10.68     35.99      3.90
  12 G-C      1.85     -4.90      ---       ---

Xiang-Jun

1214
Try 'cehs' instead of 'analyze'. Does it provide what you want?

Xiang-Jun

1215
General discussions (Q&As) / Re: Base Stacking analysis
« on: May 02, 2012, 11:19:00 am »
Hi Ju,

Thanks for your interest in 3DNA. Regarding base-stacking analysis, 'analyze' in 3DNA does the job: for double helical structures, the program projects base atoms onto the "mean" base-pair plane and then calculates the overlap area, if the two base-pairs in a dinucleotide step are not too far away. It does a similar job for single-stranded structures, on neighboring nucleotides as defined in the input file.

Note that in its current setting, the 'analyze' program does not perform an exhaustive stacking analysis of all possible nucleotide bases in three-dimensional space. For that purpose, you may try FR3D from the Leontis laboratory.

I am also quite interested in extending 3DNA's functionality for RNA structure analysis, and I greatly appreciate user's feedback.

Xiang-Jun

1216
As you know, 3DNA employs the El Hassan and Calladine algorithm to calculate major- and minor-groove widths. More specially, the appendix of the 1998 J. Mol. Biol. paper "Two Distinct Modes of Protein-induced Bending in DNA" was the sole reference based on which I implemented the groove-width algorithm. I am going to document the technical details, with an example, in the near future. However, if you really want to get to the bottom of the method, there is no substitute for reading carefully the original reference; after all, the appendix is only less than three pages long.

Quote
Also it will be nice to know of any other algorithm/ work that talks about groove width calculation that is accepted  by Nucleic acid community. their advantages n disadvantages. esp with respected irregular deformed helices.
This is not a light topic, which certainly cannot be fully addressed in a forum post, at least in my understanding. However, I assume that you are (or should be) aware of Curves/Curves+ which "provides a full analysis of groove widths and depths".

Given your deep interest in groove calculation, have you surveyed the literature? Do you know of other references than those two mentioned above? It would be helpful if you could share such information with us -- I'll consider to add the groove depth parameter if it fits in with 3DNA.

Xiang-Jun

1217
MD simulations / Re: No matching entry in atomlist.dat
« on: April 29, 2012, 08:23:33 pm »
In the default 'atomlist.dat' file, there is an entry, [.OW.   O]. Presumably, yours should be added as: [..OW   O].

DG3 and DC5 have already been included in 'baselist.dat' (as 'g' and 'c' respectively). What specific message does 'find_pair' output for your structure? Did you know that, as of 3DNA v2.1, you do not have to modify 'baselist.dat'?  Nevertheless, it is a good idea to be explicit about each mapping.

Attaching a sample PDB file would clarify the issues.

Xiang-Jun

1218
Site announcements / The forum is shaping up nicely
« on: April 24, 2012, 03:09:31 pm »
Ever since new 3DNA forum was made public in early March, it is shaping up quite nicely. As demonstrated by the statistics, the number of registrations and posts have increased significantly thereafter. The following table is a snapshot of the section "Forum History (using forum time offset)" (at the bottom of the statistics page) as of today while I am writing this post:
Yearly Summary     New Topics  New Posts   New Members   Most Online
 2012                  39          163          114            11
    April 2012         7           60           44             9
    March 2012         13          55           61             11
    February 2012      13          38           7              6
    January 2012       6           10           2              6
 2011                  3           6            8              6
Note that most of the posts in February were composed by myself in preparing the forum for public release.

As made clear in my initial welcome message, the forum was created to make 3DNA-related discussions archived, searchable, and viewable to the public (without registration). With support from the community at large, enthusiastic users in particular, 3DNA forum is functioning well as expected -- thank you! As 3DNA enjoys wider recognition it deserves, the forum is more than likely to become more active, and potentially turns into "an online community for DNA/RNA structural bioinformatics."

I'd like to emphasize again that any 3DNA-related questions are welcome and should be directed to this 3DNA forum. As always, I strive to provide a prompt and concrete response to each and every question posted here. No email or private forum message, please -- by asking your questions on the public 3DNA Forum, you are benefiting not only yourself but also the whole user community.

Xiang-Jun

1219
General discussions (Q&As) / Re: Missing files from analyze?
« on: April 23, 2012, 10:48:14 pm »
Glad to see "it worked beautifully". So 3DNA is not that hard to pick up. :)

Quote
I just "chopped up" my RNA, isolating the helix I was interested
Just curious, what do you mean by "chopping up" your RNA? Did you know that the default settings of find_pair automatically locate all double helical regions in an RNA structure, and store the fragments in file "hel_regions.pdb"? Does this functionality help?

Prompted by you initial question, I am considering to refine the "analyze" program to output "stacking.pdb" for single-stranded DNA/RNA structures as well. This is yet another example of how a user's question helps improve 3DNA.

Xiang-Jun

1220
General discussions (Q&As) / Re: Missing files from analyze?
« on: April 23, 2012, 04:49:43 pm »
Welcome to 3DNA!

Are you using the "-s" option [for single-strand (ss)] with your RNA structure? In its current setting, 3DNA generates the "stacking.pdb" file only for a duplex. I will consider adding "stacking.pdb" for ss-DNA/RNA if it's useful to you -- so far, you're the only 3DNA user having this "problem", if I understand your post correctly.

Xiang-Jun

1221
Thanks for your request for adding new options to mutate_bases "to mutate all residues of the same type to another". I see your point, but I feel such functionality is better served by purpose-specific scripts instead of by mutate_bases itself. As a general design principle, I aim to make the core part of 3DNA focused, robust and efficient, and use Ruby scripts to build up features of general interest. Overall, 3DNA is intended as a toolset to be used as users see fit.

With regard to mutate_bases, I am considering to add an option to list all bases (nucleotides) in a PDB structure in a format that can be easily modified (either manually or pragmatically) and then fed back to the program. This option allows for easy adaptation of mutate_bases to various common situations (including yours), without adding too many bells and whistles that would blur the program's primary function.

An excerpt example for the first 12 bases of 6tna is as below:

Code: [Select]
chain=A snum=1 name=G
chain=A snum=2 name=C
chain=A snum=3 name=G
chain=A snum=4 name=G
chain=A snum=5 name=A
chain=A snum=6 name=U
chain=A snum=7 name=U
chain=A snum=8 name=U
chain=A snum=9 name=A
chain=A snum=10 name=2MG
chain=A snum=11 name=C
chain=A snum=12 name=U

Does this sound useful?

Xiang-Jun

1222
General discussions (Q&As) / Re: local helical axis
« on: April 20, 2012, 09:44:21 am »
In my previous reply, I asked you if the "Position (Px, Py, Pz) and local helical axis vector" from analyze output file are what you want. From my understanding of your question "Where can I find the vectors of the local helical axis?", I guess they should be. Please confirm.

The "ref_frames.dat" file, as its name implies, contains the reference frames of all base pairs.

Xiang-Jun

1223
RNA structures (DSSR) / Re: Single-Stranded Based Zp Parameter
« on: April 19, 2012, 05:21:58 pm »
Yes, the -torsion option of analyze is intended to be standalone, starting directly from a PDB file, without first running find_pair. The "-c" option does not apply here and is silently ignored.

As I mentioned in several occasions, all nucleic acid backbone torsion angles can be calculated as follows (using 6tna as an example, and the output file would be in '6tna.outs'):

Code: [Select]
find_pair -s 6tna.pdb 6tna.nts
analyze 6tna.nts

# or the above two commands can be combined:
find_pair -s 6tna.pdb stdout | analyze stdin

This functionality has been there since 3DNA v1.5, but it is not widely recognized/used by the community. Once in a while, I notice from literature (mostly on RNA structures) some sort of ad hoc scripts to calculate just those torsion angles.

Now by adding this -torsion option explicitly, by cutting one extra step, and by providing more useful features, I am hoping the new "analyze -torsion" combo would gradually find its way in RNA structure related research.

As always, I am open to suggestions to continuously refine this new feature of 3DNA.

Xiang-Jun

1224
General discussions (Q&As) / Re: local helical axis
« on: April 19, 2012, 03:31:20 pm »
Does the section (from analyze output) as below fit the bill? Here I am using 355d/bdl084 as an example.

Code: [Select]
Position (Px, Py, Pz) and local helical axis vector (Hx, Hy, Hz)
         for each dinucleotide step

     step       Px        Py        Pz        Hx        Hy        Hz
   1 CG/CG     15.99     26.43     24.17      0.03     -0.21     -0.98
   2 GC/GC     17.37     23.05     21.31     -0.39     -0.41     -0.82
   3 CG/CG     15.84     24.53     17.27      0.23     -0.39     -0.89
   4 GA/TC     15.59     22.51     14.84     -0.16     -0.35     -0.92
   5 AA/TT     15.65     20.84     11.86     -0.14     -0.31     -0.94
   6 AT/AT     15.26     20.22      8.64     -0.14     -0.22     -0.97
   7 TT/AA     15.05     19.77      5.44     -0.12     -0.30     -0.95
   8 TC/GA     14.55     19.21      2.15     -0.12     -0.26     -0.96
   9 CG/CG     11.86     20.64     -0.66     -0.23     -0.04     -0.97
  10 GC/GC     14.37     17.46     -3.79     -0.05     -0.38     -0.93
  11 CG/CG     12.05     18.00     -7.38     -0.08      0.04     -1.00

Xiang-Jun

1225
RNA structures (DSSR) / Re: Single-Stranded Based Zp Parameter
« on: April 19, 2012, 03:11:03 pm »
Hi,

Thanks for your quick catch -- I am planning to write a post talking about these new parameters :-).

Okay, the new option is -torsion (can be abbreviated to -t) for the analyze program. It is meant to be easy to use, efficient, and robust for real-world applications. As always, the point is best illustrated with concrete examples -- do the following and then check output files '1jj2.tor' and '6tna.tor':

Code: [Select]
analyze -t=1jj2.tor 1jj2.pdb
analyze -torsion=6tna.tor 6tna.pdb

Try to delete base atoms, some of backbone atoms, or use a PNA structure etc, the program should behave properly. I'd like to hear your feedback on how the program is working ...

Xiang-Jun


Pages: 1 ... 47 48 [49] 50 51 ... 63

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