人気ブログランキング |

シクレソニド吸入とヒドロキシクロロキン内服

日本感染症学会の新型コロナ感染症のページの症例報告を読んでいたら、シクレソニド(オルベスコ)吸入の報告と、ヒドロキシクロロキン内服の報告の効果がとびぬけていた。

シクレソニドは喘息に、ヒドロキシクロロキンは関節リウマチに普通に使用されている薬であるにもかかわらず、どちらの薬を使った症例も治癒し、肺炎の影も消失していた。

これは、コロナウイルスによる肺炎の機序が、自然免疫の暴走による ARDS であることを示唆している。自然免疫に起因する肺の血管透過性の亢進を制御できれば多くのコロナウイルス患者の死亡を防ぐことができるのではないだろうか。抗ウイルス薬よりも、抗炎症薬の方が疾患の治療の主体になるような気がする。

さらに、コロナウイルス以外の敗血症や、重症膵炎による ARDS の治療にもこれらの薬剤が有効かもしれない。

コロナウイルスの ARDS が治療できることが分かれば、都市封鎖などの手荒な感染対策がいらなくなるかもしれない。

# by tnomura9 | 2020-03-28 13:41 | Comments(0)

コロナウイルスと ARDS

コロナウイルスの肺炎は、ARDS (acute respiratory distress syundrome) のようだ。敗血症や急性膵炎に合併する重症の肺炎で、決定的な薬物療法はなく、人工呼吸が唯一の治療法だ。死亡率は40%だという。ステロイドや TNF 受容体阻害剤も無効だ。インターフェロンの一種が有効ではないかと期待されているらしいが詳しいことはわからない。若い人たちもコロナウイルスを甘く見てはいけない。

ARDS の病態で重要と思われるのは、血管透過性の著明な亢進だ。これについては VE-cadherin という細胞接着タンパク質が関係しているらしい。VE - cadherinは隣の細胞の VE - cadherin と結合して細胞同士を接着させ、毛細血管の隙間から体液が漏れ出すのを調節している。VE - cadherin は細胞表面に現れたり、細胞内に取り込まれたり(internalize)して調節されている。

VE - cadherin の調節に関係しているとされているものに Robo4 という細胞表面の蛋白とそのリガンドの TNRF-7 の結合があるらしい。

また、コロナウイルスが細胞内に侵入するときに ACE2 というアンギオテンシン変換酵素の仲間に結合するが、これによる ACE2 の不足も ARDS に関係している可能性がある。ACE2 は ACE1 がアンギオテンシン I を分解して作った アンギオテンシン II をさらに分解して Ang(1-7) にする働きがある。実際、ARDS の患者ではアンギオテンシン II の濃度が高いらしい。アンギオテンシン II の過剰が ARDS に関係しているかどうかは不明だ。しかし、ACE阻害剤や、ARB で ARDS の症状を軽くすることができるとしたら朗報だ。

コロナウイルスの ARDS に対して決定的な武器はまだない。コロナウイルスを正しく恐れて、感染するような密閉、密集、密着の状況を極力作らないようにすることは今できる最善の手段だ。

# by tnomura9 | 2020-03-28 06:17 | Comments(0)

アンギオテンシン変換酵素2

新型コロナウイルスが細胞に侵入するときに、ウイルスのスパイクが動物細胞表面のアンギオテンシン変換酵素2(ACE2)と結合する。ACE1は血圧上昇のホルモンであるアンギオテンシンIを活性型のアンギオテンシンII に変換し血圧を上昇させる。ACE2はアンギオテンシンIIを分解しアンギオテンシン(1,7)に変化させる。アンギオテンシン(1,7)はアンギオテンシンIIの昇圧作用に拮抗するように血圧を低下させる作用が有る。その他にも抗炎症作用や、血管透過性亢進を抑制する作用が示唆されている。

