############################################################################################
#setwd("D:/Data/Projects_and_documents/Olveczka/Mikrosonda")
data=read.delim("Supplementary data-microprobe.txt", header=T)
object=data[,"Object"]
source=data[,"Source.2"]
bed=data[,"Bed"]
bed.id=data[,"Bed.ID"]
section=data[,"Section"]
order=data[,"Order"]
zone=data[,"Zone"]
sediment=source
sediment=ifelse(source=="inner","sediment", sediment)
sediment=ifelse(source=="matrix","sediment", sediment)
genus=data[,"Genus"]
coarse.genus=data[,"Coarse.determination"]
source.bed=paste(source,"-",bed)

#############
#ELEMENT PPM
#############
Mn.ppm=data[,"Mn..ppm."]
Fe.ppm=data[,"Fe..ppm."]
Mg.ppm=data[,"Mg..ppm."]
Sr.ppm=data[,"Sr..ppm."]
S.ppm=data[,"S..ppm."]
#################################################################################
#CORRELATIONS BETWEEN PER-SAMPLE CONCENTRATIONS IN LORICAE AND MICRITE
#AND IN LORICAE AND INTERNAL INFILL
#################################################################################
lorica.Mg=tapply(Mg.ppm[which(source=="lorica")], bed[which(source=="lorica")], median, na.rm=T)
inner.Mg=tapply(Mg.ppm[which(source=="inner")], bed[which(source=="inner")], median, na.rm=T)
matrix.Mg=tapply(Mg.ppm[which(source=="matrix")], bed[which(source=="matrix")], median, na.rm=T)
lorica.Mn=tapply(Mn.ppm[which(source=="lorica")], bed[which(source=="lorica")], median, na.rm=T)
inner.Mn=tapply(Mn.ppm[which(source=="inner")], bed[which(source=="inner")], median, na.rm=T)
matrix.Mn=tapply(Mn.ppm[which(source=="matrix")], bed[which(source=="matrix")], median, na.rm=T)
lorica.Fe=tapply(Fe.ppm[which(source=="lorica")], bed[which(source=="lorica")], median, na.rm=T)
inner.Fe=tapply(Fe.ppm[which(source=="inner")], bed[which(source=="inner")], median, na.rm=T)
matrix.Fe=tapply(Fe.ppm[which(source=="matrix")], bed[which(source=="matrix")], median, na.rm=T)
lorica.Sr=tapply(Sr.ppm[which(source=="lorica")], bed[which(source=="lorica")], median, na.rm=T)
inner.Sr=tapply(Sr.ppm[which(source=="inner")], bed[which(source=="inner")], median, na.rm=T)
matrix.Sr=tapply(Sr.ppm[which(source=="matrix")], bed[which(source=="matrix")], median, na.rm=T)
lorica.S=tapply(S.ppm[which(source=="lorica")], bed[which(source=="lorica")], median, na.rm=T)
inner.S=tapply(S.ppm[which(source=="inner")], bed[which(source=="inner")], median, na.rm=T)
matrix.S=tapply(S.ppm[which(source=="matrix")], bed[which(source=="matrix")], median, na.rm=T)
labels=names(lorica.Mg)
mat.lorica.inner=match(labels, names(inner.Mg))
mat.lorica.matrix=match(labels, names(matrix.Mg))

#COMPUTE CORRELATIONS
cor.test(lorica.Mg,matrix.Mg[mat.lorica.matrix],method="s")
cor.test(lorica.Mg,inner.Mg[mat.lorica.inner],method="s")
cor.test(lorica.S,matrix.S[mat.lorica.matrix],method="s")
cor.test(lorica.S,inner.S[mat.lorica.inner],method="s")
cor.test(lorica.Sr,matrix.Sr[mat.lorica.matrix],method="s")
cor.test(lorica.Sr,inner.Sr[mat.lorica.inner],method="s")
cor.test(lorica.Mn,matrix.Mn[mat.lorica.matrix],method="s")
cor.test(lorica.Mn,inner.Mn[mat.lorica.inner],method="s")
cor.test(lorica.Fe,matrix.Fe[mat.lorica.matrix],method="s")
cor.test(lorica.Fe,inner.Fe[mat.lorica.inner],method="s")

wilcox.test(lorica.Mg,matrix.Mg[mat.lorica.matrix], paired=T)
wilcox.test(lorica.Mg,inner.Mg[mat.lorica.inner], paired=T)
median(lorica.Mg)-median(inner.Mg[mat.lorica.inner], na.rm=T)
median(lorica.Mg)-median(matrix.Mg[mat.lorica.matrix], na.rm=T)

#################################################################################
#BIVARIATE PLOTS FOR PER-SAMPLE CONCENTRATIONS IN LORICAE VS MICRITE
#################################################################################
par(mfrow=c(2,2))
par(mar=c(4,4,2,1))
plot(lorica.Mg,matrix.Mg[mat.lorica.matrix], frame=F, cex=1.2, pch=16, 
xlab="Lorica Mg (ppm)", ylab="Lorica-surrounding micrite Mg (ppm)", xlim=c(2000,5500), ylim=c(500,5500))
lines(c(1,10000), c(1,10000), lty=2)
plot(lorica.Mg,inner.Mg[mat.lorica.inner], frame=F, cex=1.2, pch=16, 
xlab="Lorica Mg (ppm)", ylab="Infill (microspar) Mg (ppm)", xlim=c(2000,5500), ylim=c(500,5500))
lines(c(1,10000), c(1,10000), lty=2)
#################################################################################
#compare infill with loricae
#################################################################################
par(mfrow=c(2,4))
par(mar=c(4,4,2,1))
plot(lorica.Mg,inner.Mg[mat.lorica.inner], frame=F, cex=1.2, pch=16, xlab="Lorica Mg (ppm)", ylab="Infill Mg (ppm)", xlim=c(500,5500), ylim=c(500,5500))
lines(c(1,10000), c(1,10000), lty=2)
plot(lorica.Mn,inner.Mn[mat.lorica.inner], frame=F, cex=1.2, pch=16, xlab="Lorica Mn (ppm)", ylab="Infill Mn (ppm)",xlim=c(0,1500), ylim=c(0,1500))
lines(c(1,10000), c(1,10000), lty=2)

wilcox.test(lorica.Mg,matrix.Mg[mat.lorica.matrix], paired=T)
median(lorica.Mg)
median(matrix.Mg[mat.lorica.matrix], na.rm=T)
median(inner.Mg[mat.lorica.inner], na.rm=T)

#################################################################################
#check other elements
#################################################################################
par(mfrow=c(3,2))
par(mar=c(4,4,2,1))
plot(lorica.S,inner.S[mat.lorica.inner], frame=F, pch=16, xlab="Lorica S (ppm)", ylab="Infill S (ppm)", xlim=c(0,1000), ylim=c(0,1000))
lines(c(1,10000), c(1,10000), lty=2)
plot(lorica.S,matrix.S[mat.lorica.matrix], frame=F, pch=16, xlab="Lorica S (ppm)", ylab="Micrite S (ppm)", xlim=c(0,1000), ylim=c(0,1000))
lines(c(1,10000), c(1,10000), lty=2)

plot(lorica.Fe,inner.Fe[mat.lorica.inner], pch=16, frame=F, xlim=c(0,2000), ylim=c(0,2000))
lines(c(1,10000), c(1,10000), lty=2)
plot(lorica.Fe,matrix.Fe[mat.lorica.matrix], pch=16, frame=F, xlim=c(0,2000), ylim=c(0,2000))
lines(c(1,10000), c(1,10000), lty=2)

plot(lorica.Sr,inner.Sr[mat.lorica.inner], pch=16, frame=F, xlim=c(0,1000), ylim=c(0,1000))
lines(c(1,10000), c(1,10000), lty=2)
plot(lorica.Sr,matrix.Sr[mat.lorica.matrix], pch=16, frame=F, xlim=c(0,1000), ylim=c(0,1000))
lines(c(1,10000), c(1,10000), lty=2)

