Difference between revisions of "EU-kalat"
(→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
This page is a study.
The page identifier is Op_en3104 |
---|
Moderator:Arja (see all) |
Give your opinion to the peer rating of the content of this page. |
Upload data
|
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.
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]
See also
References
- ↑ 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]
- ↑ E-R.Venäläinen, A. Hallikainen, R. Parmanne, P.J. Vuorinen: Kotimaisen järvi- ja merikalan raskasmetallipitoisuudet. Elintarvikeviraston julkaisuja 3/2004. [2]
- ↑ 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]