コロナウイルスがACE2と結合して細胞内に侵入することによって細胞表面のACE2の作用が傷害され、アンギオテンシン(1,7)の降圧作用や肺の血管保護作用が損なわれる可能性がある。したがって、アンギオテンシンI をアンギオテンシン II に変化するのを阻害する ACE阻害薬はウイルス感染時の肺炎の発症を最大34%減少させるというメタアナリシスもある。ARB はアンギオテンシン変換酵素には作用しないのでアンギオテンシンII濃度は上昇する。しかし、オルメサルタンは ACE2の活性促進作用からアンギオテンシンII濃度が減少する。

ヒト組み換えACE2の注射薬は敗血症性の急性呼吸促迫症候群(ARDS)の新しい治療法として注目されている。

Wikipedia より。

肺の毛細血管の透過性を制御しているのは VE - カドヘリンだ。アンギオテンシン(1,7)はこのカドヘリンの発現を促進しているという可能性もある。また、大阪大学で研究されている Robo4 という蛋白は VE - カドヘリン発現への直接作用があるらしい。

新型コロナウイルスの肺水腫は細胞表面の AR2 の枯渇が原因であると考えると、ウイルス量に相関する肺の浮腫、低酸素血症の急速な進展などの現象に説明がつくような気がする。それに対する武器としてACE阻害剤や、ARBが使えるとすると、軽症のコロナウイルス感染症対策の武器が増えるかもしれない。また、吸入ステロイドやフォイパンも有効性の検討が必要だろうが期待できる。アビガンは細胞内のコロナウイルスの増殖をある程度阻止できるようだ。重症例にはウイルスの細胞内侵入を阻害するフサンや、ヒト組み換えACE2などが有効かもしれない。

コロナウイルスによる肺水腫さえ治療できれば、コロナウイルス感染対策の様相も一変するだろう。

# by tnomura9 | 2020-03-27 00:33 | Comments(0)

新型コロナウィルス肺炎と血管透過性亢進

中国の報告では、新型コロナウイルスの死亡者の剖検では病変は肺に集中し、他の臓器の障害は軽度だったそうだ。肺の炎症は、線維化は少なく、著名な浮腫の所見が見られたようだ。また、肺胞内に粘性の高い分泌物を認めたそうだが、これは肺の毛細血管からタンパク質のような分子量の大きな物質も漏出していたことを示している。

また、イタリアの報告では、80歳台の肺炎による死亡者の臨床経過では、感冒様症状から病院を受診するような発熱、倦怠感、咳嗽などの症状が発現するまでに4日、入院後死亡までに4日で発症から8日で死亡するということだった。感染症にしてはいくら何でも早すぎる。これも、全身的な炎症による内臓疾患と言うよりは、肺に集中した病変による呼吸不全が原因と考えることができる。

これらのことは、コロナウイルス肺炎の病態が、肺に集中していること、それも肺の浮腫が主体であることを示している。コロナウイルスによる何らかの直接的な影響で、肺の毛細血管の血管透過性が亢進することが呼吸障害の原因であるのではないかと思う。

したがって、コロナウイルス肺炎の治療の焦点は、肺の毛細血管の血管透過性をどのように抑制するかということになるだろう。ステロイドのパルス療法は効果が薄く、ステロイド吸入薬による局所投与が効果をあげているということだ。

血管透過性亢進を直接押さえ込む薬剤は残念ながら今のところない。キーワードとしては VEGF、ROBO4、アクアポリン、レニンアンギオテンシン系などがあるようだが、詳細は分からない。アルドステロン拮抗薬は肝臓がんの腹水に対して他の利尿薬とは一線を画す効果がある。コロナウイルスが細胞と接着するときに細胞の ACE2 と結合するとのことだが、アンギオテンシンをIからII に変換するアンギオテンシン変換酵素とは別物だ。いずれにしても、肺の毛細血管の透過性亢進がコロナウイルス肺炎の治療のターゲットとなるのは間違いないだろう。

# by tnomura9 | 2020-03-26 07:15 | Comments(0)

新型コロナ感染症の死亡者数がなぜ日本では低いのか。

イタリアを始めとするヨーロッパに比べ、日本のコロナ感染症による死亡数は圧倒的に少ない。これは何を意味しているのだろうか。