##########################################################################################################
#CALPIONELLIDS - DIFFERENCES IN MG, S, MN  BETWEEN MATRIX AND LORICAE
##########################################################################################################
par(mfrow=c(2,3))
par(mar=c(4,4,2,0))
out.Mg=boxplot(Mg.ppm[(source=="inner")  & coarse.genus=="Calpionellid" & (section=="Strapkova")],
Mg.ppm[(source=="matrix")  & coarse.genus=="Calpionellid" & (section=="Strapkova")], 
Mg.ppm[(source=="lorica")  & coarse.genus=="Calpionellid" & (section=="Strapkova")],
Mg.ppm[(source=="inner")  & coarse.genus=="Calpionellid" & (section=="Brodno")],
Mg.ppm[(source=="matrix")  & coarse.genus=="Calpionellid" & (section=="Brodno")], 
Mg.ppm[(source=="lorica")  & coarse.genus=="Calpionellid" & (section=="Brodno")], 
Mg.ppm[(source=="inner")  & coarse.genus=="Calpionellid" & (section=="Sneznica")],
Mg.ppm[(source=="matrix")  & coarse.genus=="Calpionellid" & (section=="Sneznica")], 
Mg.ppm[(source=="lorica")  & coarse.genus=="Calpionellid" & (section=="Sneznica")],
frame=F, range=0, col=rep(c("gray31","gray61","white"),3), cex=1.2, ylim=c(100,10000), main="", las=2,
names=rep(c("inner infill","outer sediment","lorica"),3), ylab="Mg (ppm)")
text(x=2, y=9000, labels="Strapkova", srt=90)
text(x=5, y=9000, labels="Brodno", srt=90)
text(x=8, y=9000, labels="Sneznica", srt=90)
abline(v=c(3.5,6.5), lty=2)

out.Mn=boxplot(Mn.ppm[(source=="inner")  & coarse.genus=="Calpionellid" & (section=="Strapkova")],
Mn.ppm[(source=="matrix")  & coarse.genus=="Calpionellid" & (section=="Strapkova")], 
Mn.ppm[(source=="lorica")  & coarse.genus=="Calpionellid" & (section=="Strapkova")],
Mn.ppm[(source=="inner")  & coarse.genus=="Calpionellid" & (section=="Brodno")],
Mn.ppm[(source=="matrix")  & coarse.genus=="Calpionellid" & (section=="Brodno")], 
Mn.ppm[(source=="lorica")  & coarse.genus=="Calpionellid" & (section=="Brodno")], 
Mn.ppm[(source=="inner")  & coarse.genus=="Calpionellid" & (section=="Sneznica")],
Mn.ppm[(source=="matrix")  & coarse.genus=="Calpionellid" & (section=="Sneznica")], 
Mn.ppm[(source=="lorica")  & coarse.genus=="Calpionellid" & (section=="Sneznica")],
frame=F, range=0, col=rep(c("gray31","gray61","white"),3), cex=1.2, ylim=c(1,3000), main="", las=2,
names=rep(c("inner infill","outer sediment","lorica"),3), ylab="Mn (ppm)")
text(x=2, y=2700, labels="Strapkova", srt=90)
text(x=5, y=2700, labels="Brodno", srt=90)
text(x=8, y=2700, labels="Sneznica", srt=90)
abline(v=c(3.5,6.5), lty=2)

out.S=boxplot(S.ppm[(source=="inner")  & coarse.genus=="Calpionellid" & (section=="Strapkova")],
S.ppm[(source=="matrix")  & coarse.genus=="Calpionellid" & (section=="Strapkova")], 
S.ppm[(source=="lorica")  & coarse.genus=="Calpionellid" & (section=="Strapkova")],
S.ppm[(source=="inner")  & coarse.genus=="Calpionellid" & (section=="Brodno")],
S.ppm[(source=="matrix")  & coarse.genus=="Calpionellid" & (section=="Brodno")], 
S.ppm[(source=="lorica")  & coarse.genus=="Calpionellid" & (section=="Brodno")], 
S.ppm[(source=="inner")  & coarse.genus=="Calpionellid" & (section=="Sneznica")],
S.ppm[(source=="matrix")  & coarse.genus=="Calpionellid" & (section=="Sneznica")], 
S.ppm[(source=="lorica")  & coarse.genus=="Calpionellid" & (section=="Sneznica")],
frame=F, range=0, col=rep(c("gray31","gray61","white"),3), cex=1.2, ylim=c(1,950), main="", las=2,
names=rep(c("inner infill","outer sediment","lorica"),3), ylab="S (ppm)")
text(x=2, y=850, labels="Strapkova", srt=90)
text(x=5, y=850, labels="Brodno", srt=90)
text(x=8, y=850, labels="Sneznica", srt=90)
abline(v=c(3.5,6.5), lty=2)

####################################################
#WITH TESTS
####################################################
kruskal.test(list(Mg.ppm[(source=="inner")  & coarse.genus=="Calpionellid" & (section=="Strapkova")],
Mg.ppm[(source=="matrix")  & coarse.genus=="Calpionellid" & (section=="Strapkova")], 
Mg.ppm[(source=="lorica")  & coarse.genus=="Calpionellid" & (section=="Strapkova")]))

kruskal.test(list(Mg.ppm[(source=="inner")  & coarse.genus=="Calpionellid" & (section=="Brodno")],
Mg.ppm[(source=="matrix")  & coarse.genus=="Calpionellid" & (section=="Brodno")], 
Mg.ppm[(source=="lorica")  & coarse.genus=="Calpionellid" & (section=="Brodno")]))

kruskal.test(list(Mg.ppm[(source=="inner")  & coarse.genus=="Calpionellid" & (section=="Sneznica")],
Mg.ppm[(source=="matrix")  & coarse.genus=="Calpionellid" & (section=="Sneznica")], 
Mg.ppm[(source=="lorica")  & coarse.genus=="Calpionellid" & (section=="Sneznica")]))

wilcox.test(Mg.ppm[(source=="inner" | source=="matrix")  & coarse.genus=="Calpionellid" & (section=="Strapkova")], 
Mg.ppm[(source=="lorica")  & coarse.genus=="Calpionellid" & (section=="Strapkova")])
wilcox.test(Mg.ppm[(source=="inner" | source=="matrix")  & coarse.genus=="Calpionellid" & (section=="Brodno")], 
Mg.ppm[(source=="lorica")  & coarse.genus=="Calpionellid" & (section=="Brodno")])
wilcox.test(Mg.ppm[(source=="inner" | source=="matrix")  & coarse.genus=="Calpionellid" & (section=="Sneznica")],
Mg.ppm[(source=="lorica")  & coarse.genus=="Calpionellid" & (section=="Sneznica")])

wilcox.test(S.ppm[(source=="inner" | source=="matrix")  & coarse.genus=="Calpionellid" & (section=="Strapkova")], 
S.ppm[(source=="lorica")  & coarse.genus=="Calpionellid" & (section=="Strapkova")])
wilcox.test(S.ppm[(source=="inner" | source=="matrix")  & coarse.genus=="Calpionellid" & (section=="Brodno")], 
S.ppm[(source=="lorica")  & coarse.genus=="Calpionellid" & (section=="Brodno")])
wilcox.test(S.ppm[(source=="inner" | source=="matrix")  & coarse.genus=="Calpionellid" & (section=="Sneznica")],
S.ppm[(source=="lorica")  & coarse.genus=="Calpionellid" & (section=="Sneznica")])

wilcox.test(Mn.ppm[(source=="inner" | source=="matrix")  & coarse.genus=="Calpionellid" & (section=="Strapkova")], 
Mn.ppm[(source=="lorica")  & coarse.genus=="Calpionellid" & (section=="Strapkova")])
wilcox.test(Mn.ppm[(source=="inner" | source=="matrix")  & coarse.genus=="Calpionellid" & (section=="Brodno")], 
Mn.ppm[(source=="lorica")  & coarse.genus=="Calpionellid" & (section=="Brodno")])
wilcox.test(Mn.ppm[(source=="inner" | source=="matrix")  & coarse.genus=="Calpionellid" & (section=="Sneznica")],
Mn.ppm[(source=="lorica")  & coarse.genus=="Calpionellid" & (section=="Sneznica")])

