-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Assess pLI in HPO genes #50
Comments
Found this paper quite helpful in understanding pLI (and its many shortcomings as a metric). Some additional (or alternative) metrics to consider:
|
Ok, so while the data in VEP is super useful, the VEP software to access these annotations is a hot garbage fire that is virtually uninstallable. I tried everything under the sun: However, I was able to extract the AlphaMissense predictions directly! Turns out they already computed per gene scores for the entire protein-coding genome here (see their README):
With a little extra postprocessing, I got the gene symbols: am <- data.table::fread("https://storage.googleapis.com/dm_alphamissense/AlphaMissense_gene_hg38.tsv.gz")
am$enst_id <- stringr::str_split(am$transcript_id,"\\.", simplify = TRUE)[,1]
map <- orthogene::map_genes(genes = unique(am$enst_id),
target = "ENST",
species="human",
drop_na = FALSE,
mthreshold = Inf)
am_mapped <- unique(map[,c("input","name")]) |>
data.table::data.table(key = "input") |>
data.table::merge.data.table(am, by.x = "input", by.y = "enst_id")
am_mapped pLI is still problably worth looking at, but I think ML-based AlphaMissense metric circumvents many of the shortcomings of the rule-based pLI metric. |
Found the latest pLI data from gnomad as well: Importing that now for comparison with AlphaMissense. readme <- suppressWarnings(
readLines("https://storage.googleapis.com/gcp-public-data--gnomad/release/v4.0/constraint/README.txt")
)
pli <- data.table::fread("https://storage.googleapis.com/gcp-public-data--gnomad/release/v4.0/constraint/gnomad.v4.0.constraint_metrics.tsv")
data.table::setorderv(pli, "mane_select",order=-1)
mane <- pli[mane_select==TRUE, lapply(.SD, mean, na.rm=TRUE),
.SDcols = is.numeric, by="gene"][, mane_select:=TRUE]
pli_agg <- data.table::rbindlist(
list(
mane,
pli[!gene %in% mane$gene, lapply(.SD, mean, na.rm=TRUE),
.SDcols = is.numeric, by="gene"][, mane_select:=FALSE]
)
) |
How would an AI model give us population frequency? I thought current generation AI models of protein folding are also really bad at predicting variant effects?
|
Just having a look into what I did previously when looking at pLI and genes under selective pressure. I used the pLI for human transcripts from this study: The mutational constraint spectrum quantified from variation in 141,456 humans. I'm attaching the relevant supplementary table: But as you've shared @bschilder, there is a more up to date version of pLI data. |
@NathanSkene Are you talking about variant population frequency, phenotype frequency, or disease frequency? Also see here for my explanation of why pLI would not be appropriate for estimating population prevalence. Instead, getting epidemiological stats on population prevalence would make much more sense. |
Originally discussed here:
We should asses the relationship between HPO genes and probability of Loss Intolerance (pLI) scores.
Questions
HPOExplorer::get_gencc()
to get the GenCC data)@KittyMurphy it would be great if you could start exploring these questions and upload them as rmarkdown reports in this repo.
Perhaps start by just uploading a script showing me how to get the pLI scores for all genes, so I can start exploring this a bit as well.
Also just came across this paper:
The text was updated successfully, but these errors were encountered: