# Description

• Determining how differences in our isopycnic cfg conditions vary in meaningful ways from those of Clay et al., 2003. Eur Biophys J
• Needed to determine whether the Clay et al., 2003 function describing diffusion is applicable to our data

standard conditions from: Clay et al., 2003. Eur Biophys J

• Standard conditions:
• 44k rev/min for Beckman XL-A
• An-50 Ti Rotor
• 44.77k rev/min for Beckman model E
• 35k rev/min for preparative ultra-cfg & fractionation
• De Sario et al., 1995: vertical rotor: VTi90 (Beckman)
• 35k rpm for 16.5 h
• Our conditions:
• speed (R) = 55k rev/min
• radius top/bottom (cm) = 2.6, 4.85
• angular velocity: w = ((2 * 3.14159 * R)/60)^2
• TLA110 rotor


In [18]:

import numpy as np




In [3]:




In [26]:

%%R
library(ggplot2)
library(dplyr)




Attaching package: ‘dplyr’

The following object is masked from ‘package:stats’:

filter

The following objects are masked from ‘package:base’:

intersect, setdiff, setequal, union



# Angular velocity (omega)



In [16]:

# angular velocity: our setup
angular_vel_f = lambda R: (2 * 3.14159 * R / 60)
print angular_vel_f(55000)

# angular velocity: De Sario et al., 1995
print angular_vel_f(35000)




5759.58166667
3665.18833333



# Meselson et al., 1957 equation on s.d. of band due to diffusion

$$\sigma^2 = \frac{RT}{M_{PX_n}\bar{\upsilon}_{PX_n} (\frac{dp}{dr})_{r_0} \omega^2 r_0}$$
• R = gas constant
• T = temperature (C)
• M = molecular weight
• PX_n = macromolecular electrolyte
• v = partial specific volume (mL/g)
• w = angular velocity
• r_0 = distance between the band center and rotor center

# Time to equilibrium: vertical rotor

• VTi90 Rotor


In [26]:

%%R -w 14 -h 6 -u in
library(ggplot2)
library(reshape)
library(grid)

r.top = 57.9 / 10
r.bottom = 71.1 / 10

# isoconcentration point
I = sqrt((r.top^2 + r.top * r.bottom + r.bottom^2)/3)

# rpm
R = 35000

# particle density
D = 1.70

# beta^o
B = 1.14e9

# dna in bp from 0.1kb - 100kb
L = seq(100, 100000, 100)

# angular velocity
## 2*pi*rpm / 60
w = ((2 * 3.14159 * R)/60)^2

# DNA GC content
G.C = seq(0.1, 0.9, 0.05)

# Molecular weight
# M.W in relation to GC content (dsDNA)
A = 313.2
T = 304.2
C = 289.2
G = 329.2
GC = G + C
AT = A + T
#GC2MW = function(x){ x*GC + (1-x)*AT + 157 }  # assuming 5' monophosphate on end of molecules
GC2MW = function(x){ x*GC + (1-x)*AT  }
M.W = sapply(G.C, GC2MW)

# buoyant density
## GC_fraction = (p - 1.66) / 0.098
GC2buoyant.density = function(x){ (x * 0.098) + 1.66 }
B.D = GC2buoyant.density(G.C)

# radius of the isoconcentration point from cfg center (AKA: r.p)
## position of the particle at equilibrium
buoyant.density2radius = function(x){ sqrt( ((x-D)*2*B/w) + I^2 ) }

# calculating S
S.fun = function(L){ 2.8 + (0.00834 * (L*M.W)^0.479) }
S = t(sapply( L, S.fun ))

# calculating T
T = matrix(ncol=17, nrow=length(L))
for(i in 1:ncol(S)){
T[,i] = 1.13e14 * B * (D-1) / (R^4 * P[i]^2 * S[,i])
}

## formating
T = as.data.frame(T)
colnames(T) = G.C
T$dna_size__kb = L / 1000 T.m = melt(T, id.vars=c('dna_size__kb')) colnames(T.m) = c('dna_size__kb', 'GC_content', 'time__h') #T.m$GC_content = as.numeric(as.character(T.m$GC_content)) ## plotting p = ggplot(T.m, aes(dna_size__kb, time__h, color=GC_content, group=GC_content)) + geom_line() + scale_y_continuous(limits=c(0,175)) + labs(x='DNA length (kb)', y='Time (hr)') + scale_color_discrete(name='GC content') + #geom_hline(yintercept=66, linetype='dashed', alpha=0.5) + theme( text = element_text(size=18) ) #print(p) # plotting at small scale p.sub = ggplot(T.m, aes(dna_size__kb, time__h, color=GC_content, group=GC_content)) + geom_line() + scale_x_continuous(limits=c(0,5)) + scale_y_continuous(limits=c(0,175)) + labs(x='DNA length (kb)', y='Time (hr)') + scale_color_discrete(name='GC content') + #geom_hline(yintercept=66, linetype='dashed', alpha=0.5) + theme( text = element_text(size=14), legend.position = 'none' ) vp = viewport(width=0.43, height=0.52, x = 0.65, y = 0.68) print(p) print(p.sub, vp=vp)    # Plotting band s.d. as defined the ultra-cfg technical manual ### density gradient $$\frac{d\rho}{dr} = \frac{\omega^2r}{\beta}$$ ### band standard deviation $$\sigma^2 = \frac{\theta}{M_{app}}\frac{RT}{(\frac{d\rho}{dr})_{eff} \omega^2r_o}$$ ### combined $$\sigma^2 = \frac{\theta}{M_{app}}\frac{RT}{\frac{\omega^4r_o^2}{\beta}}$$ ### buoyant density of a molecule $$\theta = \rho_i + \frac{\omega^2}{2\beta}(r_o^2 - r_1^2)$$ ### standard deviation due to diffusion (Clay et al., 2003) $$\sigma_{diffusion}^2 = \Big(\frac{100%}{0.098}\Big)^2 \frac{\rho RT}{\beta_B^2GM_{Cs}} \frac{1}{1000l}$$  In [196]: %%R # gas constant R = 8.3144621e7 #J / mol*K # temp T = 273.15 + 23 # 23oC # rotor speed (rpm) S = 55000 # beta^o beta = 1.14 * 10^-9 #beta = 1.195 * 10^-10 # G G = 7.87 * 10^10 #cgs # angular velocity ## 2*pi*rpm / 60 omega = 2 * pi * S /60 # GC GC = seq(0,1,0.1) # lengths lens = seq(1000, 100000, 10000) # molecular weight GC2MW.dry = function(x){ A = 313.2 T = 304.2 C = 289.2 G = 329.2 GC = G + C AT = A + T x*GC + (1-x)*AT } M.dry = sapply(GC, GC2MW) GC2MW.dryCS = function(n){ #n = number of bases #base pair = 665 daltons #base pair per dry cesium DNA = 665 * 4/3 ~= 882 return(n * 882) } M.dryCS = sapply(lens, GC2MW.dryCS) # BD GC2BD = function(x){ (x * 0.098) + 1.66 } rho = sapply(GC, GC2BD) # sd calc_s.d = function(p=1.72, L=50000, T=298, B=1.195e9, G=7.87e-10, M=882){ R = 8.3145e7 x = (100 / 0.098)^2 * ((p*R*T)/(B^2*G*L*M)) return(x) } # run p=seq(1.7, 1.75, 0.01) L=seq(1000, 50000, 1000) m = outer(p, L, calc_s.d) rownames(m) = p colnames(m) = L   1000 2000 3000 4000 5000 6000 7000 8000 1.7 44.24560 22.12280 14.74853 11.06140 8.849119 7.374266 6.320799 5.530699 1.71 44.50586 22.25293 14.83529 11.12647 8.901173 7.417644 6.357981 5.563233 1.72 44.76613 22.38307 14.92204 11.19153 8.953226 7.461022 6.395162 5.595766 1.73 45.02640 22.51320 15.00880 11.25660 9.005280 7.504400 6.432343 5.628300 1.74 45.28667 22.64333 15.09556 11.32167 9.057334 7.547778 6.469524 5.660834 1.75 45.54694 22.77347 15.18231 11.38673 9.109387 7.591156 6.506705 5.693367 9000 10000 11000 12000 13000 14000 15000 16000 1.7 4.916177 4.424560 4.022327 3.687133 3.403507 3.160400 2.949706 2.765350 1.71 4.945096 4.450586 4.045988 3.708822 3.423528 3.178990 2.967058 2.781616 1.72 4.974015 4.476613 4.069648 3.730511 3.443549 3.197581 2.984409 2.797883 1.73 5.002933 4.502640 4.093309 3.752200 3.463569 3.216171 3.001760 2.814150 1.74 5.031852 4.528667 4.116970 3.773889 3.483590 3.234762 3.019111 2.830417 1.75 5.060771 4.554694 4.140631 3.795578 3.503610 3.253353 3.036462 2.846684 17000 18000 19000 20000 21000 22000 23000 24000 1.7 2.602682 2.458089 2.328716 2.212280 2.106933 2.011163 1.923722 1.843566 1.71 2.617992 2.472548 2.342414 2.225293 2.119327 2.022994 1.935038 1.854411 1.72 2.633302 2.487007 2.356112 2.238307 2.131721 2.034824 1.946354 1.865255 1.73 2.648612 2.501467 2.369811 2.251320 2.144114 2.046655 1.957670 1.876100 1.74 2.663922 2.515926 2.383509 2.264333 2.156508 2.058485 1.968986 1.886945 1.75 2.679232 2.530385 2.397207 2.277347 2.168902 2.070315 1.980302 1.897789 25000 26000 27000 28000 29000 30000 31000 32000 1.7 1.769824 1.701754 1.638726 1.580200 1.525710 1.474853 1.427277 1.382675 1.71 1.780235 1.711764 1.648365 1.589495 1.534685 1.483529 1.435673 1.390808 1.72 1.790645 1.721774 1.658005 1.598790 1.543660 1.492204 1.444069 1.398942 1.73 1.801056 1.731785 1.667644 1.608086 1.552634 1.500880 1.452465 1.407075 1.74 1.811467 1.741795 1.677284 1.617381 1.561609 1.509556 1.460860 1.415208 1.75 1.821877 1.751805 1.686924 1.626676 1.570584 1.518231 1.469256 1.423342 33000 34000 35000 36000 37000 38000 39000 40000 1.7 1.340776 1.301341 1.264160 1.229044 1.195827 1.164358 1.134502 1.106140 1.71 1.348663 1.308996 1.271596 1.236274 1.202861 1.171207 1.141176 1.112647 1.72 1.356549 1.316651 1.279032 1.243504 1.209895 1.178056 1.147850 1.119153 1.73 1.364436 1.324306 1.286469 1.250733 1.216930 1.184905 1.154523 1.125660 1.74 1.372323 1.331961 1.293905 1.257963 1.223964 1.191754 1.161197 1.132167 1.75 1.380210 1.339616 1.301341 1.265193 1.230998 1.198604 1.167870 1.138673 41000 42000 43000 44000 45000 46000 47000 1.7 1.079161 1.053467 1.028967 1.005582 0.9832355 0.9618608 0.9413956 1.71 1.085509 1.059663 1.035020 1.011497 0.9890192 0.9675188 0.9469333 1.72 1.091857 1.065860 1.041073 1.017412 0.9948029 0.9731768 0.9524709 1.73 1.098205 1.072057 1.047126 1.023327 1.0005867 0.9788348 0.9580085 1.74 1.104553 1.078254 1.053178 1.029242 1.0063704 0.9844928 0.9635461 1.75 1.110901 1.084451 1.059231 1.035158 1.0121541 0.9901508 0.9690838 48000 49000 50000 1.7 0.9217832 0.9029713 0.8849119 1.71 0.9272055 0.9082829 0.8901173 1.72 0.9326277 0.9135945 0.8953226 1.73 0.9380500 0.9189061 0.9005280 1.74 0.9434723 0.9242177 0.9057334 1.75 0.9488945 0.9295293 0.9109387   In [45]: %%R # gas constant R = 8.3144621e7 #J / mol*K # temp T = 273.15 + 23 # 23oC # rotor speed (rpm) S = 55000 # beta^o beta = 1.14 * 10^-9 #beta = 1.195 * 10^-10 # G G = 7.87 * 10^10 #cgs # angular velocity ## 2*pi*rpm / 60 omega = 2 * pi * S /60 # GC GC = seq(0,1,0.1) # lengths lens = seq(1000, 100000, 10000) # molecular weight GC2MW.dry = function(x){ A = 313.2 T = 304.2 C = 289.2 G = 329.2 GC = G + C AT = A + T x*GC + (1-x)*AT } #GC2MW = function(x){ x*GC + (1-x)*AT } M.dry = sapply(GC, GC2MW.dry) GC2MW.dryCS = function(n){ #n = number of bases #base pair = 665 daltons #base pair per dry cesium DNA = 665 * 4/3 ~= 882 return(n * 882) } M.dryCS = sapply(lens, GC2MW.dryCS) # BD GC2BD = function(x){ (x * 0.098) + 1.66 } rho = sapply(GC, GC2BD) # sd calc_s.d = function(p=1.72, L=50000, T=298, B=1.195e9, G=7.87e-10, M=882){ R = 8.3145e7 x = (100 / 0.098)^2 * ((p*R*T)/(B^2*G*L*M)) return(x) } # run p=seq(1.7, 1.75, 0.01) L=seq(500, 50000, 500) m = outer(p, L, calc_s.d) rownames(m) = p colnames(m) = L   In [46]: %%R heatmap(m, Rowv=NA, Colv=NA)     In [53]: %%R -w 500 -h 350 df = as.data.frame(list('fragment_length'=as.numeric(colnames(m)), 'GC_sd'=m[1,])) df$GC_var = sqrt(df\$GC_sd)

