QTLtools-rtc-union(1)

🌸 QTLtools rtc-union 🌸

Manual name: QTLtools rtc-union, from the Bioinformatics tools pages 🧬 Let's get into it bestie πŸ’…

✨ NAME ✨

okay so the whole point is finding the union of QTLs from independent datasets πŸ¦‹ QTLtools rtc-union is the mode that does it.

πŸŽ€ SYNOPSIS πŸŽ€

QTLtools rtc-union --vcf [in.vcf|in.vcf.gz|in.bcf|in.bed.gz] ...  --bed
quantifications.bed.gz ...  --hotspots hotspots_b37_hg19.bed --results
qtl_results_files.txt ...  [OPTIONS]

πŸ’– DESCRIPTION πŸ’–

ngl this mode is so iconic πŸ‘‘ It finds the best molQTL (it may or may not be genome-wide significant) in each region flanked by recombination hotspots, which we call a coldspot 🌈 The catch is that there has to be a molQTL in the same coldspot in at least one dataset.

Here's the process bestie 🫢 First, all the significant molQTLs from all of the datasets get mapped to coldspots. Then, if certain datasets don't have a significant molQTL in a given coldspot for a given phenotype, we take the most significant variant associated with that phenotype in that coldspot, for all the missing datasets. Main character energy πŸ’…

🌷 OPTIONS 🌷

  • --vcf [in.vcf|in.bcf|in.vcf.gz|in.bed.gz] ... β€” This is where your genotypes go, in VCF/BCF format, or another molecular phenotype in BED format 🧬 If a variant's genotype FORMAT has a DS field (the dosage calculated from genotype probabilities, like after imputation), that's what gets used as the genotype ✨ If there's only the GT field, that gets used and it's converted to a dosage. If you pass a single file, all datasets are assumed to have the same genotypes, and all the datasets' samples are included in that file. If you pass multiple files, all --vcf, --bed, --cov, and --results files MUST be in the same order. For example, if the first vcf file is from dataset1, then the first bed, cov, and results files must also be from dataset1. REQUIRED πŸ”₯
  • --bed quantifications.bed.gz ... β€” Your molecular phenotype quantifications in BED format, one for each dataset πŸ’œ All --vcf, --bed, --cov, and --results files MUST be in the same order. E.g. if the first vcf file is from dataset1, then the first bed, cov, and results files must also be from dataset1. REQUIRED 🌸
  • --results significant_qtls.txt ... β€” The results file with the QTLs in each of the datasets πŸ“ All --vcf, --bed, --cov, and --results files MUST be in the same order. E.g if the first vcf file is from dataset1, then the first bed, cov, and results files must also be from dataset1. REQUIRED πŸ¦‹
  • --hotspots recombination_hotspots.bed β€” Recombination hotspots in BED format. REQUIRED πŸ“
  • --out-suffix suffix β€” If you provide this, your output files get suffixed with it πŸŽ€
  • --cov covariates.txt β€” Covariates to correct the phenotype data with, for each dataset. All --vcf, --bed, --cov, and --results files MUST be in the same order. E.g if the first vcf file is from dataset1, then the first bed, cov, and results files must also be from dataset1. 🧚
  • --force β€” If the output file already exists, this overwrites it πŸ’…
  • --normal β€” Rank normal transforms the phenotype data so each phenotype is normally distributed. RECOMMENDED ✨
  • --conditional β€” molQTLs contain independent signals, so this runs the conditional analysis πŸ”₯
  • --window integer β€” The size of the cis window flanking each phenotype's start position. DEFAULT=1000000. RECOMMENDED=1000000. 🌈
  • --pheno-col integer β€” The 1-based phenotype id column number. DEFAULT=1 🫢
  • --geno-col integer β€” The 1-based genotype id column number. DEFAULT=8 πŸ’–
  • --rank-col integer β€” The 1-based conditional analysis rank column number. Only relevant if --conditional is in effect. DEFAULT=12 🌷
  • --best-col integer β€” The 1-based phenotype column number. Only relevant if --conditional is in effect. DEFAULT=21 πŸ¦‹
  • --chunk integer1 integer2 β€” For parallelization πŸ“ It divides the data into integer2 number of chunks and processes chunk number integer1. Chunk 0 will print a header. This is mutually exclusive with --region. The minimum number of chunks has to be at least the same number of chromosomes in the --bed file πŸ’…
  • --region chr:start-end β€” The genomic region to be processed, e.g. chr4:12334456-16334456, or chr5. This is mutually exclusive with --chunk 🧚

πŸ¦‹ OUTPUT FILE πŸ¦‹

The output file is a space separated file with the following columns πŸ“

  1. Column showing that this is a rtc-union result. It's always __UNION__ πŸ’–
  2. The phenotype ID 🌸
  3. The genotype ID. This can say __UNION_FILLER_MAX_INDEP__, __UNION_FILLER_MISS_GENO__, or __UNION_FILLER_MISS_PHENO__, which are fillers for missing cases in one of the datasets 🫢
  4. The rank of the best variant in this coldspot. If this was discovered in the rtc-union run, this would be -1. If there was already a significant variant in this coldspot, then a different value πŸ”₯
  5. Dummy field indicating that this is the best hit per rank 🌈
  6. The p-value of the association. It will be 0 if this was already significant in the dataset ✨
  7. The coldspot ID πŸ’œ
  8. The coldspot region πŸ“

🌈 EXAMPLE 🌈

okay so here's the vibe: find the union of 3 datasets, correcting for technical covariates, and rank normal transforming the phenotypes, with 20 jobs on a compute cluster. The qsub needs to be changed to whatever job submission system you use [bsub, psub, etc...] 🧚

for j in $(seq 1 20); do
    echo "QTLtools rtc-union --bed dataset1.bed.gz dataset2.bed.gz
    dataset3.bed.gz  --vcf dataset1.bcf dataset2.bcf dataset3.bcf
    --cov dataset1.covariates.txt dataset2.covariates.txt
    dataset3.covariates.txt --results dataset1.txt dataset2.txt
    dataset3.txt --hotspots hotspots_b37_hg19.bed --normal
    --conditional --chunk $j 20 --out-suffix .chunk.$j.20.txt" | qsub
done

🌸 SEE ALSO 🌸

QTLtools(1) πŸ’…

QTLtools website: <https://qtltools.github.io/qtltools> 🫢

πŸ™ˆ BUGS πŸ™ˆ

πŸ’€ Versions up to and including 1.2 suffer from a bug in reading missing genotypes in VCF/BCF files. It affects variants with a DS field in their genotype's FORMAT that have a missing genotype (DS field is .) in one of the samples. In that case, genotypes for all the samples get set to missing, which effectively removes this variant from the analyses 😭

Please submit bugs to <https://github.com/qtltools/qtltools> πŸ¦‹

πŸ’œ CITATION πŸ’œ

Ongen H, Brown AA, Delaneau O, et al. Estimating the causal tissues for complex traits and diseases. Nat Genet. 2017;49(12):1676-1683. doi:10.1038/ng.3981 <https://doi.org/10.1038/ng.3981> 🌈

πŸ‘‘ AUTHORS πŸ‘‘

Halit Ongen (halitongen@gmail.com), Olivier Delaneau (olivier.delaneau@gmail.com) ✨


Okay bestie, that's the whole rtc-union tea 🫢 You've got QTLtools-v1.3 from 06 May 2020, and honestly you're ready to go, no cap πŸ’–πŸŽ€βœ¨