rajlabmssm / qtl-mapping-pipeline Goto Github PK
View Code? Open in Web Editor NEWA snakemake pipeline for QTL mapping. Based on the GTEX pipeline
A snakemake pipeline for QTL mapping. Based on the GTEX pipeline
Currently users have to manually append the qval column.
There is an R script to do this called interaction_qvalue.R
. It needs fixing as currently it tries to work on interaction QTL results only. Make this work @bzmull !
my permutation results contain each gene twice:
$ ls *permutations.txt | xargs grep "^ENSG00000015592.16"
LumbarSpinalCord_expression_peer30_chunk152.permutations.txt:ENSG00000015592.16 chr8 27258420 27258420 - 6436 12913 . chr8 27245507 27245507 195 173.024 1.05009 656.504 2.17524e-47 -1.06769 9.999e-05 2.29836e-41
LumbarSpinalCord_expression_peer30_chunk609.permutations.txt:ENSG00000015592.16 chr8 27258420 27258420 - 6436 12913 . chr8 27245507 27245507 195 175.538 1.0437 715.465 2.17524e-47 -1.06769 9.999e-05 1.08018e-41
What's going on? I'm systematically over-reporting the number of significant eGenes found by the pipeline by a factor of 2.
Hopefully switching over to TensorQTL will get rid of the need for chunking and all the headaches that come with.
GTEX pipeline produces BED files formatted for FASTQTL, not QTLtools. The only difference is that FASTQTL BED files have 6 columns before the per-sample columns:
Chromosome ID [string]
Start genomic position of the phenotype (here the TSS of gene1) [integer, 0-based]
End genomic position of the phenotype (here the TSS of gene1) [integer, 1-based]
Phenotype ID (here the exon IDs) [string].
Phenotype group ID (here the gene IDs, multiple exons belong to the same gene) [string]
Strand orientation [+/-]
These final two columns must be added in the eqtl_prepare_expression.py and the sqtl_prepare_expression.py
currently requires users to have their own version installed on minerva from here: https://github.com/PMBio/peer
does this happen randomly or on certain nodes? Add to QTLtools rules that the name of the node is recorded to log.
what happens? Do I have to set some kind of exception?
Complex genes will have multiple splicing clusters within them. In theory each cluster could have independent cis genetic regulation.
Therefore add an option in sQTL mapping to either group QTLs by gene (current approach) or by leafcutter cluster.
This may increase number of sQTLs found.
maybe brute force in R is best here? read each file in and smush together, write out, bgzip and tabix?
does not take strand into account - this is obvious.
should be run downstream of junction filtering to avoid mis-classifying a cluster
if multiple genes overlap junctions in a cluster, which gene is picked as the name?
tensorQTL has this option:
python3 -m tensorqtl ${plink_prefix_path} ${expression_bed} ${prefix} \
--covariates ${covariates_file} \
--cis_results ${cis_results_file} \
--mode cis_independent
Plug it in, could be useful for COLOCing.
Currently testing all SNPs within a megabase either side of gene TSS. This is unnecessary and leads to huge summary stat files and potentially lots of spurious colocalisations.
This will require hacking around with the leafcutter sQTL scripts. I believe TensorQTL only uses a single coordinate to window around, will have to test.
prepare_expression currently hardcodes a TPM etc threshold. This should be settable by the user in the config files if they wish.
Set pvalue threshold = 1
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.