|
HB |
NA |
HE |
HA |
|
Genotype |
Letter Code |
Number Code |
PLINK Code |
HB |
00 |
|
|
|
|
Homozygote B |
HB |
02 |
00 |
NA |
00 |
01 |
|
|
|
NA |
NA |
NA |
01 |
HE |
00 |
01 |
00 |
|
|
heterozygote |
HE |
01 |
10 |
HA |
00 |
01 |
11 |
11 |
|
Homozygote A |
HA |
00 |
11 |
|
|
|
|
|
|
|
|
|
|
|
02 |
NA |
01 |
00 |
|
|
|
|
|
02 |
00 |
|
|
|
|
|
|
|
|
NA |
00 |
01 |
|
|
|
|
|
|
|
01 |
00 |
01 |
00 |
|
|
|
|
|
|
00 |
00 |
01 |
11 |
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
00 |
01 |
10 |
11 |
|
|
|
|
|
00 |
00 |
|
|
|
|
|
|
|
|
01 |
00 |
01 |
|
|
|
|
|
|
|
10 |
00 |
01 |
00 |
|
|
|
|
|
|
11 |
00 |
01 |
11 |
11 |
|
|
|
|
|
def collapse(x, y):
if x == "00" or y == "00":
return "00"
elif x == "01" or y == "01":
return "01"
elif x == "11" or y == "11":
return "11"
elif x == "10" and y == "10":
return "00"
else:
raise Exception("Nonsense combination!")
# test collapse function
allfour = ["00", "01", "10", "11"]
for i in allfour:
for j in allfour:
res = collapse(i, j)
print(res, end=" ")
print()
# from random import randint
# xint = randint(0, 256)
# yint = randint(0, 256)
def collbyte(xbyte, ybyte):
x = "{:08b}".format(xbyte)
xstring = [x[i:i+2] for i in range(0, len(x), 2)]
y = "{:08b}".format(ybyte)
ystring = [y[i:i+2] for i in range(0, len(y), 2)]
collstring = [collapse(xstring[i], ystring[i]) for i in range(4)]
# fh.write("\n---------------------------------------------\n")
# fh.write("byte1: {}, binString1: {}".format(xbyte, x) + "\n")
# fh.write("byte2: {}, binString2: {}".format(ybyte, y) + "\n")
# fh.write(str(xstring) + "\n")
# fh.write(str(ystring) + "\n")
# fh.write(str(collstring) + "\n")
resbyte = int("".join(collstring), 2)
return resbyte
import numpy as np
collgen = np.zeros((256, 256), dtype=np.unsignedinteger)
with open("/tmp/collgen.csv", "w") as fh:
for i in range(256):
for j in range(256):
fh.write(str(collbyte(i, j)) + ", ")
fh.write("\n")
np.savetxt("/tmp/collgen.csv", collgen, delimiter=",")
# def checkbytes(xbyte, ybyte):
# if collbyte(xbyte, ybyte) != collgen[xbyte][ybyte]:
# print("Error!")
#
# for i in range(256):
# for j in range(256):
# checkbytes(i, j)