summaryrefslogtreecommitdiff
path: root/cad/src/experimental/zdna-bases/NOTES
blob: 03e0eaeac4ef15b9cda45bc63c68bdb07acb7bc5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44


 Copyright 2006-2007 Nanorex, Inc.  See LICENSE file for details. 

Here is where I am getting my information from:
http://chemistry.gsu.edu/glactone/PDB/DNA_RNA/dna.html

Here is how I prepared the bases information for Z-DNA. Something
along these lines should work for many different kinds of sequence
generators so this is useful info.

I started with zdna.pdb, a file I found on the Internet. I wanted to
do three things: separate the two strands, convert from PDB to MMP
format, and add bonding information which was absent in the zdna.pdb
file.

Adding the bonding information required putting bond inference into
the _readpdb function in files_pdb.py, and the actual work is done
in the inferBonds function in bonds.py. Once this was done, the
conversion from PDB to MMP was just a matter of importing the PDB
file into nE-1 and saving it as two MMP files, one for each strand.

I separated the strands by double-clicking on an atom in select atoms
mode, so that the whole strand got selected by transitivity. Then I
could delete the selected strand and save the result as my MMP file.

The next step was to group the atoms in strand1.mmp by what base they
were a member of. I did this grouping by changing the drawing modes
for the atoms in every other base from default to lines. Using
strand1.mmp and starting at the 5' end, I did this and saved the
result as the file strund1.mmp. This part is where human judgement is
required to decide where to put the divisions between building blocks.

The next step is heavily automated, and is done by the prepare.py
script. The groups are written out to a series of individual MMP
files. These files (with names like "cytosine-inner.mmp") are used
by nE-1's DNA generator to build new structures.

As I write this, there is a remaining flaw in prepare.py. It should
put bondpoints on the two dangling bonds on each base. For bases in
the middle of a strand, these bondpoints will be joined with those of
the adjacent bases. There will be two bondpoints left on the ends,
and ideally we should attach a hydrogen at the 5' end and a hydroxyl
at the 3' end.