Anthony-Nolan / Atlas

A free & open-source Donor Search Algorithm Service

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Inconsistency in Predictive Match Categories

zabeen opened this issue · comments

Describe the bug
Prediction match categories are assigned using decimal probability values and this seems to lead to some inconsistency in assigning the grade of Mismatch.

Example from CBU search run on UAT, match probabilities from same donor, locus A and B:

"A": {
    "MatchProbabilities": {
        "ZeroMismatchProbability": {
            "Decimal": 0.0000000032175224840974139724,
            "Percentage": 0
        },
        "OneMismatchProbability": {
            "Decimal": 0.9997048020482089823501507505,
            "Percentage": 100
        },
        "TwoMismatchProbability": {
            "Decimal": 0.0002951947342684898495425796,
            "Percentage": 0
        }
    },
    "MatchCategory": "Potential",
    "PositionalMatchCategories": {
        "Position1": "Potential",
        "Position2": "Potential"
    }
},
"B": {
    "MatchProbabilities": {
        "ZeroMismatchProbability": {
            "Decimal": 0.0,
            "Percentage": 0
        },
        "OneMismatchProbability": {
            "Decimal": 0.9989001643539674846590959957,
            "Percentage": 100
        },
        "TwoMismatchProbability": {
            "Decimal": 0.0010998356460324716380113067,
            "Percentage": 0
        }
    },
    "MatchCategory": "Mismatch",
    "PositionalMatchCategories": {
        "Position1": "Mismatch",
        "Position2": "Potential"
    }
}

}

Expected behaviour
Both locus A and B should have been assigned one Mismatch and one Potential grade, as they both had the same percentage probabilities, and the percentages are what will be displayed to end-users.

Atlas Build & Runtime Info (please complete the following information):

  • Azure, UAT-ATLAS
  • Atlas Version: 1.4.2
  • GitHub commit ID of Atlas build: 3f635714

Testing

  • Tested on UAT having deployed a copy of stable/1.4.2 with the fix commit cherry-picked on top: 04c4704

  • re-ran the patient HLA that lead to the bug being discovered:

"searchHlaData": {
    "a": {
      "position1": "01:XX",
      "position2": "01:XX"
    },
    "b": {
      "position1": "08:XX",
      "position2": "08:XX"
    },
    "c": {
      "position1": "07:XX",
      "position2": "07:XX"
    },
    "drb1": {
      "position1": "01:XX",
      "position2": "03:XX"
    }
  • match categories are now as expected, i.e., same percentage values lead to same categories ✅:
"A": {
    "MatchProbabilities": {
        "ZeroMismatchProbability": {
            "Decimal": 0.0000000032175224840974139724,
            "Percentage": 0
        },
        "OneMismatchProbability": {
            "Decimal": 0.9997048020482089823501507505,
            "Percentage": 100
        },
        "TwoMismatchProbability": {
            "Decimal": 0.0002951947342684898495425796,
            "Percentage": 0
        }
    },
    "MatchCategory": "Mismatch",
    "PositionalMatchCategories": {
        "Position1": "Mismatch",
        "Position2": "Exact"
    }
},
"B": {
    "MatchProbabilities": {
        "ZeroMismatchProbability": {
            "Decimal": 0.0,
            "Percentage": 0
        },
        "OneMismatchProbability": {
            "Decimal": 0.9989001643539674846590959957,
            "Percentage": 100
        },
        "TwoMismatchProbability": {
            "Decimal": 0.0010998356460324716380113067,
            "Percentage": 0
        }
    },
    "MatchCategory": "Mismatch",
    "PositionalMatchCategories": {
        "Position1": "Mismatch",
        "Position2": "Exact"
    }
}
  • Similar improvements were observed throughout the result set. ✅
  • Match probability values remain unchanged (whole result set was checked). ✅

Testing Passed