Commit 0393da18 by Eric Coissac

Initial commit of the project

parents
Package: MetabarSchool
Type: Package
Title: A Tutorial package on Biodiversity indices and metabarcoding
Version: 1.0
Date: 2019-01-31
Author: Eric Coissac
Maintainer: Eric Coissac <eric.coissac@metabarcoding.org>
Description: More about what it does (maybe more than one line)
License: What license is it under?
exportPattern("^[[:alpha:]]+")
#' @author Eric Coissac
#' @export
H.q = function(x,q=1) {
sum(x * log.q(1/x,q),na.rm = TRUE)
}
#' @author Eric Coissac
#' @export
D.q = function(x,q=1) {
exp.q(H.q(x,q),q)
}
#' @author Eric Coissac
#' @export
H.spectrum = function(x,q=1) {
sapply(q,function(Q) H.q(x,Q))
}
#' @author Eric Coissac
#' @export
D.spectrum = function(x,q=1) {
sapply(q,function(Q) D.q(x,Q))
}
#' @importFrom Rdpack reprompt
#'
NULL
#' Generalized logaritmic function.
#'
#' \deqn{x \longmapsto 1 : \log(x) \approx x-1}
#'
#'
#' @references
#' \insertRef{Tsallis:94:00}{ROBITools2}
#'
#'
#' @author Eric Coissac
#' @export
log.q = function(x,q=1) {
if (q==1)
log(x)
else (x^(1-q)-1)/(1-q)
}
#' Generalized exponential function.
#'
#'
#' @references
#' \insertRef{Tsallis:94:00}{ROBITools2}
#'
#' @author Eric Coissac
#' @export
exp.q = function(x,q=1,base=exp(1)) {
if (q==1)
exp(x)
else
(1 + (1-q)*x)^(1/(1-q))
}
#' @export
mode <- function(x) {
d <- density(x)
d$x[which.max(d$y)]
}
#' @export
tag_bad_pcr = function(samples,counts,plot = TRUE) {
counts = decostand(counts,method = "hellinger")
bc = aggregate(counts,
by=list(factor(as.character(samples))),
mean)
bc.name = as.character(bc[,1])
bc = bc[-1]
rownames(bc)=bc.name
bc = bc[as.character(samples),]
d = sqrt(rowSums((counts - bc)^2))
names(d) = as.character(samples)
d.m = mode(d)
d.sd = sqrt(sum((d[d <= d.m] - d.m)^2)/sum(d <= d.m))
d.max = aggregate(d,
by = list(factor(as.character(samples))),
max)
d.max.names = d.max[,1]
d.max = d.max[,2]
names(d.max) = d.max.names
d.max = d.max[as.character(samples)]
d.len = aggregate(d,
by = list(factor(as.character(samples))),
length)
d.len.names = d.len[,1]
d.len = d.len[,2]
names(d.len) = d.len.names
d.len = d.len[as.character(samples)]
keep = ((d < d.m + (d.sd*2)) | d!=d.max) & d.len > 1
selection = data.frame(samples = as.character(samples),
distance= d,
maximum = d.max,
repeats = d.len,
keep = keep,
stringsAsFactors = FALSE)
rownames(selection)=rownames(counts)
attributes(selection)$dist.mode = d.m
attributes(selection)$dist.sd = d.sd
if (plot) {
hist(d)
abline(v=d.m,lty=2,col="green")
abline(v=d.m + (d.sd*2),lty=2,col="red")
}
return(selection)
}
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
positive = read.delim("RawData/positifs.uniq.annotated.txt",
sep="\t",
header = TRUE)
columns = names(positive)
columns.info = c("id", "dilution", "species_name", "taxid", "true", "sequence")
columns.counts= columns[grep("^sample\\.",columns)]
positive.count = t(positive[,columns.counts])
motus = as.data.frame(positive[,columns.info])
positive.motus = data.frame(dilution = as.numeric(motus$dilution)/2,
species = as.character(motus$species_name),
taxid = as.integer(motus$taxid),
true = motus$true == "True"
)
samples.names = rownames(positive.count)
samples = t(simplify2array(strsplit(samples.names,split="_")))
# [,1] [,2] [,3] [,4] [,5] [,6]
# [1,] "sample.TM" "POS" "d16" "1" "a" "A1"
# [2,] "sample.TM" "POS" "d16" "1" "a" "B1"
# [3,] "sample.TM" "POS" "d16" "1" "b" "A2"
# [4,] "sample.TM" "POS" "d16" "1" "b" "B2"
# [5,] "sample.TM" "POS" "d16" "2" "a" "A1"
# [6,] "sample.TM" "POS" "d16" "2" "a" "B1"
samples = as.data.frame(samples[,3:6])
names(samples) = c("dilution","repeats","PCR","Plate")
positive.samples = data.frame(dilution = 32%/%as.integer(substr(as.character(samples$dilution),2,10)),
repeats = interaction(samples[,2:4],drop = TRUE)
)
rownames(positive.samples)= samples.names
rownames(positive.count) = samples.names
rownames(positive.motus) = positive$id
colnames(positive.count) = positive$id
plants.16 = positive.motus[positive.motus$true,][,c(2,3,1)]
plants.16 = plants.16[order(1/plants.16$dilution),]
plants.16$log10.dilution = - seq_len(nrow(plants.16)) / log(10)*log(2)
plants.16$dilution = 1/(2^seq_len(nrow(plants.16)))
usethis::use_data(positive.samples,overwrite = TRUE)
usethis::use_data(positive.motus,overwrite = TRUE)
usethis::use_data(positive.count,overwrite = TRUE)
usethis::use_data(plants.16,overwrite = TRUE)
positive.clean = read.delim("RawData/positifs.uniq.annotated.clean.txt",
sep="\t",
header = TRUE)
columns = names(positive.clean)
columns.info = c("id", "dilution", "species_name", "taxid", "true", "sequence")
columns.counts= columns[grep("^sample\\.",columns)]
positive.clean.count = t(positive.clean[,columns.counts])
motus.clean = as.data.frame(positive.clean[,columns.info])
positive.clean.motus = data.frame(dilution = as.numeric(motus.clean$dilution)/2,
species = as.character(motus.clean$species_name),
taxid = as.integer(motus.clean$taxid),
true = motus.clean$true == "True"
)
samples.names = rownames(positive.clean.count)
samples = t(simplify2array(strsplit(samples.names,split="_")))
samples = as.data.frame(samples[,3:6])
names(samples) = c("dilution","repeats","PCR","Plate")
positive.clean.samples = data.frame(dilution = 32%/%as.integer(substr(as.character(samples$dilution),2,10)),
repeats = interaction(samples[,2:4],drop = TRUE)
)
rownames(positive.clean.samples)= samples.names
rownames(positive.clean.count) = samples.names
rownames(positive.clean.motus) = positive.clean$id
colnames(positive.clean.count) = positive.clean$id
usethis::use_data(positive.clean.samples,overwrite = TRUE)
usethis::use_data(positive.clean.motus,overwrite = TRUE)
usethis::use_data(positive.clean.count,overwrite = TRUE)
#
# Litter/Soil dataset
#
guiana = read.delim("RawData/litiere_ins_cl97_agg_filt_tax.tab",
header = TRUE,
sep="\t")
columns = names(guiana)
columns.info = c("id","best_identity.order_filtered_embl_r136_noenv_INS",
"taxid",
"phylum_name","order_name","class_name","family_name","genus_name","species_name",
"sequence")
columns.counts= columns[grep("^sample\\.",columns)]
samples.names = gsub(pattern = "sample.",
replacement = "",
columns.counts)
guiana.count = t(guiana[,columns.counts])
motus = as.data.frame(guiana[,columns.info])
guiana.motus = data.frame(id = paste("EUK",sprintf("%06d",1:nrow(motus)),sep=""),
best_id = motus$best_identity.order_filtered_embl_r136_noenv_INS,
taxid = as.integer(motus$taxid),
species = factor(as.character(motus$species_name)),
genus = factor(as.character(motus$genus_name)),
family = factor(as.character(motus$family_name)),
class = factor(as.character(motus$class_name)),
order = factor(as.character(motus$order_name)),
phylum = factor(as.character(motus$phylum_name)),
sequence = as.character(motus$sequence),
stringsAsFactors = FALSE
)
samples = read.delim("RawData/Litiere_sample_list.txt",header=TRUE)
guiana.samples = samples[samples.names,]
guiana.samples$sample = as.factor(sub("_r.$","",samples.names))
rownames(guiana.count) = samples.names
colnames(guiana.count) = guiana.motus$id
rownames(guiana.motus) = guiana.motus$id
usethis::use_data(guiana.samples,overwrite = TRUE)
usethis::use_data(guiana.motus,overwrite = TRUE)
usethis::use_data(guiana.count,overwrite = TRUE)
Version: 1.0
RestoreWorkspace: Default
SaveWorkspace: Default
AlwaysSaveHistory: Default
EnableCodeIndexing: Yes
UseSpacesForTab: Yes
NumSpacesForTab: 2
Encoding: ISO-8859-1
RnwWeave: knitr
LaTeX: pdfLaTeX
AutoAppendNewline: Yes
BuildType: Package
PackageUseDevtools: Yes
PackageInstallArgs: --no-multiarch --with-keep.source
File added
File added
File added
File added
File added
File added
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 2021 852" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.41421;">
<g transform="matrix(1,0,0,1,-187,-683)">
<g>
<g>
<g transform="matrix(0.824429,0,0,0.824429,40.8885,111.226)">
<rect x="195.263" y="711.481" width="997.627" height="997.627" style="fill:rgb(235,235,235);stroke-width:20.22px;stroke:black;"/>
</g>
<g>
<g transform="matrix(1,0,0,1,324.539,-65.9235)">
<ellipse cx="477.16" cy="995.163" rx="110.023" ry="109.093" style="fill:rgb(248,0,230);"/>
</g>
<g transform="matrix(1.76539,0,0,1.76539,-62.3224,-805.515)">
<text x="472.748px" y="995.259px" style="font-family:'ArialMT', 'Arial', sans-serif;font-size:50px;fill:black;">B</text>
</g>
</g>
<g>
<ellipse cx="477.16" cy="995.163" rx="110.023" ry="109.093" style="fill:rgb(82,110,255);"/>
<g transform="matrix(1.76539,0,0,1.76539,-386.861,-739.592)">
<text x="472.748px" y="995.259px" style="font-family:'ArialMT', 'Arial', sans-serif;font-size:50px;fill:black;">A</text>
</g>
</g>
<g>
<g transform="matrix(1,0,0,1,291.652,223.089)">
<ellipse cx="477.16" cy="995.163" rx="110.023" ry="109.093" style="fill:rgb(109,255,87);"/>
</g>
<g transform="matrix(1.76539,0,0,1.76539,-97.6439,-516.503)">
<text x="472.748px" y="995.259px" style="font-family:'ArialMT', 'Arial', sans-serif;font-size:50px;fill:black;">D</text>
</g>
</g>
<g transform="matrix(1,0,0,1,-17.2537,10.505)">
<text x="245.684px" y="752.356px" style="font-family:'ArialMT', 'Arial', sans-serif;font-size:50px;fill:black;">Environment 1</text>
</g>
<g>
<g transform="matrix(1,0,0,1,-9.40327,285.266)">
<ellipse cx="477.16" cy="995.163" rx="110.023" ry="109.093" style="fill:rgb(255,255,49);"/>
</g>
<g transform="matrix(1.76539,0,0,1.76539,-398.699,-454.326)">
<text x="472.748px" y="995.259px" style="font-family:'ArialMT', 'Arial', sans-serif;font-size:50px;fill:black;">C</text>
</g>
</g>
</g>
<g>
<g transform="matrix(0.824429,0,0,0.824429,1209.24,111.226)">
<rect x="195.263" y="711.481" width="997.627" height="997.627" style="fill:rgb(235,235,235);stroke-width:20.22px;stroke:black;"/>
</g>
<g transform="matrix(0.333632,0,0,0.333632,1745.99,939.675)">
<g transform="matrix(1,0,0,1,324.539,-65.9235)">
<ellipse cx="477.16" cy="995.163" rx="110.023" ry="109.093" style="fill:rgb(80,254,255);"/>
</g>
<g transform="matrix(1.76539,0,0,1.76539,-62.3224,-805.515)">
<text x="472.748px" y="995.259px" style="font-family:'ArialMT', 'Arial', sans-serif;font-size:50px;fill:black;">G</text>
</g>
</g>
<g transform="matrix(1,0,0,1,1165.64,10.505)">
<text x="245.684px" y="752.356px" style="font-family:'ArialMT', 'Arial', sans-serif;font-size:50px;fill:black;">Environment 1</text>
</g>
<g transform="matrix(0.333632,0,0,0.333632,1563.39,529.401)">
<g transform="matrix(1,0,0,1,324.539,-65.9235)">
<ellipse cx="477.16" cy="995.163" rx="110.023" ry="109.093" style="fill:rgb(248,0,230);"/>
</g>
<g transform="matrix(1.76539,0,0,1.76539,-62.3224,-805.515)">
<text x="472.748px" y="995.259px" style="font-family:'ArialMT', 'Arial', sans-serif;font-size:50px;fill:black;">B</text>
</g>
</g>
<g transform="matrix(0.333632,0,0,0.333632,1745.51,807.014)">
<g transform="matrix(1,0,0,1,324.539,-65.9235)">
<ellipse cx="477.16" cy="995.163" rx="110.023" ry="109.093" style="fill:rgb(255,201,226);"/>
</g>
<g transform="matrix(1.76539,0,0,1.76539,-62.3224,-805.515)">
<text x="472.748px" y="995.259px" style="font-family:'ArialMT', 'Arial', sans-serif;font-size:50px;fill:black;">F</text>
</g>
</g>
<g transform="matrix(0.333632,0,0,0.333632,1711.84,590.465)">
<g transform="matrix(1,0,0,1,324.539,-65.9235)">
<ellipse cx="477.16" cy="995.163" rx="110.023" ry="109.093" style="fill:rgb(255,95,111);"/>
</g>
<g transform="matrix(1.76539,0,0,1.76539,-62.3224,-805.515)">
<text x="472.748px" y="995.259px" style="font-family:'ArialMT', 'Arial', sans-serif;font-size:50px;fill:black;">E</text>
</g>
</g>
<g transform="matrix(1.74862,0,0,1.74862,827.639,-680.448)">
<ellipse cx="477.16" cy="995.163" rx="110.023" ry="109.093" style="fill:rgb(82,110,255);"/>
<g transform="matrix(1.76539,0,0,1.76539,-386.861,-739.592)">
<text x="472.748px" y="995.259px" style="font-family:'ArialMT', 'Arial', sans-serif;font-size:50px;fill:black;">A</text>
</g>
</g>
<g transform="matrix(0.468295,0,0,0.468295,1493.29,758.779)">
<g transform="matrix(1,0,0,1,291.652,223.089)">
<ellipse cx="477.16" cy="995.163" rx="110.023" ry="109.093" style="fill:rgb(109,255,87);"/>
</g>
<g transform="matrix(1.76539,0,0,1.76539,-97.6439,-516.503)">
<text x="472.748px" y="995.259px" style="font-family:'ArialMT', 'Arial', sans-serif;font-size:50px;fill:black;">D</text>
</g>
</g>
<g transform="matrix(0.311548,0,0,0.311548,1336.31,890.508)">
<g transform="matrix(1,0,0,1,-9.40327,285.266)">
<ellipse cx="477.16" cy="995.163" rx="110.023" ry="109.093" style="fill:rgb(255,255,49);"/>
</g>
<g transform="matrix(1.76539,0,0,1.76539,-398.699,-454.326)">
<text x="472.748px" y="995.259px" style="font-family:'ArialMT', 'Arial', sans-serif;font-size:50px;fill:black;">C</text>
</g>
</g>
</g>
</g>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 1846 1637" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.41421;">
<g transform="matrix(1,0,0,1,-105,-316)">
<g>
<g>
<g transform="matrix(3.56657,0,0,3.42572,-1715.29,-1858.59)">
<ellipse cx="815.464" cy="910.747" rx="208.192" ry="186.092" style="fill:rgb(235,235,235);stroke-width:4.77px;stroke:black;"/>
</g>
<g transform="matrix(2.37512,0,0,2.37512,-1050.26,-4483.8)">
<text x="805.445px" y="2617.15px" style="font-family:'ArialMT', 'Arial', sans-serif;font-size:50px;fill:black;">Environment</text>
</g>
</g>
<g>
<g transform="matrix(0.875323,0,0,0.814584,53.5525,-933.789)">
<ellipse cx="826.904" cy="2457.22" rx="238.262" ry="246.522" style="fill:rgb(142,255,140);stroke-width:19.71px;stroke:black;"/>
</g>
<g transform="matrix(2.01739,0,0,2.01739,-329.967,-4026.53)">
<text x="483.571px" y="2537.83px" style="font-family:'ArialMT', 'Arial', sans-serif;font-size:50px;fill:black;">Site <tspan x="580.861px " y="2537.83px ">A</tspan></text>
</g>
</g>
<g>
<g transform="matrix(0.875323,0,0,0.814584,495.154,-585.114)">
<ellipse cx="826.904" cy="2457.22" rx="238.262" ry="246.522" style="fill:rgb(255,178,148);stroke-width:19.71px;stroke:black;"/>
</g>
<g transform="matrix(2.01739,0,0,2.01739,126.222,-3672.28)">
<text x="483.571px" y="2537.83px" style="font-family:'ArialMT', 'Arial', sans-serif;font-size:50px;fill:black;">Site B</text>
</g>
</g>
<g>
<g transform="matrix(0.875323,0,0,0.814584,875.962,-933.789)">
<ellipse cx="826.904" cy="2457.22" rx="238.262" ry="246.522" style="fill:rgb(252,255,142);stroke-width:19.71px;stroke:black;"/>
</g>
<g transform="matrix(2.01739,0,0,2.01739,486.877,-4026.53)">
<text x="483.571px" y="2537.83px" style="font-family:'ArialMT', 'Arial', sans-serif;font-size:50px;fill:black;">Site C</text>
</g>
</g>
<g transform="matrix(1.90555,0,0,1.90555,-1159.48,-204.501)">
<text x="1107.37px" y="318.159px" style="font-family:'STIXGeneral-Regular', 'STIXGeneral';font-size:65.598px;fill:black;">𝛂-div<tspan x="1253.72px " y="318.159px ">e</tspan>rsity</text>
</g>
<g transform="matrix(1.90555,0,0,1.90555,-2008.56,1318.74)">
<text x="1107.37px" y="318.159px" style="font-family:'STIXGeneral-Italic', 'STIXGeneral';font-style:italic;font-size:65.598px;fill:black;">𝛾</text>
<text x="1135.45px" y="318.159px" style="font-family:'STIXGeneral-Regular', 'STIXGeneral';font-size:65.598px;fill:black;">-div<tspan x="1239.55px " y="318.159px ">e</tspan>rsity</text>
</g>
<g transform="matrix(1.90555,0,0,1.90555,-1535.83,762.329)">
<text x="1107.37px" y="318.159px" style="font-family:'STIXGeneral-Italic', 'STIXGeneral';font-style:italic;font-size:50px;fill:black;">𝛽</text>
<text x="1132.02px" y="318.159px" style="font-family:'STIXGeneral-Regular', 'STIXGeneral';font-size:50px;fill:black;">-div<tspan x="1211.37px " y="318.159px ">e</tspan>rsity</text>
</g>
<g transform="matrix(-2.57949e-16,1.40421,-7.56783,-1.39019e-15,3559.03,56.614)">
<path d="M287.175,308.403L287.175,306.419L860.49,306.419L860.49,303.444L913.72,307.411L860.49,311.379L860.49,308.403L287.175,308.403Z" style="fill:black;stroke-width:0.69px;stroke:black;"/>
</g>
<g transform="matrix(-0.612613,0.844268,-6.71099,-4.86959,3409.58,1712.57)">
<path d="M287.175,308.403L287.175,306.419L835.211,306.419L835.211,303.444L913.72,307.411L835.211,311.379L835.211,308.403L287.175,308.403Z" style="fill:black;stroke-width:0.63px;stroke:black;"/>
</g>
<g transform="matrix(0.251261,-0.311578,5.89101,4.75059,-1333.11,417.689)">
<path d="M287.175,308.403L287.175,306.419L726.98,306.419L726.98,303.444L913.72,307.411L726.98,311.379L726.98,308.403L287.175,308.403Z" style="fill:black;stroke-width:0.7px;stroke:black;"/>
</g>
<g transform="matrix(0.437815,0.363403,-4.83348,5.8232,2225.37,-773.088)">
<path d="M418.542,308.403L418.542,311.379L287.175,307.411L418.542,303.444L418.542,306.419L782.353,306.419L782.353,303.444L913.72,307.411L782.353,311.379L782.353,308.403L418.542,308.403Z" style="fill:black;stroke-width:0.7px;stroke:black;"/>
</g>
<g transform="matrix(0.345195,0.841982,-6.44148,2.64087,3196.59,-594.14)">
<path d="M287.175,308.403L287.175,306.419L838.159,306.419L838.159,303.444L913.72,307.411L838.159,311.379L838.159,308.403L287.175,308.403Z" style="fill:black;stroke-width:0.76px;stroke:black;"/>
</g>
</g>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 1502 1501" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.41421;">
<g transform="matrix(1,0,0,1,-380,-775)">
<g transform="matrix(1,0,0,1.48478,0,-917.84)">
<path d="M775.395,1921.11L775.395,1913.9L1685.12,1913.9L1685.12,1893.32L1756.93,1917.5L1685.12,1941.69L1685.12,1921.11L775.395,1921.11Z" style="fill:rgb(0,1,2);"/>
</g>
<g transform="matrix(0.605804,-0.795614,1.18131,0.899484,-1951.37,817.912)">
<path d="M775.395,1921.11L775.395,1913.9L1685.12,1913.9L1685.12,1893.32L1756.93,1917.5L1685.12,1941.69L1685.12,1921.11L775.395,1921.11Z" style="fill:rgb(0,1,2);"/>
</g>
<g transform="matrix(3.8068,0,0,3.89337,-3178.36,-6714.08)">
<circle cx="1035.39" cy="2222.51" r="260.137" style="fill:none;stroke-width:0.87px;stroke-dasharray:0.87,3.46,0.87,0;stroke:black;"/>
</g>
<path d="M2051.47,1936.49L526.666,1926.49" style="fill:none;stroke-width:3.33px;stroke-dasharray:3.33,13.33,3.33,0;stroke:black;"/>
<g transform="matrix(6.12323e-17,-1,1,6.12323e-17,-1146.44,2711.11)">
<path d="M2051.47,1936.49L526.666,1926.49" style="fill:none;stroke-width:3.33px;stroke-dasharray:3.33,13.33,3.33,0;stroke:black;"/>
</g>
<path d="M1378.06,1143.23L1754.19,1928.24" style="fill:none;stroke-width:8.33px;stroke:rgb(253,36,0);"/>
<g transform="matrix(6.12323e-17,-1,1,6.12323e-17,-359.004,3304.88)">
<path d="M1378.06,1143.23L1754.19,1928.24" style="fill:none;stroke-width:8.33px;stroke-dasharray:8.33,33.33,8.33,0;stroke:rgb(253,36,0);"/>
</g>
<g transform="matrix(-3.81475e-16,-2.37218,2.37218,-3.81475e-16,-3006.71,2967.43)">
<path d="M437.279,1709.62C472.759,1709.62 506.172,1692.93 527.486,1664.57L437.279,1596.78L437.279,1709.62Z" style="fill:none;stroke-width:3.51px;stroke-dasharray:3.51,14.05,3.51,0;stroke:black;"/>
</g>
<g transform="matrix(1,0,0,1,-11.9118,184.176)">
<text x="1089.21px" y="1669.29px" style="font-family:'ArialMT', 'Arial', sans-serif;font-size:50px;fill:black;">cos(</text>
<text x="1183.67px" y="1669.29px" style="font-family:'STIXGeneral-Regular', 'STIXGeneral';font-size:50px;fill:black;">𝛼</text>
<text x="1209.87px" y="1669.29px" style="font-family:'ArialMT', 'Arial', sans-serif;font-size:50px;fill:black;">)=R</text>
</g>
<g transform="matrix(2.44125,0,0,1.95351,-2681.3,-1267.15)">
<text x="1776.48px" y="1492.45px" style="font-family:'ArialMT', 'Arial', sans-serif;font-size:50px;fill:rgb(255,76,31);">d</text>
</g>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 1267 936" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.41421;">
<g transform="matrix(1,0,0,1,-473,-887)">
<g id="metric" transform="matrix(1,0,0,1,85.1006,-84.2667)">
<g transform="matrix(1,0,0,1,0.196399,0)">
<path d="M520.389,1821.09L1554.35,1821.09" style="fill:none;stroke-width:1px;stroke:black;"/>
</g>
<g transform="matrix(6.12323e-17,-1,-1,-6.12323e-17,2858.39,2245.09)">
<path d="M1137.81,2034.33L423.607,2337.94L423.239,1303.71L1137.81,2034.33Z" style="fill:none;stroke-width:1px;stroke:black;"/>
</g>
<g transform="matrix(2.46916,0,0,2.46916,-1742.45,-175.128)">
<text x="1022.83px" y="500.74px" style="font-family:'ArialMT', 'Arial', sans-serif;font-size:50px;fill:black;">C</text>
</g>
<g transform="matrix(2.46916,0,0,2.46916,-2137.03,670.818)">
<text x="1022.83px" y="500.74px" style="font-family:'ArialMT', 'Arial', sans-serif;font-size:50px;fill:black;">A</text>
</g>
<g transform="matrix(2.46916,0,0,2.46916,-946.651,670.818)">
<text x="1022.83px" y="500.74px" style="font-family:'ArialMT', 'Arial', sans-serif;font-size:50px;fill:black;">B</text>
</g>
<g transform="matrix(1,0,0,1,19.4596,34.2956)">
<circle cx="505.904" cy="1785.24" r="15.508" style="fill:rgb(255,120,60);stroke-width:3.33px;stroke:black;"/>
</g>
<g transform="matrix(1,0,0,1,1044.28,33.9027)">
<circle cx="505.904" cy="1785.24" r="15.508" style="fill:rgb(255,120,60);stroke-width:3.33px;stroke:black;"/>
</g>
<g transform="matrix(1,0,0,1,319.278,-679.347)">
<circle cx="505.904" cy="1785.24" r="15.508" style="fill:rgb(255,120,60);stroke-width:3.33px;stroke:black;"/>
</g>
</g>
</g>
</svg>
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 1267 1445" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.41421;">
<g transform="matrix(1,0,0,1,-388,-463)">
<g id="Umtrametric">
<g transform="matrix(1,0,0,1,0.196399,0)">
<path d="M520.389,1821.09L1554.35,1821.09" style="fill:none;stroke-width:1px;stroke:black;"/>
</g>
<g transform="matrix(6.12323e-17,-1,-1,-6.12323e-17,2858.39,2245.09)">
<path d="M1554.35,1821.09L423.607,2337.94L423.239,1303.71L1554.31,1821" style="fill:none;stroke-width:1px;stroke:black;"/>
</g>
<g transform="matrix(2.46916,0,0,2.46916,-1532.55,-683.049)">
<text x="1022.83px" y="500.74px" style="font-family:'ArialMT', 'Arial', sans-serif;font-size:50px;fill:black;">C</text>
</g>
<g transform="matrix(2.46916,0,0,2.46916,-2137.03,670.818)">
<text x="1022.83px" y="500.74px" style="font-family:'ArialMT', 'Arial', sans-serif;font-size:50px;fill:black;">A</text>
</g>
<g transform="matrix(2.46916,0,0,2.46916,-946.651,670.818)">
<text x="1022.83px" y="500.74px" style="font-family:'ArialMT', 'Arial', sans-serif;font-size:50px;fill:black;">B</text>
</g>
<g transform="matrix(1,0,0,1,19.4596,34.2956)">
<circle cx="505.904" cy="1785.24" r="15.508" style="fill:rgb(255,120,60);stroke-width:3.33px;stroke:black;"/>
</g>
<g transform="matrix(1,0,0,1,1044.28,33.9027)">
<circle cx="505.904" cy="1785.24" r="15.508" style="fill:rgb(255,120,60);stroke-width:3.33px;stroke:black;"/>
</g>
<g transform="matrix(1,0,0,1,529.835,-1093.64)">
<circle cx="505.904" cy="1785.24" r="15.508" style="fill:rgb(255,120,60);stroke-width:3.33px;stroke:black;"/>
</g>
<g>
<path d="M740.104,1216.22L832.267,1257.12" style="fill:none;stroke-width:3.33px;stroke:black;"/>
<g transform="matrix(1,0,0,1,7,-17)">
<path d="M740.104,1216.22L832.267,1257.12" style="fill:none;stroke-width:3.33px;stroke:black;"/>
</g>
</g>
<g transform="matrix(-1,0,0,1,2071.79,-0.155385)">
<path d="M740.104,1216.22L832.267,1257.12" style="fill:none;stroke-width:3.33px;stroke:black;"/>
<g transform="matrix(1,0,0,1,7,-17)">
<path d="M740.104,1216.22L832.267,1257.12" style="fill:none;stroke-width:3.33px;stroke:black;"/>
</g>
</g>
</g>
</g>
</svg>
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
%% This BibTeX bibliography file was created using BibDesk.
%% http://bibdesk.sourceforge.net/
%% Created for Eric Coissac at 2018-10-18 14:52:51 +0200
%% Saved with string encoding Unicode (UTF-8)
@article{Tsallis:94:00,
Author = {Tsallis, Constantino},
Date-Added = {2018-10-18 14:52:41 +0200},
Date-Modified = {2018-10-18 14:52:49 +0200},
Journal = {Quim. Nova},
Number = 6,
Pages = {468--471},
Title = {What are the numbers that experiments provide},
Volume = 17,
Year = 1994}
@ARTICLE{Whittaker:10:00,
title = "Meta-analyses and mega-mistakes: calling time on meta-analysis
of the species richness-productivity relationship",
author = "Whittaker, Robert J",
abstract = "The form of the species richness-productivity relationship
(SRPR) is both theoretically important and contentious. In an
effort to distill general patterns, ecologists have undertaken
meta-analyses, within which each SRPR data set is first
classified into one of five alternative forms: positive, humped
(unimodal), negative, U-shaped (unimodal), and no relationship.
Herein, I first provide a critique of this approach, based on 68
plant data sets/ studies used in three meta-analyses published
in Ecology. The meta-analyses are shown to have resulted in
highly divergent outcomes, inconsistent and often highly
inappropriate classification of data sets, and the introduction
and multiplication of errors from one meta-analysis to the next.
I therefore call on the ecological community at large to adopt a
far more rigorous and critical attitude to the use of
meta-analysis. Second, I develop the argument that the
literature on the SRPR continues to be bedeviled by a common
failing to appreciate the fundamental importance of the scale of
analysis, beginning with the confusion evident between concepts
of grain, focus, and extent. I postulate that variation in the
form of the SRPR at fine scales of analysis owes much to
artifacts of the sampling regime adopted. An improved
understanding may emerge from combining sampling theory with an
understanding of the factors controlling the form of species
abundance distributions and species accumulation curves.",
journal = "Ecology",
publisher = "Eco Soc America",
volume = 91,
number = 9,
pages = "2522--2533",
month = sep,
year = 2010
}
<
.small-code pre code {
font-size: 1em;
}
/*
table,
.table-condensed,
table.rmdtable {
width: auto;
margin-left: auto;
margin-right: auto;