Skip to content

Commit afc3e92

Browse files
committed
Updated example 2 step 2
1 parent 46b0f5b commit afc3e92

File tree

9 files changed

+805
-705
lines changed

9 files changed

+805
-705
lines changed

example1/3-FitModel.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12067,10 +12067,10 @@ <h2 id="Select-a-Classification-Method-(default-SVM)">Select a Classification Me
1206712067

1206812068

1206912069

12070-
<div id="c9803ed7-ae68-4685-9a43-f9b14cf18a06"></div>
12070+
<div id="f05043d6-ccd2-48f2-9e69-0c9264813300"></div>
1207112071
<div class="output_subarea output_widget_view ">
1207212072
<script type="text/javascript">
12073-
var element = $('#c9803ed7-ae68-4685-9a43-f9b14cf18a06');
12073+
var element = $('#f05043d6-ccd2-48f2-9e69-0c9264813300');
1207412074
</script>
1207512075
<script type="application/vnd.jupyter.widget-view+json">
1207612076
{"model_id": "74da08556c454ff6b56a1a92e2771090", "version_major": 2, "version_minor": 0}

example1/4-Predict.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11855,10 +11855,10 @@ <h2 id="Enter-a-Protein-Sequence-in-Text-Box">Enter a Protein Sequence in Text B
1185511855

1185611856

1185711857

11858-
<div id="661066e0-6c67-413b-87be-b9e5993e3f75"></div>
11858+
<div id="7c042306-37c1-49ad-b482-1bae4dc7d691"></div>
1185911859
<div class="output_subarea output_widget_view ">
1186011860
<script type="text/javascript">
11861-
var element = $('#661066e0-6c67-413b-87be-b9e5993e3f75');
11861+
var element = $('#7c042306-37c1-49ad-b482-1bae4dc7d691');
1186211862
</script>
1186311863
<script type="application/vnd.jupyter.widget-view+json">
1186411864
{"model_id": "8fe4d82c523e40679fc85b146f493a16", "version_major": 2, "version_minor": 0}

example2/1-SimulateTree.html

Lines changed: 12 additions & 12 deletions
Large diffs are not rendered by default.

example2/1-SimulateTree.ipynb

Lines changed: 12 additions & 12 deletions
Large diffs are not rendered by default.

example2/2-SimulateSequences.html

Lines changed: 116 additions & 90 deletions
Large diffs are not rendered by default.

example2/2-SimulateSequences.ipynb

Lines changed: 97 additions & 86 deletions
Large diffs are not rendered by default.

