Modelo epidemiológico estratificado baseado em compartimentos / Stratified compartment disease model
Código fonte, configurado para copilação no Visual Studio 2015 e executável compilado no mesmo compilador, para plataforma Windows em máquinas 64bits.
Baixe o repositório COVID-19-ITA-WIN na sua máquina. Para isso, basta clicar no ícone verde no canto superior da página do GitHub, "Clone or download", e selecionar "download Zip".
A versão atual é fornecida com o binário compilado para computadores de arquitetura 64bits. Em tese, os binários devem funcionar em qualquer sistema Windows operando em uma máquina 64bits. A seguir são apresentadas as intruções para a compilação do programa caso os executáveis fornecidos não funcionem.
Dentro de um prompt de comando do Windows, de preferência o prompt de comando do visual studio 2015, acesse a pasta local onde o arquivo COVID-19-ITA-WIN foi descompactado:
CD C:\<DIRETÓRIO LOCAL>\COVID-19-ITA-WIN
Em seguida, entre no diretório build:
CD C:\<DIRETÓRIO LOCAL>\COVID-19-ITA-WIN\build
Para gerar o projeto a ser compilado pelo Visual Studio 2015, rode o programa premake5 no diretório. Para isso o programa premake5 precisa estar instalado no computador (link: https://premake.github.io/download.html) e o prompt de comando do Windows deve ser capaz indentificá-lo, estando o caminho para o executável especificado no PATH do sistema. Para gerar os arquivos de projeto do Visual Studio 2015, utilize o comando
premake5 vs2015
Em seguida, no mesmo diretório, compile o programa utilizando a ferramenta msbuild do Visual Studio 2015, digitando o comando
msbuild COVID-19-ITA.sln /t:rebuild /p:configure=release
Se o procedimento tiver sido bem sucedido, os executáveis csv_to_input.exe e
spatial_covid0d_estrat.exe devem ter sido criados na pasta
C:\<DIRETÓRIO LOCAL>\COVID-19-ITA-WIN\bin.
Por último, execute alguns testes para verificar se os executáveis estão funcionando. Vá para a pasta raiz:
CD ..
Gere o arquivo de input dos cenários, digitando o comando:
bin\csv_to_input.exe cenarioBR
Rode o programa principal, executando o comando
bin\spatial_covid0d_estrat.exe input\generated-input.txt output\result_data.csv 3
Para verificar se os resultados foram gerados corretamente, acesse a planilha de resultados result_data.csv na pasta C:\<DIRETÓRIO LOCAL>\COVID-19-ITA-WIN\output
Alternativamente, rode o script de pós-processamento plot_output_SEAHIR.py no python 2.7
CD scripts
python plot_output_SEAHIR_BR.py
Note que uma versão do Python 2.7 precisa estar instalado na máquina, https://www.python.org/download/releases/2.7/, com suporte para os pacotes numpy e matplotlib, geralmente distribuídas na versão padrão.
Os cenários se encontram na pasta \input\cenarios. Na mesma, encontram-se as pastas cenarioBR, cenarioSP e cenarioSaoPaulo, correspondendo respectivamente aos cenarios do Brasil, do Estado de São Paulo e na capital São Paulo.
Cada pasta de cenário deve conter no mínimo os arquivos:
demographic_data.csv
epidemiology_data.csv
contact_matrix_all.csv
contact_matrix_home.csv
contact_matrix_school.csv
contact_matrix_work.csv
contact_matrix_other.csv
notification.csv
O arquivo demographic_data.csv contém especificações demográficas do cenário. O arquivo epidemiology_data.csv contém os parâmetros epidemiológicos. Os arquivos contact_matrix_all.csv, contact_matrix_home.csv, contact_matrix_school.csv, contact_matrix_work.csv e contact_matrix_other.csv contém as matrizes de contato do país analisado. O arquivo notification.csv contém os dados de notificação de morte e casos acumulados, necessários para os scripts de otimização. Esses arquivos podem e devem ser modificados para o estudo do impacto de variações de parâmetros sobre os resultados ou para introduzir parâmetros demográficos ou epidemiológicos.
O script cenario_generator.py deve ser utilizado para gerar e especificar o cenário. Esse script toma alguns parâmetros de entrada para poder gerar o cenário, que são todos necessários para sua execução, por exemplo,
CD scripts
python cenario_generator -i cenarioBR -d 0 27 75 200 -m 3 -I0 50 -R0 8.0 -Rp 8.0
-epi 0.8 -itv 0 10 9 1
onde as opções tem os seguintes significado
cenario_generator -i [nome do folder do cenario] -d [DIA0] [DIA1] [DIA2] [DIA3] -m [MODELO#]
-I0 [INFECTADOS INICIAIS] -R0 [NÚMERO DE REPRODUÇÃO] -Rp [NÚMERO DE REPRODUÇÃO PÓS SURTO]
-p [FATOR DE REDUÇÃO GLOBAL] -itv [itv_ID] [itv_ID] [itv_ID] [itv_ID]
Note que os dias [DIA0], [DIA1], ... etc correspondem ao início de um determinado bloco de intervenção. Os tipos de intervenções são passados pela opção -itv, de acordo com tabela abaixo
Intervenção | Número |
---|---|
Nenhuma - Surto | 0 |
Nenhuma - pós Surt | 1 |
Fech. Escola | 2 |
Fech. Escola / Dist Soc. | 3 |
Fech. Escola / Dist Soc./Trabal. | 4 |
Lock down sem idosos | 5 |
Isol Idos. | 6 |
Fech. Esc./ Isol. Idos. | 7 |
Fech. Esc./ Isol. Idos./Dist Soc. | 8 |
Fech. Esc./ Isol. Idos./Dist Soc./Trabal. | 9 |
Lock down | 10 |
Lock down severo | 11 |
A opção -p fornece um fator de 0 a 1 que representa uma redução global na probabiidade de transmissão, seja por medidas de uso de máscaras e de higiene, seja pela redução global de contatos, em todo caso reduzindo o valor do R0 do surto. Para uma redução global de 20%, por exemplo, deve-se utilizar um fator de 0,8. Para nenhum efeito de redução global, usar fator de 1,0.
O script cenario_generator admite algumas opções não obrigatórias. São elas:
-s
para calcular e exibir no terminal os Rt's equivalentes em cada fase de intervenção; e
-f [fator corretivo do índice de fatalidade]
O fator corretivo do índice de fatalidade é um fator multiplicativo escalar positivo aplicado sobre os índices de letalidade da COVID-19. Essa opção é utilizada na estimativa da incerteza do índice de subnotificação.
O script cenario_generator produz uma mensagem indicando se a operação foi bem sucedida. Em caso de sucesso, os arquivos parameters.csv, beta_gama.csv e initial.csv serão criadas na pasta do cenário. Esses arquivos são necessários para a execução do código csv_to_input.exe.
Para gerar o arquivo de input, é necessário voltar para o diretório principal
CD ..
e executar
bin\csv_to_input [nome do cenário]
e.g.
bin\csv_to_input cenarioBR
No diretório principal, executar o seguinte comando:
bin\spatial_covid0d_estrat input\input_data.txt output\result_data.csv MODEL_NUMBER
Sendos os modelos:
Modelo | Número |
---|---|
SIR | 0 |
SEIR | 1 |
SEAIR | 2 |
SEAHIR-Qia | 3 |
Os resultados do modelo SEAHIR podem ser plotados utilizando o script plot_output_SEAHIR.py, para os resultados do cenário cenarioBR. Para isso, entre novamente na pasta scripts
CD scripts
e execute, por exemplo,
python plot_output_SEAHIR -d 0 27 75 200 -s 50 -o result_data_BR.csv -sc cenarioBR -i 16 3 2020
onde as opções tem os seguintes significado
plot_output_SEAHIR_BR -d [DIA0] [DIA1] [DIA2] [DIA3] -s [Fator de correção]
-o [arquivo .csv com os resultados da simulação] -sc [nome da pasta de input do cenário]
-i [dia do primeiro caso] [mês do primeiro caso] [ano do primeiro caso]
A opção -s fornece o fator de correção a multiplicar as notificações oficiais, para corrigir o efeito das subnotificações. Esse script precisa ser executado dentro da pasta script
A seguir apresentamos as instruções para a execução completa da simulação, desde a construção do cenário:
C:\[Diretório Atual]> CD C:\[Diretório local]\COVID-19-ITA-WIN
C:\[Diretório local]\COVID-19-ITA-WIN> CD scripts
C:\[Diretório local]\COVID-19-ITA-WIN\scripts> python cenario_generator -i
cenarioBR -d 0 27 75 200 -m 3 -I0 50 -R0 8.0 -Rp 8.0 -epi 0.8 -itv 0 10 9 1
C:\[Diretório local]\COVID-19-ITA-WIN\scripts> CD ..
C:\[Diretório local]\COVID-19-ITA-WIN> bin\csv_to_input.exe cenarioBR
C:\[Diretório local]\COVID-19-ITA-WIN> bin\spatial_covid0d_estrat.exe
input\generated-input.txt output\result_data.csv 3
C:\[Diretório local]\COVID-19-ITA-WIN> CD scripts
C:\[Diretório local]\COVID-19-ITA-WIN\scripts> python plot_output_SEAHIR_BR -d 0
27 75 200 -s 50
No diretório de scripts, encontra o script de otimização nomeado sim.py. Esses scripts obtém o mínimo da função χ2 para os parâmetros R0, gs e ge
χ2 = ∑i [Ac(ti)/gs - NT(ti) ]2/NT(ti) + ∑i [C(ti) - NO(ti)]2/NO(ti)
usando um algoritmo genético. Os parâmetro gs é o índice de subnotificação e ge é um fator de 0 a 1 que reduz o R0 na fase pós-surto (redução da probabilidade de transmissão). Os dados experimentais são, Ac(ti), o número de casos acumulados, e No(ti), o número de notificações de óbito. O script também estima a incerteza dos parâmetros, calculada para um intervalo de confiança de 95%.
Esses scripts devem ser executados dentro da pasta "scripts", para automaticamente encontrar o caminho para executar os outros programas e scripts. É importante preservar a estrutura de pastas do projeto para que isso seja possível. O script sim.py também tem opções, e o script run_all contém uma compilação das instruções usadas para obter os resultados no trabalho submetida à revista PNAS.