Skip to content
Snippets Groups Projects
Commit e4824646 authored by Muller Sacha's avatar Muller Sacha
Browse files

Merge branch 'master' of...

parents a9bf52e7 9915f56d
No related branches found
No related tags found
No related merge requests found
No preview for this file type
File deleted
File deleted
No preview for this file type
File deleted
...@@ -18,7 +18,7 @@ ROT_TABLE = {\ ...@@ -18,7 +18,7 @@ ROT_TABLE = {\
"TA": [36, 0.9, 0, 1.1, 2, 0],\ "TA": [36, 0.9, 0, 1.1, 2, 0],\
"TC": [36.9, 5.3, -120, 0.9, 6, 0],\ "TC": [36.9, 5.3, -120, 0.9, 6, 0],\
"TG": [34.5, 3.5, 64, 0.9, 34, 0],\ "TG": [34.5, 3.5, 64, 0.9, 34, 0],\
"TT": [35.62, 7.2, 154, 0.06, 0.6, 0]\ "TT": [35.62, 7.2, -154, 0.06, 0.6, 0]\
} }
...@@ -26,30 +26,71 @@ def croisement_un_point(parent1, parent2): ...@@ -26,30 +26,71 @@ def croisement_un_point(parent1, parent2):
enfant1 = Individu(RotTable()) enfant1 = Individu(RotTable())
enfant2 = Individu(RotTable()) enfant2 = Individu(RotTable())
comp = 0 comp = 0
point_crois= numpy.random.random_integers(0,16) point_crois= numpy.random.random_integers(0,8)
for doublet in ROT_TABLE: for doublet in ROT_TABLE:
if doublet == "GA":
break
if comp < point_crois: if comp < point_crois:
enfant1.table.rot_table[doublet] = parent1.table.rot_table[doublet] enfant1.table.rot_table[doublet] = parent1.table.rot_table[doublet]
correspondent_doublet1 = enfant1.table.corr()[doublet]
enfant1.table.rot_table[correspondent_doublet1] = parent1.table.rot_table[correspondent_doublet1]
enfant1.table.rot_table[correspondent_doublet1][2] *= -1
enfant2.table.rot_table[doublet] = parent2.table.rot_table[doublet] enfant2.table.rot_table[doublet] = parent2.table.rot_table[doublet]
correspondent_doublet2 = enfant2.table.corr()[doublet]
enfant2.table.rot_table[correspondent_doublet2] = parent2.table.rot_table[correspondent_doublet2]
enfant2.table.rot_table[correspondent_doublet2][2] *= -1
else : else :
enfant1.table.rot_table[doublet] = parent2.table.rot_table[doublet] enfant1.table.rot_table[doublet] = parent2.table.rot_table[doublet]
correspondent_doublet1 = enfant1.table.corr()[doublet]
enfant1.table.rot_table[correspondent_doublet1] = parent2.table.rot_table[correspondent_doublet1]
enfant1.table.rot_table[correspondent_doublet1][2] *= -1
enfant2.table.rot_table[doublet] = parent1.table.rot_table[doublet] enfant2.table.rot_table[doublet] = parent1.table.rot_table[doublet]
correspondent_doublet2 = enfant2.table.corr()[doublet]
enfant2.table.rot_table[correspondent_doublet2] = parent1.table.rot_table[correspondent_doublet1]
enfant2.table.rot_table[correspondent_doublet2][2] *= -1
comp += 1 comp += 1
return enfant1, enfant2 return enfant1, enfant2
def croisement_deux_points(parent1, parent2): def croisement_deux_points(parent1, parent2):
enfant1 = RotTable() enfant1 = Individu(RotTable())
enfant2 = RotTable() enfant2 = Individu(RotTable())
comp = 0 comp = 0
point_crois1= numpy.random.random_integers(0,16) point_crois1= numpy.random.random_integers(0,8)
point_crois2= numpy.random.random_integers(0,16) point_crois2= numpy.random.random_integers(0,8)
for doublet in ROT_TABLE: for doublet in ROT_TABLE:
if comp < min(point_crois1,point_crois2) or comp > max(point_crois1,point_crois2): if comp < min(point_crois1,point_crois2) or comp > max(point_crois1,point_crois2):
enfant1.rot_table[doublet] = parent1.rot_table[doublet] enfant1.table.rot_table[doublet] = parent1.table.rot_table[doublet]
enfant2.rot_table[doublet] = parent2.rot_table[doublet] correspondent_doublet1 = enfant1.table.corr()[doublet]
enfant1.table.rot_table[correspondent_doublet1] = parent1.table.rot_table[correspondent_doublet1]
enfant1.table.rot_table[correspondent_doublet1][2] *= -1
enfant2.table.rot_table[doublet] = parent2.table.rot_table[doublet]
correspondent_doublet2 = enfant2.table.corr()[doublet]
enfant2.table.rot_table[correspondent_doublet2] = parent2.table.rot_table[correspondent_doublet2]
enfant2.table.rot_table[correspondent_doublet2][2] *= -1
else : else :
enfant1.rot_table[doublet] = parent2.rot_table[doublet] enfant1.table.rot_table[doublet] = parent2.table.rot_table[doublet]
enfant2.rot_table[doublet] = parent1.rot_table[doublet] correspondent_doublet1 = enfant1.table.corr()[doublet]
enfant1.table.rot_table[correspondent_doublet1] = parent2.table.rot_table[correspondent_doublet1]
enfant1.table.rot_table[correspondent_doublet1][2] *= -1
enfant2.table.rot_table[doublet] = parent1.table.rot_table[doublet]
correspondent_doublet2 = enfant2.table.corr()[doublet]
enfant2.table.rot_table[correspondent_doublet2] = parent1.table.rot_table[correspondent_doublet1]
enfant2.table.rot_table[correspondent_doublet2][2] *= -1
comp += 1 comp += 1
return enfant1, enfant2 return enfant1, enfant2
\ No newline at end of file
# parent1 = Individu(RotTable())
# parent2 = Individu(RotTable())
# print("parent1: ", parent1.table.rot_table)
# print("parent2: ", parent2.table.rot_table)
# enfant1, enfant2 = croisement_un_point(parent1, parent2)
# print("enfant1: ", enfant1.table.rot_table)
# print("enfant2: ", enfant2.table.rot_table)
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment