Skip to content

gymrek-lab/EnsembleTR

Repository files navigation

EnsembleTR

EnsembleTR is a tool for ensemble Tandem Repeat (TR) calling. It takes one or more VCF files with TR genotypes for a panel of samples and outputs a consensus set of genotypes.

Installation

pip install --upgrade pip
pip install ensembletr

Type ensembletr --help. You should see the help message appear.

Usage

To run EnsembleTR, use the following command

ensembletr --out output.vcf
           --ref ref.fa
           --vcfs vcf1.vcf,vcf2.vcf,...

Required parameters:

  • --vcfs <file.vcf,[file2.vcf]> Comma separated list of input VCF files
  • --ref Refererence genome (.fa)
  • --out Path to output VCF file

File formats

VCF (--vcfs)

Both zipped and unzipped VCF files are accepted as input. EnsembleTR can currently process VCF files generated by hipSTR, GangSTR, adVNTR, and ExpansionHunter.

FASTA Reference genome (--ref)

You must input a reference genome in FASTA format. This must be the same reference build used for TR calling in input files.

VCF (--out)

For more information on VCF file format, see the VCF spec. The output VCF is not necessarily sorted, please use vcf-sort or other VCF sorting tools to sort the output before downstream analysis. EnsembleTR output VCF file contains several fields described below.

INFO fields

INFO fields contain aggregated statistics about each TR. The following custom fields are added:

FIELD DESCRIPTION
START Start position of the TR
END End position of the TR
PERIOD Length of the repeat unit
RU Repeat motif
METHODS Methods that attempted to genotype this locus (AdVNTR, EH, HipSTR, GangSTR)

Note that the RU shows the canonical sequence of the repeat unit, which is the first alphabetically out of all possible rotations on + and - strands of the sequence. e.g. "TG" canonical sequence is "AC".

FORMAT fields

FORMAT fields contain information specific to each genotype call. The following custom fields are added:

FIELD DESCRIPTION
GT Genotype
GB Base pair difference from ref allele
NCOPY Genotype given in number of copies of the repeat motif
EXP Boolean showing if the genotype alleles were expanded
SCORE Score of the consensus call
GTS Method(s) that support the consensus call
ALS Number of times each bp difference was seen across all calls
INPUTS Raw calls

Score is calculated by aggregating quality information from calls that are getting merged at each locus.

Using statSTR on EnsembleTR files

You can use statSTR from TRTools to compute various per-locus statistics for EnsembleTR .VCF files.

For example, to compute per-locus allele frequency use the following command:

statSTR --vcf EnsembleTR_file.vcf.gz
        --vcftype hipstr
        --afreq
        --out EnsembleTR_per_locus_allele_frequency

Version II of EnsembleTR calls on samples from 1000 Genomes Project and H3Africa

Chromosome 1 VCF file and tbi file

Chromosome 2 VCF file and tbi file

Chromosome 3 VCF file and tbi file

Chromosome 4 VCF file and tbi file

Chromosome 5 VCF file and tbi file

Chromosome 6 VCF file and tbi file

Chromosome 7 VCF file and tbi file

Chromosome 8 VCF file and tbi file

Chromosome 9 VCF file and tbi file

Chromosome 10 VCF file and tbi file

Chromosome 11 VCF file and tbi file

Chromosome 12 VCF file and tbi file

Chromosome 13 VCF file and tbi file

Chromosome 14 VCF file and tbi file

Chromosome 15 VCF file and tbi file

Chromosome 16 VCF file and tbi file

Chromosome 17 VCF file and tbi file

Chromosome 18 VCF file and tbi file

Chromosome 19 VCF file and tbi file

Chromosome 20 VCF file and tbi file

Chromosome 21 VCF file and tbi file

Chromosome 22 VCF file and tbi file

Version II of reference SNP+TR haplotype panel for imputation of TR variants

Dataset description

Phased variants of 3,202 samples from the 1000 Genomes Project (1kGP).

TRs imputed from 3,202 1kGP samples.

Total 70,692,015 variants + 1,091,550 TR markers.

All the coordinates are based on hg38 human reference genome.

Availability

Chromosome 1 VCF file and tbi file

Chromosome 2 VCF file and tbi file

Chromosome 3 VCF file and tbi file

Chromosome 4 VCF file and tbi file

Chromosome 5 VCF file and tbi file

Chromosome 6 VCF file and tbi file

Chromosome 7 VCF file and tbi file

Chromosome 8 VCF file and tbi file

Chromosome 9 VCF file and tbi file

Chromosome 10 VCF file and tbi file

Chromosome 11 VCF file and tbi file

Chromosome 12 VCF file and tbi file

Chromosome 13 VCF file and tbi file

Chromosome 14 VCF file and tbi file

Chromosome 15 VCF file and tbi file

Chromosome 16 VCF file and tbi file

Chromosome 17 VCF file and tbi file

Chromosome 18 VCF file and tbi file

Chromosome 19 VCF file and tbi file

Chromosome 20 VCF file and tbi file

Chromosome 21 VCF file and tbi file

Chromosome 22 VCF file and tbi file

Usage

Use Beagle to impute TRs into SNP data:

java -Xmx4g -jar beagle.version.jar \
            gt=SNPs.vcf.gz \
            ref=${chrom}_final_SNP_merged.vcf.gz \
            out=imputed_TR_SNPs

Please use the version 5.4 for this analysis as we had issues with the newer versions of Beagle and we are right now communicating it with Beagle developers.

Additional resources

Per locus summary statistics can be downloaded from here. Each table has information on coordinates, repeat unit sequence, and potential overlap with genes listed in GENCODE v22 for repeats in EnsembleTR catalog.

Population-specific per locus statistics on allele frequency, heterozygosity, and the number of called samples can be found here. Statistics are computed using statSTR from the TRTools package.

Version I

For version I of EnsembleTR calls, please use https://ensemble-tr.s3.us-east-2.amazonaws.com/split/ensemble_chr"$chr"_filtered.vcf.gz for VCF file and https://ensemble-tr.s3.us-east-2.amazonaws.com/split/ensemble_chr"$chr"_filtered.vcf.gz.tbi for tbi file.

For version I of phased panels, please use https://ensemble-tr.s3.us-east-2.amazonaws.com/phased-split/chr"$chr"_final_SNP_merged.vcf.gz for VCF file and https://ensemble-tr.s3.us-east-2.amazonaws.com/phased-split/chr"$chr"_final_SNP_merged.vcf.gz.csi for tbi file.

Notes on HipSTR input

HipSTR might expand the coordinates of the repeat if there is a nearby SNP. If you have multiple HipSTR outputs from different individuals and want to use mergeSTR to merge them, please use our python script, Hipstr_correction.py, to correct the merged HipSTR VCF file ensuring that multiple records from the same repeat culminate in a single unified record.

python3 HipSTR_correction_faster.py hipstr_merged_by_mergeSTR.vcf.gz hipstr_merged_corrected.vcf
bgzip hipstr_merged_corrected.vcf
tabix -p vcf hipstr_merged_corrected.vcf.gz