Beispiel #1
0
def getStudies(studyDir):
    studyLst = os.listdir(studyDir)
    studies = {}
    for entry in studyLst:
        if entry.startswith("."):
            continue
        studies[entry] = study.getStudy(entry, studyDir)
    return studies
Beispiel #2
0
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))
Beispiel #4
0
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()