Typical AIP projects have run through the MOI testing Stage in < 1 minute, so there's never been a need to optimise here. Now some of the larger Exome cohorts are taking ~30+ mins. The time has come to... OPTIMISE
we parse each chromosome in turn, reading all variants on the chromosome into in-memory objects. This creates a pretty huge memory footprint, but is manageable.
within each chromosome we process each gene in turn (all variants on the gene, through all appropriate MOIs)
this per-gene testing could be done in parallel as an asynchronous process. The variant objects are not edited once created, and results are returned as a list per gene. Seems like a good target for an async/await cycle.
Typical AIP projects have run through the MOI testing Stage in < 1 minute, so there's never been a need to optimise here. Now some of the larger Exome cohorts are taking ~30+ mins. The time has come to... OPTIMISE