Software
Two Software Components: Pre-counseling and Bluetooth
All code is publicly available on github. We implemented everything using Python3 and compiled a Windows executable.
Pre-counseling
Pre-counseling consists of probabilistic diagnosis using historical data. We created a 500-patient database using common SCD statistics. We chose this route because we could not obtain a real patient database due to complications. Each patient’s record indicates their ethnicity, age, mother/father genotypes, and parent relatedness. We converted this patient information into a set of binary features. Using this and final diagnosis of the patient, we constructed a prediction algorithm. Our prediction algorithm consists of a support vector machine which takes in this set of features, and outputs the likelihood of testing positive.
The patient database above can be replaced with a real database representing real and unique patients. This will give more accurate results for a given pre-counseling input.
Sample Database Entries for our support vector machine:
Patient | Ethnicity | Mother/Carrier | Father/Carrier | Consanguineous status | Positive? |
1 | Afro-Asiatic | Y | N | N | Y |
2 | Central Asian | N | N | Y | Y |
When our application is started, the user is asked to input their own set of features (ethnicity, etc…). Following this, our support vector machine inputs this new unseen data and outputs the probability of having the disease.
Bluetooth
Our application makes a connection with our bluetooth-enabled device. Once a pairing has been secured, the application keeps track of any new tests recorded. The handheld device measures fluorescence and as a result outputs a number out of 255.
Fluorescence | Value |
---|---|
0 | |
127 | |
255 |
Each disease we are testing we test for will have a different threshold value for positive/negative result. Thus, after conducting several tests using our bluetooth device, we come up with a threshold value.
Diagnosis
Our application outputs both the statistical probability of pre-counseling and the result of our handheld device, which can be interpreted by the healthcare provider administering the test.