|
|
(144 välissä olevaa versiota 11 käyttäjän tekeminä ei näytetä) |
Rivi 1: |
Rivi 1: |
| {{arviointi|moderaattori=Jouni}} | | [[op_en:Tendering_process_for_pneumococcal_conjugate_vaccine]] |
| | [[heande:Pneumokokkirokote]] |
| | [[Pneumokokkirokotekysely|OSALLISTU PNEUMOKOKKIROKOTETTA KOSKEVAAN KYSELYYN TÄSTÄ]] |
| | |
| | Tämä rokotehankintakeskustelu on toimitettu tiedoksi kansalliselle rokotusasiantuntijaryhmälle 8.9.2014. |
| | |
| | {{tiivistelmä |
| | |kysymys = Mitä vertailuperusteita pitäisi käyttää kansalliseen rokotusohjelmaan kuuluvan pikkulasten pneumokokkirokotteen hankinnassa? |vastaus = Tämän kysymyksen ratkaisemiseksi Opasnetissä käydään kesän 2014 aikana avoin keskustelu, jonka lopputulos esitellään |
| | kansalliselle rokotussuositusasiantuntijaryhmälle (KRAR) ja sosiaali- ja terveysministeriön (STM) rokotehankintatyöryhmälle. Keskustelua käydään pääasiassa näistä kolmesta aiheesta omilla sivuillaan: |
| | * [[Vertailuperusteet|Mitä tekijöitä pitäisi huomioida pneumokokkirokotteiden vertailussa]]? |
| | * [[Epidemiologinen malli|Miten pitäisi arvioida pneumokokkirokotusohjelman terveysvaikutuksia]]? |
| | * [[Taloudellinen arviointi|Miten pitäisi arvioida pneumokokkirokotusohjelman kustannusvaikuttavuutta]]? |
| | |
| | Voit osallistua keskusteluun eri tavoilla: |
| | # Kirjoittamalla kommenttisi sivun alalaidassa olevaan kommenttikenttään, jolloin moderaattori nostaa sen osaksi sivun sisältöä. |
| | # Hankkimalla Opasnettiin käyttäjätunnuksen sivun oikeasta yläkulmasta ja osallistumalla itse keskustelusivujen muokkaukseen. Osallistumisessa on noudatettava [[Ohje:Ohje|näitä ohjeita]]. Joistakin asioista käydään jäsennettyä keskustelua [[Keskustelu|näiden ohjeiden]] mukaisesti. |
| | # Vastaamalla [[pneumokokkirokotekysely|kyselyyn]] rokotteiden valintaperusteista. Kysely on rakennettu niin, ettei pneumokokista tarvitse tietää mitään erityistä. |
| | |
| | Sinun kannattaa ensin tutustua sivustoon, jotta osaat kommentoida oikeaan kohtaan ja näet, onko joku muu jo nostanut esiin saman asian. Asioiden toistaminen on turhaa, koska vain yksi maininta joka asiasta jätetään sivulle. Samoin sivun aiheeseen liittymättömät kommentit poistetaan. Sen sijaan kaikki muu sisältö jätetään näkyviin keskustelun pohjaksi. Huomaa kuitenkin, että muut osallistujat saattavat yrittää todistella sinun näkemyksesi vääräksi; jos se onnistuu, näkemys ei päädy KRARille ja STM:lle annettavaan suositukseen. |
|
| |
|
| == Rajaus ==
| | Lisätietoja [[Pneumokokki|pneumokokista]]. |
| | }} |
|
| |
|
| === Kysymys===
| | == Kysymys == |
|
| |
|
| Miten pitäisi toteuttaa keskustelu pneumokokkirokotteesta [[avoin arviointi|avoimen arvioinnin]] mukaisesti?
| | Mitä vertailuperusteita pitäisi käyttää kansalliseen rokotusohjelmaan kuuluvan pikkulasten pneumokokkirokotteen hankinnassa? |
|
| |
|
| === Rajaus === | | === Rajaus === |
|
| |
|
| Tarkastellaan tilannetta Suomessa nykypäivänä. | | * Tarkastellaan kansallisen rokotusohjelman pikkulasten [http://www.thl.fi/fi_FI/web/rokottajankasikirja-fi/pneumokokkikonjugaattirokotukset pneumokokkikonjugaattirokotuksia]. |
| | * Rajataan ja määritellään pneumokokkikonjugaattirokotteiden hankintaan vaikuttavat [[Vertailuperusteet|vertailuperusteet]]. |
| | * Tavoitteena on määritellä tarjouskilpailun kokonaistaloudellinen valintaperuste. |
| | * Keskustellaan hankintapäätöstä varten tehtävän epidemiologisen ja taloudellisen arvioinnin perusteista. |
| | * Perustana on nykyinen tietämys pneumokokkikonjugaattirokotteiden tehosta ja vaikuttavuudesta. |
| | * [http://www.finlex.fi/fi/laki/ajantasa/1987/19870395/#L4P20a Lääkelain 20a§]:n mukaan hankinnassa voidaan ottaa huomioon vain rokotteet, joilla on myyntilupa Suomessa. |
| | * Valmisteltava hankinta on [http://www.finlex.fi/fi/laki/ajantasa/2007/20070348 julkisista hankinnoista annetun lain] mukainen. |
| | * Tällä sivustolla käytävä keskustelu ei sido hankinnan valmistelua ja päätöstä. |
|
| |
|
| === Osallistujat === | | === Osallistujat === |
| * Avoimen päätöksentekokäytännön taitajat: | | |
| ** Jouni Tuomisto (ohjaaja)
| | * Tämä on avoin arviointi. '''Kuka tahansa saa osallistua.''' Työtä ovat jäsentämässä myös: |
| ** Teemu Rintala (mallintaja)
| | * Avoimen päätöksentekokäytännön taitajat, ohjaajana Jouni Tuomisto {{ratkaisulinkki|Työaikasuunnitelmat}} |
| ** Pauli Orden (moderaattori)
| | * Rokoteasiantuntijat (Terveyden ja hyvinvoinnin laitos): |
| ** Timo Koski (moderaattori)
| |
| ** Matleena Tuomisto (moderaattori)
| |
| ** Tuukka Hämynen (moderaattori)
| |
| ** Julia Rintala (osa-aikainen moderaattori)
| |
| * Rokoteasiantuntijat (tämä lista päivitettävä PCV:n mukaiseksi): | |
| ** Hanna Nohynek (vastaava tutkija) | | ** Hanna Nohynek (vastaava tutkija) |
| ** Heini Salo | | ** Heini Salo |
| ** Terhi Kilpi | | ** Terhi Kilpi |
| ** Pertti Sormunen | | ** Pertti Sormunen |
| ** Kari Auranen | | ** Kari Auranen |
| ** Tuija Leino | | ** Tuija Leino |
| ** Simopekka Vänskä | | ** Markku Nurhonen |
|
| |
|
| === Oletettu käyttö ja käyttäjät === | | === Oletettu käyttö ja käyttäjät === |
|
| |
|
| Tämän työn tulosten odotetaan kehittävän jäsentynyttä, perusteltua ja kriittistä rokotekeskustelua Suomessa. Lisäksi se voi jatkossa auttaa rokotehankintoihin liittyviä päätösprosesseja. Tärkeimmät käyttäjät ovat:
| | Tämä sivusto edistää avointa, jäsentynyttä ja perusteltua rokotekeskustelua Suomessa. Lisäksi se auttaa kehittämään rokotehankintojen päätöksentekoa. Tärkeimmät käyttäjät ovat: |
| * THL | | * [http://www.stm.fi/vireilla/tyoryhmat/rokotehankintatyoryhma Sosiaali- ja terveysministeriön rokotehankintatyöryhmä] |
| * Sosiaali- ja terveysministeriö | | * [//www.thl.fi/fi_FI/web/rokottajankasikirja-fi/kansallinen-rokotusasiantuntijaryhma Kansallinen rokotusasiantuntijaryhmä] |
| * Lääke- ja rokoteteollisuusteollisuus | | * Rokottamisesta vastaavat lääkärit ja hoitajat |
| | * Lääke- ja rokoteteollisuus |
| * Kansainväliset rokotetutkijat | | * Kansainväliset rokotetutkijat |
| * Kansalaiset | | * Asiasta kiinnostuneet kansalaiset |
|
| |
|
| === Päätökset === | | == Vastaus == |
|
| |
|
| == Vastaus ==
| | Lähtökohtana oli seuraava ehdotus: |
| | * Valintaperusteina ovat hinta ja hyöty (arvioitu vakavien pneumokokkitautien vähenemä koko väestössä). |
| | * Turvallisuus ei ole perusteena, koska EU:n alueella tällä hetkellä myynnissä olevien pneumokokkikonjugaattirokotevalmisteiden välillä ei ole osoitettu turvallisuuseroa. |
|
| |
|
| Työssä on ainakin seuraavat osat
| | Arvioinnin perusteena käytettiin epidemiologisen mallin pohjalta laadittuja laskelmia rokotteen käyttöönoton johdosta saavutetuista laatupainotetuista lisäelinvuosista ja säästetyistä hoitokustannuksista. Jos serotyyppiä 3 ei oteta huomioon täyden vaikuttavuuden omaavana rokoteserotyyppinä 13-valenttisessa rokotteessa, on ero 10- ja 13-valenttisen rokotteen välillä näissä laskelmissa vähäinen. Ottaen huomioon tämän eron suuruusluokka suhteessa käytettyyn malliin liittyvien epävarmuustekijöiden aiheuttamaan vaihteluun mallin tuottamissa ennusteissa, voidaan 10- ja 13-valenttisen rokotteen arvioida olevan vaikutuksiltaan samanarvoiset. Tällöin hinnan tulee olla määräävä valintakriteeri. |
| * Keskustelutilan luominen eli osakysymysten päättäminen ja sivujen luonti niille.
| |
| * Keskustelutilan jatkuva seuraaminen ja häiriköinnin siivoaminen.
| |
| * [[Kommentointityökalu]]n seuraaminen ja kommenttien nosto varsinaiseen tekstiin. Tämä työkalu on niille jotka eivät halua kirjautua.
| |
| * [[Tägikone]] on työkalu tekstin jäsentämiseen ja asiasanoittamiseen. Se on koekäytössä.
| |
| * Varsinaisen keskustelun tueksi tuotettava taustamateriaali: wikistetään erilaisia rokotteeseen liittyviä yleisiä ja spesifisiä raportteja ja yhteenvetoja sen hyödyistä, haitoista ja tehosta. Tätä materiaalia voisi alkaa listata ja työstää jo nopeasti.
| |
| * Kustannus-hyötymallin toteutus R:llä JAGSilla.
| |
| * Mallin parametritietojen kerääminen ja syöttäminen malliin.
| |
| * Päätösvaihtoehtojen kuvaaminen (suoraviivainen)
| |
| * Eri vaikutusten kuvaaminen ovariableina osana kausaalimallia. (Nämä lienevät pääosin tiedossa yleistasolla)
| |
| * Lopputuloksia koskevien arvojen kuvaaminen. Tämä on iso työ ja vaatii myös teoriapohdintaa siitä, käytetäänkö esim MCDAta tai kahdesta paremman valitsemista. Molemmat olisi kiinnostavin. Muitakin vaihtoehtoja voi harkita.
| |
| * Osallistujien kouluttaminen keskeisiin menetelmiin tarpeen mukaan. Näitä ovat [[Keskustelu]] ja [op_en:Modelling in Opasnet|Opasnet-mallinnus]].
| |
| * Päivitettyjen ohjeiden kirjoittaminen näistä menetelmistä. Menetelmien edelleen kehittäminen tämän hankkeen oppien perusteella.
| |
| | |
| === Kustannukset ===
| |
| | |
| * Jouni Tuomisto: ohjaus ja avoimen päätöksentekokäytännön koordinointi: 3 htkk virkatyönä
| |
| * Opasnet-moderaattorit: 4.5 hlö * 3 kk * 150 h/kk * 12 e/h * 1.35 sivukulut = 32805 e (oletetaan maksimityöllisyys kaikille, vaikka moderaattorit tuskin työskentelevät täyspäiväisesti)
| |
| * R-mallinnus Opasnettiin: 1 hlö * 3 kk * 150 h/kk * 17 e/h * 1.35 sivukulut = 10328 e
| |
| * Rokoteasiantuntijatyö: 3 hlö * 1.5 kk virkatyönä
| |
| | |
| | |
| Vertailun vuoksi: LVMn [[Liikenne ja viestintä digitaalisessa Suomessa 2020]] on houkutellut viikossa toistakymmentä uutta käyttäjää ja n. 50000 merkkiä uutta tekstiä jäsennettäväksi.
| |
|
| |
|
| == Perustelut == | | == Perustelut == |
|
| |
|
| === Riippuvuudet ===
| | Tässä taulukossa on lueteltu arvioinnin olennaiset osat ja päätöksenteon taustat. |
|
| |
|
| * Päätökset:
| | {{pneumokokkirokote}} |
| **
| |
| * Muuttujat:
| |
| ** rokotuskattavuus
| |
| ** rokotteen teho eri kantoihin
| |
| ** rokotteen haittavaikutukset
| |
| ** rokotteen hinta
| |
| ** pneumokokin terveyshaitat: invasiivinen pneumokokki-infektio, välikorvantulehdus, aivokalvontulehdus
| |
| ** rokotteen epäsuorat vaikutukset muiden kantojen ja bakteerien yleisyyteen
| |
| ** rokotteen epäsuorat vaikutukset antibioottien tarpeeseen ja hoitokustannuksiin
| |
| ** laumaimmuniteetti
| |
| * Arvot
| |
| ** kustannustehokkuus
| |
| ** sairauksien laatupainokertoimet ([[:op_en:Disability weights]])
| |
| ** sairauksien, rokotteiden ja hoitojen nettikustannukset
| |
| ** rokotehaittojen kohdistuminen (ei saisi tulla haittaa niille jotka eivät rokotteesta hyödy)
| |
|
| |
|
| | | Rokotteiden vertailu perustuu hintaan ja hyötyyn (ks. [[Vertailuperusteet|vertailuperusteet]]). Epidemiologinen hyöty tarkoittaa arvioitua vakavien pneumokokkitapausten vähenemää, jos rokote otettaisiin kansalliseen rokotusohjelmaan. Arvio tehdään [[Epidemiologinen_malli|epidemiologisen mallin]] avulla. Rokotusohjelman vaikuttavuus määritellään epidemiologisen mallin antaman arvion perusteella terveyteen liittyvänä elämänlaadun muutoksena. Kustannusvaikuttavin rokotevalmiste valitaan [[Taloudellinen_arviointi|taloudellisen arvioinnin]] menetelmin. |
| === Wikistettävää aineistoa ===
| |
| | |
| * Tartuntataudit Suomessa 2012 [http://urn.fi/URN:ISBN:978-952-245-890-2] luku Invasiivinen pneumokokkitauti, ss. 30-32.
| |
| * Pneumokokki-konjugaattirokotteen vaikuttavuuden seuranta osana kansallista rokotusohjelmaa - Prosessikuvausasiakirja [http://urn.fi/URN:ISBN:978-952-245-653-3] Kokonaan
| |
|
| |
|
| === Käytettäviä menetelmiä === | | === Käytettäviä menetelmiä === |
| | | {{arviointi|moderaattori=Jouni}} |
| * [[Avoin päätöksentekokäytäntö]], katso myös julkaisu Tuomisto, Pohjola, Pohjola: Avoin päätöksentekokäytäntö voisi parantaa tiedon hyödyntämistä. Yhteiskuntapolitiikka 79 (2014) 1: 66-75. [http://urn.fi/URN:NBN:fi-fe2014031821621] | | * [[Avoin päätöksentekokäytäntö]], katso myös julkaisu Tuomisto, Pohjola, Pohjola: Avoin päätöksentekokäytäntö voisi parantaa tiedon hyödyntämistä. Yhteiskuntapolitiikka 79 (2014) 1: 66-75. [http://urn.fi/URN:NBN:fi-fe2014031821621] |
| * [[Avoin arviointi]] | | * [[Avoin arviointi]] |
| * [[Jaettu ymmärrys]] | | * [[Jaettu ymmärrys]] |
| | * [[Keskustelu]] |
| * [[:op_en:Portal:Modelling with Opasnet]] | | * [[:op_en:Portal:Modelling with Opasnet]] |
| | * [[Biopolttoainearvioinnit]] (esimerkki Opasnetistä) |
|
| |
|
| === Muuta aineistoa === | | == Katso myös == |
| | * [http://www.thl.fi/fi/-/avoin-keskustelu-pneumokokkirokotteen-hankintaperusteista-alkaa Avoin keskustelu pneumokokkirokotteen hankintaperusteista alkaa] THL:n verkkotiedote |
| | *THL:n sivut: |
| | **[http://www.thl.fi/fi_FI/web/rokottajankasikirja-fi/pneumokokkirokotukset Pneumokokkirokotukset] |
| | **[http://www.thl.fi/fi/tutkimus-ja-asiantuntijatyo/hankkeet-ja-ohjelmat/pneumokokkikonjugaattirokotteen-vaikuttavuuden-arviointi/vakavan-pneumokokkitaudin-ipd-ilmaantuvuus-suomessa-serotyyppi-ja-ikaryhmittain Vakavan pneumokokkitaudin (IPD) ilmaantuvuus Suomessa] |
| | **[http://www.thl.fi/fi/tutkimus-ja-asiantuntijatyo/hankkeet-ja-ohjelmat/pneumokokkikonjugaattirokotteen-vaikuttavuuden-arviointi Pneumokokkikonjugaattirokotteen vaikuttavuuden arviointi] |
| | **[http://www.thl.fi/fi/web/infektiotaudit/taudit-ja-mikrobit/bakteeritaudit/pneumokokki Mikä on pneumokokki-infektio?] |
| | **[http://www.thl.fi/fi/aiheet/tietopaketit/rokotetutkimus/tauti-ja-rokotekohtainen-tutkimus/pneumokokkirokotetutkimus Pneumokokkirokotetutkimus THL:ssä] |
| | **[http://www.thl.fi/fi_FI/web/fi/tutkimus/hankkeet/finip FinIP-tutkimukset] |
|
| |
|
| * [http://terho.thl.fi/wiki01/display/rohy/Other+disease+endpoints+than+IPD] | | * [http://www.laakeinfo.fi/ Lääkeinfo.fi] ([http://www.laakeinfo.fi/Medicine.aspx?m=22290 Synflorix], [http://www.laakeinfo.fi/Medicine.aspx?m=23349 Prevenar 13]) |
| * [http://www.ploscompbiol.org/article/info%3Adoi%2F10.1371%2Fjournal.pcbi.1003477 Nurhonen, Auranen]: Optimal Serotype Compositions for Pneumococcal Conjugate Vaccination under Serotype Replacement | | * [http://rokotetutkimus.fi/rokotteet/tutkittavat_rokotteet/Pneumokokkirokote.html Pneumokokkirokote Rokotetutkimuskeskuksen (TaY) sivuilla] |
| * [https://www3.thl.fi/wiki03/x/CAGqAQ Epidemiological modelling] | | * Duodecim 2013: Lasten pneumokokkirokotukset – menestystarina alkanut myös Suomessa [https://www.julkari.fi/handle/10024/114507] |
| | *Lotta Siiran väitöskirja (Clonality of Streptococcus pneumoniae in relation to antimicrobial resistance in Finland) [http://www.julkari.fi/handle/10024/114673] |
|
| |
|
| === Laskenta ===
| | * Kokousabstraktit ja -esitykset PCV-ohjelmasta: [http://terho.thl.fi/wiki01/display/pcv/Kokousabstraktit+ja+-esitykset+PCV-ohjelmasta] (suojattu sivu) |
| | | * [http://terho.thl.fi/wiki01/x/06tpB Avoin päätöksenteko rokotehankinnassa] (suojattu sivu) |
| Nurhonen M, Auranen K: Optimal serotype compositions for pneumococcal conjugate vaccination under serotype replacement [[http://www.ploscompbiol.org/article/info%3Adoi%2F10.1371%2Fjournal.pcbi.1003477]
| | * [https://www3.thl.fi/wiki03/x/CAGqAQ Epidemiological modelling] (suojattu sivu) |
| | | == Viitteet == |
| The program code with instructions and examples.
| | * [http://www.ploscompbiol.org/article/info%3Adoi%2F10.1371%2Fjournal.pcbi.1003477 Nurhonen M, Auranen K](2014) Optimal Serotype Compositions for Pneumococcal Conjugate Vaccination under Serotype Replacement. PLoS Computational Biology 10(2) |
| | | <references/> |
| This file contains a core set of functions implementing the basic tools presented in the manuscript and
| |
| instructions on how to use the code. The code is written in the R programming language, which is freely
| |
| available at www.r-project.org.
| |
| To run the examples in Sections S1.1-S1.3, first load the functions listed in Section S1.4. The calculation of
| |
| the projected net effectiveness of a vaccination programme assuming a given vaccine composition is
| |
| demonstrated in Section S1.2 and Section S1.3 shows how to use the code in searching for optimal
| |
| vaccine compositions.
| |
| | |
| ;S1.1. Data preparation
| |
| | |
| In our example, we apply the code to the IPD data from Finland and carriage data from Finland and the
| |
| UK. The data contain 24 serotypes and 2 age categories, the <5 and 5+ year olds.
| |
| | |
| ;S1.2 Predicting the net effectiveness under a given vaccine composition
| |
| | |
| The function Vaccination is an implementation of equation (1). Its arguments are the pre-vaccination IPD
| |
| and carriage incidences by age category and serotype. It returns the predicted post-vaccination versions
| |
| of these two matrices. If only one age category is considered, the arguments can be vectors.
| |
| | |
| Example S1.2A: Calculate the predicted incidence of IPD for the non-vaccine
| |
| types(NVTs) under PCV13. The predictions are calculated separately for the
| |
| two age classes. These are the values reported on the bottom panel in
| |
| Figure 2 (there given as per 100K incidences).
| |
| | |
| serotypes 8 9N 10 11 12 15 16 20 22 23A 33 35 38 6C Oth
| |
| ipd_under5 0.4 3 1.5 1.5 0.8 7.2 0.8 0 3.4 0.4 1.5 1.1 1.5 0 2.7
| |
| ipd_over5 30.2 67.8 16.9 34.3 37.4 24.7 12.7 8.9 78.1 11.8 15.2 33.4 3.8 14.8 30.1
| |
| | |
| Example S1.2B: Decrease in IPD incidence after adding a single new serotype
| |
| to PCV13 separately for the two age categories.
| |
| | |
| serotypes 8 9N 10 11 12 15 16 20 22 23A 33 35 38 6C
| |
| ipd_under5 0.2 0.8 1.1 -8.9 0.8 4.2 0.4 0 2.2 0 1.5 -2.4 1.1 -3.2
| |
| ipd_over5 26.4 64.5 7.7 -10.9 37.3 24.7 -93.3 -2.5 49.2 1.9 15.1 1.2 3.8 -23
| |
| | |
| ;S1.3. Finding optimal vaccine serotype compositions
| |
| | |
| The search for optimal vaccine compositions is implemented in the function “OptimalSequence”. The
| |
| optimum is found for the entire data, i.e. taking into account all age categories (columns) included in the
| |
| matrix arguments. If optimum is intended to be found only for one age category, the arguments for
| |
| “OptimalSequence” should be vectors corresponding to this category.
| |
| | |
| Example S1.3A: The optimal sequence for under 5 year olds when replacement is 100%.
| |
| The output shows the decreases in IPD incidence for each step,
| |
| corresponding to Figure 5(C). The last serotype (row 27, the category "Other")
| |
| is excluded from any vaccine composition but is taken into account as a
| |
| replacing serotype at each stage.
| |
| | |
| rank 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| |
| stype 14 6B 19A 18C 7 4 9V 6A 23F 19F 15 3 22 33 9N 38 10 1 12 16
| |
| eff 16.8 15.4 10.3 7.8 2.9 3 2.5 2.2 2.4 5.1 3.3 3.7 2.7 1.8 1.9 1.7 1.8 1.6 1.1 0.9
| |
| | |
| Example S1.3B: The optimal sequence for the whole population when
| |
| replacement is 50% and the current composition includes the PCV7 serotypes.
| |
| | |
| rank 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| |
| stype 3 7 19A 9N 22 12 6A 15 8 35 11 1 33 10 23A 6C 20
| |
| effect 82.3 79.3 42.8 40.9 41.6 24 21.1 20.8 20.3 17.7 15.2 15.1 13.6 13.7 8.6 6.1 6.5
| |
| | |
| ==== Esimerkkejä ====
| |
| | |
| * VT: vaccine serotypes, i.e. pneumococcus serotypes that are found in a vaccine. | |
| * NVT: non-vaccine serotypes, i.e. pneumococcus serotypes that are not found in the vaccine.
| |
| | |
| <rcode embed=1 graphics=1 variables="
| |
| name:q_user|description:Proportion of VT carriage removed by vaccination|default:1|
| |
| name:p_user|description:Proportion of VT carriage removed by vaccination that is replaced by NVT|default:1|
| |
| name:VT_rows_user|description:Serotypes in a vaccine to look at|type:checkbox|options:
| |
| '19F';19F;'23F';23F;'6B';6B;'14';14;'9V';9V;'4';4;'18C';18C;'1';1;'7';7;
| |
| '6A';6A;'19A';19A;'3';3;'8';8;'9N';9N;'10';10;'11';11;'12';12;'15';15;
| |
| '16';16;'20';20;'22';22;'23A';23;'33';33;'35';35;'38';38;'6C';6C;'Oth';Other|
| |
| default:'19F';'23F';'6B';'14';'9V';'4';'18C';'1';'7';'6A';'19A';'3'
| |
| ">
| |
| library(OpasnetUtils)
| |
| library(ggplot2)
| |
| | |
| objects.latest("Op_fi4305", code_name = "alusta") # [[Pneumokokkirokote]]
| |
| objects.latest("Op_en6007", code_name = "answer") # [[OpasnetUtils/Drafts]]
| |
| | |
| ## Read the annual IPD and carriage incidence data.
| |
| ## The 0 entries in IPD and carriage data are replaced by small values.
| |
| serotypes<-c(
| |
| "19F", "23F", "6B", "14", "9V", "4", "18C", "1", "7",
| |
| "6A", "19A", "3", "8", "9N", "10", "11", "12", "15",
| |
| "16", "20", "22", "23A", "33", "35", "38", "6C", "Oth")
| |
| car_under5<-c(
| |
| 156030, 156030, 126990, 41200, 22290, 12830, 10130, 10, 14180,
| |
| 54940, 24320, 12160, 1350, 20940, 4050, 72270, 10, 33100,
| |
| 3380, 1350, 12160, 3380, 680, 30400, 4050, 27470, 24320 )
| |
| car_over5<-c(
| |
| 168100, 314800, 256700, 209800, 114100, 62500, 200700, 100, 100,
| |
| 158800, 54900, 30800, 8800, 8800, 20800, 97700, 100, 100,
| |
| 191900, 25200, 72500, 22000, 100, 71300, 100, 79400, 330100 )
| |
| ipd_under5<-c(
| |
| 7.78, 7.88, 24.39, 20.76, 2.91, 2.91, 6.64, 0.31, 3.02,
| |
| 3.94, 9.88, 1.25, 0.10, 0.83, 0.41, 0.42, 0.21, 1.98,
| |
| 0.21, 0.01, 0.93, 0.10, 0.42, 0.31, 0.42, 0.01, 0.73 )
| |
| ipd_over5<-c(
| |
| 28.51, 53.72, 29.53, 99.43, 43.07, 76.99, 24.39, 6.58, 46.88,
| |
| 17.42, 20.54, 55.04, 11.21, 25.20, 6.28, 12.76, 13.89, 9.18,
| |
| 4.73, 3.29, 29.03, 4.40, 5.64, 12.41, 1.43, 5.50, 11.20 )
| |
| | |
| ## Combine the data into 2 matrices of dimension 27*2:
| |
| IPD<-cbind(ipd_under5, ipd_over5)
| |
| Car<-cbind(car_under5, car_over5)
| |
| | |
| ## Row numbers corresponding to the 3 different PCV formulations
| |
| ## in matrices IPD and Car. Note: there is no serotype 5 in our data.
| |
| pcv7rows<-seq(7); pcv10rows<-seq(9); pcv13rows<-seq(12)
| |
| | |
| | |
| ## Example S1.2A: Calculate the predicted incidence of IPD for the non-vaccine
| |
| ## types(NVTs) under PCV13. The predictions are calculated separately for the
| |
| ## two age classes. These are the values reported on the bottom panel in
| |
| ## Figure 2 (there given as per 100K incidences).
| |
| postvacc <-Vaccination(IPD,Car,VT_rows=pcv13rows,p=1,q=1)
| |
| | |
| cat("Incidence of invasive pneumococcal disease after vaccination program (p=1, q=1).\n")
| |
| oprint(cbind(serotypes,postvacc[[1]]))
| |
| cat("Number of carriers after vaccination program.\n")
| |
| oprint(cbind(serotypes,postvacc[[2]]))
| |
| | |
| ## Example S1.2B: Decrease in IPD incidence after adding a single new serotype
| |
| ## to PCV13 separately for the two age categories.
| |
| next_under5<-NextVT(IPD[,1],Car[,1], VT_rows=pcv13rows,p=1)
| |
| next_over5 <-NextVT(IPD[,2],Car[,2], VT_rows=pcv13rows,p=1)
| |
| cat("Next serotype to add to a vaccine (p=1).\n")
| |
| oprint(rbind(serotypes, next_under5, next_over5))
| |
| # Nämä taulukot kannattaisi transposata niin näyttäisivät siistimmiltä.
| |
| | |
| ## Example S1.3A: The optimal sequence for under 5 year olds when replacement is 100%.
| |
| ## The output shows the decreases in IPD incidence for each step,
| |
| ## corresponding to Figure 5(C). The last serotype (row 27, the category "Other")
| |
| ## is excluded from any vaccine composition but is taken into account as a
| |
| ## replacing serotype at each stage.
| |
| opt<-OptimalSequence(IPD[,1],Car[,1],VT_rows=0,Excluded_rows=27,p=1.0,HowmanyAdded=20)
| |
| | |
| cat("Optimal sequence of serotypes to add to a vaccine (p=1, HowmanyAdded=20).\n")
| |
| oprint(rbind(serotypes[opt[1,]],opt[2,]))
| |
| | |
| ## Example S1.3B: The optimal sequence for the whole population when
| |
| ## replacement is 50% and the current composition includes the PCV7 serotypes.
| |
| opt<-OptimalSequence(IPD,Car, VT_rows=pcv7rows,Excluded_rows=length(serotypes),
| |
| p=0.5,HowmanyAdded=17)
| |
| | |
| cat("Optimal sequence of serotypes to add to a vaccine (p=0.5, HownamyAdded=17).\n")
| |
| oprint(rbind(serotypes[opt[1,]],opt[2,]))
| |
| | |
| ###################################
| |
| | |
| ## Read the annual IPD and carriage incidence data.
| |
| ## The 0 entries in IPD and carriage data are replaced by small values.
| |
| | |
| IPD <- Ovariable("IPD", ddata = "Op_fi4305.pneumokokki_vaestossa")
| |
| IPD@data <- IPD@data[IPD@data$Observation == "Incidence" , colnames(IPD@data) != "Observation"]
| |
| | |
| Car <- Ovariable("Car", ddata = "Op_fi4305.pneumokokki_vaestossa")
| |
| Car@data <- Car@data[Car@data$Observation == "Carrier" , colnames(Car@data) != "Observation"]
| |
| | |
| p <- p_user
| |
| q <- q_user
| |
| VT_rows <- VT_rows_user
| |
| | |
| VacCar <- EvalOutput(VacCar)
| |
| VacIPD <- EvalOutput(VacIPD)
| |
| | |
| cat("Number of carriers\n")
| |
| oprint(VacCar)
| |
| cat("Incidence of invasive pneumococcal disease.\n")
| |
| oprint(VacIPD)
| |
| | |
| ggplot(VacCar@output, aes(x = Serotype, weight = result(VacCar))) + geom_bar() + theme_gray(base_size = 24) +
| |
| labs(title = "Carriers", y = "Number of carriers in Finland")
| |
| | |
| ggplot(VacIPD@output, aes(x = Serotype, weight = result(VacIPD))) + geom_bar() + theme_gray(base_size = 24) +
| |
| labs(title = "Incidence of invasive pneumococcal disease", y = "Number of cases / 100000 py")
| |
| | |
| </rcode>
| |
| | |
| === Funktioiden alustus ===
| |
| | |
| <rcode name="alusta" label="Alusta funktiot" embed=1>
| |
| | |
| library(OpasnetUtils)
| |
| | |
| #S1.4. The R-functions
| |
| ###############################################################################
| |
| ##
| |
| ## R code for the core methods introduced in
| |
| ## Markku Nurhonen and Kari Auranen:
| |
| ## "Optimal serotype compositions for pneumococcal conjugate
| |
| ## vaccination under serotype replacement",
| |
| ## PLoS Computational Biology, 2014.
| |
| ##
| |
| ###############################################################################
| |
| ## List of arguments common to most functions:
| |
| ##
| |
| ## IPD = matrix of IPD incidences by age class (columns) and serotype (rows)
| |
| ## Car = corresponding matrix of carriage incidences
| |
| ## VT_rows = vector of the row numbers in matrices IPD and Car
| |
| ## corresponding to vaccine types (VT_rows=0 for no vaccination)
| |
| ## p = proportion of lost VT carriage which is replaced by NVT carriage
| |
| ## q = proportion of VT carriage lost either due to elimination or replacement
| |
| ##
| |
| ## This code includes 4 functions:
| |
| ## Vaccination, NextVT, OptimalSequence and OptimalVacc.
| |
| ##
| |
| | |
| Vaccination<-function(IPD,Car,VT_rows,p,q) {
| |
| ##
| |
| ## Result:
| |
| ## A list of 2 matrices: IPD and carriage incidences
| |
| ## after vaccination (corresponding to matrices IPD and Car).
| |
| ## [Markku Nurhonen 2013]
| |
| ##
| |
| if (VT_rows[1]>0) {
| |
| IPD<-as.matrix(IPD); Car<-as.matrix(Car)
| |
| # Post vaccination carriage incidences
| |
| Car_Total<-t(matrix(apply(Car,2,sum),dim(Car)[2],dim(Car)[1]))
| |
| Car2<-Car; Car2[VT_rows,]<-0
| |
| Car_NVT<-t(matrix(apply(Car2,2,sum),dim(Car2)[2],dim(Car2)[1]))
| |
| Car_VT<-Car_Total-Car_NVT
| |
| CarNew<-q*(1+p*Car_VT/Car_NVT)*Car2+(1-q)*Car
| |
| # Post vaccination IPD incidences
| |
| NVT_rows<-seq(dim(IPD)[1])[-1*VT_rows]
| |
| # CCR=Case-to-carrier ratios
| |
| CCR<-IPD/Car ; IPDNew<-0*IPD
| |
| # Apply the equation appearing above
| |
| # equation (1) in text for each serotype.
| |
| # First term applies to NVTs.
| |
| IPDNew[VT_rows,]<-(1-q)*IPD[VT_rows,]
| |
| # Second term applies to NVTs.
| |
| IPDNew[NVT_rows,]<-((Car_NVT+p*q*Car_VT)*(Car/Car_NVT)*CCR)[NVT_rows,]
| |
| }
| |
| else {
| |
| IPDNew<-IPD; CarNew<-Car
| |
| }
| |
| list(IPDNew,CarNew)
| |
| }
| |
| | |
| NextVT<-function(IPD,Car,VT_rows,p) {
| |
| ##
| |
| ## Result:
| |
| ## A vector of decreases in IPD due to adding a serotype
| |
| ## to the vaccine. If VT_rows=0, initially no vaccination.
| |
| ## For row indexes incuded in VT_rows, the result is 0.
| |
| ## [Markku Nurhonen 2013]
| |
| ##
| |
| IPD<-as.matrix(IPD); Car<-as.matrix(Car)
| |
|
| |
| ## VaccMat = IPD and Car matrices after vaccination
| |
| VaccMat<-Vaccination(IPD,Car,VT_rows,p,1)
| |
| IPD<-VaccMat[[1]]; Car<-VaccMat[[2]]
| |
|
| |
| ## Total_IPD,Total_Car = Matrices corresponding to
| |
| ## overall IPD and carriage in each age class.
| |
| Total_IPD<-t(matrix(apply(IPD,2,sum),dim(IPD)[2],dim(IPD)[1]))
| |
| Total_Car<-t(matrix(apply(Car,2,sum),dim(Car)[2],dim(Car)[1]))
| |
|
| |
| ## Effect = decrease in IPD when one serotype is added to the vaccine.
| |
| ## See equation (3) in text.
| |
| Effect<-(Total_IPD-IPD)*((IPD/(Total_IPD-IPD))-(p*Car/(Total_Car-Car)))
| |
|
| |
| ## Special case when only one NVT remains.
| |
| IPD_nonzero<-which(apply(IPD,1,sum)!=0)
| |
| if (length(IPD_nonzero)==1) {Effect[IPD_nonzero,]<-IPD[IPD_nonzero,]}
| |
|
| |
|
| ## Result is obtained after summation over age classes.
| | == Aiheeseen liittyviä tiedostoja == |
| apply(Effect,1,sum)
| |
| }
| |
|
| |
|
| OptimalSequence<-function(IPD,Car,VT_rows,Excluded_rows,p,HowmanyAdded) {
| | * {{#l:PCV_KVAraportti 2008_080414.pdf}} Kustannusvaikuttavuusarportti pneumokokkirokotteesta. |
| ##
| |
| ## Starting from VTs indicated by the vector VT_rows
| |
| ## (VT_rows=0, for no vaccination) sequentially add new VTs
| |
| ## to the vaccine composition s.t. at each step the optimal
| |
| ## serotype (corresponding to largest decrease in IPD) is added.
| |
| ##
| |
| ## Excluded_rows = Vector of indexes of the rows in matrices
| |
| ## IPD and Car corresponding to serotypes that are not to
| |
| ## be included in a vaccine composition, e.g. a row
| |
| ## corresponding to a group of serotypes labelled "Other".
| |
| ## Enter Excluded_rows=0 for no excluded serotypes.
| |
| ## HowmanyAdded = number of VTs to be added.
| |
| ##
| |
| ## Result:
| |
| ## Matrix of dimension 2*HowmanyAdded with 1st row indicating
| |
| ## the row numbers of added serotypes in the order they appear
| |
| ## in the sequence. The 2nd row lists the decreases in IPD
| |
| ## due to addition of each type. [Markku Nurhonen 2013]
| |
| ##
| |
| IPD<-as.matrix(IPD); Car<-as.matrix(Car)
| |
| ## First check the maximum possible number of added VTs.
| |
| VT_howmany<-length(VT_rows)
| |
| if (VT_rows[1]==0) {VT_howmany<-0}
| |
| Excluded_howmany<-length(Excluded_rows)
| |
| if (Excluded_rows[1]==0) {Excluded_howmany<-0}
| |
| HowmanyAdded<-min(HowmanyAdded,dim(IPD)[1]-(VT_howmany+Excluded_howmany))
| |
| BestVTs<-BestEffects<-rep(0,HowmanyAdded)
| |
| ## Sequential procedure: at each step find the best additional VT.
| |
| for (i in 1:HowmanyAdded) {
| |
| ## Effects = Decrease in IPD after addition of each serotype
| |
| Effects<-NextVT(IPD,Car,VT_rows,p)
| |
| ## Set Effects for VTs and excluded types equal to small values
| |
| ## so that none of these will be selected as the next VT.
| |
| minvalue<- -2*max(abs(Effects))
| |
| if (Excluded_howmany>0) {Effects[Excluded_rows]<-minvalue}
| |
| if (VT_rows[1]>0) {Effects[VT_rows]<-minvalue}
| |
| ## BestVTs[i] = Index of serotype with maximum decrease in IPD.
| |
| BestVTs[i]<-order(-1*Effects)[1]
| |
| ## BestEffects[i] = Decrese in IPD due to addition of BestVTs[i]
| |
| ## to the vaccine.
| |
| BestEffects[i]<-Effects[BestVTs[i]]
| |
| VT_rows<-c(VT_rows,BestVTs[i])
| |
| if (VT_rows[1]==0) {VT_rows<-VT_rows[-1]}
| |
| VaccMat<-Vaccination(IPD,Car,VT_rows,p,1)
| |
| IPD<-VaccMat[[1]]; Car<-VaccMat[[2]]
| |
| }
| |
| t(matrix(c(BestVTs,BestEffects),HowmanyAdded,2))
| |
| }
| |
|
| |
|
| OptimalVacc<-function(IPD,Car,VT_rows,p,q,HowmanyAdded) {
| | == Kommentoi == |
| ##
| |
| ## Result:
| |
| ## A list of 3 elements: (1) Row numbers of serotypes in the optimal
| |
| ## vaccine composition (2)-(3) IPD and carriage incidences
| |
| ## by serotype and age class corresponding to the optimal
| |
| ## vaccine formed using the sequential procedure in the
| |
| ## function OptimalSequence. [Markku Nurhonen 2013]
| |
| ##
| |
| Additional_VTs<-OptimalSequence(IPD,Car,VT_rows,p,HowmanyAdded)[1,]
| |
| All_VTs<-c(VT_rows,Additional_VTs)
| |
| if (All_VTs[1]==0) All_VTs<-All_VTs[-1]
| |
| VaccMat<-Vaccination(IPD,Car,All_VTs,p,q)
| |
| list(All_VTs,VaccMat[[1]],VaccMat[[2]])
| |
| }
| |
|
| |
|
| VacCar <- Ovariable("VacCar",
| | Voit kommentoida näiden sivujen sisältöä. Tällä pääsivulla on kuitenkin vain lueteltu olennaiset asiat ja linkit, ja keskustelu käydään kutakin asiaa tarkemmin käsittelevällä sivulla. Seuraa siis linkkejä, lue ja osallistu. |
| dependencies = data.frame(Name = c(
| |
| "IPD", # incidence of pneumococcus disease
| |
| "Car", # number of carriers of pneumococcus
| |
| "VT_rows", # vector of names of serotypes in vaccine
| |
| "p", # proportion of eliminated VT carriage that is replaced by NVT carriage
| |
| "q" # proportion of of VT carriage eliminated by vaccine
| |
| )),
| |
| formula = function(...) {
| |
| ##
| |
| ## Result:
| |
| ## An ovariable of carriage incidences
| |
| ## after vaccination (corresponding to Car).
| |
| ## [Markku Nurhonen 2013, Jouni Tuomisto 2014]
| |
|
| |
| if (length(VT_rows) > 0) {
| |
|
| |
| # Post vaccination carriage incidences
| |
|
| |
| # Sum over serotypes and drop extra columns
| |
| Car_Total<- unkeep(oapply(Car, cols = "Serotype", FUN = sum) * 1, prevresults = TRUE)
| |
| # Car2 is a temporary ovariable with NVT carriers only
| |
| Car2 <- unkeep(Car * 1, prevresults = TRUE)
| |
| result(Car2)[Car2@output$Serotype %in% VT_rows] <- 0
| |
|
| |
| Car_NVT <- oapply(Car2, cols = "Serotype", FUN = sum) # Carriers of serotypes not in vaccine (NVT)
| |
| Car_VT <- Car_Total - Car_NVT # Carriers of vaccine serotypes
| |
| | |
| CarNew <- q * (1 + p * Car_VT / Car_NVT) * Car2 + (1 - q) * Car
| |
| } else {
| |
| CarNew <- Car
| |
| }
| |
| return(CarNew)
| |
| }
| |
| )
| |
|
| |
| VacIPD <- Ovariable("VacIPD",
| |
| dependencies = data.frame(Name = c(
| |
| "IPD", # incidence of pneumococcus disease
| |
| "Car", # number of carriers of pneumococcus
| |
| "VT_rows", # vector of names of serotypes in vaccine
| |
| "p", # proportion of eliminated VT carriage that is replaced by NVT carriage
| |
| "q" # proportion of of VT carriage eliminated by vaccine
| |
| )),
| |
| formula = function(...) {
| |
| ##
| |
| ## Result:
| |
| ## An ovariable of IPD incidence
| |
| ## after vaccination (corresponding to ovariable IPD).
| |
| ## [Markku Nurhonen 2013, Jouni Tuomisto 2014]
| |
|
| |
| if (length(VT_rows) > 0) {
| |
|
| |
| # Post vaccination carriage incidences (same code as in VacCar)
| |
|
| |
| Car_Total <- unkeep(oapply(Car, cols = "Serotype", FUN = sum) * 1, prevresults = TRUE) # Sums over serotypes
| |
| Car2 <- unkeep(Car * 1, prevresults = TRUE)
| |
| result(Car2)[Car2@output$Serotype %in% VT_rows] <- 0
| |
|
| |
| Car_NVT <- oapply(Car2, cols = "Serotype", FUN = sum) # Carriers of serotypes not in vaccine (NVT)
| |
| Car_VT <- Car_Total - Car_NVT # Carriers of vaccine serotypes
| |
| CarNew <- q * (1 + p * Car_VT / Car_NVT) * Car2 + (1 - q) * Car
| |
|
| |
| # Post vaccination IPD incidences
| |
| # CCR=Case-to-carrier ratios
| |
| CCR <- IPD / Car
| |
| | |
| # Apply the equation appearing above
| |
| # equation (1) in text for each serotype.
| |
| # First term applies to VTs.
| |
| IPDNewVT <- (1 - q) * IPD
| |
| result(IPDNewVT)[!IPDNewVT@output$Serotype %in% VT_rows] <- 0
| |
| # Second term applies to NVTs.
| |
| IPDNewNVT <- (Car_NVT + p * q * Car_VT) * (Car / Car_NVT) * CCR
| |
| result(IPDNewNVT)[IPDNewNVT@output$Serotype %in% VT_rows] <- 0
| |
| IPDNew <- IPDNewVT + IPDNewNVT
| |
| } else {
| |
| IPDNew <- IPD
| |
| }
| |
| return(IPDNew)
| |
| }
| |
| )
| |
| | |
| objects.store(Vaccination, NextVT, OptimalSequence, OptimalVacc, VacCar, VacIPD)
| |
| | |
| cat("Funktiot Vaccination, NextVT, OptimalSequence, OptimalVacc sekä ovariablet VacCar, VacIPD tallennettu. \n")
| |
| | |
| </rcode>
| |
| | |
| === Data ===
| |
| | |
| Pneumokokin esiintyvyys suomalaisessa väestössä. Carrier: (oireettomien) kantajien lukumäärä, Incidence: invasiivisen pneumokokkitaudin ilmaantuvuus 100000 henkilövuotta kohti.
| |
| | |
| <t2b name='Pneumokokki väestössä' index='Serotype,Age,Observation' locations='Carrier,Incidence' unit='#, #/100000py'>
| |
| 19F|Under 5|156030|7.78
| |
| 23F|Under 5|156030|7.88
| |
| 6B|Under 5|126990|24.39
| |
| 14|Under 5|41200|20.76
| |
| 9V|Under 5|22290|2.91
| |
| 4|Under 5|12830|2.91
| |
| 18C|Under 5|10130|6.64
| |
| 1|Under 5|10|0.31
| |
| 7|Under 5|14180|3.02
| |
| 6A|Under 5|54940|3.94
| |
| 19A|Under 5|24320|9.88
| |
| 3|Under 5|12160|1.25
| |
| 8|Under 5|1350|0.1
| |
| 9N|Under 5|20940|0.83
| |
| 10|Under 5|4050|0.41
| |
| 11|Under 5|72270|0.42
| |
| 12|Under 5|10|0.21
| |
| 15|Under 5|33100|1.98
| |
| 16|Under 5|3380|0.21
| |
| 20|Under 5|1350|0.01
| |
| 22|Under 5|12160|0.93
| |
| 23A|Under 5|3380|0.1
| |
| 33|Under 5|680|0.42
| |
| 35|Under 5|30400|0.31
| |
| 38|Under 5|4050|0.42
| |
| 6C|Under 5|27470|0.01
| |
| Oth|Under 5|24320|0.73
| |
| 19F|Over 5|168100|28.51
| |
| 23F|Over 5|314800|53.72
| |
| 6B|Over 5|256700|29.53
| |
| 14|Over 5|209800|99.43
| |
| 9V|Over 5|114100|43.07
| |
| 4|Over 5|62500|76.99
| |
| 18C|Over 5|200700|24.39
| |
| 1|Over 5|100|6.58
| |
| 7|Over 5|100|46.88
| |
| 6A|Over 5|158800|17.42
| |
| 19A|Over 5|54900|20.54
| |
| 3|Over 5|30800|55.04
| |
| 8|Over 5|8800|11.21
| |
| 9N|Over 5|8800|25.2
| |
| 10|Over 5|20800|6.28
| |
| 11|Over 5|97700|12.76
| |
| 12|Over 5|100|13.89
| |
| 15|Over 5|100|9.18
| |
| 16|Over 5|191900|4.73
| |
| 20|Over 5|25200|3.29
| |
| 22|Over 5|72500|29.03
| |
| 23A|Over 5|22000|4.4
| |
| 33|Over 5|100|5.64
| |
| 35|Over 5|71300|12.41
| |
| 38|Over 5|100|1.43
| |
| 6C|Over 5|79400|5.5
| |
| Oth|Over 5|330100|11.2
| |
| </t2b>
| |
| | |
| == Katso myös ==
| |
| | |
| * [[Biopolttoainearvioinnit]]
| |
| * [http://terho.thl.fi/wiki01/x/06tpB Avoin päätöksenteko rokotehankinnassa] (suojattu sivu)
| |
| * Duodecim 2013: Lasten pneumokokkirokotukset – menestystarina alkanut myös Suomessa [https://www.julkari.fi/handle/10024/114507]
| |
| * [http://www.thl.fi/fi_FI/web/rokottajankasikirja-fi/pneumokokkirokotukset THL:n sivu pneumokokkirokotteesta]
| |
| * [http://terho.thl.fi/wiki01/x/Dg2GAg Pneumokokkiohjelman vaikuttavuusarviointi] (suojattu sivu)
| |
| * [http://www.thl.fi/fi_FI/web/fi/tutkimus/hankkeet/pnc-vaikuttavuus/vakavan_pneumokokkitaudin_ilmaantuvuus Vakavan pneumokokkitaudin ilmaantuvuus Suomessa]
| |
| * [http://www.thl.fi/fi_FI/web/fi/tutkimus/hankkeet/finip FinIP-tutkimukset]
| |
| | |
| == Viitteet ==
| |
| | |
| <references/>
| |