####################################################
#other elements
####################################################
par(mfrow=c(2,2))
out.Fe=boxplot(Fe.ppm[(source=="inner")  & coarse.genus=="Calpionellid" & (section=="Strapkova")],
Fe.ppm[(source=="matrix")  & coarse.genus=="Calpionellid" & (section=="Strapkova")], 
Fe.ppm[(source=="lorica")  & coarse.genus=="Calpionellid" & (section=="Strapkova")],
Fe.ppm[(source=="inner")  & coarse.genus=="Calpionellid" & (section=="Brodno")],
Fe.ppm[(source=="matrix")  & coarse.genus=="Calpionellid" & (section=="Brodno")], 
Fe.ppm[(source=="lorica")  & coarse.genus=="Calpionellid" & (section=="Brodno")], 
Fe.ppm[(source=="inner")  & coarse.genus=="Calpionellid" & (section=="Sneznica")],
Fe.ppm[(source=="matrix")  & coarse.genus=="Calpionellid" & (section=="Sneznica")], 
Fe.ppm[(source=="lorica")  & coarse.genus=="Calpionellid" & (section=="Sneznica")],
frame=F, range=0, col="gray", cex=1.2, ylim=c(1,7000), main="", las=2,
names=rep(c("inner filling","ext. matrix","lorica"),3), ylab="Fe (ppm)")
text(x=2, y=6500, labels="Strapkova", srt=90)
text(x=5, y=6500, labels="Brodno", srt=90)
text(x=8, y=6500, labels="Sneznica", srt=90)
abline(v=c(3.5,6.5), lty=2)

####################################################
out.Sr=boxplot(Sr.ppm[(source=="inner")  & coarse.genus=="Calpionellid" & (section=="Strapkova")],
Sr.ppm[(source=="matrix")  & coarse.genus=="Calpionellid" & (section=="Strapkova")], 
Sr.ppm[(source=="lorica")  & coarse.genus=="Calpionellid" & (section=="Strapkova")],
Sr.ppm[(source=="inner")  & coarse.genus=="Calpionellid" & (section=="Brodno")],
Sr.ppm[(source=="matrix")  & coarse.genus=="Calpionellid" & (section=="Brodno")], 
Sr.ppm[(source=="lorica")  & coarse.genus=="Calpionellid" & (section=="Brodno")], 
Sr.ppm[(source=="inner")  & coarse.genus=="Calpionellid" & (section=="Sneznica")],
Sr.ppm[(source=="matrix")  & coarse.genus=="Calpionellid" & (section=="Sneznica")], 
Sr.ppm[(source=="lorica")  & coarse.genus=="Calpionellid" & (section=="Sneznica")],
frame=F, range=0, col="gray", cex=1.2, ylim=c(1,1500), main="", las=2,
names=rep(c("inner filling","ext. matrix","lorica"),3), ylab="Sr (ppm)")
text(x=2, y=5000, labels="Strapkova")
text(x=5, y=5000, labels="Brodno")
text(x=8, y=5000, labels="Sneznica")
abline(v=c(3.5,6.5), lty=2)
##########################################################################################################
#summarize between-section differences
#loricae at Strapkova, Brodno and Sneznica
out.Mn$stats[3,c(3,6,9)]
out.Fe$stats[3,c(3,6,9)]
out.Mg$stats[3,c(3,6,9)]
out.S$stats[3,c(3,6,9)]

#matrix at Strapkova, Brodno and Sneznica
out.Mn$stats[3,c(2,5,8)]
out.Fe$stats[3,c(2,5,8)]
out.Mg$stats[3,c(2,5,8)]
out.S$stats[3,c(2,5,8)]

#infill at Strapkova, Brodno and Sneznica
out.Mn$stats[3,c(1,4,7)]
out.Fe$stats[3,c(1,4,7)]
out.Mg$stats[3,c(1,4,7)]
out.S$stats[3,c(1,4,7)]
