general
parameters
equations
$S = 2.8 + 0.00834 * (L*666)^{0.479}$
$T = 1.13e14 * \beta^o * (D-1) / (R^4 * P^2 * S)$
Buckley, D. H., Huangyutitham, V., Hsu, S. F., & Nelson, T. A. (2007). Stable Isotope Probing with 15N Achieved by Disentangling the Effects of Genome G+C Content and Isotope Enrichment on DNA Density. Applied and Environmental Microbiology, 73(10), 3189–3195. Retrieved from http://aem.asm.org/cgi/doi/10.1128/AEM.02609-06
In [1]:
%load_ext rmagic
%load_ext rpy2.ipython
In [2]:
%%R
require(ggplot2)
require(gridExtra)
$\rho = 1.660 + 0.098 * GC$
$GC = (\rho - 1.66) / 0.098$
Where:
$GC = fraction\ of\ GC\ (GC content)$
$\rho = buoyant\ density$
calculations derived from emperical data in: http://www.sciencedirect.com/science/article/pii/S0022283662801004
another resource: 'http://www.ncbi.nlm.nih.gov/pmc/articles/PMC222685/pdf/pnas00194-0137.pdf'
In [3]:
%%R
# GC range
GC = seq(0,1,0.1)
## GC_fraction = (p - 1.66) / 0.098
GC2buoyant.density = function(x){ (x * 0.098) + 1.66 }
BD = GC2buoyant.density(GC)
tbl = as.data.frame(cbind(GC,BD))
p = ggplot(tbl, aes(BD, GC)) +
#geom_point(size=3) +
geom_line() +
labs(x='Buoyant density', y='GC content') +
#coord_flip() +
theme( text = element_text(size=18) )
print(p)
In [4]:
%%R -w 500 -h 350
density = seq(1.2,1.9,0.1)
B.o = c(2.04,1.55,1.33,1.22,1.17,1.14,1.12,1.12)
tbl = as.data.frame(cbind(density, B.o))
#colnames(tbl) = c('Density', 'Density-gradient proportionality constant')
p = ggplot(tbl, aes(density, B.o)) +
geom_point(size=3) +
geom_line() +
labs(x='Density', y='Density-gradient\nproportionality constant') +
theme( text = element_text(size=18)) +
geom_vline(xintercept=1.7, linetype='dashed', alpha=0.5)
print(p)
In [5]:
%%R -w 800 -h 350
# rpm
R = 55000
# average particle density (DOE grant)
D = 1.70
# Beta^o
B = 1.14e9
# radius of the isoconcentration point from cfg center (AKA: r.p)
## position of the particle at equilibrium
P = 3.78 # TLA110 rotor
# dna in bp from 0.1kb - 100kb
L = seq(100, 100000, 100)
# calculating S
S = 2.8 + (0.00834 * (L*666)^0.479)
# calculating T
T = 1.13e14 * B * (D-1) / (R^4 * P^2 * S)
# plotting
tbl = as.data.frame(cbind(L/1000, T))
colnames(tbl) = c('DNA_length__kb', 'Time__h')
p = ggplot(tbl, aes(DNA_length__kb, Time__h)) +
geom_point() +
geom_line() +
geom_hline(yintercept=66, linetype='dashed', alpha=0.5) # DOE grant time
# plotting at sm
p.sub = ggplot(tbl, aes(DNA_length__kb, Time__h)) +
geom_point() +
geom_line() +
scale_x_continuous(limits=c(0,5)) +
scale_y_continuous(limits=c(0,200)) +
geom_hline(yintercept=66, linetype='dashed', alpha=0.5)
vp = viewport(width=0.50, height=0.60, x = 0.70, y = 0.6)
print(p)
print(p.sub, vp=vp)
In [9]:
%%R -w 14 -h 6 -u in
require(ggplot2)
require(reshape)
# radius top,bottom
r.top = 2.6
r.bottom = 4.85
# isoconcentration point
I = sqrt((r.top^2 + r.top * r.bottom + r.bottom^2)/3)
# rpm
R = 55000
# particle density
D = 1.70
# beta^o
B = 1.14e9
# dna in bp from 0.1kb - 100kb
L = seq(100, 100000, 100)
# angular velocity
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 ) }
P = buoyant.density2radius(B.D)
# 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 (h)') +
scale_color_discrete(name='GC content') +
#geom_hline(yintercept=66, linetype='dashed', alpha=0.5) +
theme(
text = element_text(size=20),
axis.text.x = element_text(color='black'),
axis.text.y = element_text(color='black'),
axis.title.x = element_text(vjust=0),
axis.title.y = element_text(vjust=1)
)
#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 (h)') +
scale_color_discrete(name='GC content') +
#geom_hline(yintercept=66, linetype='dashed', alpha=0.5) +
theme(
text = element_text(size=16),
axis.text.x = element_text(color='black'),
axis.text.y = element_text(color='black'),
axis.title.x = element_text(vjust=0),
axis.title.y = element_text(vjust=1),
legend.position = 'none'
)
vp = viewport(width=0.43, height=0.62, x = 0.65, y = 0.63)
print(p)
print(p.sub, vp=vp)
pdf("~/notebook/deltaGC_notes/data/CsCl_calc/time2Eq.pdf", width=14, height=6)
print(p)
print(p.sub, vp=vp)
dev.off()
In [ ]: