Skip to content

Data utils

download_ukb_wb_ld_matrix(target_dir='.', chromosome=None)

Download the LD matrix for the White British samples in the UK Biobank.

Parameters:

Name Type Description Default
target_dir

The path or directory where to store the LD matrix

'.'
chromosome

An integer or list of integers with the chromosome numbers for which to download the LD matrices from Zenodo.

None
Source code in viprs/utils/data_utils.py
def download_ukb_wb_ld_matrix(target_dir='.', chromosome=None):
    """
    Download the LD matrix for the White British samples in the UK Biobank.
    :param target_dir: The path or directory where to store the LD matrix
    :param chromosome: An integer or list of integers with the chromosome numbers for which to download
    the LD matrices from Zenodo.
    """

    import urllib.request
    from magenpy.utils.system_utils import makedir
    from magenpy.utils.compute_utils import iterable
    import os
    from tqdm import tqdm

    if chromosome is None:
        chromosome = list(range(1, 23))
    elif not iterable(chromosome):
        chromosome = [chromosome]

    if len(chromosome) < 2:
        print("> Download LD matrix for chromosome", chromosome[0])

    for c in tqdm(chromosome, total=len(chromosome), disable=len(chromosome) < 2,
                  desc='Downloading LD matrices'):

        target_path = os.path.join(target_dir, f"chr_{c}.tar.gz")

        try:
            makedir(os.path.dirname(target_path))
            urllib.request.urlretrieve(f"https://zenodo.org/record/7036625/files/chr_{c}.tar.gz?download=1",
                                       target_path)
            os.system(f"tar -xvzf {target_path}")
        except Exception as e:
            print(e)