ggplot(df, aes(fragment_length, GC_sd)) +
geom_line() +
geom_line(aes(y=GC_var)) +
geom_vline(xintercept=4000, linetype='dashed', alpha=0.6) +
labs(x='fragment length (bp)', y='G+C s.d.') +
theme(
text = element_text(size=16)
)







In [44]:

%%R -w 500 -h 350

df = as.data.frame(list('fragment_length'=as.numeric(colnames(m)), 'GC_sd'=m[1,]))

#plot(colnames(m), m[1,], xlab='fragment length (bp)', ylab='G+C s.d.')
ggplot(df, aes(fragment_length, GC_sd)) +
geom_line() +
geom_vline(xintercept=1000, linetype='dashed', alpha=0.6) +
labs(x='fragment length (bp)', y='G+C s.d.') +
theme(
text = element_text(size=16)
)






Notes:

• Small fragment size (<4000 bp) leads to large standard deviations in realized G+C


In [39]:

%%R
calc_s.d = function(p=1.72, L=50000, T=298, B=1.195e9, G=7.87e-10, M=882){
R = 8.3145e7
return (p*R*T)/(B^2*G*L*M)
}

# run
p=seq(1.7, 1.75, 0.01)
L=seq(500, 50000, 500)
m = outer(p, L, calc_s.d)
rownames(m) = p
colnames(m) = L
m




