日々のつれづれ

不惑をむかえ戸惑いを隠せない男性の独り言

HPVの怖さ

This news is a little old.

After 3.11, we often watch the diagnosis test for the cervical cancer on TV commercial. This message is that diagnostic test is very effective to detect and cure this cancer at early stage. Now main diagnostic test is Pap test, which checked cancer cells in the cervical smear.

HPV is thought to induce this cancer, and this diagnostic test could save increasing this patients if young women visit the clinic.
The USPSTF statement focused this topic and asked whether they would recommend all young women under 30 to take HPV test with Pap test nor not.
I heard the prognosis of cervical cancer is good if the patients are treated at the early stage. So if clinical evidences are clear and the combined test is reasonable for them, I think we should test HPV. On the other hand, when the number of tests are increasing, our medical cost is increasing too. Maybe this is very difficult issue.

10月18日に米国予防医療作業部会(USPSTF)は、子宮頸癌検診の勧告案を発表した。本勧告案は、同会による前回勧告案の改訂であり、パブリックコメントを30日間受け付ける。
本勧告案では、性的行為経験があり子宮頸部を有する21歳から65歳の女性を対象に、3年ごとのパップテスト(子宮頸部細胞診)を用いた検診の実施を推奨している。また、本案では30歳未満の女性におけるヒトパピローマウイルス(HPV)検査を用いた検診を、パップテストを組み合わせた場合あるいは単独実施の場合のいずれにおいても推奨していない。30歳以上の女性では、「現時点でHPV検査の実施について、単独実施のみならずパップテストとの併用についても、有益性と有害性のバランスを評価するにはエビデンスが乏しい」と同会は結論付けた。
本勧告案に関するパブリックコメント募集期間は11月16日までである。パブリックコメントは、USPSTF ウェブサイト経由、またはDr. Robert Cosby氏に郵送で提出できる。

2011/10/18号◆AHRQ情報「前立腺癌検診の勧告案にパブリックコメントを募集」「新しい子宮頸癌検診の勧告案にパブリックコメントを募集」 | 海外がん医療情報リファレンス


I am thinking that HPV is causes of the cervical cancer, but it is not true.
HPV is sexually transmitted disease, so recently this virus have induced the throat cancer and anal cancer.
These news is shocking for me. Japanese media maybe avoids to announce, because sexual issue tends to be thought as taboo in Japan. However, I'd appreciate if Japanese media changes their mind and is willing to pick up these topics.

HPV(*)(ヒトパピローマウイルス)への感染が、中咽頭扁平上皮がんの罹患率を高めている可能性があるという研究結果が、10月3日付ジャーナル・オブ・クリニカル・オンコロジー誌電子版に発表された。2020年までにHPV陽性(HPVに感染)の中咽頭扁平上皮がんが、米国のHPV関連がんとして最も多い子宮頸がんより増える可能性があるという。HPV(*)(ヒトパピローマウイルス)への感染が、中咽頭扁平上皮がんの罹患率を高めている可能性があるという研究結果が、10月3日付ジャーナル・オブ・クリニカル・オンコロジー誌電子版に発表された。2020年までにHPV陽性(HPVに感染)の中咽頭扁平上皮がんが、米国のHPV関連がんとして最も多い子宮頸がんより増える可能性があるという。
*HPV=主に性行為によって感染するウイルスの1種。16型、18型など一部のタイプは子宮頸がんなどを引き起こす

http://www.gsic.jp/topics/201112.php#04

子宮頸癌の予防に用いられている4価のヒトパピローマウイルス(HPV)ワクチンを男性間性交渉者に接種すると、ワクチンがカバーしている4タイプのHPVの感染に関連する肛門上皮内腫瘍のリスクが有意に低下することが、米California大学San Francisco校のJoel M. Palefsky氏らが行った無作為化試験で明らかになった。ワクチンの有効率は、intention-to-treat分析で50.3%、per-protocol分析では77.5%だった。論文は、NEJM誌2011年10月27日号に掲載された。

4価HPVワクチンは男性同性愛者の肛門上皮内腫瘍も予防:日経メディカル

function関数の使い方、その2

昨日は、あまり意味がない関数だったんで、ちょっと工夫してみる。

  • vector からNA を除き、上下5% を除外したmean とsd を計算する関数
> trim_mn <- function(x,alpha=.05){ # alpha=.05 がデフォルト値
+ x <- sort(x)
+ x[1:ceiling(length(x)*alpha)] <- NA
+ x <- rev(x)
+ x[1:ceiling(length(x)*alpha)] <- NA
+ c("mean"=mean(x,na.rm=TRUE),"sd"=sd(x,na.rm=TRUE))
+ }
> x <- sample(100,50)
> x[sample(50,10)] <- NA
> trim_mn(x)
    mean       sd 
51.80556 26.82943 
> trim_mn(x,alpha=.1) # 上下10% にしたい場合
    mean       sd 
51.68750 23.66083 
  • 更に、「NA の除外する」か「NAに最小値の補完する」を選ばせる
> trim_mn2 <- function(x,alpha=.05,inpute=FALSE){
+ if(inpute) x[is.na(x)] <- min(x,na.rm=TRUE)
+ trim_mn(x,alpha=alpha) # 先に定義したtrim_mn を持ってきている
+ }
> trim_mn2(x,inpute=TRUE)
    mean       sd 
40.40909 30.64297 
> trim_mn2(x) # inpute=FALSE なのでtrim_mn(x) と同じ
    mean       sd 
51.80556 26.82943 

てなこともできる。

で、function関数で作ったオブジェクトは関数として使えるので、apply関数の第3引数になる

  • function関数をapply関数にぶち込む
> x <- matrix(x,ncol=5)
> apply(x,2,trim_mn2,inpute=TRUE)
         [,1]     [,2]     [,3]    [,4]     [,5]
mean 30.00000 46.37500 35.25000 66.5000 30.50000
sd   26.29503 19.11572 33.39696 21.9545 25.59576

同じ処理をfor で処理すると、こんなコードになるかも

> y <- NULL
> for(i in 1:ncol(x)){
+ z <- sort(x[,i])
+ z[1:ceiling(length(z)*.05)] <- NA
+ z <- rev(z)
+ z[1:ceiling(length(z)*.05)] <- NA
+ y <- cbind(y,c("mean"=mean(z,na.rm=TRUE),"sd"=sd(z,na.rm=TRUE)))
+ }
  • function関数の定義をone-linerで書けるなら、applyの第3引数に直接、書き込んでも可
# apply(x,2,mn_sd2,na.rm=TRUE)をone-linerで記述する
> apply(x,2,function(x) c("mean"=mean(x,na.rm=TRUE),"sd"=sd(x,na.rm=TRUE)))
         [,1]     [,2]     [,3]     [,4]     [,5]
mean 38.87500 51.33333 47.37500 74.25000 46.00000
sd   27.07892 23.25941 37.38578 20.97447 33.21646