In [261]:
%load_ext autoreload
%autoreload 2
%matplotlib inline
import sys
sys.path.append('/Users/simon/git/lda/code/')
sys.path.append('/Users/simon/git/lda/gnps/')
The autoreload extension is already loaded. To reload it, use:
%reload_ext autoreload
In [262]:
from lda import VariationalLDA
Load the corpus
In [263]:
import pickle
In [264]:
prefix = '/Users/simon/git/lda/gnps/gnps_'
with open(prefix+'corpus.lda','r') as f:
corpus = pickle.load(f)
In [265]:
with open(prefix+'metadata.lda','r') as f:
metadata = pickle.load(f)
In [266]:
with open(prefix+'fragment_masses.lda','r') as f:
fragment_masses = pickle.load(f)
with open(prefix+'fragment_names.lda','r') as f:
fragment_names = pickle.load(f)
with open(prefix+'fragment_counts.lda','r') as f:
fragment_counts = pickle.load(f)
In [267]:
with open(prefix+'loss_masses.lda','r') as f:
loss_masses = pickle.load(f)
with open(prefix+'loss_names.lda','r') as f:
loss_names = pickle.load(f)
with open(prefix+'loss_counts.lda','r') as f:
loss_counts = pickle.load(f)
Set a threshold on the number of occurances of a feature
In [268]:
feat_thresh = 2
to_remove = []
for i,fragment_name in enumerate(fragment_names):
if fragment_counts[i]<feat_thresh:
to_remove.append(fragment_name)
for i,loss_name in enumerate(loss_names):
if loss_counts[i]<feat_thresh:
to_remove.append(loss_name)
print "Found {} to remove (of {})".format(len(to_remove),len(loss_names)+len(fragment_names))
Found 36881 to remove (of 57510)
In [269]:
instances_removed = 0
doc_pos = 0
sub_corpus = {}
for doc in corpus:
sub_corpus[doc] = {}
for word in corpus[doc]:
if not word in to_remove:
sub_corpus[doc][word] = corpus[doc][word]
doc_pos += 1
if len(sub_corpus[doc]) == 0:
del sub_corpus[doc]
if doc_pos % 1000 == 0:
print "Done doc {}".format(doc_pos)
Done doc 1000
Done doc 2000
Done doc 3000
Done doc 4000
Done doc 5000
In [270]:
with open(prefix+'sub_corpus.lda','w') as f:
pickle.dump(sub_corpus,f,-1)
In [271]:
n_words = {}
total = 0
for doc in sub_corpus:
n_words[doc] = len(sub_corpus[doc])
total += n_words[doc]
print "Average {} unique words per document".format(1.0*total/len(sub_corpus))
Average 66.9402087387 unique words per document
In [272]:
from lda import VariationalLDA
gnps_lda = VariationalLDA(sub_corpus,K=500,alpha=1,eta=0.1,update_alpha=True,normalise = 100)
Found 20629 unique words
Object created with 5653 documents
Normalising intensities
In [273]:
gnps_lda.run_vb(n_its = 100)
Initialising
Starting iterations
Iteration 0 (change = 567.696225611) (22.748078 seconds, I think I'll finish in 37.9134633333 minutes)
Iteration 1 (change = 22.6572508285) (20.298537 seconds, I think I'll finish in 33.49258605 minutes)
Iteration 2 (change = 16.2932976161) (22.037641 seconds, I think I'll finish in 35.9948136333 minutes)
Iteration 3 (change = 12.9047184667) (23.255546 seconds, I think I'll finish in 37.5964660333 minutes)
Iteration 4 (change = 10.8011579228) (21.543487 seconds, I think I'll finish in 34.4695792 minutes)
Iteration 5 (change = 9.40223166835) (22.079417 seconds, I think I'll finish in 34.9590769167 minutes)
Iteration 6 (change = 8.41700342279) (24.40558 seconds, I think I'll finish in 38.2354086667 minutes)
Iteration 7 (change = 7.70344957561) (19.795824 seconds, I think I'll finish in 30.6835272 minutes)
Iteration 8 (change = 7.20071723292) (18.616836 seconds, I think I'll finish in 28.5458152 minutes)
Iteration 9 (change = 6.92184732458) (17.991437 seconds, I think I'll finish in 27.2870127833 minutes)
Iteration 10 (change = 7.00126189739) (16.915676 seconds, I think I'll finish in 25.373514 minutes)
Iteration 11 (change = 7.55169873649) (17.660851 seconds, I think I'll finish in 26.1969289833 minutes)
Iteration 12 (change = 8.22793739105) (17.930232 seconds, I think I'll finish in 26.2976736 minutes)
Iteration 13 (change = 8.70553234054) (17.146462 seconds, I think I'll finish in 24.8623699 minutes)
Iteration 14 (change = 9.26055525273) (16.715399 seconds, I think I'll finish in 23.9587385667 minutes)
Iteration 15 (change = 9.98627565861) (16.987133 seconds, I think I'll finish in 24.0651050833 minutes)
Iteration 16 (change = 10.4941751401) (16.775942 seconds, I think I'll finish in 23.4863188 minutes)
Iteration 17 (change = 11.1223279183) (16.950166 seconds, I think I'll finish in 23.4477296333 minutes)
Iteration 18 (change = 12.2166376497) (16.826521 seconds, I think I'll finish in 22.9962453667 minutes)
Iteration 19 (change = 13.7880740585) (17.051304 seconds, I think I'll finish in 23.0192604 minutes)
Iteration 20 (change = 15.642825794) (16.67152 seconds, I think I'll finish in 22.2286933333 minutes)
Iteration 21 (change = 17.3301740461) (17.520017 seconds, I think I'll finish in 23.0680223833 minutes)
Iteration 22 (change = 19.0269101665) (18.192218 seconds, I think I'll finish in 23.6498834 minutes)
Iteration 23 (change = 20.4168422829) (17.0294 seconds, I think I'll finish in 21.8543966667 minutes)
Iteration 24 (change = 21.8596488103) (16.823286 seconds, I think I'll finish in 21.3094956 minutes)
Iteration 25 (change = 23.9506655065) (17.086523 seconds, I think I'll finish in 21.35815375 minutes)
Iteration 26 (change = 27.344576332) (17.385469 seconds, I think I'll finish in 21.4420784333 minutes)
Iteration 27 (change = 32.6579376151) (18.002188 seconds, I think I'll finish in 21.9026620667 minutes)
Iteration 28 (change = 38.602745757) (18.880074 seconds, I think I'll finish in 22.6560888 minutes)
Iteration 29 (change = 44.3065114192) (20.498441 seconds, I think I'll finish in 24.2564885167 minutes)
Iteration 30 (change = 51.2069385334) (20.463881 seconds, I think I'll finish in 23.8745278333 minutes)
Iteration 31 (change = 58.5892168425) (19.50927 seconds, I think I'll finish in 22.4356605 minutes)
Iteration 32 (change = 68.2468063782) (21.162626 seconds, I think I'll finish in 23.9843094667 minutes)
Iteration 33 (change = 81.2883584688) (23.086788 seconds, I think I'll finish in 25.7802466 minutes)
Iteration 34 (change = 97.2709673113) (24.019244 seconds, I think I'll finish in 26.4211684 minutes)
Iteration 35 (change = 109.66402553) (21.321873 seconds, I think I'll finish in 23.09869575 minutes)
Iteration 36 (change = 108.685614148) (21.010717 seconds, I think I'll finish in 22.4114314667 minutes)
Iteration 37 (change = 86.6724489792) (21.657107 seconds, I think I'll finish in 22.73996235 minutes)
Iteration 38 (change = 56.9707299227) (20.312775 seconds, I think I'll finish in 20.9898675 minutes)
Iteration 39 (change = 38.3233228257) (21.567462 seconds, I think I'll finish in 21.9269197 minutes)
Iteration 40 (change = 28.2497584567) (22.298629 seconds, I think I'll finish in 22.298629 minutes)
Iteration 41 (change = 20.5645209512) (23.817695 seconds, I think I'll finish in 23.4207334167 minutes)
Iteration 42 (change = 15.8460983455) (22.60335 seconds, I think I'll finish in 21.849905 minutes)
Iteration 43 (change = 12.6754744851) (22.833145 seconds, I think I'll finish in 21.69148775 minutes)
Iteration 44 (change = 10.2442381865) (21.877256 seconds, I think I'll finish in 20.4187722667 minutes)
Iteration 45 (change = 8.62146089729) (22.342042 seconds, I think I'll finish in 20.4802051667 minutes)
Iteration 46 (change = 7.45079365245) (22.009756 seconds, I think I'll finish in 19.8087804 minutes)
Iteration 47 (change = 6.55014259933) (21.804951 seconds, I think I'll finish in 19.26104005 minutes)
Iteration 48 (change = 5.92972555781) (22.396187 seconds, I think I'll finish in 19.4100287333 minutes)
Iteration 49 (change = 5.44189975167) (21.385742 seconds, I think I'll finish in 18.1778807 minutes)
Iteration 50 (change = 4.98244502906) (20.741499 seconds, I think I'll finish in 17.2845825 minutes)
Iteration 51 (change = 4.51884753898) (20.974828 seconds, I think I'll finish in 17.1294428667 minutes)
Iteration 52 (change = 3.99783577746) (20.314108 seconds, I think I'll finish in 16.2512864 minutes)
Iteration 53 (change = 3.54122527742) (23.452593 seconds, I think I'll finish in 18.37119785 minutes)
Iteration 54 (change = 3.12252484675) (22.966411 seconds, I think I'll finish in 17.6075817667 minutes)
Iteration 55 (change = 2.84446319505) (21.526212 seconds, I think I'll finish in 16.144659 minutes)
Iteration 56 (change = 2.60791475111) (20.435928 seconds, I think I'll finish in 14.9863472 minutes)
Iteration 57 (change = 2.44572733091) (20.780202 seconds, I think I'll finish in 14.8924781 minutes)
Iteration 58 (change = 2.31260778764) (22.518537 seconds, I think I'll finish in 15.7629759 minutes)
Iteration 59 (change = 2.21309758001) (20.723841 seconds, I think I'll finish in 14.16129135 minutes)
Iteration 60 (change = 2.12971939898) (20.146471 seconds, I think I'll finish in 13.4309806667 minutes)
Iteration 61 (change = 2.01502306312) (20.119187 seconds, I think I'll finish in 13.07747155 minutes)
Iteration 62 (change = 1.87530833263) (20.568536 seconds, I think I'll finish in 13.0267394667 minutes)
Iteration 63 (change = 1.77680084207) (20.426759 seconds, I think I'll finish in 12.5965013833 minutes)
Iteration 64 (change = 1.73272872883) (20.892121 seconds, I think I'll finish in 12.5352726 minutes)
Iteration 65 (change = 1.69977455956) (20.501464 seconds, I think I'll finish in 11.9591873333 minutes)
Iteration 66 (change = 1.61009378999) (20.378233 seconds, I think I'll finish in 11.5476653667 minutes)
Iteration 67 (change = 1.49865106727) (20.336919 seconds, I think I'll finish in 11.18530545 minutes)
Iteration 68 (change = 1.43985915178) (20.421411 seconds, I think I'll finish in 10.8914192 minutes)
Iteration 69 (change = 1.38978933427) (22.21129 seconds, I think I'll finish in 11.4758331667 minutes)
Iteration 70 (change = 1.32872879217) (20.613448 seconds, I think I'll finish in 10.306724 minutes)
Iteration 71 (change = 1.26314355188) (22.243351 seconds, I think I'll finish in 10.7509529833 minutes)
Iteration 72 (change = 1.2089483868) (21.140784 seconds, I think I'll finish in 9.8656992 minutes)
Iteration 73 (change = 1.17047180724) (20.733377 seconds, I think I'll finish in 9.33001965 minutes)
Iteration 74 (change = 1.14394864561) (22.001801 seconds, I think I'll finish in 9.53411376667 minutes)
Iteration 75 (change = 1.13088738987) (20.471461 seconds, I think I'll finish in 8.52977541667 minutes)
Iteration 76 (change = 1.12126038817) (20.21654 seconds, I think I'll finish in 8.086616 minutes)
Iteration 77 (change = 1.09591653785) (21.199432 seconds, I think I'll finish in 8.12644893333 minutes)
Iteration 78 (change = 1.05312170776) (22.98657 seconds, I think I'll finish in 8.428409 minutes)
Iteration 79 (change = 1.00715311317) (22.072757 seconds, I think I'll finish in 7.72546495 minutes)
Iteration 80 (change = 0.951931327596) (21.367485 seconds, I think I'll finish in 7.122495 minutes)
Iteration 81 (change = 0.893923709596) (20.341765 seconds, I think I'll finish in 6.44155891667 minutes)
Iteration 82 (change = 0.856766910275) (20.12265 seconds, I think I'll finish in 6.036795 minutes)
Iteration 83 (change = 0.836507250478) (20.250481 seconds, I think I'll finish in 5.73763628333 minutes)
Iteration 84 (change = 0.805989012776) (20.124434 seconds, I think I'll finish in 5.36651573333 minutes)
Iteration 85 (change = 0.769357593663) (20.304297 seconds, I think I'll finish in 5.07607425 minutes)
Iteration 86 (change = 0.730974163988) (20.072247 seconds, I think I'll finish in 4.6835243 minutes)
Iteration 87 (change = 0.698276923196) (20.26159 seconds, I think I'll finish in 4.39001116667 minutes)
Iteration 88 (change = 0.66818162912) (20.21529 seconds, I think I'll finish in 4.043058 minutes)
Iteration 89 (change = 0.645544943915) (20.313045 seconds, I think I'll finish in 3.72405825 minutes)
Iteration 90 (change = 0.620405255) (20.289774 seconds, I think I'll finish in 3.381629 minutes)
Iteration 91 (change = 0.591683386721) (20.808125 seconds, I think I'll finish in 3.12121875 minutes)
Iteration 92 (change = 0.568500226299) (21.720919 seconds, I think I'll finish in 2.89612253333 minutes)
Iteration 93 (change = 0.555238790238) (20.768551 seconds, I think I'll finish in 2.42299761667 minutes)
Iteration 94 (change = 0.558388639518) (20.129869 seconds, I think I'll finish in 2.0129869 minutes)
Iteration 95 (change = 0.572890283734) (20.5076 seconds, I think I'll finish in 1.70896666667 minutes)
Iteration 96 (change = 0.559513059453) (20.280421 seconds, I think I'll finish in 1.35202806667 minutes)
Iteration 97 (change = 0.540112173537) (20.968616 seconds, I think I'll finish in 1.0484308 minutes)
Iteration 98 (change = 0.534202973859) (20.675173 seconds, I think I'll finish in 0.689172433333 minutes)
Iteration 99 (change = 0.562061600795) (20.461946 seconds, I think I'll finish in 0.341032433333 minutes)
In [276]:
gnps_lda.run_vb(n_its=900,initialise=False)
Starting iterations
Iteration 0 (change = 0.554966861496) (26.038453 seconds, I think I'll finish in 390.576795 minutes)
Iteration 1 (change = 0.492246582641) (20.442205 seconds, I think I'll finish in 306.292371583 minutes)
Iteration 2 (change = 0.450462222003) (20.327696 seconds, I think I'll finish in 304.237850133 minutes)
Iteration 3 (change = 0.425445175324) (20.15524 seconds, I think I'll finish in 301.320838 minutes)
Iteration 4 (change = 0.401373012242) (19.838678 seconds, I think I'll finish in 296.257591467 minutes)
Iteration 5 (change = 0.385575208245) (20.030708 seconds, I think I'll finish in 298.791394333 minutes)
Iteration 6 (change = 0.374518972168) (19.931014 seconds, I think I'll finish in 296.9721086 minutes)
Iteration 7 (change = 0.363991486806) (20.003826 seconds, I think I'll finish in 297.7236103 minutes)
Iteration 8 (change = 0.351493465007) (19.90087 seconds, I think I'll finish in 295.859600667 minutes)
Iteration 9 (change = 0.336720212354) (19.936075 seconds, I think I'll finish in 296.05071375 minutes)
Iteration 10 (change = 0.323446162212) (20.025759 seconds, I think I'll finish in 297.0487585 minutes)
Iteration 11 (change = 0.315663322303) (19.89217 seconds, I think I'll finish in 294.735652167 minutes)
Iteration 12 (change = 0.310786633745) (19.975368 seconds, I think I'll finish in 295.6354464 minutes)
Iteration 13 (change = 0.304284712614) (19.919102 seconds, I think I'll finish in 294.470724567 minutes)
Iteration 14 (change = 0.298202296877) (20.045106 seconds, I think I'll finish in 295.9993986 minutes)
Iteration 15 (change = 0.291742072088) (19.823516 seconds, I think I'll finish in 292.396861 minutes)
Iteration 16 (change = 0.285131547752) (19.962754 seconds, I think I'll finish in 294.117908933 minutes)
Iteration 17 (change = 0.280255211017) (22.116775 seconds, I think I'll finish in 325.485205417 minutes)
Iteration 18 (change = 0.278778278323) (20.506481 seconds, I think I'll finish in 301.4452707 minutes)
Iteration 19 (change = 0.280925366899) (19.962507 seconds, I think I'll finish in 293.11614445 minutes)
Iteration 20 (change = 0.283333557974) (19.987333 seconds, I think I'll finish in 293.147550667 minutes)
Iteration 21 (change = 0.282836116948) (19.860574 seconds, I think I'll finish in 290.9574091 minutes)
Iteration 22 (change = 0.27967211582) (19.935931 seconds, I think I'll finish in 291.729123633 minutes)
Iteration 23 (change = 0.276809970659) (19.882784 seconds, I think I'll finish in 290.620026133 minutes)
Iteration 24 (change = 0.26806639528) (20.028224 seconds, I think I'll finish in 292.4120704 minutes)
Iteration 25 (change = 0.257051479699) (19.958146 seconds, I think I'll finish in 291.056295833 minutes)
Iteration 26 (change = 0.24922236275) (19.988261 seconds, I think I'll finish in 291.162335233 minutes)
Iteration 27 (change = 0.244089166205) (19.823859 seconds, I think I'll finish in 288.43714845 minutes)
Iteration 28 (change = 0.239068179172) (20.056793 seconds, I think I'll finish in 291.492058267 minutes)
Iteration 29 (change = 0.233647761638) (21.283751 seconds, I think I'll finish in 308.969118683 minutes)
Iteration 30 (change = 0.233136441116) (20.10345 seconds, I think I'll finish in 291.500025 minutes)
Iteration 31 (change = 0.237711073598) (19.928722 seconds, I think I'll finish in 288.634323633 minutes)
Iteration 32 (change = 0.242250850643) (20.640263 seconds, I think I'll finish in 298.595804733 minutes)
Iteration 33 (change = 0.242078184133) (19.80675 seconds, I think I'll finish in 286.2075375 minutes)
Iteration 34 (change = 0.237921544447) (19.947421 seconds, I think I'll finish in 287.907776433 minutes)
Iteration 35 (change = 0.233510111625) (19.772104 seconds, I think I'll finish in 285.047832667 minutes)
Iteration 36 (change = 0.231208658274) (20.023371 seconds, I think I'll finish in 288.3365424 minutes)
Iteration 37 (change = 0.229498189054) (19.87825 seconds, I think I'll finish in 285.915495833 minutes)
Iteration 38 (change = 0.224130115028) (19.966666 seconds, I think I'll finish in 286.854434867 minutes)
Iteration 39 (change = 0.214202843868) (19.812564 seconds, I think I'll finish in 284.3102934 minutes)
Iteration 40 (change = 0.199601716176) (20.113925 seconds, I think I'll finish in 288.299591667 minutes)
Iteration 41 (change = 0.186953172711) (19.822379 seconds, I think I'll finish in 283.790392683 minutes)
Iteration 42 (change = 0.181030384808) (20.005006 seconds, I think I'll finish in 286.0715858 minutes)
Iteration 43 (change = 0.176237043616) (19.919132 seconds, I think I'll finish in 284.511602067 minutes)
Iteration 44 (change = 0.170803691269) (20.047639 seconds, I think I'll finish in 286.012983067 minutes)
Iteration 45 (change = 0.164187048327) (21.729123 seconds, I think I'll finish in 309.64000275 minutes)
Iteration 46 (change = 0.154927803675) (25.166491 seconds, I think I'll finish in 358.203055233 minutes)
Iteration 47 (change = 0.147372331846) (22.796852 seconds, I think I'll finish in 324.095245933 minutes)
Iteration 48 (change = 0.143387333919) (22.203793 seconds, I think I'll finish in 315.2938606 minutes)
Iteration 49 (change = 0.141179850136) (22.475646 seconds, I think I'll finish in 318.7795791 minutes)
Iteration 50 (change = 0.139928532943) (21.889522 seconds, I think I'll finish in 310.101561667 minutes)
Iteration 51 (change = 0.139714723663) (22.047134 seconds, I think I'll finish in 311.9669461 minutes)
Iteration 52 (change = 0.140378438686) (22.295753 seconds, I think I'll finish in 315.113309067 minutes)
Iteration 53 (change = 0.140372178757) (21.592617 seconds, I think I'll finish in 304.81577665 minutes)
Iteration 54 (change = 0.136394649147) (22.252137 seconds, I think I'll finish in 313.7551317 minutes)
Iteration 55 (change = 0.128515730201) (21.338848 seconds, I think I'll finish in 300.522109333 minutes)
Iteration 56 (change = 0.120170104241) (22.311429 seconds, I think I'll finish in 313.8474346 minutes)
Iteration 57 (change = 0.114574141558) (21.772665 seconds, I think I'll finish in 305.90594325 minutes)
Iteration 58 (change = 0.112374834451) (21.722288 seconds, I think I'll finish in 304.836108267 minutes)
Iteration 59 (change = 0.112176142184) (22.091629 seconds, I think I'll finish in 309.650999817 minutes)
Iteration 60 (change = 0.113797747733) (22.240933 seconds, I think I'll finish in 311.373062 minutes)
Iteration 61 (change = 0.117733352996) (21.060129 seconds, I think I'll finish in 294.49080385 minutes)
Iteration 62 (change = 0.124657126614) (21.074694 seconds, I think I'll finish in 294.3432262 minutes)
Iteration 63 (change = 0.12927032071) (21.978653 seconds, I think I'll finish in 306.60220935 minutes)
Iteration 64 (change = 0.123553821565) (22.166253 seconds, I think I'll finish in 308.8497918 minutes)
Iteration 65 (change = 0.123246831497) (21.778228 seconds, I think I'll finish in 303.080339667 minutes)
Iteration 66 (change = 0.131972620014) (21.500616 seconds, I think I'll finish in 298.8585624 minutes)
Iteration 67 (change = 0.147135251048) (21.072002 seconds, I think I'll finish in 292.549627767 minutes)
Iteration 68 (change = 0.1526597008) (20.104438 seconds, I think I'll finish in 278.781540267 minutes)
Iteration 69 (change = 0.137100762392) (19.899224 seconds, I think I'll finish in 275.6042524 minutes)
Iteration 70 (change = 0.128165383219) (20.050916 seconds, I think I'll finish in 277.371004667 minutes)
Iteration 71 (change = 0.123921231505) (19.823715 seconds, I think I'll finish in 273.89766225 minutes)
Iteration 72 (change = 0.12051731101) (19.907059 seconds, I think I'll finish in 274.7174142 minutes)
Iteration 73 (change = 0.117787211894) (19.989301 seconds, I think I'll finish in 275.519198783 minutes)
Iteration 74 (change = 0.115368373821) (19.97068 seconds, I think I'll finish in 274.929694667 minutes)
Iteration 75 (change = 0.113377572154) (19.939866 seconds, I think I'll finish in 274.1731575 minutes)
Iteration 76 (change = 0.112106963627) (20.201141 seconds, I think I'll finish in 277.429003067 minutes)
Iteration 77 (change = 0.112295457001) (20.298454 seconds, I think I'll finish in 278.427127367 minutes)
Iteration 78 (change = 0.114057078905) (20.081056 seconds, I think I'll finish in 275.1104672 minutes)
Iteration 79 (change = 0.117363658395) (19.817409 seconds, I think I'll finish in 271.16821315 minutes)
Iteration 80 (change = 0.120943226263) (21.048436 seconds, I think I'll finish in 287.661958667 minutes)
Iteration 81 (change = 0.121955888814) (19.827102 seconds, I think I'll finish in 270.6399423 minutes)
Iteration 82 (change = 0.1173697889) (19.883397 seconds, I think I'll finish in 271.0769791 minutes)
Iteration 83 (change = 0.111310103393) (23.412604 seconds, I think I'll finish in 318.801624467 minutes)
Iteration 84 (change = 0.10727445149) (23.065393 seconds, I think I'll finish in 313.6893448 minutes)
Iteration 85 (change = 0.104961486574) (31.474645 seconds, I think I'll finish in 427.530594583 minutes)
Iteration 86 (change = 0.100559354533) (33.05362 seconds, I think I'll finish in 448.427444667 minutes)
Iteration 87 (change = 0.0936974055756) (36.473875 seconds, I think I'll finish in 494.22100625 minutes)
Iteration 88 (change = 0.0898736319301) (37.471766 seconds, I think I'll finish in 507.117899867 minutes)
Iteration 89 (change = 0.0887884830427) (37.894901 seconds, I think I'll finish in 512.212745183 minutes)
Iteration 90 (change = 0.0881278866362) (38.794659 seconds, I think I'll finish in 523.7278965 minutes)
Iteration 91 (change = 0.0876449936772) (38.026957 seconds, I think I'll finish in 512.730136883 minutes)
Iteration 92 (change = 0.0872835647844) (33.653399 seconds, I think I'll finish in 453.199106533 minutes)
Iteration 93 (change = 0.0874946668953) (34.148256 seconds, I think I'll finish in 459.2940432 minutes)
Iteration 94 (change = 0.0882357457265) (26.642955 seconds, I think I'll finish in 357.9036955 minutes)
Iteration 95 (change = 0.0898625443806) (26.967059 seconds, I think I'll finish in 361.808041583 minutes)
Iteration 96 (change = 0.0927442613079) (26.282392 seconds, I think I'll finish in 352.1840528 minutes)
Iteration 97 (change = 0.0965518967457) (23.716917 seconds, I think I'll finish in 317.41140585 minutes)
Iteration 98 (change = 0.100056050507) (23.377475 seconds, I think I'll finish in 312.478915833 minutes)
Iteration 99 (change = 0.102485471075) (22.983322 seconds, I think I'll finish in 306.8273487 minutes)
Iteration 100 (change = 0.102760689506) (22.200744 seconds, I think I'll finish in 296.00992 minutes)
Iteration 101 (change = 0.0989190453637) (21.807131 seconds, I think I'll finish in 290.398294483 minutes)
Iteration 102 (change = 0.0941261478442) (21.581834 seconds, I think I'll finish in 287.0383922 minutes)
Iteration 103 (change = 0.091222505873) (21.622005 seconds, I think I'll finish in 287.21229975 minutes)
Iteration 104 (change = 0.0883720089454) (21.402196 seconds, I think I'll finish in 283.935800267 minutes)
Iteration 105 (change = 0.0864312862349) (21.382697 seconds, I think I'll finish in 283.32073525 minutes)
Iteration 106 (change = 0.0873352697227) (21.259032 seconds, I think I'll finish in 281.3278568 minutes)
Iteration 107 (change = 0.0880117903239) (22.412898 seconds, I think I'll finish in 296.2238019 minutes)
Iteration 108 (change = 0.0853207148801) (22.240503 seconds, I think I'll finish in 293.5746396 minutes)
Iteration 109 (change = 0.0828349779092) (21.049185 seconds, I think I'll finish in 277.49842225 minutes)
Iteration 110 (change = 0.081514532917) (24.129934 seconds, I think I'll finish in 317.710797667 minutes)
Iteration 111 (change = 0.0806047141232) (21.984419 seconds, I think I'll finish in 289.09510985 minutes)
Iteration 112 (change = 0.0797380906035) (22.2846 seconds, I think I'll finish in 292.67108 minutes)
Iteration 113 (change = 0.0790588497701) (22.77239 seconds, I think I'll finish in 298.697848833 minutes)
Iteration 114 (change = 0.0786822526887) (21.917427 seconds, I think I'll finish in 287.1182937 minutes)
Iteration 115 (change = 0.078473160696) (21.644749 seconds, I think I'll finish in 283.185466083 minutes)
Iteration 116 (change = 0.0784271791152) (22.644197 seconds, I think I'll finish in 295.884174133 minutes)
Iteration 117 (change = 0.0783902373322) (21.976343 seconds, I think I'll finish in 286.79127615 minutes)
Iteration 118 (change = 0.0783056589942) (21.697908 seconds, I think I'll finish in 282.7960676 minutes)
Iteration 119 (change = 0.0779384232723) (21.132319 seconds, I think I'll finish in 275.072352317 minutes)
Iteration 120 (change = 0.0769947978473) (22.483598 seconds, I think I'll finish in 292.286774 minutes)
Iteration 121 (change = 0.0754235417758) (22.474065 seconds, I think I'll finish in 291.78827725 minutes)
Iteration 122 (change = 0.0733349177302) (21.791923 seconds, I think I'll finish in 282.568601567 minutes)
Iteration 123 (change = 0.0712801830637) (22.262091 seconds, I think I'll finish in 288.29407845 minutes)
Iteration 124 (change = 0.0698593810657) (22.373443 seconds, I think I'll finish in 289.363196133 minutes)
Iteration 125 (change = 0.0688757132213) (20.882194 seconds, I think I'll finish in 269.728339167 minutes)
Iteration 126 (change = 0.0682273652384) (20.745495 seconds, I think I'll finish in 267.6168855 minutes)
Iteration 127 (change = 0.0677997405619) (20.620682 seconds, I think I'll finish in 265.663119767 minutes)
Iteration 128 (change = 0.0675853461798) (20.519815 seconds, I think I'll finish in 264.021619667 minutes)
Iteration 129 (change = 0.067400783905) (20.631863 seconds, I think I'll finish in 265.11943955 minutes)
Iteration 130 (change = 0.067607862401) (20.347997 seconds, I think I'll finish in 261.132628167 minutes)
Iteration 131 (change = 0.0681705626477) (20.738418 seconds, I think I'll finish in 265.7973907 minutes)
Iteration 132 (change = 0.0686010945305) (20.365388 seconds, I think I'll finish in 260.6769664 minutes)
Iteration 133 (change = 0.0685641871258) (20.378423 seconds, I think I'll finish in 260.504174017 minutes)
Iteration 134 (change = 0.068064775635) (20.208816 seconds, I think I'll finish in 257.9992176 minutes)
Iteration 135 (change = 0.0673608448809) (22.928838 seconds, I think I'll finish in 292.3426845 minutes)
Iteration 136 (change = 0.0666695406497) (21.760298 seconds, I think I'll finish in 277.081127867 minutes)
Iteration 137 (change = 0.0660056339072) (20.501015 seconds, I think I'll finish in 260.704574083 minutes)
Iteration 138 (change = 0.0652472726219) (20.91452 seconds, I think I'll finish in 265.614404 minutes)
Iteration 139 (change = 0.0641296240184) (20.500714 seconds, I think I'll finish in 260.017389233 minutes)
Iteration 140 (change = 0.062740355414) (20.676212 seconds, I think I'll finish in 261.898685333 minutes)
Iteration 141 (change = 0.061453789939) (20.519568 seconds, I think I'll finish in 259.5725352 minutes)
Iteration 142 (change = 0.0607137631885) (20.49519 seconds, I think I'll finish in 258.922567 minutes)
Iteration 143 (change = 0.0607474101809) (20.496318 seconds, I think I'll finish in 258.5952121 minutes)
Iteration 144 (change = 0.060684449681) (20.167351 seconds, I think I'll finish in 254.1086226 minutes)
Iteration 145 (change = 0.0583641560227) (20.116504 seconds, I think I'll finish in 253.132675333 minutes)
Iteration 146 (change = 0.0558053839622) (20.324102 seconds, I think I'll finish in 255.406215133 minutes)
Iteration 147 (change = 0.0553199793608) (20.012659 seconds, I think I'll finish in 251.15887045 minutes)
Iteration 148 (change = 0.055528313162) (20.214228 seconds, I think I'll finish in 253.3516576 minutes)
Iteration 149 (change = 0.05614361994) (21.485128 seconds, I think I'll finish in 268.922185467 minutes)
Iteration 150 (change = 0.056831531314) (21.053389 seconds, I think I'll finish in 263.1673625 minutes)
Iteration 151 (change = 0.056471780719) (20.233109 seconds, I think I'll finish in 252.576644017 minutes)
Iteration 152 (change = 0.0544572909732) (21.187527 seconds, I think I'll finish in 264.1378366 minutes)
Iteration 153 (change = 0.0524444623248) (20.742831 seconds, I think I'll finish in 258.24824595 minutes)
Iteration 154 (change = 0.0517428962073) (20.019336 seconds, I think I'll finish in 248.9070776 minutes)
Iteration 155 (change = 0.0519269957293) (20.124832 seconds, I think I'll finish in 249.883330667 minutes)
Iteration 156 (change = 0.0522614443277) (19.849054 seconds, I think I'll finish in 246.1282696 minutes)
Iteration 157 (change = 0.05084763999) (19.880418 seconds, I think I'll finish in 246.1858429 minutes)
Iteration 158 (change = 0.0478202475184) (19.983499 seconds, I think I'll finish in 247.129270967 minutes)
Iteration 159 (change = 0.0455781160979) (19.894444 seconds, I think I'll finish in 245.6963834 minutes)
Iteration 160 (change = 0.0446732737676) (19.873255 seconds, I think I'll finish in 245.103478333 minutes)
Iteration 161 (change = 0.0445405563751) (19.943809 seconds, I think I'll finish in 245.641247517 minutes)
Iteration 162 (change = 0.0447795980069) (19.836598 seconds, I think I'll finish in 243.9901554 minutes)
Iteration 163 (change = 0.0453521837667) (19.911913 seconds, I think I'll finish in 244.584664683 minutes)
Iteration 164 (change = 0.0464693284758) (20.733607 seconds, I think I'll finish in 254.332245867 minutes)
Iteration 165 (change = 0.0480326226789) (22.678895 seconds, I think I'll finish in 277.81646375 minutes)
Iteration 166 (change = 0.0496455827464) (20.158247 seconds, I think I'll finish in 246.602554967 minutes)
Iteration 167 (change = 0.0510559766648) (21.415904 seconds, I think I'll finish in 261.630960533 minutes)
Iteration 168 (change = 0.0524358164501) (21.337303 seconds, I think I'll finish in 260.3150966 minutes)
Iteration 169 (change = 0.0536201098338) (20.089737 seconds, I think I'll finish in 244.75996245 minutes)
Iteration 170 (change = 0.0544257136875) (22.149324 seconds, I think I'll finish in 269.483442 minutes)
Iteration 171 (change = 0.054877167919) (21.778071 seconds, I think I'll finish in 264.60356265 minutes)
Iteration 172 (change = 0.0547434512106) (20.684708 seconds, I think I'll finish in 250.974457067 minutes)
Iteration 173 (change = 0.0539461314173) (20.61715 seconds, I think I'll finish in 249.811134167 minutes)
Iteration 174 (change = 0.0528467675109) (20.322255 seconds, I think I'll finish in 245.8992855 minutes)
Iteration 175 (change = 0.0517004551811) (20.55355 seconds, I think I'll finish in 248.355395833 minutes)
Iteration 176 (change = 0.0508703712494) (20.804966 seconds, I think I'll finish in 251.046589733 minutes)
Iteration 177 (change = 0.0499612063741) (20.064094 seconds, I think I'll finish in 241.7723327 minutes)
Iteration 178 (change = 0.0489421902408) (20.785149 seconds, I think I'll finish in 250.1146263 minutes)
Iteration 179 (change = 0.0479777034706) (21.451725 seconds, I think I'll finish in 257.77822875 minutes)
Iteration 180 (change = 0.0471241931854) (20.204873 seconds, I think I'll finish in 242.458476 minutes)
Iteration 181 (change = 0.0465621512005) (19.997447 seconds, I think I'll finish in 239.636073217 minutes)
Iteration 182 (change = 0.0462112677243) (20.790722 seconds, I think I'll finish in 248.795639933 minutes)
Iteration 183 (change = 0.0456847332675) (22.094184 seconds, I think I'll finish in 264.0254988 minutes)
Iteration 184 (change = 0.0453725889355) (20.498202 seconds, I think I'll finish in 244.6118772 minutes)
Iteration 185 (change = 0.0456050378894) (20.044199 seconds, I think I'll finish in 238.860038083 minutes)
Iteration 186 (change = 0.0467788341987) (21.83537 seconds, I think I'll finish in 259.840903 minutes)
Iteration 187 (change = 0.0497582593431) (21.994306 seconds, I think I'll finish in 261.365669633 minutes)
Iteration 188 (change = 0.0545081594688) (20.985619 seconds, I think I'll finish in 249.029345467 minutes)
Iteration 189 (change = 0.0571758030872) (21.093034 seconds, I think I'll finish in 249.9524529 minutes)
Iteration 190 (change = 0.0534531659841) (20.727611 seconds, I think I'll finish in 245.276730167 minutes)
Iteration 191 (change = 0.0497146752739) (20.024778 seconds, I think I'll finish in 236.6261267 minutes)
Iteration 192 (change = 0.048256152641) (20.065318 seconds, I think I'll finish in 236.7707524 minutes)
Iteration 193 (change = 0.0469203770306) (19.841586 seconds, I think I'll finish in 233.8000217 minutes)
Iteration 194 (change = 0.0458974083893) (19.905056 seconds, I think I'll finish in 234.216158933 minutes)
Iteration 195 (change = 0.0458829752366) (21.656643 seconds, I think I'll finish in 254.46555525 minutes)
Iteration 196 (change = 0.0474370251219) (20.054874 seconds, I think I'll finish in 235.3105216 minutes)
Iteration 197 (change = 0.0508971309567) (20.765923 seconds, I think I'll finish in 243.307397817 minutes)
Iteration 198 (change = 0.0558511271721) (20.131226 seconds, I think I'll finish in 235.5353442 minutes)
Iteration 199 (change = 0.0616853071619) (19.960631 seconds, I think I'll finish in 233.206705517 minutes)
Iteration 200 (change = 0.0690769703141) (21.819461 seconds, I think I'll finish in 254.560378333 minutes)
Iteration 201 (change = 0.0810970288374) (21.490912 seconds, I think I'll finish in 250.3691248 minutes)
Iteration 202 (change = 0.100501260082) (20.288406 seconds, I think I'll finish in 236.0217898 minutes)
Iteration 203 (change = 0.125506186366) (20.556881 seconds, I think I'll finish in 238.802434283 minutes)
Iteration 204 (change = 0.141824092465) (20.511053 seconds, I think I'll finish in 237.9282148 minutes)
Iteration 205 (change = 0.127940247264) (20.244145 seconds, I think I'll finish in 234.494679583 minutes)
Iteration 206 (change = 0.095211571504) (19.980542 seconds, I think I'll finish in 231.108269133 minutes)
Iteration 207 (change = 0.0720870003435) (19.844727 seconds, I think I'll finish in 229.20659685 minutes)
Iteration 208 (change = 0.0598370472652) (20.18856 seconds, I think I'll finish in 232.841392 minutes)
Iteration 209 (change = 0.0527263599694) (22.846347 seconds, I think I'll finish in 263.11376295 minutes)
Iteration 210 (change = 0.048795524711) (20.45002 seconds, I think I'll finish in 235.17523 minutes)
Iteration 211 (change = 0.0471745004927) (20.619025 seconds, I think I'll finish in 236.775137083 minutes)
Iteration 212 (change = 0.046258754473) (21.649992 seconds, I think I'll finish in 248.2532416 minutes)
Iteration 213 (change = 0.0432574253676) (21.011128 seconds, I think I'll finish in 240.5774156 minutes)
Iteration 214 (change = 0.0384027652063) (22.819154 seconds, I think I'll finish in 260.898994067 minutes)
Iteration 215 (change = 0.0355598661086) (21.442951 seconds, I think I'll finish in 244.807023917 minutes)
Iteration 216 (change = 0.0341986826772) (21.572074 seconds, I think I'll finish in 245.9216436 minutes)
Iteration 217 (change = 0.0333906226681) (21.318166 seconds, I think I'll finish in 242.671789633 minutes)
Iteration 218 (change = 0.0328676762446) (21.386092 seconds, I think I'll finish in 243.088579067 minutes)
Iteration 219 (change = 0.0325174696161) (21.428503 seconds, I think I'll finish in 243.21350905 minutes)
Iteration 220 (change = 0.0323936172043) (21.344319 seconds, I think I'll finish in 241.902282 minutes)
Iteration 221 (change = 0.0321621378582) (21.411902 seconds, I think I'll finish in 242.311357633 minutes)
Iteration 222 (change = 0.0317060261767) (23.434976 seconds, I think I'll finish in 264.8152288 minutes)
Iteration 223 (change = 0.0311496076519) (23.77681 seconds, I think I'll finish in 268.281672833 minutes)
Iteration 224 (change = 0.0307228010669) (21.550745 seconds, I think I'll finish in 242.805060333 minutes)
Iteration 225 (change = 0.0308162223036) (22.129571 seconds, I think I'll finish in 248.95767375 minutes)
Iteration 226 (change = 0.0313269790627) (21.708744 seconds, I think I'll finish in 243.8615576 minutes)
Iteration 227 (change = 0.0321004903162) (22.736691 seconds, I think I'll finish in 255.02988405 minutes)
Iteration 228 (change = 0.0332829829011) (21.667691 seconds, I think I'll finish in 242.6781392 minutes)
Iteration 229 (change = 0.0347945742085) (21.53544 seconds, I think I'll finish in 240.838004 minutes)
Iteration 230 (change = 0.0365195583147) (21.474236 seconds, I think I'll finish in 239.795635333 minutes)
Iteration 231 (change = 0.0381479486742) (21.459356 seconds, I think I'll finish in 239.2718194 minutes)
Iteration 232 (change = 0.0390780207848) (21.536828 seconds, I think I'll finish in 239.776685067 minutes)
Iteration 233 (change = 0.0384508055202) (21.548649 seconds, I think I'll finish in 239.54914805 minutes)
Iteration 234 (change = 0.0358184291631) (21.184534 seconds, I think I'll finish in 235.1483274 minutes)
Iteration 235 (change = 0.0325343641521) (20.938421 seconds, I think I'll finish in 232.067499417 minutes)
Iteration 236 (change = 0.0300124109269) (20.767041 seconds, I think I'll finish in 229.8219204 minutes)
Iteration 237 (change = 0.0285739756377) (20.758517 seconds, I think I'll finish in 229.38161285 minutes)
Iteration 238 (change = 0.0282895904332) (21.588279 seconds, I think I'll finish in 238.1906783 minutes)
Iteration 239 (change = 0.0293417568307) (20.538422 seconds, I think I'll finish in 226.264949033 minutes)
Iteration 240 (change = 0.0319648888398) (21.046136 seconds, I think I'll finish in 231.507496 minutes)
Iteration 241 (change = 0.035378657184) (20.189047 seconds, I think I'll finish in 221.743032883 minutes)
Iteration 242 (change = 0.0370795730935) (20.335125 seconds, I think I'll finish in 223.0085375 minutes)
Iteration 243 (change = 0.0348339678544) (20.321325 seconds, I think I'll finish in 222.51850875 minutes)
Iteration 244 (change = 0.0309754649229) (21.503549 seconds, I think I'll finish in 235.105469067 minutes)
Iteration 245 (change = 0.0280968695798) (20.210946 seconds, I think I'll finish in 220.6361605 minutes)
Iteration 246 (change = 0.0262436138399) (21.225213 seconds, I think I'll finish in 231.3548217 minutes)
Iteration 247 (change = 0.0252584531523) (21.059374 seconds, I think I'll finish in 229.196187033 minutes)
Iteration 248 (change = 0.0246729829429) (20.08415 seconds, I think I'll finish in 218.247763333 minutes)
Iteration 249 (change = 0.0241509074495) (20.139657 seconds, I think I'll finish in 218.51527845 minutes)
Iteration 250 (change = 0.0238222511746) (20.108434 seconds, I think I'll finish in 217.841368333 minutes)
Iteration 251 (change = 0.0236912321509) (20.042648 seconds, I think I'll finish in 216.794642533 minutes)
Iteration 252 (change = 0.0235405418397) (21.661276 seconds, I think I'll finish in 233.9417808 minutes)
Iteration 253 (change = 0.0233682421342) (23.350759 seconds, I think I'll finish in 251.799017883 minutes)
Iteration 254 (change = 0.0232661659678) (20.824698 seconds, I think I'll finish in 224.2125818 minutes)
Iteration 255 (change = 0.0233158607455) (20.585236 seconds, I think I'll finish in 221.291287 minutes)
Iteration 256 (change = 0.0232519982242) (20.119703 seconds, I think I'll finish in 215.951478867 minutes)
Iteration 257 (change = 0.0229489800012) (19.842631 seconds, I think I'll finish in 212.646862217 minutes)
Iteration 258 (change = 0.0225229782192) (20.026468 seconds, I think I'll finish in 214.2832076 minutes)
Iteration 259 (change = 0.0220303766428) (19.873436 seconds, I think I'll finish in 212.314541267 minutes)
Iteration 260 (change = 0.0214523334169) (19.850715 seconds, I think I'll finish in 211.74096 minutes)
Iteration 261 (change = 0.0210377418771) (19.829312 seconds, I think I'll finish in 211.1821728 minutes)
Iteration 262 (change = 0.0207246780883) (19.782868 seconds, I think I'll finish in 210.357829733 minutes)
Iteration 263 (change = 0.0204421918237) (19.726353 seconds, I think I'll finish in 209.42811435 minutes)
Iteration 264 (change = 0.020171719345) (20.140878 seconds, I think I'll finish in 213.4933068 minutes)
Iteration 265 (change = 0.0199747831745) (20.07157 seconds, I think I'll finish in 212.424115833 minutes)
Iteration 266 (change = 0.0197626056695) (19.980301 seconds, I think I'll finish in 211.125180567 minutes)
Iteration 267 (change = 0.0193149879126) (22.79544 seconds, I think I'll finish in 240.491892 minutes)
Iteration 268 (change = 0.0190783084887) (20.099427 seconds, I think I'll finish in 211.7139644 minutes)
Iteration 269 (change = 0.019069322927) (22.366921 seconds, I think I'll finish in 235.225452517 minutes)
Iteration 270 (change = 0.0190499078704) (20.808949 seconds, I think I'll finish in 218.4939645 minutes)
Iteration 271 (change = 0.0190801022498) (20.078299 seconds, I think I'll finish in 210.487501183 minutes)
Iteration 272 (change = 0.0192017246158) (20.167163 seconds, I think I'll finish in 211.082972733 minutes)
Iteration 273 (change = 0.0191292560326) (20.177366 seconds, I think I'll finish in 210.8534747 minutes)
Iteration 274 (change = 0.0190857931089) (20.151788 seconds, I think I'll finish in 210.250321467 minutes)
Iteration 275 (change = 0.0191255993733) (20.012482 seconds, I think I'll finish in 208.463354167 minutes)
Iteration 276 (change = 0.0191572559431) (20.035042 seconds, I think I'll finish in 208.3644368 minutes)
Iteration 277 (change = 0.019190040635) (19.904581 seconds, I think I'll finish in 206.675899383 minutes)
Iteration 278 (change = 0.0192563232368) (20.081369 seconds, I think I'll finish in 208.176858633 minutes)
Iteration 279 (change = 0.0195299881974) (20.079055 seconds, I think I'll finish in 207.81821925 minutes)
Iteration 280 (change = 0.0197500756862) (21.714762 seconds, I think I'll finish in 224.385874 minutes)
Iteration 281 (change = 0.0201437538031) (20.899488 seconds, I think I'll finish in 215.6130512 minutes)
Iteration 282 (change = 0.0206858689764) (22.150195 seconds, I think I'll finish in 228.1470085 minutes)
Iteration 283 (change = 0.0212711769066) (21.421767 seconds, I think I'll finish in 220.28717065 minutes)
Iteration 284 (change = 0.0219550143913) (21.163045 seconds, I think I'll finish in 217.273928667 minutes)
Iteration 285 (change = 0.0225906501685) (20.063268 seconds, I think I'll finish in 205.648497 minutes)
Iteration 286 (change = 0.0229278683875) (20.010739 seconds, I think I'll finish in 204.776562433 minutes)
Iteration 287 (change = 0.0230240623126) (19.902121 seconds, I think I'll finish in 203.333336217 minutes)
Iteration 288 (change = 0.0232334039969) (20.286474 seconds, I think I'll finish in 206.9220348 minutes)
Iteration 289 (change = 0.0235766236833) (20.045897 seconds, I think I'll finish in 204.134051117 minutes)
Iteration 290 (change = 0.0240204628689) (20.189271 seconds, I think I'll finish in 205.2575885 minutes)
Iteration 291 (change = 0.0246859738058) (20.123337 seconds, I think I'll finish in 204.25187055 minutes)
Iteration 292 (change = 0.0252744297178) (20.503683 seconds, I think I'll finish in 207.7706544 minutes)
Iteration 293 (change = 0.0255985147346) (20.054916 seconds, I think I'll finish in 202.8889002 minutes)
Iteration 294 (change = 0.0254999546171) (20.083164 seconds, I think I'll finish in 202.8399564 minutes)
Iteration 295 (change = 0.0250142773868) (20.296898 seconds, I think I'll finish in 204.660388167 minutes)
Iteration 296 (change = 0.024297300901) (21.475386 seconds, I think I'll finish in 216.1855524 minutes)
Iteration 297 (change = 0.0233063801551) (21.797602 seconds, I think I'll finish in 219.0659001 minutes)
Iteration 298 (change = 0.0222807139418) (21.372225 seconds, I think I'll finish in 214.4346575 minutes)
Iteration 299 (change = 0.0214840685471) (21.323389 seconds, I think I'll finish in 213.589279817 minutes)
Iteration 300 (change = 0.020889413979) (20.283119 seconds, I think I'll finish in 202.83119 minutes)
Iteration 301 (change = 0.0206817806814) (20.055821 seconds, I think I'll finish in 200.223946317 minutes)
Iteration 302 (change = 0.0205023739897) (20.038533 seconds, I think I'll finish in 199.7173789 minutes)
Iteration 303 (change = 0.02006586488) (20.259177 seconds, I think I'll finish in 201.57881115 minutes)
Iteration 304 (change = 0.0195035912339) (20.023609 seconds, I think I'll finish in 198.901182733 minutes)
Iteration 305 (change = 0.0191055164233) (19.930085 seconds, I think I'll finish in 197.640009583 minutes)
Iteration 306 (change = 0.0190744687512) (20.384346 seconds, I think I'll finish in 201.8050254 minutes)
Iteration 307 (change = 0.0193628872339) (20.029566 seconds, I think I'll finish in 197.9588773 minutes)
Iteration 308 (change = 0.01987998484) (20.223297 seconds, I think I'll finish in 199.5365304 minutes)
Iteration 309 (change = 0.0203747107506) (20.08845 seconds, I think I'll finish in 197.8712325 minutes)
Iteration 310 (change = 0.0207833255552) (20.124486 seconds, I think I'll finish in 197.890779 minutes)
Iteration 311 (change = 0.0211255542879) (20.130099 seconds, I think I'll finish in 197.61047185 minutes)
Iteration 312 (change = 0.0214678337281) (21.490907 seconds, I think I'll finish in 210.6108886 minutes)
Iteration 313 (change = 0.0216304946814) (23.688918 seconds, I think I'll finish in 231.7565811 minutes)
Iteration 314 (change = 0.0218014810548) (20.504482 seconds, I think I'll finish in 200.260440867 minutes)
Iteration 315 (change = 0.0220627214882) (20.038562 seconds, I think I'll finish in 195.3759795 minutes)
Iteration 316 (change = 0.0221899745544) (20.209222 seconds, I think I'll finish in 196.703094133 minutes)
Iteration 317 (change = 0.0220252642184) (20.208028 seconds, I think I'll finish in 196.354672067 minutes)
Iteration 318 (change = 0.0213208560069) (20.298188 seconds, I think I'll finish in 196.8924236 minutes)
Iteration 319 (change = 0.0203191249094) (20.0547 seconds, I think I'll finish in 194.196345 minutes)
Iteration 320 (change = 0.0193741168667) (20.207483 seconds, I think I'll finish in 195.339002333 minutes)
Iteration 321 (change = 0.0183088116632) (20.230226 seconds, I think I'll finish in 195.2216809 minutes)
Iteration 322 (change = 0.0171487850982) (20.069706 seconds, I think I'll finish in 193.3381678 minutes)
Iteration 323 (change = 0.0160411987468) (20.179581 seconds, I think I'll finish in 194.06030395 minutes)
Iteration 324 (change = 0.0149666521704) (20.013901 seconds, I think I'll finish in 192.1334496 minutes)
Iteration 325 (change = 0.0139672013932) (20.019801 seconds, I think I'll finish in 191.85642625 minutes)
Iteration 326 (change = 0.0132940586262) (19.939256 seconds, I think I'll finish in 190.752215733 minutes)
Iteration 327 (change = 0.0128510450895) (19.933391 seconds, I think I'll finish in 190.36388405 minutes)
Iteration 328 (change = 0.0126170444368) (21.638475 seconds, I think I'll finish in 206.286795 minutes)
Iteration 329 (change = 0.0125248614098) (20.860052 seconds, I think I'll finish in 198.518161533 minutes)
Iteration 330 (change = 0.0123054538372) (19.984628 seconds, I think I'll finish in 189.853966 minutes)
Iteration 331 (change = 0.0121121188851) (19.936827 seconds, I think I'll finish in 189.06757605 minutes)
Iteration 332 (change = 0.0119556729285) (20.034007 seconds, I think I'll finish in 189.655266267 minutes)
Iteration 333 (change = 0.0118393429216) (21.486528 seconds, I think I'll finish in 203.0476896 minutes)
Iteration 334 (change = 0.0118057234926) (20.506021 seconds, I think I'll finish in 193.440131433 minutes)
Iteration 335 (change = 0.0118615648132) (20.071404 seconds, I think I'll finish in 189.005721 minutes)
Iteration 336 (change = 0.0120471758841) (20.115189 seconds, I think I'll finish in 189.0827766 minutes)
Iteration 337 (change = 0.0124296808239) (20.918965 seconds, I think I'll finish in 196.289621583 minutes)
Iteration 338 (change = 0.0128610059336) (20.528555 seconds, I think I'll finish in 192.284131833 minutes)
Iteration 339 (change = 0.0133104908358) (19.871709 seconds, I think I'll finish in 185.80047915 minutes)
Iteration 340 (change = 0.0138192141936) (19.996867 seconds, I think I'll finish in 186.637425333 minutes)
Iteration 341 (change = 0.014239391562) (21.375872 seconds, I think I'll finish in 199.151874133 minutes)
Iteration 342 (change = 0.0144464804667) (20.905923 seconds, I think I'll finish in 194.4250839 minutes)
Iteration 343 (change = 0.0144019511549) (22.466641 seconds, I think I'll finish in 208.565317283 minutes)
Iteration 344 (change = 0.0141930457553) (20.48139 seconds, I think I'll finish in 189.794214 minutes)
Iteration 345 (change = 0.013992340429) (19.949868 seconds, I think I'll finish in 184.536279 minutes)
Iteration 346 (change = 0.0138742582484) (20.013818 seconds, I think I'll finish in 184.794252867 minutes)
Iteration 347 (change = 0.0139010317251) (20.093759 seconds, I think I'll finish in 185.197478783 minutes)
Iteration 348 (change = 0.014199529132) (19.974412 seconds, I think I'll finish in 183.7645904 minutes)
Iteration 349 (change = 0.0147512587443) (19.960404 seconds, I think I'll finish in 183.3030434 minutes)
Iteration 350 (change = 0.0155534508443) (20.004026 seconds, I think I'll finish in 183.370238333 minutes)
Iteration 351 (change = 0.0166271041045) (19.82081 seconds, I think I'll finish in 181.3604115 minutes)
Iteration 352 (change = 0.0183396943462) (20.047179 seconds, I think I'll finish in 183.0975682 minutes)
Iteration 353 (change = 0.0205742268399) (19.912409 seconds, I think I'll finish in 181.534795383 minutes)
Iteration 354 (change = 0.0231501721005) (20.067747 seconds, I think I'll finish in 182.6164977 minutes)
Iteration 355 (change = 0.0258787874614) (19.926042 seconds, I think I'll finish in 180.9948815 minutes)
Iteration 356 (change = 0.0285930649439) (19.992136 seconds, I think I'll finish in 181.262033067 minutes)
Iteration 357 (change = 0.0313915420827) (20.08736 seconds, I think I'll finish in 181.790608 minutes)
Iteration 358 (change = 0.0345863920527) (20.473901 seconds, I think I'll finish in 184.947572367 minutes)
Iteration 359 (change = 0.0375261541477) (23.293208 seconds, I think I'll finish in 210.027092133 minutes)
Iteration 360 (change = 0.0375681699302) (21.590121 seconds, I think I'll finish in 194.311089 minutes)
Iteration 361 (change = 0.0347986949668) (19.864376 seconds, I think I'll finish in 178.448311067 minutes)
Iteration 362 (change = 0.0314843951965) (20.023921 seconds, I think I'll finish in 179.547824967 minutes)
Iteration 363 (change = 0.0284565368928) (19.878755 seconds, I think I'll finish in 177.91485725 minutes)
Iteration 364 (change = 0.0257616153556) (19.944187 seconds, I think I'll finish in 178.168070533 minutes)
Iteration 365 (change = 0.0233191296537) (19.857019 seconds, I think I'll finish in 177.058419417 minutes)
Iteration 366 (change = 0.021422510773) (20.050881 seconds, I think I'll finish in 178.4528409 minutes)
Iteration 367 (change = 0.0201175672943) (19.894573 seconds, I think I'll finish in 176.730123483 minutes)
Iteration 368 (change = 0.0190493823998) (19.965012 seconds, I think I'll finish in 177.0231064 minutes)
Iteration 369 (change = 0.0181729714433) (19.814916 seconds, I think I'll finish in 175.3620066 minutes)
Iteration 370 (change = 0.0174561269309) (20.000899 seconds, I think I'll finish in 176.674607833 minutes)
Iteration 371 (change = 0.016622442949) (19.966709 seconds, I think I'll finish in 176.039817683 minutes)
Iteration 372 (change = 0.015673855368) (21.886156 seconds, I think I'll finish in 192.5981728 minutes)
Iteration 373 (change = 0.0147474150855) (20.509654 seconds, I think I'll finish in 180.143127633 minutes)
Iteration 374 (change = 0.0139128695975) (20.152683 seconds, I think I'll finish in 176.6718543 minutes)
Iteration 375 (change = 0.0131246717796) (19.911209 seconds, I think I'll finish in 174.22307875 minutes)
Iteration 376 (change = 0.0124070328345) (20.673275 seconds, I think I'll finish in 180.546601667 minutes)
Iteration 377 (change = 0.0116801491522) (21.931996 seconds, I think I'll finish in 191.173898467 minutes)
Iteration 378 (change = 0.0110509324777) (20.088238 seconds, I think I'll finish in 174.7676706 minutes)
Iteration 379 (change = 0.010440161106) (19.954633 seconds, I think I'll finish in 173.272729883 minutes)
Iteration 380 (change = 0.00996598593889) (20.244163 seconds, I think I'll finish in 175.449412667 minutes)
Iteration 381 (change = 0.00951934382786) (19.996426 seconds, I think I'll finish in 172.9690849 minutes)
Iteration 382 (change = 0.00916018599833) (20.007412 seconds, I think I'll finish in 172.730656933 minutes)
Iteration 383 (change = 0.00877584953182) (19.985143 seconds, I think I'll finish in 172.205315517 minutes)
Iteration 384 (change = 0.00842862977447) (20.496311 seconds, I think I'll finish in 176.2682746 minutes)
Iteration 385 (change = 0.00819765197768) (19.963838 seconds, I think I'll finish in 171.356276167 minutes)
Iteration 386 (change = 0.00785493483087) (20.165044 seconds, I think I'll finish in 172.747210267 minutes)
Iteration 387 (change = 0.00739748910702) (21.382944 seconds, I think I'll finish in 182.8241712 minutes)
Iteration 388 (change = 0.00706912107886) (22.227416 seconds, I think I'll finish in 189.673949867 minutes)
Iteration 389 (change = 0.0068855373968) (20.465559 seconds, I think I'll finish in 174.29834415 minutes)
Iteration 390 (change = 0.00673049667405) (21.335621 seconds, I think I'll finish in 181.3527785 minutes)
Iteration 391 (change = 0.00664321588482) (20.055329 seconds, I think I'll finish in 170.136041017 minutes)
Iteration 392 (change = 0.00657569101703) (20.163749 seconds, I think I'll finish in 170.719741533 minutes)
Iteration 393 (change = 0.00651996861899) (19.811771 seconds, I think I'll finish in 167.40946495 minutes)
Iteration 394 (change = 0.0064706797699) (21.317202 seconds, I think I'll finish in 179.7750702 minutes)
Iteration 395 (change = 0.00639901858224) (20.107624 seconds, I think I'll finish in 169.239168667 minutes)
Iteration 396 (change = 0.00633835680888) (20.162732 seconds, I think I'll finish in 169.3669488 minutes)
Iteration 397 (change = 0.0062084727128) (19.915969 seconds, I think I'll finish in 166.962206783 minutes)
Iteration 398 (change = 0.00608342074972) (20.239194 seconds, I think I'll finish in 169.3345898 minutes)
Iteration 399 (change = 0.00608279141706) (20.001333 seconds, I think I'll finish in 167.01113055 minutes)
Iteration 400 (change = 0.00604863683774) (20.147788 seconds, I think I'll finish in 167.898233333 minutes)
Iteration 401 (change = 0.00604379221279) (20.632535 seconds, I think I'll finish in 171.593916083 minutes)
Iteration 402 (change = 0.00610528398197) (20.02556 seconds, I think I'll finish in 166.212148 minutes)
Iteration 403 (change = 0.00618004316488) (21.023038 seconds, I think I'll finish in 174.140831433 minutes)
Iteration 404 (change = 0.00632821610464) (21.083091 seconds, I think I'll finish in 174.2868856 minutes)
Iteration 405 (change = 0.00642941912908) (22.417222 seconds, I think I'll finish in 184.9420815 minutes)
Iteration 406 (change = 0.00636900418082) (20.170937 seconds, I think I'll finish in 166.074047967 minutes)
Iteration 407 (change = 0.00620865863984) (20.019119 seconds, I think I'll finish in 164.490427783 minutes)
Iteration 408 (change = 0.00614532630496) (19.979608 seconds, I think I'll finish in 163.8327856 minutes)
Iteration 409 (change = 0.00619938138345) (19.925327 seconds, I think I'll finish in 163.055592617 minutes)
Iteration 410 (change = 0.00630246788978) (20.141448 seconds, I think I'll finish in 164.488492 minutes)
Iteration 411 (change = 0.00639277736691) (19.999283 seconds, I think I'll finish in 162.99415645 minutes)
Iteration 412 (change = 0.00646397085393) (20.270805 seconds, I think I'll finish in 164.869214 minutes)
Iteration 413 (change = 0.0065472653312) (20.076515 seconds, I think I'll finish in 162.954380083 minutes)
Iteration 414 (change = 0.00663332887612) (20.155738 seconds, I think I'll finish in 163.2614778 minutes)
Iteration 415 (change = 0.00678130046834) (20.021126 seconds, I think I'll finish in 161.837435167 minutes)
Iteration 416 (change = 0.00697556748373) (20.142904 seconds, I think I'll finish in 162.486092267 minutes)
Iteration 417 (change = 0.00719219025372) (20.073102 seconds, I think I'll finish in 161.5884711 minutes)
Iteration 418 (change = 0.00736834431785) (20.887325 seconds, I think I'll finish in 167.794844167 minutes)
Iteration 419 (change = 0.00752798829297) (21.554882 seconds, I think I'll finish in 172.798304033 minutes)
Iteration 420 (change = 0.00766867555487) (20.201099 seconds, I think I'll finish in 161.608792 minutes)
Iteration 421 (change = 0.00773836075971) (21.166635 seconds, I think I'll finish in 168.98030275 minutes)
Iteration 422 (change = 0.00773730208136) (20.130447 seconds, I think I'll finish in 160.3725611 minutes)
Iteration 423 (change = 0.00779451087329) (20.059406 seconds, I think I'll finish in 159.4722777 minutes)
Iteration 424 (change = 0.00779026416024) (20.198284 seconds, I think I'll finish in 160.239719733 minutes)
Iteration 425 (change = 0.00769756822371) (20.465777 seconds, I think I'll finish in 162.020734583 minutes)
Iteration 426 (change = 0.00763202953284) (20.293297 seconds, I think I'll finish in 160.3170463 minutes)
Iteration 427 (change = 0.00750087029245) (19.970904 seconds, I think I'll finish in 157.4372932 minutes)
Iteration 428 (change = 0.00728091226025) (20.992417 seconds, I think I'll finish in 165.140347067 minutes)
Iteration 429 (change = 0.00705606101131) (20.726821 seconds, I think I'll finish in 162.70554485 minutes)
Iteration 430 (change = 0.00683862881789) (20.035403 seconds, I think I'll finish in 156.943990167 minutes)
Iteration 431 (change = 0.00658532258293) (20.061993 seconds, I think I'll finish in 156.81791195 minutes)
Iteration 432 (change = 0.00635503684889) (20.183655 seconds, I think I'll finish in 157.432509 minutes)
Iteration 433 (change = 0.00611341005505) (21.054227 seconds, I think I'll finish in 163.872066817 minutes)
Iteration 434 (change = 0.00571721691179) (21.341848 seconds, I think I'll finish in 165.755019467 minutes)
Iteration 435 (change = 0.00530076496414) (20.285313 seconds, I think I'll finish in 157.21117575 minutes)
Iteration 436 (change = 0.00491489567798) (21.049911 seconds, I think I'll finish in 162.7859784 minutes)
Iteration 437 (change = 0.00454820832582) (19.887731 seconds, I think I'll finish in 153.466990883 minutes)
Iteration 438 (change = 0.00428175069699) (20.418688 seconds, I think I'll finish in 157.2238976 minutes)
Iteration 439 (change = 0.00401898723848) (20.464331 seconds, I think I'll finish in 157.234276517 minutes)
Iteration 440 (change = 0.00377721511439) (22.083891 seconds, I think I'll finish in 169.309831 minutes)
Iteration 441 (change = 0.00351306325263) (20.174205 seconds, I think I'll finish in 154.33266825 minutes)
Iteration 442 (change = 0.00318476416187) (20.137691 seconds, I think I'll finish in 153.717707967 minutes)
Iteration 443 (change = 0.00293755183621) (20.503434 seconds, I think I'll finish in 156.1678223 minutes)
Iteration 444 (change = 0.00287201449052) (20.284264 seconds, I think I'll finish in 154.1604064 minutes)
Iteration 445 (change = 0.00285046115761) (20.039922 seconds, I think I'll finish in 151.9694085 minutes)
Iteration 446 (change = 0.00284817455929) (20.40534 seconds, I think I'll finish in 154.400406 minutes)
Iteration 447 (change = 0.00280669356001) (20.780418 seconds, I think I'll finish in 156.8921559 minutes)
Iteration 448 (change = 0.00275527019479) (20.650171 seconds, I think I'll finish in 155.564621533 minutes)
Iteration 449 (change = 0.00269891471662) (23.32136 seconds, I think I'll finish in 175.298889333 minutes)
Iteration 450 (change = 0.00265360091021) (20.241023 seconds, I think I'll finish in 151.8076725 minutes)
Iteration 451 (change = 0.00264833459528) (20.027077 seconds, I think I'll finish in 149.869292883 minutes)
Iteration 452 (change = 0.00264311889982) (20.208395 seconds, I think I'll finish in 150.889349333 minutes)
Iteration 453 (change = 0.00263861645317) (20.091986 seconds, I think I'll finish in 149.6852957 minutes)
Iteration 454 (change = 0.00264785402782) (21.147376 seconds, I think I'll finish in 157.195494933 minutes)
Iteration 455 (change = 0.00265991309258) (20.498376 seconds, I think I'll finish in 152.029622 minutes)
Iteration 456 (change = 0.00264150573319) (20.209162 seconds, I think I'll finish in 149.5477988 minutes)
Iteration 457 (change = 0.00254339328613) (20.007636 seconds, I think I'll finish in 147.7230458 minutes)
Iteration 458 (change = 0.00254017880504) (20.295285 seconds, I think I'll finish in 149.5085995 minutes)
Iteration 459 (change = 0.00257287094451) (20.063956 seconds, I think I'll finish in 147.4700766 minutes)
Iteration 460 (change = 0.00259788963519) (20.213423 seconds, I think I'll finish in 148.231768667 minutes)
Iteration 461 (change = 0.00261346003235) (20.153754 seconds, I think I'll finish in 147.4583001 minutes)
Iteration 462 (change = 0.00261474662437) (20.764333 seconds, I think I'll finish in 151.5796309 minutes)
Iteration 463 (change = 0.0025305404889) (21.440385 seconds, I think I'll finish in 156.15747075 minutes)
Iteration 464 (change = 0.00251583454489) (21.672024 seconds, I think I'll finish in 157.4833744 minutes)
Iteration 465 (change = 0.00257401287534) (20.011258 seconds, I think I'll finish in 145.0816205 minutes)
Iteration 466 (change = 0.00260663211694) (21.509221 seconds, I think I'll finish in 155.583365233 minutes)
Iteration 467 (change = 0.00265250512271) (20.068098 seconds, I think I'll finish in 144.8247739 minutes)
Iteration 468 (change = 0.00269596665152) (20.230762 seconds, I think I'll finish in 145.6614864 minutes)
Iteration 469 (change = 0.00273098701124) (20.149422 seconds, I think I'll finish in 144.7400147 minutes)
Iteration 470 (change = 0.00271345799497) (20.283909 seconds, I think I'll finish in 145.3680145 minutes)
Iteration 471 (change = 0.00273097300213) (20.016351 seconds, I think I'll finish in 143.11690965 minutes)
Iteration 472 (change = 0.00278947282426) (20.100851 seconds, I think I'll finish in 143.386070467 minutes)
Iteration 473 (change = 0.00288476922547) (20.04255 seconds, I think I'll finish in 142.6361475 minutes)
Iteration 474 (change = 0.0030136837634) (20.168642 seconds, I think I'll finish in 143.1973582 minutes)
Iteration 475 (change = 0.00317667338341) (19.82245 seconds, I think I'll finish in 140.409020833 minutes)
Iteration 476 (change = 0.00337276378499) (19.991634 seconds, I think I'll finish in 141.2742136 minutes)
Iteration 477 (change = 0.00358769218809) (20.742022 seconds, I think I'll finish in 146.2312551 minutes)
Iteration 478 (change = 0.00376209733376) (22.015647 seconds, I think I'll finish in 154.8433839 minutes)
Iteration 479 (change = 0.00392222583984) (20.166925 seconds, I think I'll finish in 141.504590417 minutes)
Iteration 480 (change = 0.00404154272929) (21.505288 seconds, I think I'll finish in 150.537016 minutes)
Iteration 481 (change = 0.00415588560085) (19.924391 seconds, I think I'll finish in 139.138663817 minutes)
Iteration 482 (change = 0.00432379392085) (21.591275 seconds, I think I'll finish in 150.419215833 minutes)
Iteration 483 (change = 0.00453047556372) (20.191007 seconds, I think I'll finish in 140.32749865 minutes)
Iteration 484 (change = 0.00466794943117) (19.96781 seconds, I think I'll finish in 138.443482667 minutes)
Iteration 485 (change = 0.00473087915396) (20.366986 seconds, I think I'll finish in 140.871653167 minutes)
Iteration 486 (change = 0.00475567120214) (19.98671 seconds, I think I'll finish in 137.908299 minutes)
Iteration 487 (change = 0.0047396858728) (19.940453 seconds, I think I'll finish in 137.256784817 minutes)
Iteration 488 (change = 0.00473766510696) (20.1523 seconds, I think I'll finish in 138.379126667 minutes)
Iteration 489 (change = 0.00470303844566) (20.098631 seconds, I think I'll finish in 137.67562235 minutes)
Iteration 490 (change = 0.00460726331812) (20.068931 seconds, I think I'll finish in 137.137695167 minutes)
Iteration 491 (change = 0.00453730771998) (20.322197 seconds, I think I'll finish in 138.529642883 minutes)
Iteration 492 (change = 0.00444894760271) (21.161788 seconds, I think I'll finish in 143.9001584 minutes)
Iteration 493 (change = 0.00433529034436) (20.055485 seconds, I think I'll finish in 136.043039917 minutes)
Iteration 494 (change = 0.00425956091609) (21.533283 seconds, I think I'll finish in 145.7085483 minutes)
Iteration 495 (change = 0.00420251348811) (20.997772 seconds, I think I'll finish in 141.734961 minutes)
Iteration 496 (change = 0.00416159444327) (21.843604 seconds, I think I'll finish in 147.080266933 minutes)
Iteration 497 (change = 0.00413625920954) (20.016869 seconds, I think I'll finish in 134.446636783 minutes)
Iteration 498 (change = 0.00412557997365) (21.460652 seconds, I think I'll finish in 143.7863684 minutes)
Iteration 499 (change = 0.00412130837888) (19.946141 seconds, I think I'll finish in 133.306709017 minutes)
Iteration 500 (change = 0.00410751771385) (19.968374 seconds, I think I'll finish in 133.122493333 minutes)
Iteration 501 (change = 0.00411317351107) (20.0197 seconds, I think I'll finish in 133.131005 minutes)
Iteration 502 (change = 0.00413540094112) (20.181302 seconds, I think I'll finish in 133.869303267 minutes)
Iteration 503 (change = 0.00414303253819) (20.044923 seconds, I think I'll finish in 132.63057385 minutes)
Iteration 504 (change = 0.00409802372236) (20.144465 seconds, I think I'll finish in 132.953469 minutes)
Iteration 505 (change = 0.00409944479489) (20.11559 seconds, I think I'll finish in 132.427634167 minutes)
Iteration 506 (change = 0.00412771389939) (20.628409 seconds, I think I'll finish in 135.459885767 minutes)
Iteration 507 (change = 0.00412871499719) (20.796207 seconds, I think I'll finish in 136.21515585 minutes)
Iteration 508 (change = 0.00405636992963) (20.070508 seconds, I think I'll finish in 131.127318933 minutes)
Iteration 509 (change = 0.00407484059927) (19.999849 seconds, I think I'll finish in 130.332349317 minutes)
Iteration 510 (change = 0.00413191825126) (21.309967 seconds, I think I'll finish in 138.5147855 minutes)
Iteration 511 (change = 0.00418908283798) (20.516339 seconds, I think I'll finish in 133.014264517 minutes)
Iteration 512 (change = 0.00423927709037) (20.690381 seconds, I think I'll finish in 133.797797133 minutes)
Iteration 513 (change = 0.0043167043523) (20.042608 seconds, I think I'll finish in 129.2748216 minutes)
Iteration 514 (change = 0.00441998232977) (20.083741 seconds, I think I'll finish in 129.205400433 minutes)
Iteration 515 (change = 0.00453808358122) (21.500006 seconds, I think I'll finish in 137.958371833 minutes)
Iteration 516 (change = 0.00461501709295) (20.511941 seconds, I think I'll finish in 131.2764224 minutes)
Iteration 517 (change = 0.00468430874977) (22.746639 seconds, I think I'll finish in 145.19937895 minutes)
Iteration 518 (change = 0.00480647373183) (20.40632 seconds, I think I'll finish in 129.920237333 minutes)
Iteration 519 (change = 0.00490488277187) (20.951294 seconds, I think I'll finish in 133.0407169 minutes)
Iteration 520 (change = 0.00500444704888) (21.113254 seconds, I think I'll finish in 133.717275333 minutes)
Iteration 521 (change = 0.0051287634522) (21.267448 seconds, I think I'll finish in 134.339379867 minutes)
Iteration 522 (change = 0.00523042912248) (21.273982 seconds, I think I'll finish in 134.0260866 minutes)
Iteration 523 (change = 0.00527935511687) (21.163959 seconds, I think I'll finish in 132.98020905 minutes)
Iteration 524 (change = 0.00537791305487) (21.574294 seconds, I think I'll finish in 135.198909067 minutes)
Iteration 525 (change = 0.00549138102685) (21.538127 seconds, I think I'll finish in 134.61329375 minutes)
Iteration 526 (change = 0.00560022523402) (23.739458 seconds, I think I'll finish in 147.975954867 minutes)
Iteration 527 (change = 0.00565346973921) (22.62104 seconds, I think I'll finish in 140.627465333 minutes)
Iteration 528 (change = 0.00573758207083) (20.980216 seconds, I think I'll finish in 130.0773392 minutes)
Iteration 529 (change = 0.00580952214429) (21.300158 seconds, I think I'll finish in 131.705976967 minutes)
Iteration 530 (change = 0.00583499945122) (22.32335 seconds, I think I'll finish in 137.660658333 minutes)
Iteration 531 (change = 0.00585647593165) (22.00822 seconds, I think I'll finish in 135.350553 minutes)
Iteration 532 (change = 0.00592211022566) (21.70963 seconds, I think I'll finish in 133.152397333 minutes)
Iteration 533 (change = 0.00600849726226) (21.285235 seconds, I think I'll finish in 130.194687417 minutes)
Iteration 534 (change = 0.00610901569107) (21.562653 seconds, I think I'll finish in 131.5321833 minutes)
Iteration 535 (change = 0.00619836852233) (21.447003 seconds, I think I'll finish in 130.46926825 minutes)
Iteration 536 (change = 0.00623770369398) (21.812534 seconds, I think I'll finish in 132.329372933 minutes)
Iteration 537 (change = 0.00627375814843) (22.164176 seconds, I think I'll finish in 134.0932648 minutes)
Iteration 538 (change = 0.00634218042746) (21.77206 seconds, I think I'll finish in 131.358095333 minutes)
Iteration 539 (change = 0.00642019817441) (20.654865 seconds, I think I'll finish in 124.27343775 minutes)
Iteration 540 (change = 0.00649835696125) (22.266514 seconds, I think I'll finish in 133.599084 minutes)
Iteration 541 (change = 0.00656564590181) (20.589658 seconds, I think I'll finish in 123.194787033 minutes)
Iteration 542 (change = 0.00659980316681) (20.538406 seconds, I think I'll finish in 122.545822467 minutes)
Iteration 543 (change = 0.00662663134353) (20.855047 seconds, I think I'll finish in 124.08752965 minutes)
Iteration 544 (change = 0.00664357201616) (22.381586 seconds, I think I'll finish in 132.797410267 minutes)
Iteration 545 (change = 0.00663095179766) (23.136725 seconds, I think I'll finish in 136.892289583 minutes)
Iteration 546 (change = 0.00656259541285) (21.432179 seconds, I think I'll finish in 126.4498561 minutes)
Iteration 547 (change = 0.00651280960444) (21.457731 seconds, I think I'll finish in 126.24298405 minutes)
Iteration 548 (change = 0.00648356080796) (22.59622 seconds, I think I'll finish in 132.564490667 minutes)
Iteration 549 (change = 0.00645788090725) (21.687005 seconds, I think I'll finish in 126.86897925 minutes)
Iteration 550 (change = 0.00643775987359) (22.254979 seconds, I think I'll finish in 129.820710833 minutes)
Iteration 551 (change = 0.00642656787741) (21.838482 seconds, I think I'll finish in 127.0271703 minutes)
Iteration 552 (change = 0.00642743493247) (20.989004 seconds, I think I'll finish in 121.7362232 minutes)
Iteration 553 (change = 0.00644448794078) (22.497221 seconds, I think I'll finish in 130.108928117 minutes)
Iteration 554 (change = 0.00648260403565) (20.879034 seconds, I think I'll finish in 120.4024294 minutes)
Iteration 555 (change = 0.00654664135721) (20.497399 seconds, I think I'll finish in 117.86004425 minutes)
Iteration 556 (change = 0.00662494303229) (22.450108 seconds, I think I'll finish in 128.713952533 minutes)
Iteration 557 (change = 0.00669678946642) (20.85742 seconds, I think I'll finish in 119.234917667 minutes)
Iteration 558 (change = 0.0068290805551) (21.078657 seconds, I think I'll finish in 120.1483449 minutes)
Iteration 559 (change = 0.00698327335738) (21.810533 seconds, I think I'll finish in 123.956529217 minutes)
Iteration 560 (change = 0.0071817624905) (21.091698 seconds, I think I'll finish in 119.519622 minutes)
Iteration 561 (change = 0.00744915619568) (21.028824 seconds, I think I'll finish in 118.8128556 minutes)
Iteration 562 (change = 0.00777441203907) (21.760097 seconds, I think I'll finish in 122.581879767 minutes)
Iteration 563 (change = 0.00814652721824) (21.156324 seconds, I think I'll finish in 118.8280198 minutes)
Iteration 564 (change = 0.00851917737955) (21.112021 seconds, I think I'll finish in 118.2273176 minutes)
Iteration 565 (change = 0.00888837028075) (20.915336 seconds, I think I'll finish in 116.777292667 minutes)
Iteration 566 (change = 0.00930051790517) (21.011192 seconds, I think I'll finish in 116.962302133 minutes)
Iteration 567 (change = 0.00978069476232) (22.59044 seconds, I think I'll finish in 125.376942 minutes)
Iteration 568 (change = 0.0103018587725) (22.28778 seconds, I think I'll finish in 123.325716 minutes)
Iteration 569 (change = 0.0109230050742) (20.851089 seconds, I think I'll finish in 115.02850765 minutes)
Iteration 570 (change = 0.0117006832226) (20.844334 seconds, I think I'll finish in 114.643837 minutes)
Iteration 571 (change = 0.0128352739416) (21.202246 seconds, I think I'll finish in 116.258982233 minutes)
Iteration 572 (change = 0.0139860547499) (21.336882 seconds, I think I'll finish in 116.6416216 minutes)
Iteration 573 (change = 0.0140059077738) (22.842231 seconds, I think I'll finish in 124.49015895 minutes)
Iteration 574 (change = 0.0137067991684) (21.010642 seconds, I think I'll finish in 114.157821533 minutes)
Iteration 575 (change = 0.0133833856272) (21.409408 seconds, I think I'll finish in 115.967626667 minutes)
Iteration 576 (change = 0.0132950968858) (22.854145 seconds, I think I'll finish in 123.412383 minutes)
Iteration 577 (change = 0.013389078376) (21.52854 seconds, I think I'll finish in 115.895307 minutes)
Iteration 578 (change = 0.0135851949961) (20.801735 seconds, I think I'll finish in 111.635977833 minutes)
Iteration 579 (change = 0.0138989658931) (20.731323 seconds, I think I'll finish in 110.91257805 minutes)
Iteration 580 (change = 0.0142080197716) (21.919613 seconds, I think I'll finish in 116.904602667 minutes)
Iteration 581 (change = 0.0144197861019) (20.907766 seconds, I think I'll finish in 111.159622567 minutes)
Iteration 582 (change = 0.0143705454939) (21.471176 seconds, I think I'll finish in 113.7972328 minutes)
Iteration 583 (change = 0.0141115371596) (20.985006 seconds, I think I'll finish in 110.8707817 minutes)
Iteration 584 (change = 0.0138305541155) (24.073902 seconds, I think I'll finish in 126.7892172 minutes)
Iteration 585 (change = 0.0135527129196) (21.444376 seconds, I think I'll finish in 112.582974 minutes)
Iteration 586 (change = 0.0132228223764) (21.368136 seconds, I think I'll finish in 111.8265784 minutes)
Iteration 587 (change = 0.0128254146188) (20.921043 seconds, I think I'll finish in 109.13810765 minutes)
Iteration 588 (change = 0.0123384014385) (21.591192 seconds, I think I'll finish in 112.2741984 minutes)
Iteration 589 (change = 0.0117792222004) (22.391682 seconds, I think I'll finish in 116.0635517 minutes)
Iteration 590 (change = 0.0112475545105) (21.868367 seconds, I think I'll finish in 112.986562833 minutes)
Iteration 591 (change = 0.0107096708693) (22.063125 seconds, I think I'll finish in 113.62509375 minutes)
Iteration 592 (change = 0.0102334608155) (21.102774 seconds, I think I'll finish in 108.3275732 minutes)
Iteration 593 (change = 0.0098563894944) (21.862176 seconds, I think I'll finish in 111.8614672 minutes)
Iteration 594 (change = 0.00954074451492) (20.830503 seconds, I think I'll finish in 106.2355653 minutes)
Iteration 595 (change = 0.00929979922105) (23.980962 seconds, I think I'll finish in 121.9032235 minutes)
Iteration 596 (change = 0.00914045548648) (22.161885 seconds, I think I'll finish in 112.286884 minutes)
Iteration 597 (change = 0.00903263046367) (22.124552 seconds, I think I'll finish in 111.7289876 minutes)
Iteration 598 (change = 0.0089906143562) (21.337608 seconds, I think I'll finish in 107.3992936 minutes)
Iteration 599 (change = 0.00906243915238) (24.466035 seconds, I think I'll finish in 122.73794225 minutes)
Iteration 600 (change = 0.00922013378585) (23.127819 seconds, I think I'll finish in 115.639095 minutes)
Iteration 601 (change = 0.00941100263989) (21.834792 seconds, I think I'll finish in 108.8100468 minutes)
Iteration 602 (change = 0.00969074964713) (21.422424 seconds, I think I'll finish in 106.3980392 minutes)
Iteration 603 (change = 0.0102229961597) (21.506286 seconds, I think I'll finish in 106.4561157 minutes)
Iteration 604 (change = 0.0109876726954) (21.514544 seconds, I think I'll finish in 106.138417067 minutes)
Iteration 605 (change = 0.0119496172462) (20.956878 seconds, I think I'll finish in 103.0379835 minutes)
Iteration 606 (change = 0.0130750941372) (21.601325 seconds, I think I'll finish in 105.8464925 minutes)
Iteration 607 (change = 0.0143693789742) (21.067967 seconds, I think I'll finish in 102.881905517 minutes)
Iteration 608 (change = 0.0156597590963) (21.824818 seconds, I think I'll finish in 106.214114267 minutes)
Iteration 609 (change = 0.0167002320329) (22.091455 seconds, I think I'll finish in 107.14355675 minutes)
Iteration 610 (change = 0.0174062916534) (21.977562 seconds, I think I'll finish in 106.224883 minutes)
Iteration 611 (change = 0.0175852994478) (23.587245 seconds, I think I'll finish in 113.61189675 minutes)
Iteration 612 (change = 0.0171236630864) (21.266951 seconds, I think I'll finish in 102.0813648 minutes)
Iteration 613 (change = 0.0161348369845) (20.853581 seconds, I think I'll finish in 99.7496291167 minutes)
Iteration 614 (change = 0.0149032907001) (22.947792 seconds, I think I'll finish in 109.3844752 minutes)
Iteration 615 (change = 0.0137552195597) (21.350152 seconds, I think I'll finish in 101.413222 minutes)
Iteration 616 (change = 0.0128975126057) (21.968391 seconds, I think I'll finish in 103.9837174 minutes)
Iteration 617 (change = 0.0125072063331) (22.595793 seconds, I think I'll finish in 106.57682365 minutes)
Iteration 618 (change = 0.0125839009587) (22.562144 seconds, I think I'll finish in 106.0420768 minutes)
Iteration 619 (change = 0.0130374157499) (21.297186 seconds, I think I'll finish in 99.7418211 minutes)
Iteration 620 (change = 0.0136528020336) (21.222514 seconds, I think I'll finish in 99.0383986667 minutes)
Iteration 621 (change = 0.0141753885294) (21.434457 seconds, I think I'll finish in 99.67022505 minutes)
Iteration 622 (change = 0.0144918985156) (22.359357 seconds, I think I'll finish in 103.5983541 minutes)
Iteration 623 (change = 0.0145969405332) (22.761188 seconds, I think I'll finish in 105.080817933 minutes)
Iteration 624 (change = 0.0145810595256) (23.293513 seconds, I think I'll finish in 107.1501598 minutes)
Iteration 625 (change = 0.0143755853075) (22.839407 seconds, I think I'll finish in 104.680615417 minutes)
Iteration 626 (change = 0.0139855962452) (24.268118 seconds, I think I'll finish in 110.824405533 minutes)
Iteration 627 (change = 0.0133515342889) (24.339856 seconds, I think I'll finish in 110.7463448 minutes)
Iteration 628 (change = 0.0124806922371) (23.901237 seconds, I think I'll finish in 108.3522744 minutes)
Iteration 629 (change = 0.0115064664998) (22.082004 seconds, I think I'll finish in 99.7370514 minutes)
Iteration 630 (change = 0.0105819034553) (23.197937 seconds, I think I'll finish in 104.3907165 minutes)
Iteration 631 (change = 0.00973103889204) (22.136923 seconds, I think I'll finish in 99.2472047833 minutes)
Iteration 632 (change = 0.00902816347105) (21.842304 seconds, I think I'll finish in 97.5622912 minutes)
Iteration 633 (change = 0.00846414351788) (22.326597 seconds, I think I'll finish in 99.35335665 minutes)
Iteration 634 (change = 0.00789867329817) (21.839475 seconds, I think I'll finish in 96.8216725 minutes)
Iteration 635 (change = 0.00739807782202) (22.121403 seconds, I think I'll finish in 97.70286325 minutes)
Iteration 636 (change = 0.007005071137) (25.158904 seconds, I think I'll finish in 110.6991776 minutes)
Iteration 637 (change = 0.00672512244232) (22.002818 seconds, I think I'll finish in 96.4456855667 minutes)
Iteration 638 (change = 0.00651458507519) (21.875168 seconds, I think I'll finish in 95.5215669333 minutes)
Iteration 639 (change = 0.0063239185458) (21.918524 seconds, I think I'll finish in 95.3455794 minutes)
Iteration 640 (change = 0.00610943206076) (21.842103 seconds, I think I'll finish in 94.649113 minutes)
Iteration 641 (change = 0.00586831461604) (20.784736 seconds, I think I'll finish in 89.7207770667 minutes)
Iteration 642 (change = 0.0056504261746) (22.464119 seconds, I think I'll finish in 96.5957117 minutes)
Iteration 643 (change = 0.0054070581569) (21.836652 seconds, I think I'll finish in 93.5336594 minutes)
Iteration 644 (change = 0.00519041118147) (23.2025 seconds, I think I'll finish in 98.9973333333 minutes)
Iteration 645 (change = 0.00500764139928) (21.922003 seconds, I think I'll finish in 93.16851275 minutes)
Iteration 646 (change = 0.00480110191494) (20.656078 seconds, I think I'll finish in 87.4440635333 minutes)
Iteration 647 (change = 0.00461286915364) (20.778544 seconds, I think I'll finish in 87.6161938667 minutes)
Iteration 648 (change = 0.00442879615463) (21.063878 seconds, I think I'll finish in 88.4682876 minutes)
Iteration 649 (change = 0.00426646851903) (20.619729 seconds, I think I'll finish in 86.25919965 minutes)
Iteration 650 (change = 0.00411855211483) (20.978512 seconds, I think I'll finish in 87.4104666667 minutes)
Iteration 651 (change = 0.00395239001328) (20.80156 seconds, I think I'll finish in 86.326474 minutes)
Iteration 652 (change = 0.00379039418813) (21.272755 seconds, I think I'll finish in 87.9273873333 minutes)
Iteration 653 (change = 0.00363507661733) (21.602098 seconds, I think I'll finish in 88.9286367667 minutes)
Iteration 654 (change = 0.00345804563841) (20.904545 seconds, I think I'll finish in 85.7086345 minutes)
Iteration 655 (change = 0.00333152723705) (20.764856 seconds, I think I'll finish in 84.7898286667 minutes)
Iteration 656 (change = 0.00326558091352) (20.845498 seconds, I think I'll finish in 84.7716918667 minutes)
Iteration 657 (change = 0.003225076818) (20.57447 seconds, I think I'll finish in 83.3266035 minutes)
Iteration 658 (change = 0.00320496330784) (21.106974 seconds, I think I'll finish in 85.1314618 minutes)
Iteration 659 (change = 0.00320282514837) (20.375806 seconds, I think I'll finish in 81.8428207667 minutes)
Iteration 660 (change = 0.00320425155656) (20.374097 seconds, I think I'll finish in 81.496388 minutes)
Iteration 661 (change = 0.0031966356272) (20.269499 seconds, I think I'll finish in 80.7401710166 minutes)
Iteration 662 (change = 0.00317090976513) (20.421491 seconds, I think I'll finish in 81.0052476333 minutes)
Iteration 663 (change = 0.0031824123744) (20.162626 seconds, I think I'll finish in 79.6423727 minutes)
Iteration 664 (change = 0.0031986790554) (20.508881 seconds, I think I'll finish in 80.6682652667 minutes)
Iteration 665 (change = 0.00323173261031) (20.276476 seconds, I think I'll finish in 79.4161976667 minutes)
Iteration 666 (change = 0.00327693982392) (20.464846 seconds, I think I'll finish in 79.8128994 minutes)
Iteration 667 (change = 0.00333251790547) (20.778714 seconds, I think I'll finish in 80.6906727 minutes)
Iteration 668 (change = 0.00335779188644) (20.696002 seconds, I think I'll finish in 80.0245410667 minutes)
Iteration 669 (change = 0.00339885106755) (20.714189 seconds, I think I'll finish in 79.74962765 minutes)
Iteration 670 (change = 0.00345495644524) (21.00396 seconds, I think I'll finish in 80.51518 minutes)
Iteration 671 (change = 0.00349280628915) (20.611694 seconds, I think I'll finish in 78.6679654333 minutes)
Iteration 672 (change = 0.00351778967975) (21.0054 seconds, I think I'll finish in 79.82052 minutes)
Iteration 673 (change = 0.00353527697788) (21.423691 seconds, I think I'll finish in 81.0529642833 minutes)
Iteration 674 (change = 0.00357838201648) (20.74742 seconds, I think I'll finish in 78.1486153333 minutes)
Iteration 675 (change = 0.00362667661966) (20.542495 seconds, I think I'll finish in 77.03435625 minutes)
Iteration 676 (change = 0.00368306717783) (20.71614 seconds, I think I'll finish in 77.340256 minutes)
Iteration 677 (change = 0.00374227996484) (20.616101 seconds, I think I'll finish in 76.6231753833 minutes)
Iteration 678 (change = 0.00379033789502) (20.640755 seconds, I think I'll finish in 76.3707935 minutes)
Iteration 679 (change = 0.00384617430403) (20.48967 seconds, I think I'll finish in 75.4702845 minutes)
Iteration 680 (change = 0.00391735549282) (20.53781 seconds, I think I'll finish in 75.3053033333 minutes)
Iteration 681 (change = 0.00401100417227) (20.554462 seconds, I think I'll finish in 75.0237863 minutes)
Iteration 682 (change = 0.00412503957721) (20.730459 seconds, I think I'll finish in 75.3206677 minutes)
Iteration 683 (change = 0.00425821705324) (20.535347 seconds, I think I'll finish in 74.2695049833 minutes)
Iteration 684 (change = 0.0044020428519) (21.127584 seconds, I think I'll finish in 76.0593024 minutes)
Iteration 685 (change = 0.00453664875568) (21.189005 seconds, I think I'll finish in 75.9272679167 minutes)
Iteration 686 (change = 0.00469950721005) (21.385159 seconds, I think I'll finish in 76.2737337667 minutes)
Iteration 687 (change = 0.00488798747051) (21.697964 seconds, I think I'll finish in 77.0277722 minutes)
Iteration 688 (change = 0.00507502628736) (21.212727 seconds, I think I'll finish in 74.9516354 minutes)
Iteration 689 (change = 0.0052492091103) (20.698291 seconds, I think I'll finish in 72.7889900167 minutes)
Iteration 690 (change = 0.00542530392427) (21.0212 seconds, I think I'll finish in 73.5742 minutes)
Iteration 691 (change = 0.0055104581958) (20.659299 seconds, I think I'll finish in 71.96322485 minutes)
Iteration 692 (change = 0.00556230594941) (21.037914 seconds, I think I'll finish in 72.9314352 minutes)
Iteration 693 (change = 0.00568916773606) (20.710167 seconds, I think I'll finish in 71.45007615 minutes)
Iteration 694 (change = 0.00585650222081) (22.338121 seconds, I think I'll finish in 76.6942154333 minutes)
Iteration 695 (change = 0.00602668922857) (20.730799 seconds, I think I'll finish in 70.8302299167 minutes)
Iteration 696 (change = 0.00609975650474) (20.643718 seconds, I think I'll finish in 70.1886412 minutes)
Iteration 697 (change = 0.00615316490267) (20.906689 seconds, I think I'll finish in 70.7342977833 minutes)
Iteration 698 (change = 0.00624382990685) (20.461539 seconds, I think I'll finish in 68.8871813 minutes)
Iteration 699 (change = 0.00637685043623) (21.194313 seconds, I think I'll finish in 71.00094855 minutes)
Iteration 700 (change = 0.0065324002964) (20.68736 seconds, I think I'll finish in 68.9578666667 minutes)
Iteration 701 (change = 0.00670315119305) (21.153361 seconds, I think I'll finish in 70.1586473167 minutes)
Iteration 702 (change = 0.0068744730674) (21.209775 seconds, I think I'll finish in 69.9922575 minutes)
Iteration 703 (change = 0.00702743327252) (20.646903 seconds, I think I'll finish in 67.79066485 minutes)
Iteration 704 (change = 0.00719227861128) (20.58955 seconds, I think I'll finish in 67.2591966667 minutes)
Iteration 705 (change = 0.00734120712943) (20.904111 seconds, I think I'll finish in 67.93836075 minutes)
Iteration 706 (change = 0.00745945777207) (20.723446 seconds, I think I'll finish in 67.0058087333 minutes)
Iteration 707 (change = 0.00761995178153) (20.767682 seconds, I think I'll finish in 66.8027104333 minutes)
Iteration 708 (change = 0.00783384652454) (21.030332 seconds, I think I'll finish in 67.2970624 minutes)
Iteration 709 (change = 0.0080117168302) (20.535445 seconds, I think I'll finish in 65.3711665833 minutes)
Iteration 710 (change = 0.00818700033417) (20.81436 seconds, I think I'll finish in 65.91214 minutes)
Iteration 711 (change = 0.00836938424909) (21.379611 seconds, I think I'll finish in 67.34577465 minutes)
Iteration 712 (change = 0.00861774693221) (21.856732 seconds, I think I'll finish in 68.4844269333 minutes)
Iteration 713 (change = 0.00887648766246) (21.329997 seconds, I think I'll finish in 66.47849065 minutes)
Iteration 714 (change = 0.00910197631818) (21.393978 seconds, I think I'll finish in 66.3213318 minutes)
Iteration 715 (change = 0.00930583932811) (23.341355 seconds, I think I'll finish in 71.9691779167 minutes)
Iteration 716 (change = 0.00945576396438) (20.988913 seconds, I think I'll finish in 64.3659998667 minutes)
Iteration 717 (change = 0.0096482402419) (20.56233 seconds, I think I'll finish in 62.7151065 minutes)
Iteration 718 (change = 0.00991476199526) (20.568417 seconds, I think I'll finish in 62.3908649 minutes)
Iteration 719 (change = 0.0102067071893) (20.512286 seconds, I think I'll finish in 61.8787294333 minutes)
Iteration 720 (change = 0.0105189054994) (20.715793 seconds, I think I'll finish in 62.147379 minutes)
Iteration 721 (change = 0.0108492562661) (20.411652 seconds, I think I'll finish in 60.8947618 minutes)
Iteration 722 (change = 0.0111791684469) (20.841013 seconds, I think I'll finish in 61.8283385667 minutes)
Iteration 723 (change = 0.0115004678153) (20.31063 seconds, I think I'll finish in 59.9163585 minutes)
Iteration 724 (change = 0.0117998033101) (20.465503 seconds, I think I'll finish in 60.0321421333 minutes)
Iteration 725 (change = 0.0120424111931) (20.604737 seconds, I think I'll finish in 60.0971495833 minutes)
Iteration 726 (change = 0.0122776417119) (20.53204 seconds, I think I'll finish in 59.542916 minutes)
Iteration 727 (change = 0.0125659034176) (20.385955 seconds, I think I'll finish in 58.7795035833 minutes)
Iteration 728 (change = 0.0129283994719) (20.767401 seconds, I think I'll finish in 59.5332162 minutes)
Iteration 729 (change = 0.0134083194591) (20.2449 seconds, I think I'll finish in 57.697965 minutes)
Iteration 730 (change = 0.0140220372668) (21.028118 seconds, I think I'll finish in 59.5796676667 minutes)
Iteration 731 (change = 0.0148219177885) (21.058308 seconds, I think I'll finish in 59.3142342 minutes)
Iteration 732 (change = 0.0158382783849) (20.575283 seconds, I think I'll finish in 57.6107924 minutes)
Iteration 733 (change = 0.0169483814927) (20.490633 seconds, I think I'll finish in 57.03226185 minutes)
Iteration 734 (change = 0.0180003447837) (20.708556 seconds, I think I'll finish in 57.2936716 minutes)
Iteration 735 (change = 0.0189318944161) (21.465519 seconds, I think I'll finish in 59.03017725 minutes)
Iteration 736 (change = 0.0194230726224) (21.290197 seconds, I think I'll finish in 58.1932051333 minutes)
Iteration 737 (change = 0.0193077498939) (21.455061 seconds, I think I'll finish in 58.28624905 minutes)
Iteration 738 (change = 0.0185474361246) (21.416849 seconds, I think I'll finish in 57.8254923 minutes)
Iteration 739 (change = 0.0174027385761) (21.215149 seconds, I think I'll finish in 56.9273164833 minutes)
Iteration 740 (change = 0.016184613937) (21.763459 seconds, I think I'll finish in 58.0358906667 minutes)
Iteration 741 (change = 0.0152355337842) (21.034516 seconds, I think I'll finish in 55.7414674 minutes)
Iteration 742 (change = 0.0145329077634) (21.035667 seconds, I think I'll finish in 55.3939231 minutes)
Iteration 743 (change = 0.0140868445832) (21.083141 seconds, I think I'll finish in 55.1675522833 minutes)
Iteration 744 (change = 0.0138904372892) (24.749661 seconds, I think I'll finish in 64.3491186 minutes)
Iteration 745 (change = 0.0138337702138) (23.272883 seconds, I think I'll finish in 60.1216144167 minutes)
Iteration 746 (change = 0.013900683084) (21.465169 seconds, I think I'll finish in 55.0939337667 minutes)
Iteration 747 (change = 0.0140334910481) (21.052516 seconds, I think I'll finish in 53.6839158 minutes)
Iteration 748 (change = 0.0142950255224) (20.907874 seconds, I think I'll finish in 52.9666141333 minutes)
Iteration 749 (change = 0.0147516205007) (20.959576 seconds, I think I'll finish in 52.7482662667 minutes)
Iteration 750 (change = 0.0153666716522) (20.769956 seconds, I think I'll finish in 51.92489 minutes)
Iteration 751 (change = 0.0160493433046) (20.66514 seconds, I think I'll finish in 51.318431 minutes)
Iteration 752 (change = 0.0166293393991) (20.695921 seconds, I think I'll finish in 51.0499384667 minutes)
Iteration 753 (change = 0.0166936657789) (20.508834 seconds, I think I'll finish in 50.2466433 minutes)
Iteration 754 (change = 0.0163333569541) (20.744179 seconds, I think I'll finish in 50.4775022333 minutes)
Iteration 755 (change = 0.0155542785407) (20.555315 seconds, I think I'll finish in 49.6753445833 minutes)
Iteration 756 (change = 0.0145509470395) (20.834124 seconds, I think I'll finish in 50.0018976 minutes)
Iteration 757 (change = 0.0136060884669) (20.772862 seconds, I think I'll finish in 49.5086544333 minutes)
Iteration 758 (change = 0.0128507903779) (20.872629 seconds, I think I'll finish in 49.3985553 minutes)
Iteration 759 (change = 0.0121091781896) (21.45786 seconds, I think I'll finish in 50.425971 minutes)
Iteration 760 (change = 0.0115100812398) (21.125783 seconds, I think I'll finish in 49.2934936667 minutes)
Iteration 761 (change = 0.0110926378456) (21.123008 seconds, I think I'll finish in 48.9349685333 minutes)
Iteration 762 (change = 0.0106884958674) (24.909675 seconds, I think I'll finish in 57.2922525 minutes)
Iteration 763 (change = 0.0102593039349) (21.669431 seconds, I think I'll finish in 49.4785341167 minutes)
Iteration 764 (change = 0.00987053435327) (23.493772 seconds, I think I'll finish in 53.2525498667 minutes)
Iteration 765 (change = 0.00952503085083) (20.765459 seconds, I think I'll finish in 46.72228275 minutes)
Iteration 766 (change = 0.00920020793604) (21.176255 seconds, I think I'll finish in 47.2936361667 minutes)
Iteration 767 (change = 0.00886768401056) (21.154694 seconds, I think I'll finish in 46.8929050333 minutes)
Iteration 768 (change = 0.00862856229081) (21.152071 seconds, I think I'll finish in 46.5345562 minutes)
Iteration 769 (change = 0.00842106524897) (20.573429 seconds, I think I'll finish in 44.9186533167 minutes)
Iteration 770 (change = 0.00824710912024) (20.639906 seconds, I think I'll finish in 44.7197963333 minutes)
Iteration 771 (change = 0.00805578610482) (20.807608 seconds, I think I'll finish in 44.7363572 minutes)
Iteration 772 (change = 0.00791100116723) (20.919201 seconds, I think I'll finish in 44.6276288 minutes)
Iteration 773 (change = 0.00788088432243) (21.575205 seconds, I think I'll finish in 45.66751725 minutes)
Iteration 774 (change = 0.00789152236774) (22.044733 seconds, I think I'll finish in 46.2939393 minutes)
Iteration 775 (change = 0.00786826387481) (22.968973 seconds, I think I'll finish in 47.8520270833 minutes)
Iteration 776 (change = 0.00782917478047) (22.47779 seconds, I think I'll finish in 46.4540993333 minutes)
Iteration 777 (change = 0.00781172828877) (21.776612 seconds, I think I'll finish in 44.6420546 minutes)
Iteration 778 (change = 0.0079163852973) (24.577519 seconds, I think I'll finish in 49.9742886333 minutes)
Iteration 779 (change = 0.00808468880243) (21.327541 seconds, I think I'll finish in 43.0105410167 minutes)
Iteration 780 (change = 0.00830420548675) (21.74987 seconds, I think I'll finish in 43.49974 minutes)
Iteration 781 (change = 0.00858669280797) (23.364463 seconds, I think I'll finish in 46.3395182833 minutes)
Iteration 782 (change = 0.00890380189495) (21.382493 seconds, I think I'll finish in 42.0522362333 minutes)
Iteration 783 (change = 0.00923013806001) (23.119053 seconds, I think I'll finish in 45.08215335 minutes)
Iteration 784 (change = 0.00964692591409) (22.911985 seconds, I think I'll finish in 44.2965043333 minutes)
Iteration 785 (change = 0.0100510536629) (20.902512 seconds, I think I'll finish in 40.063148 minutes)
Iteration 786 (change = 0.0104449281207) (21.654439 seconds, I think I'll finish in 41.1434341 minutes)
Iteration 787 (change = 0.0108156437899) (21.309946 seconds, I think I'll finish in 40.1337316333 minutes)
Iteration 788 (change = 0.0110910280619) (20.861017 seconds, I think I'll finish in 38.9405650667 minutes)
Iteration 789 (change = 0.0113027728539) (21.016477 seconds, I think I'll finish in 38.88048245 minutes)
Iteration 790 (change = 0.0115051069632) (20.619885 seconds, I think I'll finish in 37.8031225 minutes)
Iteration 791 (change = 0.0117427578921) (21.557597 seconds, I think I'll finish in 39.1629678833 minutes)
Iteration 792 (change = 0.0119544972539) (22.226829 seconds, I think I'll finish in 40.0082922 minutes)
Iteration 793 (change = 0.0118646011221) (20.591349 seconds, I think I'll finish in 36.72123905 minutes)
Iteration 794 (change = 0.0112296519137) (21.718375 seconds, I think I'll finish in 38.3691291667 minutes)
Iteration 795 (change = 0.0104453934322) (21.7859 seconds, I think I'll finish in 38.125325 minutes)
Iteration 796 (change = 0.00990289578184) (20.876299 seconds, I think I'll finish in 36.1855849333 minutes)
Iteration 797 (change = 0.00954860155813) (23.875259 seconds, I think I'll finish in 40.9858612833 minutes)
Iteration 798 (change = 0.00930343487029) (21.266736 seconds, I think I'll finish in 36.1534512 minutes)
Iteration 799 (change = 0.00911895170249) (20.906612 seconds, I think I'll finish in 35.1927968667 minutes)
Iteration 800 (change = 0.00894272545282) (21.260269 seconds, I think I'll finish in 35.4337816667 minutes)
Iteration 801 (change = 0.00878740698989) (21.448466 seconds, I think I'll finish in 35.3899689 minutes)
Iteration 802 (change = 0.00869062593628) (22.141706 seconds, I think I'll finish in 36.1647864667 minutes)
Iteration 803 (change = 0.00862926556028) (26.113434 seconds, I think I'll finish in 42.2167183 minutes)
Iteration 804 (change = 0.00863358715044) (20.904179 seconds, I think I'll finish in 33.4466864 minutes)
Iteration 805 (change = 0.00864397298021) (20.448901 seconds, I think I'll finish in 32.3774265833 minutes)
Iteration 806 (change = 0.00859541594122) (21.011733 seconds, I think I'll finish in 32.9183817 minutes)
Iteration 807 (change = 0.00857715237395) (20.842935 seconds, I think I'll finish in 32.30654925 minutes)
Iteration 808 (change = 0.00852547698925) (21.703188 seconds, I think I'll finish in 33.2782216 minutes)
Iteration 809 (change = 0.00839781529102) (21.061824 seconds, I think I'll finish in 31.9437664 minutes)
Iteration 810 (change = 0.00830180880725) (21.035529 seconds, I think I'll finish in 31.5532935 minutes)
Iteration 811 (change = 0.00820792402214) (25.396994 seconds, I think I'll finish in 37.6722077667 minutes)
Iteration 812 (change = 0.00810538452529) (20.958349 seconds, I think I'll finish in 30.7389118667 minutes)
Iteration 813 (change = 0.00807579390953) (23.436209 seconds, I think I'll finish in 33.98250305 minutes)
Iteration 814 (change = 0.00800585473751) (25.999646 seconds, I think I'll finish in 37.2661592667 minutes)
Iteration 815 (change = 0.00793658346242) (21.772609 seconds, I think I'll finish in 30.8445294167 minutes)
Iteration 816 (change = 0.00795754460099) (21.143524 seconds, I think I'll finish in 29.6009336 minutes)
Iteration 817 (change = 0.00803379403722) (20.490872 seconds, I think I'll finish in 28.3457062667 minutes)
Iteration 818 (change = 0.00818067035576) (20.638806 seconds, I think I'll finish in 28.2063682 minutes)
Iteration 819 (change = 0.00835106351477) (21.079352 seconds, I think I'll finish in 28.4571252 minutes)
Iteration 820 (change = 0.00851056443616) (22.688161 seconds, I think I'll finish in 30.2508813333 minutes)
Iteration 821 (change = 0.00862718116459) (21.557238 seconds, I think I'll finish in 28.3836967 minutes)
Iteration 822 (change = 0.00865578260485) (22.250881 seconds, I think I'll finish in 28.9261453 minutes)
Iteration 823 (change = 0.00858195039019) (20.561432 seconds, I think I'll finish in 26.3871710667 minutes)
Iteration 824 (change = 0.00848493089202) (20.730136 seconds, I think I'll finish in 26.2581722667 minutes)
Iteration 825 (change = 0.00837388521883) (20.810294 seconds, I think I'll finish in 26.0128675 minutes)
Iteration 826 (change = 0.00825266887005) (22.537811 seconds, I think I'll finish in 27.7966335667 minutes)
Iteration 827 (change = 0.00811359661128) (22.538183 seconds, I think I'll finish in 27.4214559833 minutes)
Iteration 828 (change = 0.00794819521491) (23.920325 seconds, I think I'll finish in 28.70439 minutes)
Iteration 829 (change = 0.00777680854251) (20.138133 seconds, I think I'll finish in 23.83012405 minutes)
Iteration 830 (change = 0.00756835382812) (20.931637 seconds, I think I'll finish in 24.4202431667 minutes)
Iteration 831 (change = 0.00728525347854) (20.45066 seconds, I think I'll finish in 23.518259 minutes)
Iteration 832 (change = 0.00698944929099) (20.336036 seconds, I think I'll finish in 23.0475074667 minutes)
Iteration 833 (change = 0.00666203646216) (21.552642 seconds, I think I'll finish in 24.0671169 minutes)
Iteration 834 (change = 0.00635537587156) (21.017355 seconds, I think I'll finish in 23.1190905 minutes)
Iteration 835 (change = 0.0060623886032) (19.872736 seconds, I think I'll finish in 21.5287973333 minutes)
Iteration 836 (change = 0.00579852062364) (26.671341 seconds, I think I'll finish in 28.4494304 minutes)
Iteration 837 (change = 0.00554940920655) (20.852586 seconds, I think I'll finish in 21.8952153 minutes)
Iteration 838 (change = 0.00531536617511) (20.850212 seconds, I think I'll finish in 21.5452190667 minutes)
Iteration 839 (change = 0.00505312434729) (20.270994 seconds, I think I'll finish in 20.6088439 minutes)
Iteration 840 (change = 0.00482809539888) (20.577141 seconds, I think I'll finish in 20.577141 minutes)
Iteration 841 (change = 0.00462534821942) (20.304671 seconds, I think I'll finish in 19.9662598167 minutes)
Iteration 842 (change = 0.00445042783253) (19.850132 seconds, I think I'll finish in 19.1884609333 minutes)
Iteration 843 (change = 0.00422664102094) (19.789766 seconds, I think I'll finish in 18.8002777 minutes)
Iteration 844 (change = 0.00402923807963) (19.881023 seconds, I think I'll finish in 18.5556214667 minutes)
Iteration 845 (change = 0.0038996855036) (19.643077 seconds, I think I'll finish in 18.0061539167 minutes)
Iteration 846 (change = 0.0038090569947) (19.900472 seconds, I think I'll finish in 17.9104248 minutes)
Iteration 847 (change = 0.00372263190093) (19.866212 seconds, I think I'll finish in 17.5484872667 minutes)
Iteration 848 (change = 0.0036939287428) (19.857532 seconds, I think I'll finish in 17.2098610667 minutes)
Iteration 849 (change = 0.00371586409035) (20.085123 seconds, I think I'll finish in 17.07235455 minutes)
Iteration 850 (change = 0.00377619862431) (20.78634 seconds, I think I'll finish in 17.32195 minutes)
Iteration 851 (change = 0.00387277951159) (19.698711 seconds, I think I'll finish in 16.08728065 minutes)
Iteration 852 (change = 0.00400136798474) (19.934909 seconds, I think I'll finish in 15.9479272 minutes)
Iteration 853 (change = 0.00414338937719) (19.72697 seconds, I think I'll finish in 15.4527931667 minutes)
Iteration 854 (change = 0.00427160149899) (19.944676 seconds, I think I'll finish in 15.2909182667 minutes)
Iteration 855 (change = 0.00433493561438) (19.914046 seconds, I think I'll finish in 14.9355345 minutes)
Iteration 856 (change = 0.00444695860667) (19.952595 seconds, I think I'll finish in 14.631903 minutes)
Iteration 857 (change = 0.0046053921222) (19.757197 seconds, I think I'll finish in 14.1593245167 minutes)
Iteration 858 (change = 0.00474552455933) (19.839376 seconds, I think I'll finish in 13.8875632 minutes)
Iteration 859 (change = 0.00490948820738) (19.853369 seconds, I think I'll finish in 13.5664688167 minutes)
Iteration 860 (change = 0.00507684981578) (20.006147 seconds, I think I'll finish in 13.3374313333 minutes)
Iteration 861 (change = 0.00521325219929) (19.834056 seconds, I think I'll finish in 12.8921364 minutes)
Iteration 862 (change = 0.00530663122602) (19.85855 seconds, I think I'll finish in 12.5770816667 minutes)
Iteration 863 (change = 0.00539657149745) (20.022139 seconds, I think I'll finish in 12.3469857167 minutes)
Iteration 864 (change = 0.00548184554245) (19.900361 seconds, I think I'll finish in 11.9402166 minutes)
Iteration 865 (change = 0.00560085738584) (20.428089 seconds, I think I'll finish in 11.91638525 minutes)
Iteration 866 (change = 0.00574209595038) (20.537606 seconds, I think I'll finish in 11.6379767333 minutes)
Iteration 867 (change = 0.00587632741491) (20.045823 seconds, I think I'll finish in 11.02520265 minutes)
Iteration 868 (change = 0.00600369623728) (20.193794 seconds, I think I'll finish in 10.7700234667 minutes)
Iteration 869 (change = 0.00612384487116) (19.861855 seconds, I think I'll finish in 10.2619584167 minutes)
Iteration 870 (change = 0.00620355109405) (20.033933 seconds, I think I'll finish in 10.0169665 minutes)
Iteration 871 (change = 0.00630262703874) (19.811436 seconds, I think I'll finish in 9.5755274 minutes)
Iteration 872 (change = 0.00636256172311) (19.872286 seconds, I think I'll finish in 9.27373346667 minutes)
Iteration 873 (change = 0.00626279485123) (19.752786 seconds, I think I'll finish in 8.8887537 minutes)
Iteration 874 (change = 0.00617469047493) (20.030948 seconds, I think I'll finish in 8.68007746667 minutes)
Iteration 875 (change = 0.00609189198334) (19.827249 seconds, I think I'll finish in 8.26135375 minutes)
Iteration 876 (change = 0.00594544689315) (20.060322 seconds, I think I'll finish in 8.0241288 minutes)
Iteration 877 (change = 0.00569632850357) (19.731739 seconds, I think I'll finish in 7.56383328333 minutes)
Iteration 878 (change = 0.00540318671018) (19.950584 seconds, I think I'll finish in 7.31521413333 minutes)
Iteration 879 (change = 0.00518099301304) (19.79368 seconds, I think I'll finish in 6.927788 minutes)
Iteration 880 (change = 0.00490713200976) (20.764345 seconds, I think I'll finish in 6.92144833333 minutes)
Iteration 881 (change = 0.00459055549019) (21.675409 seconds, I think I'll finish in 6.86387951667 minutes)
Iteration 882 (change = 0.0043093454871) (19.934498 seconds, I think I'll finish in 5.9803494 minutes)
Iteration 883 (change = 0.00405591373019) (19.801 seconds, I think I'll finish in 5.61028333333 minutes)
Iteration 884 (change = 0.0038764928443) (19.999236 seconds, I think I'll finish in 5.3331296 minutes)
Iteration 885 (change = 0.00371650827254) (19.797837 seconds, I think I'll finish in 4.94945925 minutes)
Iteration 886 (change = 0.00354662191113) (19.850524 seconds, I think I'll finish in 4.63178893333 minutes)
Iteration 887 (change = 0.00342887100616) (19.732444 seconds, I think I'll finish in 4.27536286667 minutes)
Iteration 888 (change = 0.00333662292494) (19.978114 seconds, I think I'll finish in 3.9956228 minutes)
Iteration 889 (change = 0.00325463824617) (19.862814 seconds, I think I'll finish in 3.6415159 minutes)
Iteration 890 (change = 0.00317145632979) (19.856704 seconds, I think I'll finish in 3.30945066667 minutes)
Iteration 891 (change = 0.00305590101682) (19.83367 seconds, I think I'll finish in 2.9750505 minutes)
Iteration 892 (change = 0.00292542801646) (19.906138 seconds, I think I'll finish in 2.65415173333 minutes)
Iteration 893 (change = 0.00275082364858) (19.849322 seconds, I think I'll finish in 2.31575423333 minutes)
Iteration 894 (change = 0.00256638598899) (19.955667 seconds, I think I'll finish in 1.9955667 minutes)
Iteration 895 (change = 0.00246035988096) (19.882333 seconds, I think I'll finish in 1.65686108333 minutes)
Iteration 896 (change = 0.00239774362094) (20.938195 seconds, I think I'll finish in 1.39587966667 minutes)
Iteration 897 (change = 0.00233982470185) (19.871243 seconds, I think I'll finish in 0.99356215 minutes)
Iteration 898 (change = 0.00225485522863) (19.910974 seconds, I think I'll finish in 0.663699133333 minutes)
Iteration 899 (change = 0.00221211772476) (19.676048 seconds, I think I'll finish in 0.327934133333 minutes)
In [277]:
from lda_plotters import VariationalLDAPlotter
In [278]:
vp = VariationalLDAPlotter(gnps_lda)
vp.bar_alpha()
Make the network graph
In [ ]:
In [279]:
import networkx as nx
# Extract the topics of interest
topics = []
topic_idx = []
topic_id = []
topic_degree_thresh = 10
p_thresh = 0.05
# eth = v_lda.get_expect_theta()
# for i in range(v_lda.K):
eth = gnps_lda.get_expect_theta()
print eth.shape
for i in range(gnps_lda.K):
s = (eth[:,i]>p_thresh).sum()
if s > topic_degree_thresh:
topics.append("motif_{}".format(i))
topic_idx.append(i)
topic_id.append(i)
G = nx.Graph()
for i,t in enumerate(topics):
s = (eth[:,topic_idx[i]]>p_thresh).sum()
G.add_node(t,group=2,name=t,size=5*s,
type='circle',special=False,
in_degree=s,score=1)
print "Added {} topics".format(len(topics))
# Add the parents
parents = []
parent_dict = {}
parent_id = {}
doc_for_later = None
j = len(topics)
eth = gnps_lda.get_expect_theta()
for doc in gnps_lda.corpus:
parent_pos = gnps_lda.doc_index[doc]
# parent_name = "doc_{}_{}".format(doc.mz,doc.rt)
parent_name = metadata[doc]['compound']
for i,t in enumerate(topics):
topic_pos = topic_idx[i]
this_topic_id = topic_id[i]
if eth[parent_pos,topic_pos] > p_thresh:
if not parent_name in parents:
parents.append(parent_name)
parent_dict[parent_name] = doc
parent_id[doc] = j
j += 1
G.add_node(parent_name,group=1,name=parent_name,
size=20,type='square',peakid=parent_name,
special=False,in_degree=0,score=0)
G.add_edge(t,parent_name,weight=5*eth[parent_pos,topic_pos])
print "Added {} parents".format(len(parents))
(5653, 500)
Added 276 topics
Added 5288 parents
In [280]:
import json
from networkx.readwrite import json_graph
d = json_graph.node_link_data(G)
json.dump(d, open('../joegraph/gnps_graph.json','w'),indent=2)
In [283]:
# Write the topics to a file
b = gnps_lda.beta_matrix.copy()
print b.shape
with open('../gnps/topics.txt','w') as f:
for topic in topic_id:
f.write('TOPIC: {}\n'.format(topic))
word_tup = []
for word in gnps_lda.word_index:
word_tup.append((word,b[topic,gnps_lda.word_index[word]]))
word_tup = sorted(word_tup,key = lambda x: x[1],reverse=True)
total_prob = 0.0
pos = 0
n_words = 0
while total_prob < 0.9 and n_words <= 20:
total_prob += word_tup[pos][1]
n_words += 1
f.write("\t{}: {}\n".format(word_tup[pos][0],word_tup[pos][1]))
pos += 1
f.write('\n\n')
(500, 20629)
In [282]:
doc = parent_dict['Lonidamine [M+H]']
precursor_mass = float(metadata[doc]['parentmass'])
title = doc + " (" + metadata[doc]['compound'] + ")"
vp.plot_document_topic_colour(doc,precursor_mass = precursor_mass,show_losses = True,title = title)
In [230]:
for doc in G.neighbors('motif_335'):
print doc
for word in sub_corpus[parent_dict[doc]]:
if word.startswith('loss_46.') or word.startswith('loss_18.'):
print word,sub_corpus[parent_dict[doc]][word]
print
print
"MLS000069767-01!3'-AZIDO-2',3'-DIDEOXYURIDINE" M+H
Apratoxin F M+Na
Malyngamide C M+H
Pheophytin M+H
MLS002153946-01!Tetrandrine M+H
loss_46.0718175161 5.27081061432
Vincristine M+H
loss_18.0104235721 8.76207922256
loss_18.0100400521 0.958650614454
Pheophorbide A M+H
loss_46.0108309481 0.611833581266
loss_18.0122365401 0.74259801334
"NCGC00160317-01!8-(3,4-Dimethoxy-phenyl)-2,3,10,11-tetramethoxy-5,6,13a-tridehydro-berbinium" M+H
loss_46.0501679241 3.15272380673
Lansoprazole M+H
MLS001075533-01! M+H
NCGC00160180-01!KOPSINE M+H
loss_46.0053890801 1.07211283682
loss_18.0118481081 3.59952712894
VINCRISTINE SULFATE [M+H]
loss_18.0110677561 15.0665228335
Lansoprazole [M+H]
loss_18.0104235721 1.59841075795
In [145]:
m1 = 46.0057116041
m2 = 46.0053890801
1e6*abs(m1-m2)/m1
Out[145]:
7.010520840830274
Plot T spectra that include a particular topic (above a threshold)
In [299]:
from lda_plotters import VariationalLDAPlotter
vp = VariationalLDAPlotter(gnps_lda)
thresh = 0.1
topic = 276
eth = gnps_lda.get_expect_theta()
max_found = 10
n_found = 0
di = []
for doc in gnps_lda.doc_index:
di.append((doc,gnps_lda.doc_index[doc]))
for i,e in enumerate(eth[:,topic]):
if e > thresh:
n_found += 1
doc = [d for d,j in di if j == i][0]
title = metadata[doc]['compound']
precursor_mass = float(metadata[doc]['parentmass'])
# vp.plot_document_topic_colour(doc,show_losses = True,
# precursor_mass=precursor_mass,title=title,
# xlim = [130,140])
vp.plot_document_colour_one_topic(doc,topic,show_losses = True,
precursor_mass=precursor_mass,title=title,
xlim = None)
if n_found > max_found:
break
In [176]:
print gnps_lda.corpus['CCMSLIB00000001778.ms']
{'loss_112.05007076': 487190.0, 'loss_115.112951652': 98433.0, 'loss_43.9931689361': 148866.0, 'loss_60.0806843561': 326324.0, 'loss_72.0878637441': 29377.0}
In [186]:
pos = []
for word in gnps_lda.phi_matrix['CCMSLIB00000001778.ms']:
print word,gnps_lda.phi_matrix['CCMSLIB00000001778.ms'][word][8]
pos.append(gnps_lda.word_index[word])
print pos
print gnps_lda.beta_matrix[8,pos]
print gnps_lda.beta_matrix[5,pos]
loss_112.05007076 1.0
loss_115.112951652 1.0
loss_43.9931689361 1.0
loss_60.0806843561 1.0
loss_72.0878637441 1.0
[22858, 21638, 18470, 5047, 23003]
[ 0.00201914 0.00042061 0.00061668 0.0013518 0.00012438]
[ 1.13833356e-10 1.13833356e-10 1.13833356e-10 1.13833356e-10
1.14647235e-10]
In [202]:
import time
print time.clock()
18244.207393
In [247]:
m1 = 112.076118
m2 = 112.07531
1e6*abs((m1-m2)/m1)
m1 = 183.149078
m2 = 183.112717
1e6*abs((m1-m2)/m1)
Out[247]:
198.53225796746528
In [296]:
with open('gnps_lda.lda','w') as f:
pickle.dump(gnps_lda,f)
In [300]:
# make the dictionary
In [388]:
min_prob_to_keep_beta = 1e-3
min_prob_to_keep_phi = 1e-2
min_prob_to_keep_theta = 1e-2
lda_dict = {}
lda_dict['corpus'] = gnps_lda.corpus
lda_dict['word_index'] = gnps_lda.word_index
lda_dict['doc_index'] = gnps_lda.doc_index
lda_dict['K'] = gnps_lda.K
lda_dict['alpha'] = list(gnps_lda.alpha)
lda_dict['beta'] = {}
lda_dict['doc_metadata'] = metadata
wi = []
for i in gnps_lda.word_index:
wi.append((i,gnps_lda.word_index[i]))
wi = sorted(wi,key = lambda x: x[1])
di = []
for i in gnps_lda.doc_index:
di.append((i,gnps_lda.doc_index[i]))
di = sorted(di,key=lambda x: x[1])
ri,i = zip(*wi)
ri = list(ri)
di,i = zip(*di)
di = list(di)
In [389]:
for k in range(gnps_lda.K):
pos = np.where(gnps_lda.beta_matrix[k,:]>min_prob_to_keep_beta)[0]
motif_name = 'motif_{}'.format(k)
lda_dict['beta'][motif_name] = {}
for p in pos:
word_name = ri[p]
lda_dict['beta'][motif_name][word_name] = gnps_lda.beta_matrix[k,p]
eth = gnps_lda.get_expect_theta()
lda_dict['theta'] = {}
for i,t in enumerate(eth):
doc = di[i]
lda_dict['theta'][doc] = {}
pos = np.where(t > min_prob_to_keep_theta)[0]
for p in pos:
motif_name = 'motif_{}'.format(p)
lda_dict['theta'][doc][motif_name] = t[p]
In [390]:
# lda_dict['gamma'] = []
# for d in range(len(gnps_lda.corpus)):
# lda_dict['gamma'].append(list(gnps_lda.gamma_matrix[d,:]))
lda_dict['phi'] = {}
ndocs = 0
for doc in gnps_lda.corpus:
ndocs += 1
lda_dict['phi'][doc] = {}
for word in gnps_lda.corpus[doc]:
lda_dict['phi'][doc][word] = {}
pos = np.where(gnps_lda.phi_matrix[doc][word] >= min_prob_to_keep_phi)[0]
for p in pos:
lda_dict['phi'][doc][word]['motif_{}'.format(p)] = gnps_lda.phi_matrix[doc][word][p]
if ndocs % 500 == 0:
print "Done {}".format(ndocs)
Done 500
Done 1000
Done 1500
Done 2000
Done 2500
Done 3000
Done 3500
Done 4000
Done 4500
Done 5000
Done 5500
In [391]:
sys.getsizeof(lda_dict)
Out[391]:
1048
In [392]:
import pickle
with open('gnps_lda.dict','w') as f:
pickle.dump(lda_dict,f,-1)
In [385]:
from lda_plotters import VariationalLDAPlotter_dict
vd = VariationalLDAPlotter_dict(lda_dict)
vd.bar_alpha()
In [386]:
doc = lda_dict['corpus'].keys()[2]
parentmass = float(lda_dict['doc_metadata'][doc]['parentmass'])
print parentmass
vd.plot_document_colour_one_topic(doc,'motif_157',precursor_mass = parentmass)
591.149702724
In [387]:
vd.plot_document_topic_colour(doc)
print lda_dict['theta'][doc]
{'motif_276': 0.079582169346298609, 'motif_320': 0.85365570485186826, 'motif_153': 0.016232241597535814}
In [ ]:
500*5000
In [309]:
import numpy as np
a = np.array([1,2,3])
type(a)
a = list(a)
type(a)
print a
[1, 2, 3]
In [402]:
from lda_plotters import VariationalLDAPlotter_dict
vd = VariationalLDAPlotter_dict(lda_dict)
G = vd.make_graph_object(filename = '../joegraph/gnps2.json')
Found 280 topics
In [ ]:
Content source: sdrogers/ms2ldaviz
Similar notebooks: