Commit 2193ea22 authored by Hanna  JULIENNE's avatar Hanna JULIENNE
Browse files

Implement function to compute LD-matrices

This diff is collapsed.
Function set to compute LD correlation from a reference panel
in predefined Region
LD matrix are then stored to the scipy sparse matrix format
import scipy as sc
import pandas as pd
import subprocess as sub
LD_region = pd.read_csv('./impute_for_jass/Imputation_for_jass/impute_jass/data/Region_LD.csv')
def launch_plink_ld(startpos, endpos, chr, reffile, folder):
launch plink ld
fo = "{0}/{1}_{2}_{3}".format(folder, chr, startpos, endpos)
cmd = "p-link --noweb --bfile {0} --r --ld-window-r2 0 --from-bp {1} --to-bp {2} --chr {3} --out {4}".format(reffile, startpos, endpos, chr, fo)
sub.check_output(cmd, shell=True)
def generate_sparse_matrix(plink_ld, path_ld_mat):
read plink results create a sparse dataframe LD-matrix
then save it to a zipped pickle
plink_ld = pd.read_csv(plink_ld, sep = "\s+")
mat_ld = plink_ld.pivot(index='SNP_A', columns='SNP_B', values='R').to_sparse(fill_value=0)
def generate_genome_matrices(region_files, reffolder, folder_output):
regions = pd.read_csv(region_files)
for reg in region_files.iterrows():
# input reference panel file
fi_ref = "{0}/{1}.eur.1pct".format(reffolder, reg[1]['chr'])
# Compute the LD correlation with LD
launch_plink_ld(reg[1]['start'], reg[1]['stop'], reg[1]['chr'], fi_ref, folder_output)
fi_plink = "{0}/{1}_{2}_{3}.ld".format(folder_output, reg[1]['chr'], reg[1]['startpos'], reg[1]["endpos"])
fo_mat = "{0}/{1}_{2}_{3}.mat".format(folder_output, reg[1]['chr'], reg[1]['startpos'], reg[1]["endpos"])
#transform plink output to a compressed generate_sparse_matrix
generate_sparse_matrix(fi_plink, fo_mat)
from setuptools import setup, find_packages
description='Preprocess GWAS summary statistic for JASS',
author='Hanna Julienne',
#package_dir = {'': 'jass_preprocessing'},
packages= ['impute_jass'],
package_data = {'impute_jass':'data/*.csv'},
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment