TITLE: Eurotransplant Kidney Allocation Simulations
AUTHORS: Matthias Niemann, Nils Lachmann, Kirsten Geneugelijk, Eric Spierings

[DESCRIPTION]
<div class = "text-blocks"><div class = "text-block"><div class = "justify" style = "text-align:justify">Background:</div><style>
							  .justify:after {
							    content: "";
							    display:inline-block;
							    width: 100%;
							  }
							</style></div><div class = "text-block"><div class = "justify" style = "text-align:justify">The EuroTransplant Kidney Allocation System (ETKAS) aims at allocating organs to patients on the waiting list fairly whilst optimizing HLA match grades. ETKAS currently considers the number of HLA-A/-B/-DR mismatches. Evidently, epitope matching is biologically and clinically more relevant. We here executed ETKAS-based computer simulations to evaluate the impact of epitope matching on allocation and compared the strategies. </div><style>
							  .justify:after {
							    content: "";
							    display:inline-block;
							    width: 100%;
							  }
							</style></div><div class = "text-block"><div class = "justify" style = "text-align:justify">Methods:</div><style>
							  .justify:after {
							    content: "";
							    display:inline-block;
							    width: 100%;
							  }
							</style></div><div class = "text-block"><div class = "justify" style = "text-align:justify"><span>A virtual population of 400,000 individuals was generated using the National Marrow Donor Program (NMDP) haplotype frequency dataset of 2011. Using this population, a waiting list of 10,400 patients was constructed and maintained during simulation, matching the 2015 Eurotransplant Annual Report characteristics. Unacceptable antigens were assigned randomly relative to their frequency using HLAMatchmaker. Over 22,600 kidneys were allocated in 10 years in triplicate using Markov Chain Monte Carlo simulations on 32-CPU-core cloud-computing instances. T-cell epitopes were calculated using the </span><a href="http://www.pirche.com" style = "text-decoration:underline;color:blue;cursor:pointer;"><span style = ":;:UNDERLINE;">www.pirche.com</span></a><span> portal. Waiting list effects were evaluated against ETKAS for five epitope matching scenarios. </span></div><style>
							  .justify:after {
							    content: "";
							    display:inline-block;
							    width: 100%;
							  }
							</style></div><div class = "text-block"><div class = "justify" style = "text-align:justify">Results:</div><style>
							  .justify:after {
							    content: "";
							    display:inline-block;
							    width: 100%;
							  }
							</style></div><div class = "text-block"><div class = "justify" style = "text-align:justify">Baseline simulations of ETKAS slightly overestimated reported average HLA match grades. The best-balanced scenario maintained prioritisation of HLA A-B-DR fully matched donors while replacing the HLA match grade by PIRCHE-II score and exchanging the HLA mismatch probability (MMP) by epitope MMP. This setup showed no considerable impact on kidney exchange rates and waiting time. PIRCHE-II scores improved, whereas the average HLA match grade diminishes slightly, yet leading to an improved estimated graft survival. </div><style>
							  .justify:after {
							    content: "";
							    display:inline-block;
							    width: 100%;
							  }
							</style></div><div class = "text-block"><div class = "justify" style = "text-align:justify">Conclusions:</div><style>
							  .justify:after {
							    content: "";
							    display:inline-block;
							    width: 100%;
							  }
							</style></div><div class = "text-block"><div class = "justify" style = "text-align:justify">We conclude that epitope-based matching in deceased donor kidney allocation is feasible while maintaining equal balances on the waiting list. </div><style>
							  .justify:after {
							    content: "";
							    display:inline-block;
							    width: 100%;
							  }
							</style></div></div>

[STEPS]
?. [Data aquisition]
Collect demographic data from Eurotransplant Annual Report pageage distribution per countrydonor blood group distribution per countryrecipient blood group distribution per country on the initial waiting listnumber of DBD donors per country number of DCD donors per countryDBD/DCD acceptance matrix, i.e. which country accepts which donor typesnumber of organ donors involved in later transplantationnumber of used donor kidneys per donor per countryPRA group distribution per countryprobability of transplant center rejecting an organ offer per HLA match grade, in our case 0.1 for all situationspatients removed from the waiting list per country, subtracted by the ETKAS transplanted patients per countryurgency distribution per countrycountry distribution of patients on the waiting list, for bootstrapping onlycountry distribution of patients registered to the waiting listwaiting time distribution of patients on the waiting list per country, for bootstrapping onlywaiting time distribution of patients registered to the waiting list per country
?. [Simulation]
Iterate over 3650 days, i.e. 10 years each having 365 days
?. [Data preprocessing]
Create virtual phenotypes by randomly picking two haplotypesSelect population, 2011 EURCAU in our caseconsidering weight in random selectionexclude phenotypes with identical haplotypeadd translation into serological equivalents
?. [Data aquisition]
Download NMDP haplotype frequency dataset
?. [Data aquisition]
Download HLA Matchmaker, extract eplet definitions as CSV
?. [Data aquisition]
Download rel-dna-ser file containing serological equivalents for alleles WMDA
?. [Simulation]
Allocate donor to current waiting list
?. [Bootstrap]
Generate virtual initial waiting list
?. [Data preprocessing]
Append PIRCHE Risk Profile median to virtual phenotypesvia REST API
?. [Bootstrap]
pick random phenotype from virtual population
?. [Bootstrap]
randomly select patient country, considering country distributions on waiting list
?. [Bootstrap]
randomly select patient age range based on country
?. [Bootstrap]
randomly select waiting time range based on country with uniform distribution within waiting time range
?. [Bootstrap]
randomly select urgency based on country
?. [Bootstrap]
randomly select PRA range based on country with uniform distribution within PRA range, used as target PRA
?. [Bootstrap]
Iteratively add unacceptable alleles randomly based on allele frequencyTranslate current unacceptable alleles to eplets with respect to self-epletscalculate current PRA based on eplets in virtual populationrepeat steps until current cPRA is target PRA +- 4 %discard random unacceptable alleles if PRA exceeds threshold or if eplets matching with self-eplets
?. [Bootstrap]
translate unacceptable alleles to unacceptable antigensallele-specific antibodies are not translated into an unacceptable but are kept for later crossmatching
?. [Simulation]
Generate donor
?. [Simulation]
Randomly select donor type based on distributions, i.e. DBD/DCD
?. [Simulation]
Randomly select donor country based on distributions
?. [Simulation]
Randomly select donor blood group based on distributions
?. [Simulation]
Randomly decide number of kidneys harvested from this donor
?. [Simulation]
Randomly select number of donors available "today"
?. [Simulation]
Iterate over donors
?. [Simulation]
Draw random phenotype from virtual population without replacement
?. [Simulation]
Randomly deregister patients from the waiting list according to conditional probability
?. [Simulation]
Filter waiting list by donor acceptance in country
?. [Simulation]
Filter waiting list by blood group identity
?. [Simulation]
Filter waiting list by unacceptable mismatches
?. [Simulation]
Add points for waiting time, 0.091/d
?. [Simulation]
Calculate PIRCHE scores for waiting list and donor, via REST API
?. [Simulation]
Add points for country balance, 10 * [maxCountryBalance - countryBalance]
?. [Simulation]
Add 100 pediatric bonus points, multiply match points by 2 for pediatric patients
?. [Simulation]
Add 300 points if donor and recipient country match
?. [Simulation]
Add 500 HU bonus points, match points are ignored in this case
?. [Simulation]
Add 100 mismatch probability points:mmp = 100 \times  \left( 1 - \left [bloodgroupFrequency * \left (1 - relativePRA \right ) \times \left[1 - min \left[1, \frac {PIRCHE-II-Risk-Profile-median} {200}\right ] \right] \right] \right)^{20}
?. [Simulation]
Add 400 points based on matching:matching = 400 * max \left(-0.0111 * \left [ 1 + PIRCHE-II-Score \right ], 0 \right )
?. [Simulation]
Priority if PIRCHE-II score is below 9
?. [Simulation]
Evaluate homozygous loci, per homozygosity add 1 to homozygosity score
?. [Simulation]
For fully homozygous donors: sort descending by priority, homozygosity score and pointsFor other donors: sort descending by priority and points
?. [Simulation]
Select patients from the top of the ordered waiting list for each harvested kidney of current donor, randomly reject patient based on rejection probability
?. [Simulation]
Crossmatch recipient and donor, i.e. exclude if recipient unacceptable alleles contain donor allele
?. [Simulation]
Remove selected recipients from the waiting list
?. [Simulation]
Update country balance according to selected patients' country of origin and donor country
?. [Simulation]
Evolve waiting list by increasing waiting time for all patients
?. [Simulation]
Register new patients to the waiting list, see step #7
?. [Simulation]
[, start next day]