############################################################################## # COVID-19 model printout with minor edits # Copyright (C) 2020 by Jacob Barhak, all rights reserved # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. # IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR # OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR # OTHER DEALINGS IN THE SOFTWARE. # # A few clarifications: # # The Reference Model for disease progression uses this file and this file is # part of it. The Reference Model includes patented technology. # # Please contact the author for usage terms # -- # Jacob Barhak Ph.D. # jacob.barhak@gmail.com # http://sites.google.com/site/jacobbarhak/ ############################################################################## Project Name: MODEL - COVID 19 Notes: Copyright (C) 2020 Jacob Barhak. The model is aimed at running in HPC environment. Most data the model uses is from the following sources: US Census, CDC , The Covid Tracking Project at the Atlantic, the Los Alamos National Lab. This model evolved from an initial version of the base model was made for Hack COVID 19 - Pandemic Response Hackathon Improved Disease Modeling Tools for Populations https://devpost.com/software/improved-disease-modeling-tools-for-populations . Created On: 2020-06-26 03:57:57.247000 Last Modified: 2020-06-26 03:57:57.247000 This is a Simulation Project with the Following Parameters: Number of Time Steps: 100 Number of Repetitions: 1000 The Primary Model Used is: Model Name:COVID19 Model Notes: COVID-19 model under constant improvement Created On: 2020-06-26 03:57:54.786000 Last Modified: 2020-06-26 03:57:54.786000 The Model Contains the States: Name: COVID19 Process Notes: A Process Containing the State: No COVID19 Containing the State: COVID19 Infected Containing the State: COVID19 Recovered Containing the State: COVID19 Death Associated with the State Indicator: COVID19_Process Associated with the State Indicator: COVID19_Process_Entered ______________________________________________________________________ Name: No COVID19 Notes: Healthy - non infectious Associated with the State Indicator: No_COVID19 Associated with the State Indicator: No_COVID19_Entered ______________________________________________________________________ Name: COVID19 Infected Notes: Either in incubation or sick Associated with the State Indicator: COVID19_Infected Associated with the State Indicator: COVID19_Infected_Entered ______________________________________________________________________ Name: COVID19 Recovered Notes: Had COVID19, and recovered Associated with the State Indicator: COVID19_Recovered Associated with the State Indicator: COVID19_Recovered_Entered ______________________________________________________________________ Name: COVID19 Death Notes: Terminal State Associated with the State Indicator: COVID19_Death Associated with the State Indicator: COVID19_Death_Entered ______________________________________________________________________ The Model Contains the Transitions: Model: COVID19 Model From State: No COVID19 To State: COVID19 Infected Probability: Min(1, (1 - (1- (Coef_Transmission*1e-2) * InfectedInteractions / TotalInteractions)** Interactions ) * (PopulationDensity / 87.4)**(0.1*Coef_PopDensity) + (Coef_OutInfect * 1e-6) ) Notes: This probability is calculated by first calculating the probability of one meeting to be with an infected person InfectedInteractions / TotalInteractions - it is then multiplied by the chance of the meeting to transmit the disease. Then calculate the change not to be affected and raise it by the power of the number of interactions. It calculates the probability not to be infected by multiple interactions and the complementary probability is then used. It is multiplied by the population density relative to the US extracted from census data and raised by a power of a coefficient related to population density . Also a constant infection rate is added. Expression :Min(1, (1 - (1- (Coef_Transmission*1e-2) * InfectedInteractions / TotalInteractions)** Interactions ) * (PopulationDensity / 87.4)**(0.1*Coef_PopDensity) + (Coef_OutInfect * 1e-6) ) Depends on: InfectedInteractions Depends on: Interactions Depends on: TotalInteractions Depends on: Coef_OutInfect Depends on: Coef_Transmission Depends on: PopulationDensity Depends on: Coef_PopDensity ______________________________________________________________________ ______________________________________________________________________ Model: COVID19 Model From State: COVID19 Infected To State: COVID19 Recovered Probability: Gr(Time-InfectionTime,COVID19Duration) Notes: For simplicity assume that the length of disease is COVID19Duration days . For now this assumption is used as a strict rule and move people that did not die to COVID19 Recovered state after duration. Expression :Gr(Time-InfectionTime,COVID19Duration) Depends on: InfectionTime Depends on: COVID19Duration Depends on: Time Parameter Name: Time Parameter Type: System Reserved Holds The Formula: Time Specified Validation Rule Parameters: Notes: Place holder to represent the Time system reserved variable Expression :Time Depends on: Time Parameter Name: Time Parameter Type: System Reserved Holds The Formula: Time Specified Validation Rule Parameters: Notes: Place holder to represent the Time system reserved variable Expression :Time Depends on: Time Parameter Name: Time Parameter Type: System Reserved Holds The Formula: Time Specified Validation Rule Parameters: Notes: Place holder to represent the Time system reserved variable Expression :Time ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ The sub-expression: Gr(Time-InfectionTime,COVID19Duration) means: Return 1 if Time-InfectionTime>COVID19Duration, return 0 otherwise. ______________________________________________________________________ ______________________________________________________________________ Model: COVID19 Model From State: COVID19 Infected To State: COVID19 Death Probability: Le(Time-InfectionTime,COVID19Duration)*MortalityRate Notes: Pre-calculated daily mortality rate is used. Also make sure after COVID19Duration days probability is 0 by multiplying the probability with Le(Time-InfectionTime,COVID19Duration) . Expression :Le(Time-InfectionTime,COVID19Duration)*MortalityRate Depends on: MortalityRate Depends on: InfectionTime Depends on: COVID19Duration Depends on: Time Parameter Name: Time Parameter Type: System Reserved Holds The Formula: Time Specified Validation Rule Parameters: Notes: Place holder to represent the Time system reserved variable Expression :Time Depends on: Time Parameter Name: Time Parameter Type: System Reserved Holds The Formula: Time Specified Validation Rule Parameters: Notes: Place holder to represent the Time system reserved variable Expression :Time Depends on: Time Parameter Name: Time Parameter Type: System Reserved Holds The Formula: Time Specified Validation Rule Parameters: Notes: Place holder to represent the Time system reserved variable Expression :Time ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ The sub-expression: Le(Time-InfectionTime,COVID19Duration) means: Return 1 if Time-InfectionTime<=COVID19Duration, return 0 otherwise. ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ The Population Set is: Name: DEFAULT USA Notes: Study Name: DEFAULT. Additional notes: This is a simple base population to be built upon. Reference: Multiple references - Mostly data.census.gov. Group Size: 326289971. Group Description: DEFAULT USA. Internal Code: 100000. Inherit1: . Inherit2: . : . Created On: 2020-06-26 03:57:54.793000 Last Modified: 2020-06-26 03:57:54.793000 The population is based on the following distributions: Parameter: Age Distributed as: Uniform(0,100) Parameter: Interactions Distributed as: Ceil((BaseInteractions-FamilySize)*Uniform(0.500000,1.000000) + FamilySize) Parameter: BaseInteractions Distributed as: Floor(Abs(Gaussian(Table([[Age, [0, 20, 45, 55, 65, 75, 85, 120]]],[14.875905, 21.684928, 21.56758, 18.333930000000002, 11.378309999999999, 9.36147, 9.883916666666666]),8.5))-FamilySize)+ FamilySize Parameter: FamilySize Distributed as: Max(1,Floor(Gaussian(3.24,2))) Parameter: DaysSinceStart Distributed as: 0 Parameter: PopulationDensity Distributed as: 87.4 Parameter: No_COVID19 Distributed as: 1 Parameter: COVID19_Infected Distributed as: 0 Parameter: COVID19_Death Distributed as: 0 ______________________________________________________________________ Initialization Rules: Affected Parameter: Coef_Duration Simulation Phase: Init Occurrence Probability: Applied Formula: 0.5 Rule Notes: Assumed length of the disease coefficient - this includes incubation period Expression :Coef_Duration Depends on: Coef_Duration ______________________________________________________________________ Expression :0.5 ______________________________________________________________________ ______________________________________________________________________ Affected Parameter: Coef_OutInfect Simulation Phase: Init Occurrence Probability: Applied Formula: 0 Rule Notes: People get infected outside the group or not from interaction Expression :Coef_OutInfect Depends on: Coef_OutInfect ______________________________________________________________________ Expression :0 ______________________________________________________________________ ______________________________________________________________________ Affected Parameter: Coef_Transmission Simulation Phase: Init Occurrence Probability: Applied Formula: 0.8 Rule Notes: Coefficient related to transmission probability. Expression :Coef_Transmission Depends on: Coef_Transmission ______________________________________________________________________ Expression :0.8 ______________________________________________________________________ ______________________________________________________________________ Affected Parameter: Coef_PopDensity Simulation Phase: Init Occurrence Probability: Applied Formula: 1.0 Rule Notes: The effect of population density on infection probability Expression :Coef_PopDensity Depends on: Coef_PopDensity ______________________________________________________________________ Expression :1.0 ______________________________________________________________________ ______________________________________________________________________ Affected Parameter: Coef_FreeInfected Simulation Phase: Init Occurrence Probability: Applied Formula: 0.5 Rule Notes: Coefficient regulating on reduction of interaction rate for infected person Expression :Coef_FreeInfected Depends on: Coef_FreeInfected ______________________________________________________________________ Expression :0.5 ______________________________________________________________________ ______________________________________________________________________ Affected Parameter: Coef_FreeGeneral Simulation Phase: Init Occurrence Probability: Applied Formula: 0.7 Rule Notes: Coefficient regulating the interaction rate for the non infected person. Assume that the public slowly becomes aware of keeping social distance and use other protection measures that changes behavior occasionally Expression :Coef_FreeGeneral Depends on: Coef_FreeGeneral ______________________________________________________________________ Expression :0.7 ______________________________________________________________________ ______________________________________________________________________ Affected Parameter: Coef_Mortality Simulation Phase: Init Occurrence Probability: Applied Formula: 0.5 Rule Notes: Death rate amplification Expression :Coef_Mortality Depends on: Coef_Mortality ______________________________________________________________________ Expression :0.5 ______________________________________________________________________ ______________________________________________________________________ Affected Parameter: COVID19Duration Simulation Phase: Init Occurrence Probability: Applied Formula: 5 + Coef_Duration*30 + 3*CappedGaussian3 Rule Notes: Generate the length of the disease for this specific individual, Coef_Duration if between 0 and 1 Expression :COVID19Duration Depends on: COVID19Duration ______________________________________________________________________ Expression :5 + Coef_Duration*30 + 3*CappedGaussian3 Depends on: CappedGaussian3 Parameter Name: CappedGaussian3 Parameter Type: Expression Holds The Formula: Max(-3,Min(3,Gaussian(0,1))) Specified Validation Rule Parameters: Notes: Random number from a normal distribution, capped between [-3,3]. Expression :Max(-3,Min(3,Gaussian(0,1))) ______________________________________________________________________ ______________________________________________________________________ Depends on: Coef_Duration ______________________________________________________________________ ______________________________________________________________________ Affected Parameter: MortalityRate Simulation Phase: Init Occurrence Probability: Applied Formula: (1-(1- ((Coef_Mortality)*Table([[Age, [0,20,45,55,65,75,85,120]]],[0,0.001,0.005,0.014,0.027,0.043,0.104])+ (1-Coef_Mortality)*Table([[Age, [0,20,45,55,65,75,85,120]]],[0,0.002,0.008,0.026,0.049,0.105,0.273])))**(1/COVID19Duration)) Rule Notes: The source of data is a CDC publication: http://dx.doi.org/10.15585/mmwr.mm6912e2 . Use interpolation between low an high numbers using Coef_Mortality. It is also transformed from probability of death anytime in the illness to daily probability assuming COVID19Duration days length using 1-(1-p)**COVID19Duration Expression :MortalityRate Depends on: MortalityRate ______________________________________________________________________ Expression :(1-(1- ((Coef_Mortality)*Table([[Age, [0,20,45,55,65,75,85,120]]],[0,0.001,0.005,0.014,0.027,0.043,0.104])+ (1-Coef_Mortality)*Table([[Age, [0,20,45,55,65,75,85,120]]],[0,0.002,0.008,0.026,0.049,0.105,0.273])))**(1/COVID19Duration)) Depends on: Age Depends on: COVID19Duration Depends on: Coef_Mortality The sub-expression: Table([[Age,[0,20,45,55,65,75,85,120]]],[0,0.001,0.005,0.014,0.027,0.043,0.104]) means: 0