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) #Read covar file if (args.covar is not None): covar = leapUtils.loadCovars(bed, args.covar) covar -= covar.mean() covar /= covar.std() print 'Read', covar.shape[1], 'covariates from file' else: covar = None leapMain.calcH2(phe, args.prev, eigen, keepArr, covar, args.numRemovePCs, args.lowtail == 1)
#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, covar) print 'Read', covarsMat.shape[1], 'covariates from file' if (covar is None): covar = covarsMat else: covar = np.concatenate((covar, covarsMat), axis=1) if (args.thresholds is not None): thresholds = np.loadtxt(args.thresholds, usecols=[0]) else: thresholds = None leapMain.probit(bed, phe, args.h2, args.prev, eigen, args.out, keepArr, covar, thresholds, args.nofail==1, args.numSkipTopPCs, args.mineig, args.hess==1, args.recenter==1, args.maxFixedIters, args.epsilon)
#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) if (args.thresholds is not None): thresholds = np.loadtxt(args.thresholds, usecols=[0]) else: thresholds = None leapMain.probit(bed, phe, args.h2, args.prev, eigen, args.out, keepArr, covar, thresholds, args.nofail==1, args.numSkipTopPCs, args.mineig, args.hess==1, args.recenter==1, args.maxFixedIters, args.epsilon, treatFixedAsRandom=args.treatFixedAsRandom>=1)
parser.add_argument('--bfile', metavar='bfile', default=None, help='Binary plink file to test') parser.add_argument('--pheno', metavar='pheno', default=None, help='Phenotype file in Plink format') parser.add_argument('--eigen', metavar='eigen', default=None, help='Eigendecompositon file') parser.add_argument('--h2', metavar='h2', type=float, default=None, help='h2 value') parser.add_argument('--extractSim', metavar='extractSim', default=None, help='SNPs subset to use') parser.add_argument('--extract', metavar='extract', default=None, help='SNPs subset to test') parser.add_argument('--out', metavar='out', default=None, help='output file') parser.add_argument('--covar', metavar='covar', default=None, help='Covariates file') parser.add_argument('--missingPhenotype', metavar='missingPhenotype', default='-9', help='identifier for missing values (default: -9)') args = parser.parse_args() if (args.bfile is None): raise Exception('bfile must be supplied') if (args.bfilesim is None): raise Exception('bfilesim must be supplied') if (args.pheno is None): raise Exception('phenotype file must be supplied') if (args.out is None): raise Exception('output file name must be supplied') if (args.h2 is None): raise Exception('h2 must be supplied') #Read bfile and pheno file bedSim, _ = leapUtils.loadData(args.bfilesim, args.extractSim, args.pheno, args.missingPhenotype, loadSNPs=True) bedTest, _ = leapUtils.loadData(args.bfile, args.extract, args.pheno, args.missingPhenotype, loadSNPs=True) #Read covariates if (args.covar is not None): covar = leapUtils.loadCovars(bed, covar) print 'Read', covarsMat.shape[1], 'covariates from file' else: covar = None leapMain.leapGwas(bedSim, bedTest, args.pheno, args.h2, args.out, eigenFile=args.eigen, covar=covar)