-
Notifications
You must be signed in to change notification settings - Fork 9
Home
These are the web-services:
- auth-token; retrieve an authentication token (for use with the other web-services).
- boadicea; calculates risks and mutation carrier probabilities for breast cancer (see code).
- ovarian; calculates risks and mutation carrier probabilities for ovarian cancer (see code).
- vcf2prs; takes a VCF file and returns a PRS (alpha and beta) for use in the boadicea w/s (see code).
The following describes auth-token and boadicea.
All requests to the web-services are made over HTTPS. An authentication token can be requested using the ‘auth-token’ web-service and added to the request authorization headers. Data is sent to and from the web-service in JSON format.
Patient identifiable data is not needed to run the risk calculations and the client software should remove this to de-identify the data before submitting the request to the web-service.
The web-service supports the pedigree data submitted in the CanRisk file format and BOADICEA pedigree data format v4 (see the BOADICEA documentation Appendix). It can be sent either as a ‘pedigree_data’ field in the JSON request or posted as a file. See the example usage below.
-
Obtaining Authentication Token:
curl -k 'https://{URL}/auth-token/' \ -d '{"username": "XYZ", "password": "ABC"}' \ -H "Content-Type: application/json"
-
Pedigree as a JSON parameter (replace with the authentication token):
curl -k -XPOST -H "Content-Type: application/json" \ -H 'Authorization: Token <TOKEN>' -H "Accept: application/json" \ -d '{"mut_freq": "UK", "cancer_rates":"UK", "user_id": "end_user_id", \ "pedigree_data":"BOADICEA import pedigree file format 4.0\nFamID\tName\tTarget\tIndivID\tFathID\tMothID\tSex\tMZtwin\tDead\tAge\tYob\t1stBrCa\t2ndBrCa\tOvCa\tProCa\tPanCa\tAshkn\tBRCA1t\tBRCA1r\tBRCA2t\tBRCA2r\tPALB2t\tPALB2r\tATMt\tATMr\tCHEK2t\tCHEK2r\tER\tPR\tHER2\tCK14\tCK56\nXXX1 \tF1 \t1\t1 \t3 \t2 \tF\t0\t0\t23 \t1993\t21 \t0 \t0 \t0 \t0 \t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\nXXX1 \tF2 \t0\t2 \t0 \t0 \tF\t0\t0\t55 \t1961\t0 \t0 \t0 \t0 \t0 \t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\nXXX1 \tM2 \t0\t3 \t0 \t0 \tM\t0\t0\t53 \t1963\t0 \t0 \t0 \t0 \t0 \t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0"}' https://{URL}/boadicea/
-
Pedigree file posted as a form (leave off -H "Accept: application/json" to return as xml):
curl -k -XPOST -F "mut_freq=UK" -F "cancer_rates=UK" \ -F "user_id=end_user_id" \ -F "pedigree_data=@/home/xxx/bwa4_pedigree_data.txt" \ https://{URL}/boadicea/ -H 'Authorization: Token <TOKEN>' \ -H "Accept: application/json"
Results are returned in JSON format. The mutation frequency, sensitivity values and cancer incidence rates used in the calculations are reported along with the version of the BOADICEA model and a timestamp. The results for each family in the input are given in 'pedigree_result' as an array and can be identified by their 'family_id'. The baseline/population, lifetime, ten year range (40-49) and remaining lifetime risks are given.
The remaining lifetime risks are given in the 'cancer_risks' array. The baseline are given in the 'baseline_cancer_risks' array. Lifetime and 10 year age range risks are given in 'lifetime_cancer_risk' and 'ten_yr_cancer_risk' arrays respectively. The mutation probabilities are given in the 'mutation_probabilties' array for each of the genes.
{
"version": "BOADICEA_5.0.0",
"timestamp": "2019-01-16T14:49:39.028628",
"mutation_frequency": {
"UK": {
"PALB2": 0.000575,
"BRCA2": 0.00102,
"CHEK2": 0.002614,
"ATM": 0.001921,
"BRCA1": 0.0006394
}
},
"mutation_sensitivity": {
"PALB2": 0.9,
"BRCA2": 0.9,
"CHEK2": 1,
"ATM": 0.9,
"BRCA1": 0.9
},
"cancer_incidence_rates": "UK",
"pedigree_result": [
{
"family_id": "XXXX1",
"proband_id": "PB",
"cancer_risks": [
{
"age": 41,
"breast cancer risk": {
"percent": 0.3,
"decimal": 0.003276
},
"ovarian cancer risk": {
"percent": 0,
"decimal": 0.0001412
}
},
...
{
"age": 80,
"breast cancer risk": {
"percent": 22.1,
"decimal": 0.2205581
},
"ovarian cancer risk": {
"percent": 1.9,
"decimal": 0.0194776
}
}
],
"baseline_cancer_risks": [
{
"age": 41,
"breast cancer risk": {
"percent": 0.1,
"decimal": 0.0010082
},
"ovarian cancer risk": {
"percent": 0,
"decimal": 0.0000963
}
},
...
{
"age": 80,
"breast cancer risk": {
"percent": 11,
"decimal": 0.1097168
},
"ovarian cancer risk": {
"percent": 1.6,
"decimal": 0.0163075
}
}
],
"lifetime_cancer_risk": [
{
"age": 80,
"breast cancer risk": {
"percent": 23.7,
"decimal": 0.237001
},
"ovarian cancer risk": {
"percent": 2.2,
"decimal": 0.021647
}
}
],
"baseline_lifetime_cancer_risk": [
{
"age": 80,
"breast cancer risk": {
"decimal": 0.1153311,
"percent": 11.5
},
"ovarian cancer risk": {
"decimal": 0.0175416,
"percent": 1.8
}
}
],
"ten_yr_cancer_risk": [
{
"age": 50,
"breast cancer risk": {
"percent": 4.9,
"decimal": 0.0485692
},
"ovarian cancer risk": {
"percent": 0.2,
"decimal": 0.0020721
}
}
],
"baseline_ten_yr_cancer_risk": [
{
"age": 50,
"breast cancer risk": {
"decimal": 0.0170431,
"percent": 1.7
},
"ovarian cancer risk": {
"decimal": 0.0016042,
"percent": 0.2
}
}
],
"mutation_probabilties": [
{
"no mutation": {
"percent": 95.7,
"decimal": 0.9572
}
},
{
"BRCA1": {
"percent": 0.7,
"decimal": 0.0069
}
},
{
"BRCA2": {
"percent": 1.1,
"decimal": 0.0107
}
},
{
"PALB2": {
"percent": 0.5,
"decimal": 0.0048
}
},
{
"CHEK2": {
"percent": 1.2,
"decimal": 0.0121
}
},
{
"ATM": {
"percent": 0.8,
"decimal": 0.0084
}
}
]
},
{
"family_id": "XXX2",
"cancer_risks": [ ... ],
"baseline_cancer_risks": [ ... ],
"lifetime_cancer_risk": [ ... ],
"baseline_lifetime_cancer_risk": [ ... ],
"ten_yr_cancer_risk": [ ... ],
"baseline_ten_yr_cancer_risk": [ .. ],
"mutation_probabilties": [ ... ],
"prs": {},
"risk_factors": {
"age_of_first_live_birth": "25-29",
"age_of_menopause": "45-49",
"alcohol_intake": "<5",
"bmi": "18.5-<25",
"height": ">=172.70",
"mammographic_density": "-",
"menarche_age": "15",
"mht": "current e-type",
"oral_contraception": "never",
"parity": "2"
}
}
],
"warnings": [
"year of birth and age at last follow up must be specified in order for PF to be included in a calculation",
"year of birth and age at last follow up must be specified in order for PGA to be included in a calculation"
]
}