500        1000        1500        2000        2500        3000
1.7  42121257000 42121257000 42121257000 42121257000 42121257000 42121257000
1.71 42369029100 42369029100 42369029100 42369029100 42369029100 42369029100
1.72 42616801200 42616801200 42616801200 42616801200 42616801200 42616801200
1.73 42864573300 42864573300 42864573300 42864573300 42864573300 42864573300
1.74 43112345400 43112345400 43112345400 43112345400 43112345400 43112345400
1.75 43360117500 43360117500 43360117500 43360117500 43360117500 43360117500
3500        4000        4500        5000        5500        6000
1.7  42121257000 42121257000 42121257000 42121257000 42121257000 42121257000
1.71 42369029100 42369029100 42369029100 42369029100 42369029100 42369029100
1.72 42616801200 42616801200 42616801200 42616801200 42616801200 42616801200
1.73 42864573300 42864573300 42864573300 42864573300 42864573300 42864573300
1.74 43112345400 43112345400 43112345400 43112345400 43112345400 43112345400
1.75 43360117500 43360117500 43360117500 43360117500 43360117500 43360117500
6500        7000        7500        8000        8500        9000
1.7  42121257000 42121257000 42121257000 42121257000 42121257000 42121257000
1.71 42369029100 42369029100 42369029100 42369029100 42369029100 42369029100
1.72 42616801200 42616801200 42616801200 42616801200 42616801200 42616801200
1.73 42864573300 42864573300 42864573300 42864573300 42864573300 42864573300
1.74 43112345400 43112345400 43112345400 43112345400 43112345400 43112345400
1.75 43360117500 43360117500 43360117500 43360117500 43360117500 43360117500
9500       10000       10500       11000       11500       12000
1.7  42121257000 42121257000 42121257000 42121257000 42121257000 42121257000
1.71 42369029100 42369029100 42369029100 42369029100 42369029100 42369029100
1.72 42616801200 42616801200 42616801200 42616801200 42616801200 42616801200
1.73 42864573300 42864573300 42864573300 42864573300 42864573300 42864573300
1.74 43112345400 43112345400 43112345400 43112345400 43112345400 43112345400
1.75 43360117500 43360117500 43360117500 43360117500 43360117500 43360117500
12500       13000       13500       14000       14500       15000
1.7  42121257000 42121257000 42121257000 42121257000 42121257000 42121257000
1.71 42369029100 42369029100 42369029100 42369029100 42369029100 42369029100
1.72 42616801200 42616801200 42616801200 42616801200 42616801200 42616801200
1.73 42864573300 42864573300 42864573300 42864573300 42864573300 42864573300
1.74 43112345400 43112345400 43112345400 43112345400 43112345400 43112345400
1.75 43360117500 43360117500 43360117500 43360117500 43360117500 43360117500
15500       16000       16500       17000       17500       18000
1.7  42121257000 42121257000 42121257000 42121257000 42121257000 42121257000
1.71 42369029100 42369029100 42369029100 42369029100 42369029100 42369029100
1.72 42616801200 42616801200 42616801200 42616801200 42616801200 42616801200
1.73 42864573300 42864573300 42864573300 42864573300 42864573300 42864573300
1.74 43112345400 43112345400 43112345400 43112345400 43112345400 43112345400
1.75 43360117500 43360117500 43360117500 43360117500 43360117500 43360117500
18500       19000       19500       20000       20500       21000
1.7  42121257000 42121257000 42121257000 42121257000 42121257000 42121257000
1.71 42369029100 42369029100 42369029100 42369029100 42369029100 42369029100
1.72 42616801200 42616801200 42616801200 42616801200 42616801200 42616801200
1.73 42864573300 42864573300 42864573300 42864573300 42864573300 42864573300
1.74 43112345400 43112345400 43112345400 43112345400 43112345400 43112345400
1.75 43360117500 43360117500 43360117500 43360117500 43360117500 43360117500
21500       22000       22500       23000       23500       24000
1.7  42121257000 42121257000 42121257000 42121257000 42121257000 42121257000
1.71 42369029100 42369029100 42369029100 42369029100 42369029100 42369029100
1.72 42616801200 42616801200 42616801200 42616801200 42616801200 42616801200
1.73 42864573300 42864573300 42864573300 42864573300 42864573300 42864573300
1.74 43112345400 43112345400 43112345400 43112345400 43112345400 43112345400
1.75 43360117500 43360117500 43360117500 43360117500 43360117500 43360117500
24500       25000       25500       26000       26500       27000
1.7  42121257000 42121257000 42121257000 42121257000 42121257000 42121257000
1.71 42369029100 42369029100 42369029100 42369029100 42369029100 42369029100
1.72 42616801200 42616801200 42616801200 42616801200 42616801200 42616801200
1.73 42864573300 42864573300 42864573300 42864573300 42864573300 42864573300
1.74 43112345400 43112345400 43112345400 43112345400 43112345400 43112345400
1.75 43360117500 43360117500 43360117500 43360117500 43360117500 43360117500
27500       28000       28500       29000       29500       30000
1.7  42121257000 42121257000 42121257000 42121257000 42121257000 42121257000
1.71 42369029100 42369029100 42369029100 42369029100 42369029100 42369029100
1.72 42616801200 42616801200 42616801200 42616801200 42616801200 42616801200
1.73 42864573300 42864573300 42864573300 42864573300 42864573300 42864573300
1.74 43112345400 43112345400 43112345400 43112345400 43112345400 43112345400
1.75 43360117500 43360117500 43360117500 43360117500 43360117500 43360117500
30500       31000       31500       32000       32500       33000
1.7  42121257000 42121257000 42121257000 42121257000 42121257000 42121257000
1.71 42369029100 42369029100 42369029100 42369029100 42369029100 42369029100
1.72 42616801200 42616801200 42616801200 42616801200 42616801200 42616801200
1.73 42864573300 42864573300 42864573300 42864573300 42864573300 42864573300
1.74 43112345400 43112345400 43112345400 43112345400 43112345400 43112345400
1.75 43360117500 43360117500 43360117500 43360117500 43360117500 43360117500
33500       34000       34500       35000       35500       36000
1.7  42121257000 42121257000 42121257000 42121257000 42121257000 42121257000
1.71 42369029100 42369029100 42369029100 42369029100 42369029100 42369029100
1.72 42616801200 42616801200 42616801200 42616801200 42616801200 42616801200
1.73 42864573300 42864573300 42864573300 42864573300 42864573300 42864573300
1.74 43112345400 43112345400 43112345400 43112345400 43112345400 43112345400
1.75 43360117500 43360117500 43360117500 43360117500 43360117500 43360117500
36500       37000       37500       38000       38500       39000
1.7  42121257000 42121257000 42121257000 42121257000 42121257000 42121257000
1.71 42369029100 42369029100 42369029100 42369029100 42369029100 42369029100
1.72 42616801200 42616801200 42616801200 42616801200 42616801200 42616801200
1.73 42864573300 42864573300 42864573300 42864573300 42864573300 42864573300
1.74 43112345400 43112345400 43112345400 43112345400 43112345400 43112345400
1.75 43360117500 43360117500 43360117500 43360117500 43360117500 43360117500
39500       40000       40500       41000       41500       42000
1.7  42121257000 42121257000 42121257000 42121257000 42121257000 42121257000
1.71 42369029100 42369029100 42369029100 42369029100 42369029100 42369029100
1.72 42616801200 42616801200 42616801200 42616801200 42616801200 42616801200
1.73 42864573300 42864573300 42864573300 42864573300 42864573300 42864573300
1.74 43112345400 43112345400 43112345400 43112345400 43112345400 43112345400
1.75 43360117500 43360117500 43360117500 43360117500 43360117500 43360117500
42500       43000       43500       44000       44500       45000
1.7  42121257000 42121257000 42121257000 42121257000 42121257000 42121257000
1.71 42369029100 42369029100 42369029100 42369029100 42369029100 42369029100
1.72 42616801200 42616801200 42616801200 42616801200 42616801200 42616801200
1.73 42864573300 42864573300 42864573300 42864573300 42864573300 42864573300
1.74 43112345400 43112345400 43112345400 43112345400 43112345400 43112345400
1.75 43360117500 43360117500 43360117500 43360117500 43360117500 43360117500
45500       46000       46500       47000       47500       48000
1.7  42121257000 42121257000 42121257000 42121257000 42121257000 42121257000
1.71 42369029100 42369029100 42369029100 42369029100 42369029100 42369029100
1.72 42616801200 42616801200 42616801200 42616801200 42616801200 42616801200
1.73 42864573300 42864573300 42864573300 42864573300 42864573300 42864573300
1.74 43112345400 43112345400 43112345400 43112345400 43112345400 43112345400
1.75 43360117500 43360117500 43360117500 43360117500 43360117500 43360117500
48500       49000       49500       50000
1.7  42121257000 42121257000 42121257000 42121257000
1.71 42369029100 42369029100 42369029100 42369029100
1.72 42616801200 42616801200 42616801200 42616801200
1.73 42864573300 42864573300 42864573300 42864573300
1.74 43112345400 43112345400 43112345400 43112345400
1.75 43360117500 43360117500 43360117500 43360117500




In [37]:

%%R
heatmap(m, Rowv=NA, Colv=NA)







In [ ]: