From 9a9e512e35ccd514e435317aa00589b6c85a0f62 Mon Sep 17 00:00:00 2001
From: Gauthier Roy <gauthierroy83@gmail.com>
Date: Tue, 28 Jan 2020 09:10:05 +0100
Subject: [PATCH] fixes in Individu

---
 .DS_Store                           | Bin 0 -> 6148 bytes
 __pycache__/RotTable.cpython-36.pyc | Bin 0 -> 2085 bytes
 __pycache__/Traj3D.cpython-36.pyc   | Bin 0 -> 1976 bytes
 individu.py                         |  29 +++++++++++++++++-----------
 4 files changed, 18 insertions(+), 11 deletions(-)
 create mode 100644 .DS_Store
 create mode 100644 __pycache__/RotTable.cpython-36.pyc
 create mode 100644 __pycache__/Traj3D.cpython-36.pyc

diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..ce584036d310ff852c50dff6063d64ba8881c0a3
GIT binary patch
literal 6148
zcmZQzU|@7AO)+F(5MW?n;9!8zOq>i@0Z1N%F(jFwA|RR(Y(_3aDnlMa2}5yGIaF?x
z8r&fOiaSn*6o!0;WQI}(r1&c?NXp4iVqjo6nN*OISzKaZaGjBfnT3^&or8mmgNv6d
zHaH`{Jh&vWq_o&6u_zkE3rH-<NP@CM^7C`x?8Kz7%+&ID0TJi?ypqJsywoC)^5D#r
z)TG3snDETJl>Bn1{L;LXVz4<-2@VcU4$gQ1iRx-oQ*#{!V-v$#9ffLha|0a(6JxX5
zT22meRYP0Pgxt!i>YCcRnUIiXWQ5QR{7@Q3&0=6+z~a@i;G(>o{JeBfrhq9OrAI?x
zGz3ONV0ecBw4mhR9^T#@_1$O)jD`RiApj~L6rjx_2PoYDp+Qm%j0_B*<|Bw^ff*0!
z2QYxdKw3dGNGpg2X=PvpvA|}4wK6a=K(sP~yCEQbpe_lB25V<vWB_YtU}OMmXMnZt
z7$Mpj7$Mpj7@<8BMu>I>Mu>I>Mu>Kp^G4~>5Eu;sXb3PvXaP|D@5;b{tN#yCHA;?#
zz-R~z%Mf5>aS3*D0$0k|{RgURLG@_@R2o$KgQ{ajP(6(h16RdNkO4&rs4%Fy2WbV-
Y;HsFB0aBBXHUwZHG)j+#0R2M%08JrN;s5{u

literal 0
HcmV?d00001

diff --git a/__pycache__/RotTable.cpython-36.pyc b/__pycache__/RotTable.cpython-36.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..dbb2e4134f6503a6df95598a7c5505e659fc5c85
GIT binary patch
literal 2085
zcmXr!<>g|2r60GGoq^#o0}^0nU|?`yU|=Y=V_;xNVMt-jVTgjzj8TkWK2sEvJ3|Un
z3UdoX3Uf146mu$bGeZ<hDr+iB7F!C7BttVJBSQ*fFoP!ROOU~S$siJjMPcU4F)}cu
zGJwpCVoG6*Vg{L*Vv@p|!j{6G&X&TF!kNOA!kxkc=JBTRrSPW+qzHm}LMg&2>?xcn
z{9v9)ifD>yig=0ym?xPcm1346lOhG?$)?DGRSJN4AXCiYrpTu#q$s9{rznBtlv8+8
zR8mw^)WAHDDbjFLKyI;syG1=k9Bd}Uc91ESa8p2T5reyhDTO)33hpC~IRa5EDVix-
zEeuhtDcUJIEeug?DY_|oEeuiYDf%e}Eeuf{DTXOVEeuhdDaOGJn%1{Cg7Qm35|eUL
zt7L;x3yM;UQ}arS6-qKv6^imp5=%1k^At)z(&_z&zG}prcXUWUdj<q#9A3_1U|>k!
zA=mmkaK}3PbYn1hY+u9(5(aaO9UanV%>;pu_AmQE!VtY*>|e5icwj}FtzkwgIJ{&6
z2}2_Chy6=XN=XOv8th?;SR5cC4vtU;1CPT?P;!F0>y7<OC6FQCG-CP>U3GwIV{mwB
z2@-x22y*a7d#Gw#n7ot&!~?}nP=>Ln!^;W=28NexAVLE~YylYncC+zk`}8z0_+tN3
zg@J)VQ{Wbpqhl14qjMCKqx&r;$B-x{XUAJi&dyOx&hAl6&LL4u?v7DR?#@w6?(R`c
z?jcc3A&yZ@A<j`uA?{I3AtA}2U<3IT6a*{`3=GboEMmpLz>vvM!w}C<p;p3}#pJ>e
zD^tq|V%0E8f-_AklO#h8Ll#2~qYXnLUpR=(+|0npkirnmpvmM{#13*D%Pr2J{E~QZ
zJQsm1xFs78i}(0={~%9yPd`VW_#pp~_z*`YAJ<zfi8-l>noPG?ic@paZt<jK=9MPr
zq~@1orlhW9D3V}cVE7urz`&p%TAW%`te>7(T9T2OT2z!@sqd1XT$&3?L;8k}@y@~e
zAsMM>8uN=XQx#H5719%PQ}t6bb+b}SD|A!K@^eZ-2`n!$vnaJ#ALbyvg34PQ@$s2?
znI-Y@(x6b_0EG)98zT>+3}clbTpdgeJm^5_g$ovRX$%Yu6$vE_S&S|Wv0=506#*qo
zDU8h^o=YuL4MP?)C<tqqSQ#W4N?5X3v)DjtAz~>^;tY}u+zjX<Da^f0<_ydXHVlPg
z;S7Zw;gDcv@hbwQ5=dAxMKR~(mq)Q=WTt0mvV%jrNQ8lb;TCIAVqSV`kuaE@SDIT;
z8O2tVn3s~D8^vClmzkDdl&i^HB*wtNP$Ujg!<Y#UXb2$*5(brQpu}AavW<a}hmnu5
ziWeRnpeRcQMJ_0`Kr{%0QxP8n1KcYqjFQll0ZMS1Ob7>RG9fI7SPF{gB9P6uIMP!~
zLdr9XON>DA0Wz2YIVNDTBv}8FRO`c2Q_@pSaaj+RCBb@dgc0j|p7hibm&~HnWKe3g
zKyrd8Jn)fK_+_U3|NlSp0EjsL|NsA&|3Iul5YYi5K(d-#pfsMBn420Oe~T+VJ~uz5
zGzY}yiH|QVP0WGHu*b)z<R{0+gHuqE6f6-G$$?l3AVLvDfFlY)fT9c>ub@)4Scidu
zfrF8SnU4`46k+CI=Mdmv=3oZvED`{f8|+b>xrrqir6rj;#kW{M%pw_(eV_yo#Rjey
s3~#X(6lLa>fYUWnvH`mW<d9n&HW1I*fnvNEls`EbIT$&Z_$=5M0qAo3Z2$lO

literal 0
HcmV?d00001

diff --git a/__pycache__/Traj3D.cpython-36.pyc b/__pycache__/Traj3D.cpython-36.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..ecd80201694553fe02c71577fca8c84a37602d91
GIT binary patch
literal 1976
zcmXr!<>gAauNNo6#lY~G0SPcOFfceUFfbJRFfcHrFr+Z%FhoIU#wbQGpDBtNOtWOM
zMzN(Zq%h^M=W;}GFoIMu=Wyn7MR7ASxHF`%q_DOyq_8$KMe(FC1~X`~y#!g~r^$GW
z&9Nf2*w{sr@fLS-eojtma!F=>UU4!=8irY6&ah!%U`S;ESslfc!WhMz%96#J#g-z_
z%oxR<!j{6`!Vtxg!jZz+!Vtxo!j;0^!Vtxk!jr<=!Vtxs!WYb-DR_%5q$n}V*riG;
zD7By{wKz4eq*x(Q!PrHiq$n{fHMu0esPZ|?-gK_(iwkVIxE<1=A`Vcg5BAB7P$3Y_
z#K6Gd3<@SL1_p*qh8l)=h7^Wi22Dng|M=q}HpW9~O~zX+#i==ID;bJ785kJ8hA}WO
z=!X`k78UEKCzh6EWTqAs<yY#v<R_Qrf?TI>=os%DtRIq*dZsbIC^J<drBoq3F*j8|
zHB&b$wX{MvwJblU6clKAiJ3*I#rhEI^a?6(am2@G=4F<|#|wcR2XZ9?V--JC9wvw4
z6OeDfK4D{EV5nipg88C|oq>Ttld*_{fdS%du-l73{=LPXo>~GjQxwS(K9GR1iyl-e
z8I+Jf0S3|!G74;m6e9ye2}2fRGea$N2}2fB3Rg2@I%5q(JaZ;PElVatEo;TM5|$L^
z64n~VX2xbF7lzm;wQMzvHEb!&5)6_IAeJP9I72Oa4SNksHha+(kZD<LCG1%oHB4EY
zHSEodDJ;?q&5S9mDQwNmH7qskHeeg!YPi5^*d^d<P)y(k$#O&FIGULSko2ao*Dz&)
zbtCi&Fx0SuY^Y(bVaVbUU;x=C$p8@r(=0XYU>Yo23sS|L#S2!=oWco`X=Y?(DAWsw
zq#kZRXli3%fHFSVzXV0lOHfR{WMN=nxWyRtG73yb6oF(kS&Dc;F@zxaK=H<Ri!(Q|
zB%`z>GpG0#n{Q%CQD((0wlHvN2gmF!)}q9`^we9-IjMQKID+y^5<%(d77Iw%E%u_s
zl+47u;#(Y`*euU1F1f{%o?7CPSp><eVDa$Ol=ReFg3vS`AMfiJ666^XA99N=v7jI|
zFGZ6BoOYtvQ}Pnyi&G14aTev5#Fr!{<)lXOl;oEr=EUcM-4(?Rrjt{P<AbWAxZs??
zTa1~vcv3R+N|SR^^Gh;QQXxr@6Xah=I!w;bEhsHXl>ntf5W&FA!OX|R!pOoT!X(1P
z!KlKL#G$~*!CVDPolp(QpzwsHPEc6`PMr-5kknbjkj2!@Sj&_S%GXRaOeqX046RHl
zjA=}g3~(M33Xd7YV`gAtsAaBYsbwu;&SGh1sAa2R%VGr;geh#jOrSKI#a07KldR3m
zj0`2rS?tXWV44Gz+Cc?qFoPz$A2?o%_(8rDU|?W)na{w$5XEGiqRAM=RZx@<DzY;3
z^E5ecG36E9VofY6O00xLDRV(iNfcXJW_oE+Y7}>3N=kfjX;MK>en}Jyh`hy8oRME1
z#a^6PmYSBC4vn8%9BG+3sd<UHskfLbDywcWR@`E&yv0}*#hjLzev2uw0zJ@KQi>AG
ztwA9UavcLB4<j3+2_pw1A0r<l2V)gCv>X7b@_P;`PJi2LvJ`=W8A2F=yap<6G<iS;
z7Rc`S_*-1@@wxdar8%kb@wa&5;|og@bD%Qp@$o77$?@?;pz@|j43zpow&WG(fD>(z
z0?0gW5Wxc?R6&FxhybS)1OZAjMW9RsQdSHiI2c)&d6+nuIhZ+=!7`e>5KE*%mayiP
z<`z^Ise{5_FgLLT6o@&QNqPm9AXXF`gf7wq$&2I`<iwZc=jUW+mK5vdf)p616oHZ%
xI7Nf_IhjdCpi=P`Q*JWYGNh0NI}+r+TO2l!P_P5(g*uXhnS+swk%y6o833~V(Xs#l

literal 0
HcmV?d00001

diff --git a/individu.py b/individu.py
index 02c676c..d01e39b 100644
--- a/individu.py
+++ b/individu.py
@@ -1,33 +1,40 @@
-from table_rotation import table_rotation
-from traj3D import *
+from RotTable import RotTable
+from Traj3D import *
 import numpy as np
 from math import sqrt
 
 class Individu():
 
-    def __init__(self, rot_table):
-        self.rot_table = rot_table
+    def __init__(self, table):
+        self.table = table
         self.score = None
     
     def evaluate(self, brin):
         traj = Traj3D()
-        traj.compute(brin, self.rot_table)
+        traj.compute(brin, self.table)
         traj_array = np.array(traj.getTraj())
 
-        first_nucleotide = traj_array[0, :]
-        last_nucleotide = traj_array[-1, :]
-        distance = sqrt(sum((last_nucleotide - last_nucleotide) ** 2))
+        first_nucleotide = traj_array[0, 0:3]
+        last_nucleotide = traj_array[-1, 0:3]
+        distance = sqrt(sum((first_nucleotide - last_nucleotide) ** 2))
 
         first_name = brin[0]
         last_name = brin[-1]
 
-        rot_computed = rot_table[last_name+first_name]
-        rot_traj = first_name - last_name
+        rot_computed = self.table.Rot_Table[last_name+first_name]
+        rot_traj = first_nucleotide - last_nucleotide
+        print(rot_traj)
+        print(rot_computed)
         diff_angle = sum(abs(rot_computed - rot_traj))
 
         self.score = 1/(distance + diff_angle)
         
     
     def mutation(self):
-
+        mutation = 0
         return mutation
+
+table = RotTable()
+test = Individu(table)
+test.evaluate("AAAGGATCTTCTTGAGATCCTTTTTTTCTGCGCGTAATCTGCTGCCAGTAAACGAAAAAACCGCCTGGGGAGGCGGTTTAGTCGAA")
+print(test.score)
-- 
GitLab