Skip to content
tcarver edited this page Mar 14, 2019 · 11 revisions

Table of Contents

Overview

These are the web-services:

  1. auth-token; retrieve an authentication token (for use with the other web-services).
  2. boadicea; calculates risks and mutation carrier probabilities for breast cancer (see code).
  3. ovarian; calculates risks and mutation carrier probabilities for ovarian cancer (see code).
  4. 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.

Usage

  1. Obtaining Authentication Token:

     curl -k 'https://{URL}/auth-token/' \
          -d '{"username": "XYZ", "password": "ABC"}' \
          -H "Content-Type: application/json"
    
  2. 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/
    
  3. 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"
    

BOADICEA Results

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"
  ]
}
Clone this wiki locally