Skip to content

FPG - New Report - Output the specific recombination breakpoints in the genome. #117

@Bridenbecker

Description

@Bridenbecker

Jessica asked that we create a new report with the recombination breakpoints / crossovers. Dyann Wirth of Harvard ("...one of the world's leading malariologists...") has requested this information from Jessica.

ParasiteGenome::Recombination() is the method that does all of the actual recombination between gametocyte genomes. It calls FindCrossovers once for each chromosome. This object defines the genome location and between what chromatids. There could be more than one per chromosome. Due to Independent Assortment each resulting Genome will need its own list of crossovers.

  • I think we will need to have this method return a 2D list of Crossovers that ParasiteCohort::Recombination() will use

ParasiteCohort::Recombination() calls ParasiteGenome::Recombination(). It will need to get the

Report Output

  • Time
  • Genome ID
  • Infection ID
  • Parent Male Gametocyte Infection ID
  • Parent Female Gametocyte Infection ID
  • Chromosome Number
  • Genome Location

what about genomes that are created using a crossover but the crossover doesn't change the ID?
If two or more genomes have the same genome ID based on what we are tracking, we will only keep the crossovers for one of them. We don't want this to cause a change in EPI behavior.

If we only care about the crossovers for unique genomes, maybe we can store the crossovers in m_ParasiteGenomeMap or one similar to it.
I think we have to put the crossover information into StrainIdentityMalariaGenetics, because we want to associate these crossovers with the infection object that gets created. This would require passing the crossover data out of ParasiteGenome::Recombination() and into ParasiteCohort::Recombination().

We need to make sure that when we are NOT creating the report, we don't incur any memory or time penalty.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Status

No status

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions