-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathREADME
More file actions
146 lines (107 loc) · 5.56 KB
/
README
File metadata and controls
146 lines (107 loc) · 5.56 KB
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
supplementary codes for the paper,
"Crossing Complexity of Space-Filling Curves Reveals Entanglement of S-Phase DNA"
contact nkinney06 [at] gmail.com for questions.
better documentation of these codes is a work in progress, check back for updates
QUICK START (I recommend trying the exercises in order)
FIRST COMPILE the C codes and make some test directions:
gcc -Wall -Werror -O3 S1code.c -o multiHamiltonian
gcc -Wall -Werror -O3 -fopenmp S2code.c -o crossingComplexity -lm
gcc -O3 chulls.c -o calcTerritories -lm
python dir.py 1000
exercise 1: generate and visualize some structires (NOTE the 4th command nests 3x3x3 paths and takes about 5 minutes)
./multiHamiltonian --numberPaths 2 --initialSize 16 | python vtf.py > equilibrium.vtf
./multiHamiltonian --numberPaths 2 --initialSize 8 --cycles 2 | python vtf.py > intermediate.vtf
./multiHamiltonian --numberPaths 2 --initialSize 4 --cycles 2,2 | python vtf.py > Hilbert.vtf
./multiHamiltonian --msd 10 --numberPaths 4 --initialSize 4 --cycles 3,2 | python vtf.py > largeExample.vtf
./multiHamiltonian --msd 0 --numberPaths 3 --initialSize 3 --cycles 2,2,2 | python vtf.py > anotherExample.vtf
use VMD to to open the vtf files https://www.ks.uiuc.edu/Research/vmd/
exercise 2: generate a structures and compute crossing complexity
./multiHamiltonian --numberPaths 2 --initialSize 16 | python txt.py
./crossingComplexity vectors.txt curve_1.txt curve_2.txt > crossingComplexity.txt
exercise 3: generate figures
python simpleHeatmap.py crossingComplexity.txt
python cubizeHeatmap.py crossingComplexity.txt
python vectorHeatmap.py crossingComplexity.txt
python sphereHeatmap.py crossingComplexity.txt
exercise 4: generate an ensemble of 10 stuctures and place each snapshot in a seperate directory
for i in {1..10};
do mkdir snapshot_$i;
./multiHamiltonian --numberPaths 2 --initialSize 16 > snapshot.txt;
cat snapshot.txt | python txt.py;
cat snapshot.txt | python vtf.py > snapshot.vtf;
./crossingComplexity vectors.txt curve_1.txt curve_2.txt > crossingComplexity.txt;
mv snapshot.txt curve* snapshot.vtf crossingComplexity.txt snapshot_$i/;
done
exercise 5: run analysis of an entire ensemble (extension of exercise 4)
mkdir equilibrium
mv snapshot_* equilibrium/
python densityAnalysis.py equilibrium
python ergodicAnalysis.py equilibrium
python knotDeterminant.py equilibrium 1>/dev/null 2>/dev/null
python GaussLinkNumber.py equilibrium > linkingNumbers.txt
exercise 6: generate xyz data for KnotGenom
./multiHamiltonian --numberPaths 3 --initialSize 3 | python xyz.py > structure.xyz
upload structure.xyz to https://knotgenom.cent.uw.edu.pl/
exercise 7: generate a structure and preform analysis of territories
./multiHamiltonian --numberPaths 2 --initialSize 16 > snapshot.txt
cat snapshot.txt | python int.py
./calcTerritories curve_1.txt curve_2.txt > territories.txt
cat snapshot.txt | python vtf.py > system.vtf
python tcl.py ( requires command line vmd and tacyon ray tracer )
NOTES ON EXERCISE 7 (INSTALLING VMD AND TACHYON tested on 8/18/2020)
-----------------------------------------------------------------------------------------------------------------------------------
command line version of VMD can be obtained here (see LINUX_64 Text-mode (Linux (RHEL 6.7 and later) 64-bit Intel/AMD x86_64 w/ SSE, Text-mode))
https://www.ks.uiuc.edu/Development/Download/download.cgi?PackageName=VMD
tar xvf vmd-1.9.3.bin.LINUXAMD64.text.tar.gz
(actually I recommend vmd-1.9.2)
create a directory for vmd to live with the following directory structure,
vmd
├ bin
└ lib
update the configure file according to the VMD install instructions
$install_bin_dir="/home/nick/vmd/bin";
$install_library_dir="/home/nick/vmd/lib";
./configure
cd src/
make install
add VMD to your path:
export PATH="/home/nick/vmd/bin:$PATH"
source .bashrc
get the current tachyon distribution: (I highly recommend Version 0.99)
http://jedi.ks.uiuc.edu/~johns/raytracer/files/0.98.9/
tar xvf tachyon-0.98.9.tar.gz
cd tachyon/unix
make linux-64
add Tachyon to your path
export PATH="/home/nick/tachyon/compile/linux-64:$PATH"
source .bashrc
outline of a script to preform all analysis for a sample of curves
-----------------------------------------------------------------------------------------------------------------------------------
for i in {1..2};
do mkdir snapshot_$i;
./multiHamiltonian --numberPaths 2 --initialSize 16 > snapshot.txt;
cat snapshot.txt | python vtf.py > snapshot.vtf;
cat snapshot.txt | python txt.py;
./crossingComplexity vectors.txt curve_1.txt curve_2.txt > crossingComplexity.txt;
cat snapshot.txt | python int.py
./calcTerritories curve_1.txt curve_2.txt > territories.txt
python tcl.py
python simpleHeatmap.py crossingComplexity.txt
python cubizeHeatmap.py crossingComplexity.txt
python vectorHeatmap.py crossingComplexity.txt
python sphereHeatmap.py crossingComplexity.txt
mv *.png *.tcl *.dat territories.txt *.bmp snapshot.txt curve* snapshot.vtf crossingComplexity.txt snapshot_$i/;
done
outline of a script to preform knots and linking analysis for a sample of curves
-----------------------------------------------------------------------------------------------------------------------------------
for i in {1..100};
do mkdir snapshot_$i;
./multiHamiltonian --numberPaths 3 --initialSize 9 > snapshot.txt;
cat snapshot.txt | python txt.py;
cat snapshot.txt | python xyz.py > structure.xyz
mv snapshot.txt curve* structure.xyz snapshot_$i/;
done
mkdir ensemble
mv snapshot_* ensemble/
python knotDeterminant.py ensemble 1>/dev/null 2>/dev/null
python GaussLinkNumber.py ensemble > linkingNumbers.txt