EU-kalat: Difference between revisions

From Opasnet
Jump to navigation Jump to search
Line 524: Line 524:
euw$PCB <- euw$noPCB + euw$moPCB
euw$PCB <- euw$noPCB + euw$moPCB
euw$TEQ <- euw$PCDDF + euw$PCB
euw$TEQ <- euw$PCDDF + euw$PCB
euw$PFOA <- euw$PFOA / 1000 # pg/g --> ng/g
euw$PFOS <- euw$PFOS / 1000 # pg/g --> ng/g
euw$PFAS <- euw$PFOA + euw$PFOS
euw$PFAS <- euw$PFOA + euw$PFOS


Line 554: Line 556:
* Model run 2021-03-08 [http://en.opasnet.org/en-opwiki/index.php?title=Special:RTools&id=ZvJDOo7xL8d7x7EI]
* Model run 2021-03-08 [http://en.opasnet.org/en-opwiki/index.php?title=Special:RTools&id=ZvJDOo7xL8d7x7EI]
* Model run 2021-03-08 [http://en.opasnet.org/en-opwiki/index.php?title=Special:RTools&id=VpSUS4pfGavspLG9] with the fish needed in PFAS assessment
* Model run 2021-03-08 [http://en.opasnet.org/en-opwiki/index.php?title=Special:RTools&id=VpSUS4pfGavspLG9] with the fish needed in PFAS assessment
* Model run 2021-03-12 [http://en.opasnet.org/en-opwiki/index.php?title=Special:RTools&id=SYJXm55OtbqdjDK6] using euw
* Model run 2021-03-12 [http://en.opasnet.org/en-opwiki/index.php?title=Special:RTools&id=Lc9KWY7r1tTuGWVD] using euw


<rcode name="pollutant_bayes" label="Initiate conc_param with PCDDF, PFAS, OT (for developers only)" embed=0 graphics=1>
<rcode name="pollutant_bayes" label="Initiate conc_param with PCDDF, PFAS, OT (for developers only)" embed=0 graphics=1>
Line 790: Line 792:


library(OpasnetUtils)
library(OpasnetUtils)
#objects.latest("Op_en3104", code_name="pollutant_bayes")


conc_poll <- Ovariable(
conc_poll <- Ovariable(
Line 810: Line 810:
     out <- data.frame()
     out <- data.frame()
     for(i in 1:nrow(tmp2)) {
     for(i in 1:nrow(tmp2)) {
     
      ############## PCDDF (with multivariate mvnorm)
     
       tmp <- tmp3[tmp3$Row == i , ]
       tmp <- tmp3[tmp3$Row == i , ]
       Omega <- solve(tapply( # Is it sure that PCDDF and PCB are not mixed to wrong order?
       Omega <- solve(tapply(
         tmp$conc_paramResult[tmp$Parameter=="Omega"],
         tmp$conc_paramResult[tmp$Parameter=="Omega"],
         tmp[tmp$Parameter=="Omega", c("Compound","Compound2")],
         tmp[tmp$Parameter=="Omega", c("Compound","Compound2")],
Line 830: Line 833:
       rnd <- exp(mvrnorm(1, mu, Omega))
       rnd <- exp(mvrnorm(1, mu, Omega))
       out <- rbind(out, merge(tmp2[i,], data.frame(Compound=con,Result=rnd)))
       out <- rbind(out, merge(tmp2[i,], data.frame(Compound=con,Result=rnd)))
     
      #################### PFAS etc (with univariate norm)
      con <- tmp$Compound[tmp$Parameter=="mu_nd"]
      mu <- tmp$conc_paramResult[tmp$Parameter=="mu_nd"]
      tau <- tmp$conc_paramResult[tmp$Parameter=="tau_nd"][match(con,tmp$Compound[tmp$Parameter=="tau_nd"])]
      for(j in 1:length(con)) {
        rnd <- exp(rnorm(1,mu[j],tau[j]))
        out <- rbind(out,
                    data.frame(tmp2[i,],Compound = con[j],Result = rnd)
                    )
      }
     }
     }
     out$Row <- NULL
     out$Row <- NULL
Line 848: Line 862:
objects.store(conc_poll)
objects.store(conc_poll)
cat("Ovariable conc_poll stored.\n")
cat("Ovariable conc_poll stored.\n")
</rcode>
NOTE! This is not a probabilistic approach. Species and area-specific distributions should be created.
<rcode name="pcddf_mean" label="Initiate conc_pcddf (for developers only)" embed=1>
# This is code Op_en3104/pcddf_mean on page [[EU-kalat]]
library(OpasnetUtils)
conc_pcddf_raw <- Ovariable("conc_pcddf_raw", ddata="Op_en3104", subset="POPs")
conc_pcddf <- Ovariable(
  "conc_pcddf",
  dependencies = data.frame(Name=c("conc_pcddf_raw","TEF"),Ident=c(NA,"Op_en4017/initiate")), # [[Toxic equivalency factor]]
  formula = function(...) {
    df <- conc_pcddf_raw # [[EU-kalat]]
    df <- df[df$Matrix=="Muscle" & df$Catch_site %in% c("Baltic Sea", "Helsinki, Vanhankaupunginlahti Bay"),
            c(1,3,4,6,18)]
    colnames(df@output)[1:4] <- c("Sample","Compound","Fish","Area")
#    df <- Ovariable("df",data=df, unit="pg/g fresh weight")
   
    out <- df * TEF
    out <- oapply(out,c("Sample","Fish","Area"),sum) # Sum over congeners
    out <- oapply(out,"Fish",mean) # Average over samples
    return(out)
  },
  unit="pg/g fresh weight"
)
objects.store(conc_pcddf, conc_pcddf_raw)
cat("Ovariables conc_pcddf, conc_pcddf_raw stored.\n")
</rcode>
</rcode>



Revision as of 13:44, 12 March 2021


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

Dioxin concentrations in Baltic herring.

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 this link or by running the codel 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

Preprocess

  • Preprocess model 22.2.2017 [4]
  • Model run 25.1.2017 [5]
  • Model run 22.5.2017 with new ovariables euRaw, euAll, euMain, and euRatio [6]
  • Model run 23.5.2017 with adjusted ovariables euRaw, eu, euRatio [7]
  • Model run 11.10.2017: Small herring and Large herring added as new species [8]
  • Model rerun 15.11.2017 because the previous stored run was lost in update [9]
  • Model run 21.3.2018: Small and large herring replaced by actual fish length [10]
  • Model run 26.3.2018 eu2 moved here [11]

See an updated version of preprocess code for eu on Health effects of Baltic herring and salmon: a benefit-risk assessment#Code for estimating TEQ from chinese PCB7

+ Show code

Bayes model for dioxin concentrations

  • Model run 28.2.2017 [12]
  • Model run 28.2.2017 with corrected survey model [13]
  • Model run 28.2.2017 with Mu estimates [14]
  • Model run 1.3.2017 [15]
  • Model run 23.4.2017 [16] produces list conc.param and ovariable concentration
  • Model run 24.4.2017 [17]
  • Model run 19.5.2017 without ovariable concentration [18] ⇤--#: . The model does not mix well, so the results should not be used for final results. --Jouni (talk) 19:37, 19 May 2017 (UTC) (type: truth; paradigms: science: attack)
----#: . Maybe we should just estimate TEQs until the problem is fixed. --Jouni (talk) 19:37, 19 May 2017 (UTC) (type: truth; paradigms: science: comment)
  • Model run 22.5.2017 with TEQdx and TEQpcb as the only Compounds [19]
  • Model run 23.5.2017 debugged [20] [21] [22]
  • Model run 24.5.2017 TEQdx, TECpcb -> PCDDF, PCB [23]
  • Model run 11.10.2017 with small and large herring [24] (removed in update)
  • Model run 12.3.2018: bugs fixed with data used in Bayes. In addition, redundant fish species removed and Omega assumed to be the same for herring and salmon. [25]
  • Model run 22.3.2018 [26] Model does not mix well. Thinning gives little help?
  • Model run 25.3.2018 with conc.param as ovariable [27]

+ Show code

Initiate conc_pcddf for PFAS disease burden study

This code is similar to preprocess but is better and includes PFAS concentrations from op_fi:PFAS-yhdisteiden tautitaakka. It produces data.frame euw that is the EU-kalat + PFAS data in wide format and, for PFAS but not EU-kalat, a sampled value for measurements below the level of quantification.

+ Show code

Bayesian approach for PCDDF, PCB, OT, PFAS.

  • Model run 2021-03-08 [28]
  • Model run 2021-03-08 [29] with the fish needed in PFAS assessment
  • Model run 2021-03-12 [30] using euw

+ Show code

+ Show code

Initiate conc_pcddf for Goherr

  • Model run 19.5.2017 [31]
  • Model run 23.5.2017 with bugs fixed [32]
  • Model run 12.10.2017: TEQ calculation added [33]
  • Model rerun 15.11.2017 because the previous stored run was lost in update [34]
  • 12.3.2018 adjusted to match the same Omega for all fish species [35]
  • 26.3.2018 includes length and time as parameters, lengt ovariable initiated here [36]

+ Show code

⇤--#: . These codes should be coherent with POPs in Baltic herring. --Jouni (talk) 12:14, 7 June 2017 (UTC) (type: truth; paradigms: science: attack)

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]