それは、コロナ感染症による死亡者数の年齢別分布をみると分かる。80歳以上の感染者の死亡率が異常に高いのだ。

それが日本では低いというとは、日本では80歳以上の人口が老人介護施設に入居している率がこれらの国に比べ高いということではないだろうか。そうして、コロナの以前に流行していたインフルエンザに対し、施設では入居者への面会を制限したり、職員の健康管理をやっていたために、それらの対策がコロナ感染に際しても自然に継続され、80歳以上の高齢者への感染が防がれているのではないかと思う。

コロナ感染による死亡者増を防ぎ、医療崩壊を防ぐためには、これらの高齢者施設の感染防止を行政が重点的にバックアップする必要があるのではないか。これだけ死亡率への高齢者の寄与率が大きいことが分かっているのだから、むやみに地域全体を隔離するより、高齢者の効率的な隔離と感染防止対策に力を注ぐべきだと思う。

また、学校が再開したが、学校が再開すれば子供の間に感染が起きるのは必須だ。なぜならば、学校は高齢者施設と異なり、感染症対策に対し経験がなく、うまく扱えない可能性があるからだ。学校を再開する限りは、学校の職員に対する保健指導と、専門家による感染状況のモニターを徹底する必要があるのではないだろうか。

子供が感染しても重症化しないのは良いことだが、感染した子供は必ず家庭で家族の殆どに感染させるのは明らかだ。それは、インフルエンザの場合をみても明らかだ。インフルエンザの流行は学校から始まるからだ。したがって、子供が感染しても家族が一斉に感染するのを防ぐ必要がある。特に、高齢者が同居している家庭の場合は家族内感染のコントロールの重要度が違う。このような場合は高齢者の家族を退避させる何らかの対策が必要だ。

若年者でも重症化する場合はあるが、高齢者の比ではないとすれば、やるべきことは明らかだ。感染抑制は高齢者に特化して行うべきなのだ。

# by tnomura9 | 2020-03-24 22:06 | Comments(0)

ウォークスルー Haskell

Haskell の使い方をまとめた「Haskell 入門」というサイトを作った。短い記事の集まりで、紹介しているソースコードを実行すると Haskell でどういうことができるかがなんとなく会得できると思う。しかし、このサイトでは Haskell の言語仕様の全体像は紹介できていない。かなり大きな仕様で、また、モナドなどの概念が結構難しいからだ。

ソースコードの用例は実際に自分で試して動かせるので、雰囲気的な理解はできるが、それでは技術用語の理解が曖昧になる。プログラムは動けばいいので、技術用語の正確な理解は必要ないかもしれないが、それでは、根底となる用語や概念の理解がおろそかになる。Haskell の仕様を全般的に正確に紹介したサイトを探していたら、次のサイトを見つけた。


Haskell のプログラムを書くときに頻繁に参照して、プログラムの用語が本来はどのように定義され使われるのかということを理解する必要がある。

英語なら、


がおすすめだ。

The Haskell Cheatsheet の著者も書いているように Haskell はやさしくない。しかし、わからないなりにコツコツとソースコードを書いているうちに、プログラミングの楽しさを感じさせる言語だということが分かってくる。とにかく、やってみることが大切だ。

# by tnomura9 | 2020-03-22 22:59 | Comments(0)

ed エディタの m コマンド

ed エディタの m コマンドは複数の行を移動させる。fact.hs ファイルでそれを検証してみる。

~$ ed fact.hs
58
,n
1    fact 0 = 1
2    fact n = n * fact (n-1)
3   
4    main = print $ fact 5
1,2m4
,n
1   
2    main = print $ fact 5
3    fact 0 = 1
4    fact n = n * fact (n-1)

1行目と2行目が4行目の後ろに移動した。この移動も、u (undo) コマンドで元に戻すことができる。

u
,p
fact 0 = 1
fact n = n * fact (n-1)

main = print $ fact 5

これで ed の概要の説明は終わりだ。info ed で調べるとまだまだ沢山の機能があるが、記事としてはこれで終わりにする。ed の機能をテストしてみたら、終わったソフトには見えないのだけれど、残念ながら情報源が少ない。ed を使うときのおすすめはターミナルの1画面に収まるくらいの小さいソースコードのの編集だ。この場合 vi よりも編集が快適にできる気がする。要は慣れの問題だ。

# by tnomura9 | 2020-03-22 19:59 | Comments(0)

ed エディタの u (undo) コマンド

エディタの機能で大切なのは、一旦編集した結果を元に戻す機能だ。ed ディタには u (undo) コマンドがあり、直前の編集を取り消してくれる。また、Q コマンドは編集を破棄して ed を終了するコマンドだ。

~$ ed -p*
*a
foo foo foo
.
*s/foo/bar/p
bar foo foo
*u
*.
foo foo foo
*Q
~$

u を2回使うと、元に戻すを元に戻すことができる。

~/sed$ ed -p*
*a
foo foo foo
.
*s/foo/bar/gp
bar bar bar
*u
*.
foo foo foo
*up
bar bar bar

s コマンドを使うと文書全体の単語の置き換えもできるが、それも u コマンドで取り消しできる。

~$ ed -p*
*a
fact 0 = 1
fact n = n * fact (n-1)

main = print $ fact 5
.
*w fact.hs
58
*!runghc fact.hs
120
!
*,s/fact/foo/g    
*,p
foo 0 = 1
foo n = n * foo (n-1)

main = print $ foo 5
*u
*,p
fact 0 = 1
fact n = n * fact (n-1)

main = print $ fact 5

カーソルのない ed の編集は面倒なようだが、慣れると文書全体の単語の置き換えなどもキーボードから簡単にできる。行への移動も正規表現を使って /fact n/ のようにすると、n コマンドで行番号を表示しなくても簡単にできる。ed を使ったソースコードの編集も結構実用的なのではないだろうか。vi を作ったビル・ジョイも ed を使っていたという話もある。

正規表現が実装されたバージョンの ed は結構パワフルだ。

# by tnomura9 | 2020-03-21 20:10 | Comments(0)

State モナドを使った FizzBuzz

State モナドを使って FizzBuzz を書いてみた。

ファイル名: fizzbuzz.hs

import Control.Monad.State

fizz :: String -> State Int String
fizz str = do
  n <- get
  if mod n 3 == 0
    then return (str ++ "Fizz")
    else return (str ++ "")
buzz :: String -> State Int String
buzz str = do
  n <- get
  if mod n 5 == 0
    then return (str ++ "Buzz")
    else return (str ++ "")
fizzbuzz n = let (str,m) = runState (return [] >>= fizz >>= buzz) n
             in case str of
                [] -> show m
                _ -> str

main = mapM_ putStrLn $ map fizzbuzz [1..100]

状態を文字列にして、リターン値を整数にした。さらに、fizz モナドの作成をモジュール化した。

import Control.Monad.State

maker :: String -> Int -> Int -> State String Int
maker str m n = do
  stack <- get
  if mod n m == 0
    then put (stack ++ str)
    else put (stack ++ "")
  return n

fizz = maker "Fizz" 3
buzz = maker "Buzz" 5

fizzbuzz n = let (m, str) = runState (return n >>= fizz >>= buzz) []
             in case str of
                [] -> show m
                _ -> str

main = mapM_ putStrLn $ map fizzbuzz [1..100]


# by tnomura9 | 2020-03-20 13:31 | Comments(0)

FizzBuzz

FizzBuzz を Haskell で書いてみた。

ファイル名: fizzbuzz.hs

fizzbuzz n
  | n `mod` 15 ==  0 = "FizzBuzz"
  | n `mod` 3 == 0 = "Fizz"
  | n `mod` 5 == 0 = "Buzz"
  | otherwise = show n

main = mapM_ putStrLn $ map fizzbuzz [1..100]

実行例

~/sed$ runghc fizzbuzz.hs
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
以下略

これも ed で書いた。軽くて、実行もできて、快適だった。

# by tnomura9 | 2020-03-20 07:25 | Comments(0)