Difference between revisions of "EU-kalat"

From Testiwiki
Jump to: navigation, search
(Answer: results separated by location)
(Rationale: hierarchical Bayes model for congener profiles in fish species)
Line 55: Line 55:
  
 
There is a new study EU-kalat 3, which will produce results in 2016.
 
There is a new study EU-kalat 3, which will produce results in 2016.
 +
 +
=== Calculations ===
 +
 +
Model run 22.1.2017 [http://en.opasnet.org/en-opwiki/index.php?title=Special:RTools&id=9fsWjm4HGRYW9mon]
 +
 +
<rcode graphics=1>
 +
# This is code Op_en3104/ on page [[EU-kalat]]
 +
library(rjags)
 +
library(OpasnetUtils)
 +
library(ggplot2)
 +
library(reshape2)
 +
 +
eu <- Ovariable("eu", ddata = "Op_en3104", subset = "POPs")
 +
eu <- EvalOutput(eu)
 +
eu@output <- eu@output[c(1:4, 18, 19)] # THL code, Matrix, Congener, Fish species
 +
eu@marginal <- eu@marginal[c(1:4, 18, 19)]
 +
eu@output <- eu@output[result(eu) != 0 , ] # Zeros cannot be used in ratio estimates
 +
colnames(eu@output)[colnames(eu@output) == "POP"] <- "Congener"
 +
colnames(eu@output)[colnames(eu@output) == "Fish_species"] <- "Fish"
 +
 +
#> unique(eu@output$Congener)
 +
#[1] 2378TCDD    12378PeCDD  123478HCDD  123678HCDD  123789HCDD  1234678HpCDD
 +
#[7] OCDD        2378TCDF    12378PeCDF  23478PeCDF  123478HCDF  123678HCDF 
 +
#[13] 123789HCDF  234678HCDF  1234678HpCDF 1234789HpCDF OCDF        CoPCB77 ...   
 +
 +
# Remove the four with too little data (>70% BDL) and all non-PCDDF
 +
# aggregate(eu@data$euResult, by = eu@data["POP"], FUN = function(x) mean(x == 0))
 +
conl <- unique(eu@output$Congener)[c(1:12, 14, 15)] # 7 OCDD should be removed
 +
eu@output <- eu@output[eu@output$Congener %in% conl , ]
 +
 +
#[1] Baltic herring Sprat          Salmon        Sea trout      Vendace     
 +
#[6] Roach          Perch          Pike          Pike-perch    Burbot       
 +
#[11] Whitefish      Flounder      Bream          River lamprey  Cod         
 +
#[16] Trout          Rainbow trout  Arctic char 
 +
 +
fisl <- unique(eu@output$Fish)[c(1:4, 6:14, 17)]
 +
eu@output <- eu@output[eu@output$Fish %in% fisl , ] # Remove four with too little data
 +
 +
eut <- eu
 +
eut@output <- eut@output[
 +
  eut@output$Congener == "2378TCDD" & eut@output$Matrix == "Muscle"  , ]
 +
eut@output$Congener <- NULL
 +
eut@marginal[colnames(eut@output) == "Congener"] <- NULL
 +
eut <- log10(eu / eut)@output
 +
conl <- conl[conl != "2378TCDD"]
 +
eut <- eut[eut$Congener %in% conl , ]
 +
 +
# Analysis: a few rows disappear here, as shown by numbers per fish species. Why?
 +
# aggregate(eut@output, by = eut@output["Fish"], FUN = length)[[2]]
 +
# [1] 1181  141  131  55  158  51  96  30  36  40  102  49  61  180 eu
 +
# [1] 1173  141  131  55  158  51  96  27  36  40  102  49  53  180 eu/eut
 +
# There are samples where TCDD concenctration is zero.
 +
#eu@data[eu@data$POP == "2378TCDD" & eu@data$euResult == 0 , c(1,4)][[1]]
 +
#eu@data[eu@data[[1]] %in% c("09K0585", "09K0698", "09K0740", "09K0748") , c(1,3,4,18)]
 +
# Some rows disappear because there is no TCDD measurement to compare with:
 +
#8 Baltic herrings, 8 sprats, 3 rainbow trouts.
 +
# Conclusion: this is ok. Total 2292 rows.
 +
 +
ggplot(eut, aes(x = Result, colour = Fish))+geom_density()+
 +
  facet_wrap(~ Congener)
 +
 +
modf <- textConnection("
 +
  model{
 +
    for(i in 1:N) { # i = observation
 +
      eutt[i] ~ dnorm(mu[con[i],fis[i]], tau[con[i],fis[i]])
 +
    }
 +
    for(j in 1:J) { # j = congener
 +
      for(k in 1:K) { # k = fish species
 +
        mu[j,k] ~ dunif(-3,3)
 +
        tau[j,k] <- pow(sigma[j,k], -2)
 +
        sigma[j,k] ~ dunif(0, 10)
 +
        pred[j,k] ~ dnorm(mu[j,k], tau[j,k]) # Model prediction
 +
      }
 +
    }
 +
  }
 +
")
 +
 +
# A binomial distribution is assumed for bins of answer choices.
 +
jags <- jags.model(
 +
  modf,
 +
  data = list(
 +
    N = nrow(eut),
 +
    J = length(conl),
 +
    K = length(fisl),
 +
    eutt = eut$Result,
 +
    con = match(eut$Congener, conl),
 +
    fis = match(eut$Fish, fisl)
 +
  ),
 +
  n.chains = 4,
 +
  n.adapt = 100
 +
)
 +
 +
update(jags, 1000)
 +
 +
samps <- jags.samples(jags, c('mu', 'pred'), 1000)
 +
pl <- melt(array(samps$pred, dim = c(length(conl), length(fisl), 1000, 4),
 +
  dimnames = list(
 +
  Congener = conl,
 +
  Fish = fisl,
 +
  Iter = 1:1000,
 +
  Seed = 1:4
 +
  )
 +
))
 +
 +
ggplot(pl, aes(x = value, colour = Fish))+geom_density(size = 1) +
 +
  facet_wrap(~ Congener, scale = "free_y") + coord_cartesian(xlim = c(-1.5,1.5))
 +
 +
samps.coda <- coda.samples(jags, c('mu', 'pred'), 1000)
 +
 +
out <- data.frame(
 +
  Congener = conl,
 +
  Fish = rep(fisl, each = length(conl)),
 +
  Param = rep(c("mu", "pred"), each = length(conl)*length(fisl)),
 +
  Value = (summary(samps.coda)[[1]][,1])
 +
)
 +
 +
oprint(out)
 +
 +
ggplot(out[out$Param == "mu", ], aes(x = Congener, y = Value, colour = Fish, group = Fish)) +
 +
  geom_line() + labs(title = "Congener amounts in fish compared with TCDD", y = "Log_10 ratio")
 +
 +
if(FALSE){
 +
  tef <- Ovariable("tef", ddata = "Op_en4017", subset = "TEF values")
 +
  tef <- EvalOutput(tef)
 +
 
 +
  #levels(eu$Congener) <- gsub("HCDD", "HxCDD", levels(eu$Congener))
 +
  #levels(eu$Congener) <- gsub("HCDF", "HxCDF", levels(eu$Congener))
 +
  #levels(eu$Congener) <- gsub("CoPCB", "PCB", levels(eu$Congener))
 +
  euteq <- eu * tef
 +
} # IF FALSE
 +
</rcode>
  
 
==See also==
 
==See also==

Revision as of 11:44, 22 January 2017


EU-kalat is a study, where concentrations of PCDD/Fs, PCBs, PBDEs and heavy metals have been measured from fish

Question

The scope of EU-kalat study was to measure concentrations of persistent organic pollutants (POPs) including dioxin (PCDD/F), PCB and BDE in fish from Baltic sea and Finnish inland lakes and rivers. [1] [2] [3].

Answer

The original sample results can be acquired from Opasnet base. The study showed that levels of PCDD/Fs and PCBs depends especially on the fish species. Highest levels were on salmon and large sized herring. Levels of PCDD/Fs exceeded maximum level of 4 pg TEQ/g fw multiple times. Levels of PCDD/Fs were correlated positively with age of the fish.

Mean congener concentrations as WHO2005-TEQ in Baltic herring can be printed out with the Run code below.

+ Show code

Rationale

Data

Data was collected between 2009-2010. The study contains years, tissue type, fish species, and fat content for each concentration measurement. Number of observations is 285.

There is a new study EU-kalat 3, which will produce results in 2016.

Calculations

Model run 22.1.2017 [4]

+ Show code

See also

References

  1. A. Hallikainen, H. Kiviranta, P. Isosaari, T. Vartiainen, R. Parmanne, P.J. Vuorinen: Kotimaisen järvi- ja merikalan dioksiinien, furaanien, dioksiinien kaltaisten PCB-yhdisteiden ja polybromattujen difenyylieettereiden pitoisuudet. Elintarvikeviraston julkaisuja 1/2004. [1]
  2. E-R.Venäläinen, A. Hallikainen, R. Parmanne, P.J. Vuorinen: Kotimaisen järvi- ja merikalan raskasmetallipitoisuudet. Elintarvikeviraston julkaisuja 3/2004. [2]
  3. Anja Hallikainen, Riikka Airaksinen, Panu Rantakokko, Jani Koponen, Jaakko Mannio, Pekka J. Vuorinen, Timo Jääskeläinen, Hannu Kiviranta. Itämeren kalan ja muun kotimaisen kalan ympäristömyrkyt: PCDD/F-, PCB-, PBDE-, PFC- ja OT-yhdisteet. Eviran tutkimuksia 2/2011. ISSN 1797-2981 ISBN 978-952-225-083-4 [3]