about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPjotr Prins2015-03-09 16:47:33 +0300
committerPjotr Prins2015-03-09 16:47:33 +0300
commit749cf072da1849d926ab4d74e288ddf582e84c5a (patch)
tree2d79b136bb77309178508cce671bc7495217c105
parent02cb9710a83bc81abe198cb089dc5a70baf1b657 (diff)
downloadgenenetwork2-749cf072da1849d926ab4d74e288ddf582e84c5a.tar.gz
Write genotype file non-transposed
-rw-r--r--wqflask/wqflask/my_pylmm/pyLMM/convertlmm.py12
-rw-r--r--wqflask/wqflask/my_pylmm/pyLMM/plink.py19
2 files changed, 16 insertions, 15 deletions
diff --git a/wqflask/wqflask/my_pylmm/pyLMM/convertlmm.py b/wqflask/wqflask/my_pylmm/pyLMM/convertlmm.py
index a3728bd2..f35cc47c 100644
--- a/wqflask/wqflask/my_pylmm/pyLMM/convertlmm.py
+++ b/wqflask/wqflask/my_pylmm/pyLMM/convertlmm.py
@@ -148,17 +148,17 @@ if options.geno:
     wrln("# Genotype format version 1.0")
     wrln("# Individuals = "+str(num_inds))
     wrln("# Phenotypes = "+str(len(num_snps)))
+    for i in range(len(num_snps)):
+        wr("\t"+str(i+1))
+        wr("\n")
 
+    m = []
     def out(i,x):
         wr(str(i)+"\t")
-        lst = [str(v) for v in x]
-        wr("\t".join(lst))
+        wr("\t".join(x))
         wr("\n")
         
-    snps = plink.readbed(options.geno+'.bed',num_inds, out)
-    # for i in range(num_snps):
-    #     wr("\t"+str(i+1))
-    #     wr("\n")
+    snps = plink.readbed(options.geno+'.bed',num_inds, ('A','H','B','NA'), out)
     # for i in range(count):
     #     wr("\t".join(phenos[i]))
     #     wr("\n")
diff --git a/wqflask/wqflask/my_pylmm/pyLMM/plink.py b/wqflask/wqflask/my_pylmm/pyLMM/plink.py
index 4ad2c5f7..7bd2df91 100644
--- a/wqflask/wqflask/my_pylmm/pyLMM/plink.py
+++ b/wqflask/wqflask/my_pylmm/pyLMM/plink.py
@@ -66,25 +66,26 @@ def readbim(fn):
 # http://pngu.mgh.harvard.edu/~purcell/plink2/formats.html#fam
 # http://pngu.mgh.harvard.edu/~purcell/plink2/formats.html#bim
 
-def readbed(fn,inds,func=None):
+def readbed(fn,inds,encoding,func=None):
 
     # For every SNP block fetch the individual genotypes using values
     # 0.0 and 1.0 for homozygous and 0.5 for heterozygous alleles
     def fetchGenotypes(X):
-        D = { \
-              '00': 0.0, \
-              '10': 0.5, \
-              '11': 1.0, \
-              '01': float('nan') \
-           }
-  
+        # D = { \
+        #      '00': 0.0, \
+        #      '10': 0.5, \
+        #      '11': 1.0, \
+        #      '01': float('nan') \
+        #   }
+
+        Didx = { '00': 0, '10': 1, '11': 2, '01': 3 }
         G = []
         for x in X:
             if not len(x) == 10:
                 xx = x[2:]
                 x = '0b' + '0'*(8 - len(xx)) + xx
             a,b,c,d = (x[8:],x[6:8],x[4:6],x[2:4]) 
-            L = [D[y] for y in [a,b,c,d]]
+            L = [encoding[Didx[y]] for y in [a,b,c,d]]
             G += L
         G = G[:inds]
         # G = np.array(G)