example2/helper.py

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
#!/usr/bin/env python3
2+
'''
3+
Helper functions for Example 2: "Simulate Phylogenetic Trees and Sequences"
4+
'''
5+
from math import log
6+
7+
def read_FASTA(filename):
8+
'''
9+
Given the name of a FASTA file, parse the contents of the FASTA file and return a dictionary in which keys are identifiers and values are sequences.
10+
'''
11+
seqs = {}
12+
name = None
13+
seq = ''
14+
f = open(filename)
15+
for line in f:
16+
l = line.strip()
17+
if len(l) == 0:
18+
continue
19+
if l[0] == '>':
20+
if name is not None:
21+
assert len(seq) != 0, "Malformed FASTA"
22+
seqs[name] = seq
23+
name = l[1:]
24+
assert name not in seqs, "Duplicate sequence ID: %s" % name
25+
seq = ''
26+
else:
27+
seq += l
28+
f.close()
29+
assert name is not None and len(seq) != 0, "Malformed FASTA"
30+
seqs[name] = seq
31+
return seqs
32+
33+
def distance_matrix_to_list(dm):
34+
'''
35+
Convert an n-by-n pairwise distance matrix (dictionary of dictionaries) into a list of n(n-1)/2 pairwise distances. Sorts keys in ascending order.
36+
'''
37+
keys = sorted(dm.keys())
38+
return [dm[keys[i]][keys[j]] for i in range(len(keys)-1) for j in range(i+1,len(keys))]
39+
40+
def hamming(u,v):
41+
'''
42+
Given a pair of sequences u and v with equal lengths, compute the Hamming distance between u and v (as a proportion, not a count).
43+
'''
44+
return sum(u[i] != v[i] for i in range(len(u)))/float(len(u))
45+
46+
def compute_hamming_distance_matrix(sequences):
47+
'''
48+
Given a dictionary of n sequences in which keys are identifiers and values are sequences, return an n-by-n pairwise distance matrix (dictionary of dictionaries) of Hamming distances.
49+
'''
50+
return {u:{v:hamming(sequences[u],sequences[v]) for v in sequences} for u in sequences}
51+
52+
def jc69_correction(h):
53+
'''
54+
Given a Hamming distance h, compute the corresponding JC69-corrected phylogenetic distance.
55+
'''
56+
return -3*log(1-(4*h/3))/4
57+
58+
def compute_jc69_corrected_distance_matrix(sequences):
59+
'''
60+
Given a dictionary of n sequences in which keys are identifiers and values are sequences, return an n-by-n pairwise distance matrix (dictionary of dictionaries) of JC69-corrected distances.
61+
'''
62+
hamming_distances = compute_hamming_distance_matrix(sequences)
63+
return {u:{v:jc69_correction(hamming_distances[u][v]) for v in sequences} for u in sequences}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
((((((((((((((((((((((((((((((((((((((99:0.029959523341435368,98:0.029959523341435368):0.004016365865679883,97:0.03397588920711525):0.0011923468230123913,96:0.03516823603012764):0.002055841219657295,95:0.03722407724978494):0.00024222195059753204,94:0.03746629920038247):0.012097530104143495,93:0.049563829304525964):0.0064138445494753005,92:0.055977673854001264):0.0014461675999418167,91:0.05742384145394308):0.0028059191567375574,90:0.06022976061068064):0.003927257079762048,89:0.06415701769044269):0.0037802681519752412,88:0.06793728584241793):0.008557047124133799,87:0.07649433296655173):0.0011810932765295434,(86:0.0005948864441348012,85:0.0005948864441348012):0.07708053979894647):0.0008181965520481782,84:0.07849362279512945):0.004215990237357109,83:0.08270961303248656):0.0013868438519785697,82:0.08409645688446513):0.013165531822693644,81:0.09726198870715877):0.03996459904804536,80:0.13722658775520413):0.0019009748441438656,79:0.139127562599348):0.01318557476468274,(78:0.006092057659042194,(((77:0.00110009409507128,76:0.00110009409507128):0.0017265120776419063,75:0.0028266061727131864):0.0026027726895897496,74:0.005429378862302936):0.0006626787967392578):0.14622107970498854):0.005568676025224206,73:0.15788181338925494):0.003919552138383964,72:0.1618013655276389):0.0014137915743965557,71:0.16321515710203546):0.019134161656292004,70:0.18234931875832747):0.0008819414104383749,69:0.18323126016876584):0.00973890157554061,((68:0.03892353251076275,((((67:0.0008597795323223023,66:0.0008597795323223023):0.006611125702610077,65:0.007470905234932379):0.02299065256124805,64:0.030461557796180427):0.007952762004397707,63:0.038414319800578134):0.0005092127101846144):0.10245665347946356,((((((((((((((((((((62:0.002386042352361728,61:0.002386042352361728):0.003936246539435195,60:0.006322288891796923):0.007724570293464517,59:0.01404685918526144):0.0013206933907011775,58:0.015367552575962617):0.019581375115076904,57:0.03494892769103952):0.005501592499535912,56:0.040450520190575434):0.016808187530307273,55:0.05725870772088271):0.0009086306521911558,54:0.05816733837307386):0.009844784437096354,53:0.06801212281017022):0.006891854820186061,52:0.07490397763035628):0.0008095653867117858,51:0.07571354301706806):0.006395673616470865,50:0.08210921663353893):0.0026983110739391136,49:0.08480752770747804):0.0022290644340677013,48:0.08703659214154574):0.018098750018941984,47:0.10513534216048773):0.005935457135850308,46:0.11107079929633804):0.005346697237227249,45:0.11641749653356528):0.004624304593478651,44:0.12104180112704394):0.010760894157924916,43:0.13180269528496885):0.0012186033832123633,42:0.13302129866818121):0.008358887322045094):0.05158997575408014):0.008932383243527547,41:0.201902544987834):0.015401538997716221,40:0.21730408398555023):0.025791349828245394,39:0.24309543381379561):0.0032027006169242506,38:0.24629813443071985):0.014820207840769109,37:0.261118342271489):0.004452045720649597,(36:0.2245863548447751,(((((((((((((((((((((((((((35:0.0022397628702230943,34:0.0022397628702230943):0.003340841098060654,33:0.005580603968283748):0.0065957795732532465,32:0.012176383541536995):0.002347283855206328,31:0.014523667396743323):0.013227334247407907,30:0.02775100164415123):0.003539861994661886,29:0.031290863638813116):0.008376824159426588,28:0.039667687798239704):0.0032501264398821506,27:0.042917814238121854):0.0009438087736455825,26:0.04386162301176744):0.00799932556086469,25:0.051860948572632126):0.0033222361359879216,24:0.05518318470862005):0.0007503631594346638,23:0.05593354786805471):0.0018920060893356516,22:0.05782555395739036):0.011281627977228648,21:0.06910718193461901):0.00910793399892218,20:0.07821511593354119):0.003946495797283622,19:0.08216161173082481):0.0031570756560572732,18:0.08531868738688209):0.004570490278221623,17:0.08988917766510371):0.0056853962479236075,(16:0.014356796040484565,(15:0.008839302217359624,14:0.008839302217359624):0.0055174938231249415):0.08121777787254275):0.03027265898843151,13:0.12584723290145883):0.035987426195474626,12:0.16183465909693345):0.007058411216736116,11:0.16889307031366957):0.0012870090338535922,10:0.17018007934752316):0.0012145331271035675,9:0.17139461247462673):0.0033816851316071372,8:0.17477629760623387):0.004225766558695165,7:0.17900206416492903):0.03642312595954464,6:0.21542519012447367):0.009161164720301429):0.04098403314736347):0.0098960212050615,5:0.27546640919720006):0.0029272441339033145,4:0.2783936533311034):0.009060365611938598,3:0.287454018943042):0.01975476414357687,2:0.30720878308661886):0.002579408383147689,1:0.30978819146976655):0.013764252268976197,0:0.32355244373874276):0.008645620785141545;
1+
((((((((((((((((((((((((((((((99:0.0011961269293227494,98:0.0011961269293227494):0.006053257124301492,97:0.0072493840536242415):0.007072300810170129,96:0.01432168486379437):0.004865027215367856,95:0.019186712079162227):0.00870118851843349,94:0.027887900597595716):0.015202074427745155,93:0.04308997502534087):0.011375048996689452,92:0.05446502402203032):0.019588811422732305,91:0.07405383544476263):0.0001559712090700438,90:0.07420980665383267):0.009200403236523241,89:0.08341020989035591):0.008186584125174201,88:0.09159679401553011):0.009564062092791203,87:0.10116085610832132):0.0022904263723414198,86:0.10345128248066274):0.010115432468064012,85:0.11356671494872675):0.012000778446708438,84:0.1255674933954352):0.0021137770980621806,83:0.12768127049349737):0.00974725738452667,82:0.13742852787802404):0.007360578396286038,81:0.14478910627431008):0.00984897276864155,80:0.15463807904295163):0.0013227301243575185,79:0.15596080916730914):0.014070026754646386,78:0.17003083592195553):0.0034731873857477003,77:0.17350402330770323):0.0008750281017308181,76:0.17437905140943405):0.011413431912480301,75:0.18579248332191434):0.016352171050014422,(74:0.054704452810094534,((((((((73:0.004378900020032939,72:0.004378900020032939):0.002912794033210264,71:0.007291694053243203):8.294728063829027e-05,70:0.007374641333881493):0.006696436736095601,69:0.014071078069977094):0.0010269184953954624,68:0.015097996565372557):0.01129146646266141,67:0.026389463028033966):0.013119567482487549,66:0.039509030510521514):0.012717889240015434,65:0.05222691975053695):0.002477533059557585):0.14744020156183424):0.01926528106989045,64:0.22140993544181922):0.0035992310694699867,(63:0.20826086376126884,(((((((((((((((((((62:0.010225528430748448,61:0.010225528430748448):0.012124830901899225,60:0.022350359332647673):0.010634655592253905,(59:0.01836265795328429,(((58:0.012798315791717668,57:0.012798315791717668):0.001143263864058719,56:0.013941579655776387):0.0006513075658990397,55:0.014592887221675427):0.0037697707316088624):0.01462235697161729):0.023051729860410902,54:0.05603674478531248):0.004613016231214573,53:0.060649761016527054):0.009475290346033782,52:0.07012505136256084):0.015529145931696103,51:0.08565419729425694):0.03238712437576452,(50:0.0939990645554519,(((((((((((((49:0.007694863451471301,48:0.007694863451471301):0.006116466751465793,47:0.013811330202937094):0.012914618491869256,46:0.02672594869480635):0.004848105911205408,45:0.03157405460601176):0.005745984193745751,44:0.03732003879975751):0.004800464229214235,43:0.042120503028971745):0.02576535509332986,42:0.0678858581223016):0.004837245325973238,41:0.07272310344827485):0.0036816493427568597,40:0.0764047527910317):3.796663400967848e-05,39:0.07644271942504138):0.0018869224096947634,38:0.07832964183473615):0.008742818059352647,37:0.0870724598940888):0.0021911034208522973,36:0.08926356331494109):0.004735501240510809):0.02404225711456956):0.007342441100261138,(35:0.09638969753421364,(((((((((((((((34:0.0007165631241218828,33:0.0007165631241218828):0.0007837199992689614,32:0.0015002831233908442):0.0058675817934971675,31:0.007367864916888012):0.0010572434466685765,30:0.008425108363556588):0.009229045866893076,29:0.017654154230449665):0.0007677342862057179,28:0.018421888516655383):0.000910089205764214,27:0.019331977722419597):0.0025383078953237215,26:0.021870285617743318):0.009124073659376758,25:0.030994359277120076):0.03270660886015181,24:0.06370096813727189):0.001526441379502197,23:0.06522740951677408):0.01577988374884895,22:0.08100729326562303):0.004559935809367421,21:0.08556722907499045):0.003989758215971195,20:0.08955698729096165):0.0015739939117153934,19:0.09113098120267704):0.0052587163315366):0.028994065236068955):0.012068525525458423,18:0.13745228829574102):0.00035332122399114874,17:0.13780560951973217):0.008830267146082385,16:0.14663587666581457):0.002103465705629373,15:0.14873934237144393):0.0039132765326004015,14:0.15265261890404433):0.0025443785482816422,13:0.15519699745232596):0.022109230273715558,12:0.17730622772604154):0.009025557973672702,11:0.18633178569971423):0.0043174923913942564,10:0.1906492780911085):0.00868381368934875,9:0.19933309178045724):0.008927771980811593):0.01674830275002038):0.007607306540993813,(8:0.03606500491958481,(((((7:0.011908825234297316,6:0.011908825234297316):0.005182237863106287,5:0.017091063097403603):0.008524464170207052,4:0.025615527267610655):0.003976573879307721,3:0.029592101146918376):0.003185795360330451,2:0.03277789650724883):0.0032871084123359817):0.19655146813269822):0.001502914615148225,1:0.23411938766743123):0.0069382105339692995,0:0.24105759820140055):0.01739335597355307;

0 commit comments

Comments
 (0)