{"id":23702880,"url":"https://github.com/gitfrid/czechfoi-sim","last_synced_at":"2025-06-26T07:31:59.166Z","repository":{"id":270007341,"uuid":"909111758","full_name":"gitfrid/CzechFOI-SIM","owner":"gitfrid","description":"CzechFOI-SIM","archived":false,"fork":false,"pushed_at":"2025-02-22T01:09:00.000Z","size":83614,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-22T22:41:02.133Z","etag":null,"topics":["dowhy","python"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gitfrid.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-12-27T18:58:54.000Z","updated_at":"2025-04-20T15:22:23.000Z","dependencies_parsed_at":"2025-05-22T22:47:07.375Z","dependency_job_id":null,"html_url":"https://github.com/gitfrid/CzechFOI-SIM","commit_stats":null,"previous_names":["gitfrid/czechfoi-sim"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gitfrid/CzechFOI-SIM","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitfrid%2FCzechFOI-SIM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitfrid%2FCzechFOI-SIM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitfrid%2FCzechFOI-SIM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitfrid%2FCzechFOI-SIM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gitfrid","download_url":"https://codeload.github.com/gitfrid/CzechFOI-SIM/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitfrid%2FCzechFOI-SIM/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262022248,"owners_count":23246283,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dowhy","python"],"created_at":"2024-12-30T12:35:51.344Z","updated_at":"2025-06-26T07:31:54.155Z","avatar_url":"https://github.com/gitfrid.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"### CzechFOI-SIM \n**Czech FOI Simulation Analysis** \n\u003cbr\u003e\n\u003cbr\u003e**Investigates whether there is a reliable statistical way to determine the dAEFI rate when the baseline is unknown (real world).**\n**As far as I know, this (vital) problem is still waiting for the head that can solve it?**\n\nSimulates dAEFIs to analyse the impact on the curve and back-calculate the dAEFIs rate (comparing known and unknown baseline).\nUses real Czech FOI (Freedom of Information) data, or generates d, dvx, duvx data in modulated sine wave form.\n\nSimulated data can be used to check for calculation errors in your code, it is possible to create a CSV file with the data of all Plot curves (from day 1-1534).\n\nThe [Python Scripts](https://github.com/gitfrid/CzechFOI-SIM/tree/main/Py%20Scripts) process and visualize CSV data from the [TERRA folder](https://github.com/gitfrid/CzechFOI-SIM/tree/main/TERRA), generating interactive HTML plots. \u003cbr\u003eEach plot compares two age groups. To interact with the plots, click on a legend entry to show/hide curves.\n\n**Refactored Scripts AF) and AG)** compare AG groups (e.g., 1-year intervals) by calculating differences between closely positioned age groups. The differences are summed, and simulated dAEFIs are added to examine the curves with and without dAEFIs. Multiple AG groups are plotted into a single HTML file for comparison\n\nDownload the processed plots for analysis from the [Plot Results Folder](https://github.com/gitfrid/CzechFOI-SIM/tree/main/Plot%20Results/dAEFI). Or simply adapt and run the [Python script](https://github.com/gitfrid/CzechFOI-SIM/blob/main/Py%20Scripts/AB%29%20backcalc%20dAEFI%20simulation.py) to meet your own analysis requirements!\n\nDates are counted as the number of days since [January 1, 2020](https://github.com/gitfrid/CzechFOI-SIM/blob/main/Plot%20Results/Days%20to%20Date%20Translation%20Day%20Date%20Translation/Days%20to%20Date%20Translation%20Day%20Date%20Translation.png), for easier processing. \"AGE_2023\" represents age on January 1, 2023. \u003cbr\u003eThe data can optionally be normalized per 100,000 for comparison.\n\nAccess the original Czech FOI data from a [Freedom of Information request](https://github.com/PalackyUniversity/uzis-data-analysis/blob/main/data/Vesely_106_202403141131.tar.xz). To learn how the Pivot CSV files in the TERRA folder were created, see the [wiki](https://github.com/gitfrid/CzechFOI-DA/wiki)\n\n\u003cbr\u003e**Abbreviations:** The figures are per age group from the CSV files in the TERRA folder:\n| **Deaths**        | **Definition**                                             | **Population/Doses**  | **Definition**                                        |\n|-------------------|------------------------------------------------------------|-----------------------|-------------------------------------------------------|\n| NUM_D             | Number deaths                                              | NUM_POP               | Total people                                          |\n| NUM_DUVX          | Number unvaxed deaths                                      | NUM_UVX               | Number of unvaxed people                              |\n| NUM_DVX           | Number vaxed deaths                                        | NUM_VX                | Number of vaxed people                                |\n| NUM_DVD1-DVD7     | Number deaths doses 1 - 7                                  | NUM_VD1-VD7           | Number of vax doses 1 - 7                             |\n| NUM_DVDA          | Number deaths from all doses                               | NUM_VDA               | Total number of all vax doses (sum)                   |\n| dAEFI             | simulated death Adverse Events following imunis.             |                       |                                                       |\n\u003cbr\u003e\n\n_________________________________________\n**DoWhy Analysis**\n\n**Phyton script [AI) dowhy diff all-agegrp-in-same-plot](https://github.com/gitfrid/CzechFOI-SIM/blob/main/Py%20Scripts/AI%29%20dowhy%20diff%20all-agegrp-in-same-plot.py)**\nUses the DoWhy Library https://github.com/py-why/dowhy\n\u003cbr\u003e\n\u003cp\u003eDoWhy is a Python library for causal inference that allows modeling and testing of causal assumptions, based on a unified language for causal inference.\n\u003cstrong\u003eSee the book \u003cem\u003eModels, Reasoning, and Inference\u003c/em\u003e by Judea Pearl for deeper insights, that goes far beyond my horizon.\u003c/strong\u003e\u003c/p\u003e\n\u003cbr\u003e\nDoWhy Causal Impact estimates, showing the effect of changes in doses and deaths between age groups one year apart.\n\u003cbr\u003e\nBlue crosses represent the mean points of two age groups (one year apart), showing the average differences in treatment dose (Doses_curve) and observed outcome (RAW D_Curve).\n\u003cbr\u003e\nRed crosses represent the AEF D_Curve (RAW D_Curve with added dAEFIs), in this example, 1 dAEFI per 5000 doses given.\n\u003cbr\u003e\nCausal effects are not yet shown in the plot.\n\u003cimg src=https://github.com/gitfrid/CzechFOI-SIM/blob/main/Plot%20Results/AI)%20dowhy%20diff%20all-agegrp-in-same-plot/AI)%20dowhy%20diff%20all-agegrp-in-same-plot%20dAEFI%20causalimpact%20AG_15-85.png width=\"1280\" height=\"auto\"\u003e\n\n\u003cbr\u003e\nPhasediagram Doses/Deaths between age groups one year apart.\n\u003cimg src=https://github.com/gitfrid/CzechFOI-SIM/blob/main/Plot%20Results/AI)%20dowhy%20diff%20all-agegrp-in-same-plot/AI)%20dowhy%20diff%20all-agegrp-in-same-plot%20dAEFI%20causalimpact%20AG_15-85%20Phasediagram.png width=\"1280\" height=\"auto\"\u003e\n\u003cbr\u003e\n\u003cbr\u003e\n\n[Download html](https://github.com/gitfrid/CzechFOI-SIM/blob/main/Plot%20Results/AI%29%20dowhy%20diff%20all-agegrp-in-same-plot/AI%29%20dowhy%20diff%20all-agegrp-in-same-plot%20dAEFI%20causalimpact%20AG_15-85.html)\n\u003cbr\u003e\n_________________________________________\n**dAEFI simulation known Basline. \u003cbr\u003eOne dAEFI per 5000 Doses RAND_DAY_RANGE 1-250 AVG_WND 14: AG_50-54**\n\u003cbr\u003e\n\n\u003cimg src=https://github.com/gitfrid/CzechFOI-SIM/blob/main/Plot%20Results/dAEFI/AB)%20backcalc%20dAEFI%20simulation%20known%20basline%20DAY_RNG_250%20WD_14%20%20AG_50-54.png width=\"1280\" height=\"auto\"\u003e\n\u003cbr\u003e\n\n**If the baseline is known (which is not the case in practice), the estimated dAEFIs per dose are quite accurate, e.g., 4408 vs. 5000.** .\n\n_________________________________________\n**dAEFI simulation known Basline. \u003cbr\u003eOne dAEFI per 5000 Doses RAND_DAY_RANGE 1-250 AVG_WND 14: AG_75-79**\n\u003cbr\u003e\n\n\u003cimg src=https://github.com/gitfrid/CzechFOI-SIM/blob/main/Plot%20Results/dAEFI/AB)%20backcalc%20dAEFI%20simulation%20known%20basline%20DAY_RNG_250%20WD_14%20%20AG_75-79.png width=\"1280\" height=\"auto\"\u003e\n\u003cbr\u003e\n\n**The estimated dAEFIs per dose, e.g., 4179 vs. 5000.** .\n_________________________________________\n**dAEFI simulation unknown Basline real world. \u003cbr\u003eOne dAEFI per 5000 Doses RAND_DAY_RANGE 1-250 AVG_WND 14: AG_50-54**\n\u003cbr\u003e\n\n\u003cimg src=https://github.com/gitfrid/CzechFOI-SIM/blob/main/Plot%20Results/dAEFI/AB)%20backcalc%20dAEFI%20simulation%20unknown%20real%20world%20basline%20DAY_RNG_250%20WD_14%20%20AG_50-54.png width=\"1280\" height=\"auto\"\u003e\n\u003cbr\u003e\n\n**If the baseline is unknown (which is the case in practice), the estimated dAEFI per dose are not reliable , e.g., 136 vs. 5000.** .\n\n_________________________________________\n**dAEFI simulation unknown Basline (real world). \u003cbr\u003eOne dAEFI per 5000 Doses RAND_DAY_RANGE 1-250 AVG_WND 14: AG_75-79**\n\u003cbr\u003e\n\n\u003cimg src=https://github.com/gitfrid/CzechFOI-SIM/blob/main/Plot%20Results/dAEFI/AB)%20backcalc%20dAEFI%20simulation%20unknown%20real%20world%20basline%20DAY_RNG_250%20WD_14%20%20AG_75-79.png width=\"1280\" height=\"auto\"\u003e\n\u003cbr\u003e\n\n**The estimated dAEFIs per dose, e.g.,  39 vs. 5000.** .\n_________________________________________\n\n**D, DVX, DUVX plots.\u003cbr\u003eAdded dAEFIs (1/5000 Doses) vs non added AEFIs: AG_50-54 vs 75-79**\n\u003cbr\u003e\n\u003cbr\u003e\n**As you can see, the added dAEFIs have little impact on the top D-curves for age group 75-79, making it hard to detect a signal without knowing the baseline.\nI struggled to find a reliable method to back-calculate the dAEFIs ratio using only the moving average as the baseline (real world). This is particularly true for the older age groups.**\n\u003cbr\u003e\n\n\u003cimg src=https://github.com/gitfrid/CzechFOI-SIM/blob/main/Plot%20Results/dAEFI/AB)%20backcalc%20dAEFI%20simulation%20d-duvx-dvx%20unknown%20real%20world%20basline%20DAY_RNG_250%20WD_14%20%20AG_50-54.png width=\"1280\" height=\"auto\"\u003e\n\u003cbr\u003e\n\u003cimg src=https://github.com/gitfrid/CzechFOI-SIM/blob/main/Plot%20Results/dAEFI/AB)%20backcalc%20dAEFI%20simulation%20d-duvx-dvx%20unknown%20real%20world%20basline%20DAY_RNG_250%20WD_14%20%20AG_75-79.png width=\"1280\" height=\"auto\"\u003e\n\u003cbr\u003e\n_________________________________________\n\n**dAEFI simulation known Basline. \u003cbr\u003eOne dAEFI per 5000 Doses RAND_DAY_RANGE 1-250 AVG_WND 14: AG_54-59**\n\u003cbr\u003e\n\n\u003cimg src=https://github.com/gitfrid/CzechFOI-SIM/blob/main/Plot%20Results/dAEFI/AB)%20backcalc%20dAEFI%20simulation%20d-duvx-dvx%20sinus%20curve%20unknown%20real%20world%20basline%20DAY_RNG_250%20WD_14%20%20AG_50-54.png width=\"1280\" height=\"auto\"\u003e\n\u003cbr\u003e\n\n**Simulation of sinus curves for D, DVX, and DUVX, adding one dAEFI per 5000 doses in a random 1-250 day window after dose** .\nThe estimated dAEFIs per dose, e.g., 5138 vs. 5000 - if basline is known.\n_________________________________________\n\n**dAEFI simulation unknown Basline. \u003cbr\u003eOne dAEFI per 5000 Doses RAND_DAY_RANGE 1-250 AVG_WND 14: AG_54-59**\n\u003cbr\u003e\n\nThe legend label \"pr\" calculates the mortality curves for D, DUVX, and DVX, assuming that the vx and uvx populations have the same hypothetical mortality probability (distribution), see upper part of the first plot.\n\u003cbr\u003e\n\nThe lower part of the first plot shows the result of the normalized mortality curves (deaths/100,000 people - legend label \"n\"). Since the mortality probability for D, VX, and UVX is assumed to be identical, the normalized curves overlap.\n\u003cbr\u003e\nAdditionally, 1/5000 dAEFIs are added (legend label \"ae\")\n\u003cbr\u003e\n\n\u003cimg src=https://github.com/gitfrid/CzechFOI-SIM/blob/main/Plot%20Results/dAEFI/AB)%20backcalc%20dAEFI%20simulation%20sin%20unknown%20real%20world%20basline%20DAY_RNG_250%20WD_14%20leged%20an_pr_n%20%20AG_50-54.png width=\"1280\" height=\"auto\"\u003e\n\u003cbr\u003e\n\nThe estimated dAEFIs per dose, e.g., 388 vs. 5000 - if basline is unknown.\n_________________________________________\n\n**Phyton script [AC) calc dAEFI diff all-agegrp-in-same-plot](https://github.com/gitfrid/CzechFOI-SIM/blob/main/Py%20Scripts/AC%29%20calc%20dAEFI%20diff%20all-agegrp-in-same-plot.py)**\n\nThe script compares age groups in 1-year intervals. \n\nThe idea is that the two populations, which are one year apart, can be considered comparable. \n\nIt calculates the difference in normalized death rates (per 100,000 people) and takes a rolling average of this difference as the baseline. It also calculates the difference in normalized doses administered (per 100,000 doses). However, a reliable and accurate method for calculating estimated dAEFIs has not yet been found.\n\nCan also calculate rolling and phaseshift correlation \n\nFor Database and CSV File creation in the Terra folder [All AG SQL Time.sql]() was used.\n_________________________________________\n\n**DIF-VDA n all AgeGroups**\n\nShows the estimated mean dAEFI values for AG 1 to 113.\n\u003cbr\u003e\n\u003cimg src=https://github.com/gitfrid/CzechFOI-SIM/blob/main/Plot%20Results/AC)%20calc%20dAEFI%20diff%20all-agegrp-in-same-plot/Maean%20estimate%20dAEFI%20all-AgeGroups.png width=\"1280\" height=\"auto\"\u003e\n\u003cbr\u003e\n\nShows the normalized DIF-VDA (All Doses difference for all AG) \n\u003cbr\u003e\n\u003cimg src=https://github.com/gitfrid/CzechFOI-SIM/blob/main/Plot%20Results/AC)%20calc%20dAEFI%20diff%20all-agegrp-in-same-plot/DIF-VDA%20n%20all%20AgeGroups.png width=\"1280\" height=\"auto\"\u003e\n\u003cbr\u003e\n_________________________________________\n\n**DIF-VDA Basline Mean estimate dAEFI n - Some examples of different AGs**\n\u003cbr\u003e**For AG 13-14**\n\u003cimg src=https://github.com/gitfrid/CzechFOI-SIM/blob/main/Plot%20Results/AC)%20calc%20dAEFI%20diff%20all-agegrp-in-same-plot/DIF-VDA%20Basline%20Mean%20estimate%20dAEFI%20n%20AG13-14.png width=\"1280\" height=\"auto\"\u003e\n\u003cbr\u003e**For AG 14-15**\n\u003cimg src=https://github.com/gitfrid/CzechFOI-SIM/blob/main/Plot%20Results/AC)%20calc%20dAEFI%20diff%20all-agegrp-in-same-plot/DIF-VDA%20Basline%20Mean%20estimate%20dAEFI%20n%20AG14-15.png width=\"1280\" height=\"auto\"\u003e\n\u003cbr\u003e**For AG 17-18**\n\u003cimg src=https://github.com/gitfrid/CzechFOI-SIM/blob/main/Plot%20Results/AC)%20calc%20dAEFI%20diff%20all-agegrp-in-same-plot/DIF-VDA%20Basline%20Mean%20estimate%20dAEFI%20n%20AG17-18.png width=\"1280\" height=\"auto\"\u003e\n\u003cbr\u003e\n\u003cbr\u003e**For AG 42-43**\n\u003cimg src=https://github.com/gitfrid/CzechFOI-SIM/blob/main/Plot%20Results/AC)%20calc%20dAEFI%20diff%20all-agegrp-in-same-plot/DIF-VDA%20Basline%20Mean%20estimate%20dAEFI%20n%20AG42-43.png width=\"1280\" height=\"auto\"\u003e\n\u003cbr\u003e\n\u003cbr\u003e**For AG 71-72**\n\u003cimg src=https://github.com/gitfrid/CzechFOI-SIM/blob/main/Plot%20Results/AC)%20calc%20dAEFI%20diff%20all-agegrp-in-same-plot/DIF-VDA%20Basline%20Mean%20estimate%20dAEFI%20n%20AG71-72.png width=\"1280\" height=\"auto\"\u003e\n\u003cbr\u003e\n\u003cbr\u003e**For AG 81-82**\n\u003cimg src=https://github.com/gitfrid/CzechFOI-SIM/blob/main/Plot%20Results/AC)%20calc%20dAEFI%20diff%20all-agegrp-in-same-plot/DIF-VDA%20Basline%20Mean%20estimate%20dAEFI%20n%20AG81-82.png width=\"1280\" height=\"auto\"\u003e\n\u003cbr\u003e\n\u003cbr\u003e**For AG 107-108**\n\u003cimg src=https://github.com/gitfrid/CzechFOI-SIM/blob/main/Plot%20Results/AC)%20calc%20dAEFI%20diff%20all-agegrp-in-same-plot/DIF-VDA%20Basline%20Mean%20estimate%20dAEFI%20n%20AG107-108.png width=\"1280\" height=\"auto\"\u003e\n\u003cbr\u003e\n_________________________________________\n\n**Refactored Scripts AF)**\n\n\nThe [Python script](https://github.com/gitfrid/CzechFOI-SIM/blob/main/Py%20Scripts/AF%29%20calc%20dAEFI%20diff%20norm%20all-agegrp-in-same-plot.py) calculates the differences in doses and deaths for similar age bands (one year appart), as specified in the `age_band_compare` list. It then summarizes the differences and adds dAEFIs (one per 5,000 doses). Additionally, it compares the rolling and shift correlations of the raw D-curve with the D-curve that includes the added dAEFI events.\n\nWith one dAEFI per 5,000 doses, there is no significant change in the D-curves, including the rolling Pearson correlation, making it irrelevant in this context. \nAlthough the amplitude of the phase shift correlation has changed significantly, this is not helpful since the baseline is unknown\n\n\u003cbr\u003e\n\u003cimg src=https://github.com/gitfrid/CzechFOI-SIM/blob/main/Plot%20Results/AF)%20calc%20dAEFI%20diff%20all-agegrp-in-same-plot/AF)%20calc%20dAEFI%20diff%20norm%20all-agegrp-in-same-plot%20dAEFI%20AG_15-85.png width=\"1280\" height=\"auto\"\u003e\n\u003cbr\u003e\n\nZoomed in to highlight the minimal difference at 1/5,000 doses.\n\u003cbr\u003e\n\u003cimg src=https://github.com/gitfrid/CzechFOI-SIM/blob/main/Plot%20Results/AF)%20calc%20dAEFI%20diff%20all-agegrp-in-same-plot/AF)%20calc%20dAEFI%20diff%20norm%20all-agegrp-in-same-plot%20dAEFI%20AG_15-85%20zoom.png width=\"1280\" height=\"auto\"\u003e\n\u003cbr\u003e\n\u003cbr\u003e\n[Download html](https://github.com/gitfrid/CzechFOI-SIM/blob/main/Plot%20Results/AF%29%20calc%20dAEFI%20diff%20all-agegrp-in-same-plot/AF%29%20calc%20dAEFI%20diff%20norm%20all-agegrp-in-same-plot%20dAEFI%20AG_15-85.html)\n\u003cbr\u003e\n_________________________________________\n\n**Refactored Scripts AG)**\n\nThis [Python script](https://github.com/gitfrid/CzechFOI-SIM/blob/main/Plot%20Results/AG%29%20calc%20dAEFI%20diff%20all-agegrp-in-same-plot/AG%29%20calc%20dAEFI%20diff%20all-agegrp-in-same-plot.py) employs a different approach but produces results similar to those of the AF script.\nIt calculates the rolling Pearson correlation based on changes in cumulative doses, revealing a strong correlation. \nHowever, this correlation is not relevant in the context of rare dAEFIs. Additionally, although the amplitude of the phase shift correlation changes significantly, this information is not useful without a known baseline\n\n\u003cbr\u003e\n\u003cimg src=https://github.com/gitfrid/CzechFOI-SIM/blob/main/Plot%20Results/AG%29%20calc%20dAEFI%20diff%20all-agegrp-in-same-plot/AG%29%20calc%20dAEFI%20diff%20all-agegrp-in-same-plot%20dAEFI%20AG_15-85.png width=\"1280\" height=\"auto\"\u003e\n\u003cbr\u003e\n\u003cbr\u003e\n\n[Download html](https://github.com/gitfrid/CzechFOI-SIM/raw/main/Plot%20Results/AG%29%20calc%20dAEFI%20diff%20all-agegrp-in-same-plot/AG%29%20calc%20dAEFI%20diff%20all-agegrp-in-same-plot%20dAEFI%20AG_15-85.html)\n\u003cbr\u003e\n_________________________________________\n\n### Software Requirements:\n- [Python 3.12.5](https://www.python.org/downloads/) to run the scripts.\n- [Visual Studio Code 1.92.2](https://code.visualstudio.com/download) to edit and run scripts.\n- [Optional - DB Browser for SQLite 3.13.0](https://sqlitebrowser.org/dl/) for database creation, SQL queries, and CSV export.\n\n### Disclaimer:\n**The results have not been checked for errors. Neither methodological nor technical checks or data cleansing have been performed.**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgitfrid%2Fczechfoi-sim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgitfrid%2Fczechfoi-sim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgitfrid%2Fczechfoi-sim/lists"}