This metric cares only about relative ordering of observations, and is available only for binary traits.
β
Standardized regression coefficients. For continuous traits, this is the change in the trait (in standard deviations) per standard deviation of the PGS. For binary traits, this is the change in the log-odds per standard deviation of the PGS.
This is the metric that was used for meta-analyses.
Odds Ratio (OR)
This is the change in the odds ratio per standard deviation of the PGS (exp(β))
R²
This is the variance explained by the PGS on the observed scale for continuous traits, or on the liability scale for binary traits
This interactive plot corresponds to Figure 2A and Supplementary Figures 1-5 in the published article.
Tip
We’re fetching score and performance metadata from the PGS Catalog. It might take a few seconds to fully load!
scoreResults =fetchPaginatedData("https://www.pgscatalog.org/rest/score/search","pgp_id","PGP000517");// notes: method name and tuning type is extracted from the PGS names, which isn't ideal// recode pt_clump_nested as pt_clump// UKBB_EnsPGS is always CVscoreData = aq.from(scoreResults).select("id","name","trait_reported").spread({ name: d => op.split(d.name,'.') }, {as: ["method_name","tuning_type"],limit:2}).derive({ method_name: d => d.method_name==="pt_clump_nested"?"pt_clump": d.method_name,tuning_type: d => d.method_name==="UKBB_EnsPGS"?"CV": d.tuning_type })
biobank_names = plotData.select("cohort_name_full","cohort_name_short").dedupe().objects()viewof biobanks = Inputs.checkbox(biobank_names, {label:"Biobank",format: x =>`${x.cohort_name_full} (${x.cohort_name_short})`,value: biobank_names} )method_names = plotData.select("method_name").dedupe().objects()viewof methods = Inputs.checkbox(method_names, { label:"Method:",format: x => x.method_name,value: method_names })ancestry_names = plotData.select("ancestry").dedupe().objects()viewof ancestries = Inputs.checkbox(ancestry_names, { label:"Genetic ancestry",format: x => x.ancestry,value: ancestry_names})// some metrics for endpoints have no data, so must be disabled in the UImetric_names = plotData.select("metric_type").dedupe().objects().map((x) => x.metric_type )all_available_metrics = plotData.select("metric_type").dedupe()enabled_metrics = plotData.params(endpoint).filter((d, $) => d.trait_reported== $.trait_reported).select("metric_type")disabled_metrics = all_available_metrics.dedupe("metric_type").antijoin(enabled_metrics,"metric_type").objects().map((x) => x.metric_type )viewof chosen_metric = Inputs.radio(metric_names, {label:"Metric",disabled: disabled_metrics,value:"β" })endpoints = plotData.select("trait_reported").dedupe().objects()viewof endpoint = Inputs.select(endpoints, {value: endpoints.find(t => t.trait_reported==="Type 2 diabetes (T2D)"),format: x => x.trait_reported,label:"Endpoint:"})viewof best_method = Inputs.toggle({ label:"Filter best method?:",values: [["best"], ["best","notbest"]]})
Plot.plot({grid:true,// make plot accessible for screen readersariaLabel:"Explanation of some stuff",// todo: fixmarginTop:50,marginLeft:150,marginRight:80,x: {label: chosen_metric +" →",nice:true },y: {label:"Development method" },// tableau10 theme, manually assigning each method a colour to be consistentcolor: {domain: ["dbslmm","sbayesr","lassosum","prscs","ldpred2","megaprs","pt_clump","UKBB_EnsPGS"],range: ["#5778a4","#e49444","#d1615d","#85b6b2","#6a9f58","#e7ca60","#a87c9f","#f1a2a9"] },symbol: {legend:true },style: {fontSize:"12px" },facet: {data: filtered,y:"cohort_name_short",x:"ancestry",marginRight:75,marginTop:50 },fx: {label:"Genetic ancestry" },fy: {label:"Biobank" },marks: [ Plot.frame(),// link == error bar Plot.link(filtered, {x1:"value_ci_lower",x2:"value_ci_upper",y1:"method_name",y2:"method_name" }), Plot.dot(filtered, {x:"value",y:"method_name",fill:"method_name",symbol:"tuning_type" }) ]})
Conclusion
Using an ensemble of scores, each created using a different PGS development method, can capture a larger effect size for a phenotype. This means that the strength of the relationship between genetic data and phenotype is greater.