def getStudies(studyDir): studyLst = os.listdir(studyDir) studies = {} for entry in studyLst: if entry.startswith("."): continue studies[entry] = study.getStudy(entry, studyDir) return studies
fsPair = [] postiHS = set() postxpEHH = set() doneIBDs = False donePCAs = False doneAdmix = False doneFs = False donePlugs = [] for command in commands: logging.info("command %s", command) toks = command.split("\t") if len(toks) < 3: continue studyName = toks[0] if not myStudy or myStudy.name != studyName: myStudy = study.getStudy(studyName) mkdir(myStudy.cacheDir) map_individuals(myStudy) myStudy.configStudy() force = toks[1] == "True" op = toks[2] if op == "pop": doPop(myStudy, force, toks[3]) elif op == "IBD": ibds.append((myStudy, force, toks[3])) elif op == "IBDEnd": doneIBDs = True doIBDs(ibds) ibds = [] elif op == "pca": pcas.append((myStudy, force, toks[3]))
import sys import os import MEGA from MEGA import karyo, plink, study if len(sys.argv) != 4: print("python %s indlist outfile study") sys.exit(-1) lexec = MEGA.executor indlist = sys.argv[1] outfile = sys.argv[2] studyName = sys.argv[3] s = study.getStudy(studyName) s.configStudy() plink.getIndivs(indlist, "tmp" + outfile, lexec=lexec, acceptFun=karyo.acceptAdmix, suf=s.admix.sampSuff) lexec.submit("plink", "--silent --noweb --bfile tmp%s --geno %f --mind %f --make-bed --out tmp2%s" % (outfile, s.admix.minGeno, s.admix.minInd, outfile)) lexec.wait(True) size, step = karyo.ldTest lexec.submit("plink", "--silent --noweb --bfile tmp2%s --indep-pairwise %d %d 0.1" % (outfile, size, step)) lexec.wait(True) if os.path.exists("plink.prune.in"): lexec.submit("plink", "--silent --noweb --bfile tmp2%s --extract plink.prune.in --make-bed --out %s-auto" % (outfile, outfile)) lexec.wait(True) os.remove("plink.prune.in") else: lexec.submit("plink", "--silent --noweb --bfile tmp2%s --make-bed --out %s-auto" % (outfile, outfile))
import argparse import os import MEGA from MEGA import karyo, plink, study parser = argparse.ArgumentParser() parser.add_argument("study", help="Study") parser.add_argument("indList", help="Individual list (fam, id)") args = parser.parse_args() myStudy = study.getStudy(args.study) myStudy.configStudy() def ped2eigen(inPref, outPref): f = open(inPref + ".ped") iw = open(inPref + ".ind", "w") snps = {} for l in f: toks = l.rstrip().split("\t") indId = toks[0] + "/" + toks[1] iw.write(indId + "\tU\tControl\n") for li in range(len(toks[6:])): a1, a2 = tuple(toks[li + 6].split(" ")) if a1 not in ["1", "2"] or a2 not in ["1", "2"]: snps[li] = snps.get(li, "") + "9" else: snps[li] = snps.get(li, "") + str(int(a1 == "1") + int(a2 == "1")) iw.close()