mild-blue / txmatching

Solver for kidney pair donation matching problems.
https://txm.demo.mild.blue
Other
2 stars 2 forks source link

Crossmatch API: při převodu z HIGH RES do několika SPLIT počítat taky s frequent/infrequent info u těch HLA #1224

Open abragtim opened 1 year ago

abragtim commented 1 year ago

Rozmyslet, jak by měla informace frequent/infrequent ovlivňovat převod do SPLIT ve funkci _convert_potential_hla_types_to_low_res:

def _convert_potential_hla_types_to_low_res(
        potential_hla_types: List[HLATypeWithFrequency]) -> List[HLATypeWithFrequency]:
    assumed_hla_types_raw = {HLATypeWithFrequencyRaw(
        hla_code=potential_hla_type.hla_type.code.get_low_res_code(),
        is_frequent=True
    ) for potential_hla_type in potential_hla_types}
    return [create_hla_type_with_frequency(assumed_hla_type_raw)
            for assumed_hla_type_raw in assumed_hla_types_raw]

Například, máme HIGH RES potential hla types = [A1:01, A2:02], které nemají match s žádnou protilátek, tak jsem převádíme do SPLIT. Teď ve výsledku dostaneme oba split kody [A1, A2]. Ale pamatujeme, že máme ještě informaci o tom, že A1:01 is frequent, but A2:02 is NOT. V rámci tohoto issue je potřeba zvážit možnost využit tuto informaci a, například, zahodit A2 v tomto případě, tj. ve výsledku dostaneme jenom [A1].

Tahle změna ale má hodně edge cases, a proto je potřeba na začátku je všechny detekovat, prodiskutovat a popsat v tomto issue, jenom pak přejít k implementaci. Je důležité pamatovat, že se tyto kódy v jednom listu hodně souvisejí z biologického pohledu, a proto je potřeba být opatrnými i při drobných změnách, které mohou vážně ovlivnit vyhodnocování tohoto parování (obzvlášť když mluvíme o snížení resolution).

kubantjan commented 2 months ago

@abragtim tak uz to ctu poradne a tohleto nesouvisi s #1274 , nechme to tady takto, ale nemusis to resit