感染症シミュレーション by Scratch 3.0

2020年2月3日現在、中国で発生した新型コロナウイルスは日本国内でも発生報告が続いており、
このまま世界中に流行する可能性もあります。

コロナ、インフルエンザのような感染症は、どのように広がっていくのでしょうか?

ウィルスはヒトからヒトへ感染するので、人の移動によって病気の流行が引き起こされます。
流行拡大の予測にコンピュータシミュレーションがよく用いられるのですが、
Scratch 3.0 でこれをやってみましょう。

 

https://scratch.mit.edu/projects/364518819

感染症シミュレーション by Scratch 3.0

【実行するたびに、感染拡大状況が異なります】

 

シナリオ:
①健常者が病原体、もしくは感染者(罹患者)に接触することで感染する
②罹患者も動き回れるが、一定の確率で死亡する
③罹患者は、一定時間が過ぎれば快復し、その後は感染しない(免疫の獲得)

オレンジが健常者
紫が罹患者(病人)
黄緑が回復者(免疫獲得者)
黒が死者

[Ver01] https://scratch.mit.edu/projects/364335283/

インフルエンザやコロナなど、感染症(かんせんしょう)のシミュレーションです。
ウィルスが人から人に伝染して病気がうつります。
感染してもある程度時間がたつと快復することが多いですが、時には死亡することもあります。
100人の世界が、突如現れた感染源からどのように病気が広がっていくでしょうか。

[Ver03] https://scratch.mit.edu/projects/364518819

背景を変えて空間を分割すると、実際の国際的な感染症の広がりを擬似的にシミュレーションするできます。
今回は二国間、三ヶ国間でシミュレーションできるようにしました。
(三ヶ国の場合、右上から時計周りに、A国、B国、C国とします。)

伝染力の強さ、回復までの時間、病気の強さで、
病気の広がり方や死亡率が変わります。
これらのパラメーターは、プログラム内で変えることができます。

フラグを押してスタートするだけで、100人の国際社会に感染症が発生します。
何人無事でいられるでしょうか?

1.健康な人 オレンジ
2.感染者  むらさき
3.快復者  黄緑
4.死亡   黒

 

 

以下、シミュレーション結果を少しご紹介します。

 

二国間シミュレーション

下図のケースでは、右側A国で発生した感染症は、国境を超えて左側に広がることはありませんでした。A国では死者も出したものの、すでにほとんどが黄緑の快復者(免疫獲得者)で、罹患者はおらず、流行が収まっています。

何度もシミュレーションを実行すると、時には左側に感染が広がることもあります。

a

 

三か国間シミュレーション

 

シミュレーション1

右上のA国で感染症発生!
下がB国、左上がC国とします。

c

 

 

右上のA国では、感染者が増えて、流行期ですね。
既に死者(黒)、快復者(黄緑)もいます。

d

 

 

A国で猛威を振るった感染症が、
B国に越境してしまいました!!
e

 

A国では感染の流行は終わり、B国では流行のピークは過ぎたころです。
そしてC国ではまだ罹患者はいません。

f

 

 

シミュレーション2

このケースは、A国だけで流行が鎮火しています。

g

 

シミュレーション3

このケースは、A国、B国で死者を出したあと、感染症の流行が左上のC国に及んでいます。
C国で感染者が多いこの時点において、A国、B国では、すでに落ち着いて罹患者は少なくなり、免疫獲得者がほとんどです。
パンデミックが、時間差で伝播している様子がわかりますね。

実際の感染症発生時には、途中で遺伝子変異が起こったり、人間の側もワクチンを開発したり、よりダイナミックなシナリオとなります。

h

 

各国で死者を出したパンデミックも、ついに罹患者が0になり(すべての患者が快復or死亡)、流行が収まりました。

i

 

 

 

以上、分析結果を少し紹介しましたが、実際の社会をテーマに仮想実験をするコンピュータシミュレーション、面白いと思いませんか?

今回のシミュレーションでは、

  • 感染率(うつりやすさ)
  • 快復までの時間
  • 死亡率

の三つを、入力パラメータとしました。 これらを感染症の種類で異なりますので、入力パラメータを変更することで別のパンデミックのシミュレーションをすることができます。

 

下のチャートは、New York Times(Updated Feb. 1, 2020) に載った各感染症の致死率と感染率です。
こういう情報を使って、さまざまなシナリオに基づくシミュレーションをしてみると、とても興味深い結果が得られます。
例えば、
〇どういう条件だとに感染が広がりやすいか?
〇感染が広がりやすい場合、どういう条件を加えたら感染を抑えられるか
などを考えながらシミュレーションしてみると、流行の傾向が感染症/ウィルスごとに異なることが分かります。

実はこれ、本当の保健当局・科学者が実際にやっていることなのです。

j