def test_calch2(self): logging.info("Leap test_calch2") related_file = os.path.abspath(os.path.join(self.gold_dir, 'dataset1.related')) bed, _ = leapUtils.loadData(self.bedbase, None, self.phen_fn, loadSNPs=False) keepArr = leapUtils.loadRelatedFile(bed, related_file) for i in range(1,11): h2_file = os.path.abspath(os.path.join(self.gold_dir, 'dataset1_nochr{0}.h2'.format(i))) eigen_file = os.path.abspath(os.path.join(self.tempout_dir, 'dataset1_nochr{}.npz'.format(i))) eigen = np.load(eigen_file) extractSim = 'dataset1/extracts/nochr{0}_extract.txt'.format(i) expected_h2 = np.loadtxt(h2_file, usecols=[0]) h2 = leapMain.calcH2(self.phen_fn, 0.001, eigen, keepArr=keepArr, h2coeff=1.0) assert np.abs(h2-expected_h2)<1e-5, 'Incorrect heritability estimated'
def test_probit(self): logging.info("Leap test_probit") related_file = os.path.abspath(os.path.join(self.gold_dir, 'dataset1.related')) bed, _ = leapUtils.loadData(self.bedbase, None, self.phen_fn, loadSNPs=False) keepArr = leapUtils.loadRelatedFile(bed, related_file) for i in range(1,11): h2_file = os.path.abspath(os.path.join(self.gold_dir, 'dataset1_nochr{0}.h2'.format(i))) h2 = np.loadtxt(h2_file, usecols=[0]) eigen_file = os.path.abspath(os.path.join(self.tempout_dir, 'dataset1_nochr{}.npz'.format(i))) eigen = np.load(eigen_file) ref_file = os.path.abspath(os.path.join(self.gold_dir, 'dataset1_nochr{}.liabs'.format(i))) extractSim = 'dataset1/extracts/nochr{0}_extract.txt'.format(i) bed, _ = leapUtils.loadData(self.bedbase, extractSim, self.phen_fn, loadSNPs=True) output_file = os.path.abspath(os.path.join(self.tempout_dir, 'dataset1_nochr{}'.format(i))) leapMain.probit(bed, self.phen_fn, h2=h2, prev=0.001, eigen=eigen, outFile=output_file, keepArr=keepArr, hess=False) self.compare_pheno(ref_file, output_file+'.liabs')
bed, phe = leapUtils.loadData(args.bfilesim, args.extractSim, args.pheno, args.missingPhenotype, loadSNPs=(args.eigen is None), standardize=True) #Read/create eigendecomposition if (args.eigen is not None): eigen = np.load(args.eigen) else: import eigenDecompose eigen = eigenDecompose.eigenDecompose(bed) #Compute relatedness if (args.relCutoff <= 0): keepArr = np.ones(bed.iid.shape[0], dtype=bool) else: if (args.related is None): bed2 = bed if (args.extractSim is not None or args.eigen is not None): bed2, _ = leapUtils.loadData(args.bfilesim, None, args.pheno, args.missingPhenotype, loadSNPs=True) keepArr = leapUtils.findRelated(bed2, args.relCutoff) else: keepArr = leapUtils.loadRelatedFile(bed, args.related) leapMain.calcH2(phe, args.prev, eigen, keepArr, args.numRemovePCs, args.h2coeff, args.lowtail == 1)
#Read/create eigendecomposition if (args.eigen is not None): eigen = np.load(args.eigen) else: import eigenDecompose eigen = eigenDecompose.eigenDecompose(bed) #Compute relatedness if (args.relCutoff <= 0): keepArr = np.ones(bed.iid.shape[0], dtype=bool) else: if (args.related is None): bed2 = bed if (args.extractSim is not None or args.eigen is not None): bed2, _ = leapUtils.loadData(args.bfilesim, None, args.pheno, args.missingPhenotype, loadSNPs=True) keepArr = leapUtils.findRelated(bed2, args.relCutoff) else: keepArr = leapUtils.loadRelatedFile(bed, args.related) #Add significant SNPs as fixed effects covar = None if (args.resfile is not None): bed_fixed, _ = leapUtils.loadData(args.bfile, args.extract, args.pheno, args.missingPhenotype, loadSNPs=True) covar = leapUtils.getSNPCovarsMatrix(bed_fixed, args.resfile, args.pthresh, args.mindist) print 'using', covar.shape[1], 'SNPs as covariates' #Read covar file if (args.covar is not None): covarsMat = leapUtils.loadCovars(bed, args.covar) print 'Read', covarsMat.shape[1], 'covariates from file' if (covar is None): covar = covarsMat else: covar = np.concatenate((covar, covarsMat), axis=1)