AlmanacSoft SEICRD is a command line program for infectious disease modelling. It uses SEICRD model for epidemic calculation and uses deaths time series data for model fitting.



  • Levenberg-Marquardt least-squares minimization and curve fitting by lmfit

  • Numerically solving Ordinary Differential Equations by Boost.Numeric.Odeint.

  • C++ binary program with text file configuration.

  • CSV file outputs.

  • Optional graph plotting outputs if python and matplotlib installed.

  • Freeware.

Platform requirements

    • Microsoft Windows x64.

    • Optional Python 3.7 with matplotlib 1.19.3 extension for plotting and python interface.


0. Study concepts from Infectious Disease Modelling: Understanding the models that are used to model Coronavirus by Henri Froese and การสร้างแบบ จำลองโรคติดเชื้อ: กรณีตัวอย่าง COVID-19 ในประเทศไทย (in Thai ) by Poom Malakul Na Ayudhya.

  1. Specifiy starting date of epidemic. This date will have t = 0.

  2. Collect deaths time series data starting from date above and writes it in the format of "data.csv" file.

  3. Edit "seicrd.ini" and "params.ini" files. The "seicrd.ini" file is for fixed and controlled parameters. The "params.ini" file is for dynamic parameters that will be adjusted automatically for best fitting by the program.

  4. Run seicrd_npy program (if no python and matplotlib installed) with all ini and csv files above being in the same folder.

  5. There will be three output files: "out_data.csv", "out_fitting.csv" and "out_params.txt". The first file is time series data of all population group calculated by the model. The second file is time series data of death group comparing between actual data and fitting data. The third file lists all parameters and values used in this model calculation.

  6. For graph plotting, run seicrd_wpy program. This can only be used with python3.7 and matplotlib already installed and with numpy version 1.19.3.

  7. For Python developer, same installation requirement as #6 is needed. You can call this program as python extension by using the following code:

import libseicrddata = libseicrd.seicrd_fit()


For Win x64 platform:


  • Version 1.0 released (December 2020)