Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download
Project: RNApolys
Views: 491
1+1
2
load('5s_accuracy_dependencies.sage')
# Generate all slices and save them under 5s/slices. Takes ~66min n=len(names) for i,(sname,name) in enumerate(zip(sobj_names,names)): max_avg_accuracy={} stname = "5s/st_tuples/"+name+"_ss.pkl" P = RNAPolytope.construct_from_file(sname) slices=get_max_average_slice(P,name) for sl in slices: max_avg_accuracy[tuple(sl.original_vertex)] = (sl.vertices_list(),sl.rays_list()) save(max_avg_accuracy,'5s/slices/{0}.mas_dict'.format(name)) print timestamp("Finished slicing [{0}/{1}] {2}".format(i,n,name))
[2017-09-05 03:30:04.634701] Finished slicing [0/88] d.5.e.I.illecebrosus_X00993 [2017-09-05 03:30:29.530258] Finished slicing [1/88] d.5.e.G.riobambae_M74438 [2017-09-05 03:30:55.992655] Finished slicing [2/88] d.5.a.P.aerophilum_AE009942 [2017-09-05 03:31:21.345845] Finished slicing [3/88] d.5.e.G.biloba_M10433 [2017-09-05 03:31:47.865442] Finished slicing [4/88] d.5.a.P.occultum_M21086 [2017-09-05 03:32:15.851430] Finished slicing [5/88] d.5.a.M.fervidus_M26976 [2017-09-05 03:32:40.178705] Finished slicing [6/88] d.5.e.P.reticulata_X01550 [2017-09-05 03:33:03.900125] Finished slicing [7/88] d.5.e.L.edodes_AB030581 [2017-09-05 03:33:30.431074] Finished slicing [8/88] d.5.e.A.immersus.1_X99087 [2017-09-05 03:33:55.775037] Finished slicing [9/88] d.5.a.H.mediterranei.1_X14441 [2017-09-05 03:34:19.144486] Finished slicing [10/88] d.5.e.C.elegans.2_Z82085 [2017-09-05 03:34:46.240193] Finished slicing [11/88] d.5.e.H.sapiens.2_V00589 [2017-09-05 03:35:12.283686] Finished slicing [12/88] d.5.e.R.norvegicus.1_X83746 [2017-09-05 03:35:38.225593] Finished slicing [13/88] d.5.a.P.woesei_X15329 [2017-09-05 03:36:02.311932] Finished slicing [14/88] d.5.e.F.hygrometrica_X80212 [2017-09-05 03:36:22.463926] Finished slicing [15/88] d.5.e.B.neritina_X06834 [2017-09-05 03:36:46.524446] Finished slicing [16/88] d.5.e.O.mykiss_J01861 [2017-09-05 03:37:12.683038] Finished slicing [17/88] d.5.e.C.quinquecirrha_K02348 [2017-09-05 03:37:33.978091] Finished slicing [18/88] d.5.b.E.coli_V00336 [2017-09-05 03:37:56.359347] Finished slicing [19/88] d.5.e.C.vicina_X01129 [2017-09-05 03:38:25.125934] Finished slicing [20/88] d.5.a.T.celer.1_X07692 [2017-09-05 03:38:49.173245] Finished slicing [21/88] d.5.e.R.norvegicus.2_X83747 [2017-09-05 03:39:14.704377] Finished slicing [22/88] d.5.a.M.thermolithotrophicus.2_M34911 [2017-09-05 03:39:39.018485] Finished slicing [23/88] d.5.e.E.kokanica_X06996 [2017-09-05 03:40:02.157725] Finished slicing [24/88] d.5.e.P.radiata_Z33604 [2017-09-05 03:40:25.462355] Finished slicing [25/88] d.5.e.A.aquaticus_AJ238321 [2017-09-05 03:40:47.947659] Finished slicing [26/88] d.5.a.M.jannaschii.rrnB_U67518 [2017-09-05 03:41:12.936642] Finished slicing [27/88] d.5.e.B.vulgaris_X05059 [2017-09-05 03:41:38.135005] Finished slicing [28/88] d.5.e.Q.petraea_AJ242949 [2017-09-05 03:42:00.448841] Finished slicing [29/88] d.5.e.A.tabira_AB015591 [2017-09-05 03:42:21.278920] Finished slicing [30/88] d.5.e.P.coxalis_Y14281 [2017-09-05 03:42:45.750116] Finished slicing [31/88] d.5.e.I.iguana_M10817 [2017-09-05 03:43:08.300833] Finished slicing [32/88] d.5.e.M.fossilis_V00647 [2017-09-05 03:43:32.810487] Finished slicing [33/88] d.5.e.B.taurus_X57170 [2017-09-05 03:43:57.577742] Finished slicing [34/88] d.5.b.G.stearothermophilus.4_M25591 [2017-09-05 03:44:22.455562] Finished slicing [35/88] d.5.e.A.magnoliae_X01518 [2017-09-05 03:44:45.571412] Finished slicing [36/88] d.5.e.Hemicentrotus.sp_X01004 [2017-09-05 03:45:04.852416] Finished slicing [37/88] d.5.e.S.aggregatum_X06104 [2017-09-05 03:45:29.184914] Finished slicing [38/88] d.5.a.H.salinarum.2_X03407 [2017-09-05 03:45:48.140723] Finished slicing [39/88] d.5.e.H.oculata_X01536 [2017-09-05 03:46:10.347944] Finished slicing [40/88] d.5.e.L.japonicum_D00076 [2017-09-05 03:46:30.988761] Finished slicing [41/88] d.5.e.A.pernyi_X13035 [2017-09-05 03:46:55.835597] Finished slicing [42/88] d.5.e.G.arboreum_U31855 [2017-09-05 03:47:18.333578] Finished slicing [43/88] d.5.a.H.marismortui_AF034620 [2017-09-05 03:47:40.098131] Finished slicing [44/88] d.5.e.B.vorax_K02343 [2017-09-05 03:48:05.085887] Finished slicing [45/88] d.5.e.D.melanogaster.1_M25016 [2017-09-05 03:48:31.838435] Finished slicing [46/88] d.5.e.M.salmoides_L49397 [2017-09-05 03:48:52.828331] Finished slicing [47/88] d.5.e.P.gouldii_X00994 [2017-09-05 03:49:17.489076] Finished slicing [48/88] d.5.e.B.napus_X05060 [2017-09-05 03:49:41.645318] Finished slicing [49/88] d.5.e.H.japonica_V00475 [2017-09-05 03:50:05.009063] Finished slicing [50/88] d.5.e.O.sativa.1_M18171 [2017-09-05 03:50:27.256605] Finished slicing [51/88] d.5.b.G.stearothermophilus.2_AJ251080 [2017-09-05 03:50:48.457636] Finished slicing [52/88] d.5.b.A.tumefaciens_X02627 [2017-09-05 03:51:11.221648] Finished slicing [53/88] d.5.e.R.norvegicus.3_X83748 [2017-09-05 03:51:33.760033] Finished slicing [54/88] d.5.e.L.usitatissimum_X01531 [2017-09-05 03:52:02.904095] Finished slicing [55/88] d.5.a.M.vacuolata_X62864 [2017-09-05 03:52:25.390303] Finished slicing [56/88] d.5.e.L.geniculatus_X00020 [2017-09-05 03:52:52.029356] Finished slicing [57/88] d.5.a.Sulfolobus.sp.B12_X05870 [2017-09-05 03:53:15.710519] Finished slicing [58/88] d.5.e.H.sapiens.1_Z75742 [2017-09-05 03:53:45.842545] Finished slicing [59/88] d.5.a.N.magadii_X72495 [2017-09-05 03:54:10.214052] Finished slicing [60/88] d.5.e.D.mauritiana_X87874 [2017-09-05 03:54:31.768253] Finished slicing [61/88] d.5.a.H.morrhuae.2_X72588 [2017-09-05 03:54:52.647959] Finished slicing [62/88] d.5.e.H.sanguinea_X01535 [2017-09-05 03:55:13.925911] Finished slicing [63/88] d.5.e.A.domesticus_M16074 [2017-09-05 03:55:36.748567] Finished slicing [64/88] d.5.b.G.stearothermophilus.3_M24839 [2017-09-05 03:55:57.183629] Finished slicing [65/88] d.5.e.C.elegans.1_X06102 [2017-09-05 03:56:20.082682] Finished slicing [66/88] d.5.e.H.sapiens.3_X71802 [2017-09-05 03:56:43.479657] Finished slicing [67/88] d.5.e.G.gnemon_X06995 [2017-09-05 03:57:05.950350] Finished slicing [68/88] d.5.e.O.sativa.2_M18170 [2017-09-05 03:57:25.012908] Finished slicing [69/88] d.5.e.P.brevicirris_X00996 [2017-09-05 03:57:47.692201] Finished slicing [70/88] d.5.e.E.gracilis.2_X01484 [2017-09-05 03:58:09.563802] Finished slicing [71/88] d.5.e.M.glyptostroboides_M10432 [2017-09-05 03:58:32.342886] Finished slicing [72/88] d.5.e.P.tetraurelia_J01872 [2017-09-05 03:58:52.813798] Finished slicing [73/88] d.5.e.N.viridescens_X06097 [2017-09-05 03:59:11.693242] Finished slicing [74/88] d.5.e.A.salina_Y00128 [2017-09-05 03:59:30.179677] Finished slicing [75/88] d.5.a.H.salinarum.1_M10691 [2017-09-05 03:59:52.036654] Finished slicing [76/88] d.5.e.A.equina_X05233 [2017-09-05 04:00:13.927445] Finished slicing [77/88] d.5.e.P.hybrida.2_X07929 [2017-09-05 04:00:34.299867] Finished slicing [78/88] d.5.e.L.luteus_Z93433 [2017-09-05 04:00:58.370979] Finished slicing [79/88] d.5.a.M.formicicum_X62859 [2017-09-05 04:01:20.784087] Finished slicing [80/88] d.5.e.E.eurystomus_X13718 [2017-09-05 04:01:47.194410] Finished slicing [81/88] d.5.a.M.barkeri_M36188 [2017-09-05 04:02:13.301591] Finished slicing [82/88] d.5.a.D.mobilis_X07545 [2017-09-05 04:02:34.916715] Finished slicing [83/88] d.5.e.H.sapiens.4_X51545 [2017-09-05 04:02:54.307842] Finished slicing [84/88] d.5.e.C.carpio_AB015590 [2017-09-05 04:03:15.708663] Finished slicing [85/88] d.5.a.T.acidophilum_X02709 [2017-09-05 04:03:37.343064] Finished slicing [86/88] d.5.a.H.morrhuae.1_J01865 [2017-09-05 04:03:56.954406] Finished slicing [87/88] d.5.b.M.genitalium_U39694
slice_sobj_names = glob.glob('5s/slices/*.mas_dict.sobj') print len(slice_sobj_names)
88
for ssname in slice_sobj_names: sl_container = load(ssname) if len(sl_container.keys())>1: print ssname print sl_container
5s/slices/d.5.a.M.thermolithotrophicus.2_M34911.mas_dict.sobj {(1, 3, 4, -206/5): ([[67/10, 3/10, -5/2], [57/10, 13/20, -11/4], [68/5, 3/10, -5/2], [143/10, 2/5, -26/5], [213/20, 13/20, -22/5], [241/10, 2/5, -26/5], [127/20, 13/40, -97/40], [271/20, 13/20, -11/4], [281/20, 9/20, -26/5], [71/10, 7/25, -13/5], [68/5, 1/6, -21/5], [85/6, 11/30, -51/10], [529/40, 13/40, -97/40], [104/5, 1/6, -21/5], [67/5, 7/25, -47/10], [119/5, 11/30, -51/10], [859/60, 9/20, -79/15], [403/30, 5/18, -47/10], [1427/100, 43/100, -131/25], [1449/100, 49/100, -133/25], [1479/110, 31/110, -519/110], [92/7, 11/140, -101/28], [1867/140, 11/140, -257/70], [2083/140, 13/20, -191/35], [2431/100, 49/100, -133/25], [2617/140, 11/140, -101/28], [379/20, 11/140, -257/70], [3413/140, 13/20, -191/35]], []), (1, 0, 4, -183/5): ([[139/10, 33/10, -27/5], [159/10, 33/10, -59/10], [43/2, 33/10, -27/5], [83/5, 33/10, -151/25], [1203/50, 33/10, -151/25]], [[0, 1, 0]])} 5s/slices/d.5.a.M.fervidus_M26976.mas_dict.sobj {(1, 4, 3, -77): ([[-21/10, 32/15, -23/30], [-17/10, 21/10, -9/10], [129/10, 7/10, -53/10], [139/10, 9/10, -57/10], [72/5, 1/10, -49/10], [377/30, 13/30, -149/30], [102/5, -3/20, -113/20], [226/15, 32/15, -23/30], [769/60, 1/3, -59/12], [72/5, 3/80, -377/80], [221/15, 17/120, -613/120], [93/4, -3/20, -509/80], [3279/80, -3/20, -509/80], [4272/185, -18/185, -1199/185], [4533/220, 139/220, -149/22], [4194/185, -21/370, -1202/185], [430/11, 139/220, -149/22], [15219/370, -18/185, -1199/185]], [[-3, 0, 1]]), (1, 1, 3, -353/5): ([[-63/10, 39/10, 1], [-21/10, 32/15, -23/30], [-41/10, 14/5, -1/10], [8, 39/10, 1], [226/15, 32/15, -23/30]], [[-3, 0, 1]])} 5s/slices/d.5.e.P.coxalis_Y14281.mas_dict.sobj {(3, 32, 9, -491/10): ([[101/10, -7/20, -29/10], [51/5, -7/20, -37/10], [117/10, -7/20, -37/10], [47/5, -3/8, -69/20], [51/5, -3/8, -123/40], [219/20, -3/8, -69/20], [452/45, -16/45, -29/10]], [[-3, 0, 1]]), (3, 30, 9, -249/5): ([[54/5, -3/10, -3], [56/5, -3/10, -4], [59/5, -3/10, -7/2], [123/10, -3/10, -4], [101/10, -7/20, -29/10], [51/5, -7/20, -37/10], [117/10, -7/20, -37/10], [1217/110, -18/55, -437/110], [123/10, -18/55, -437/110], [281/23, -77/230, -893/230]], [[-3, 0, 1]])}
#vx_counter = 0 #vx_to_name #name_to_signature slices = [] slice_names = [] slice_signatures = [] for ssname in slice_sobj_names: sl_container = load(ssname) for signature in sl_container: vertices,rays = sl_container[signature] slices.append(Polyhedron(vertices=vertices,rays=rays,base_ring=QQ)) slice_names.append(ssname) slice_signatures.append(signature)
#slice_to_name = {sl:name for sl,name in zip(slices,slice_names)} #name_to_slice = {name:sl for sl,name in zip(slices,slice_names)} slice_to_label = {sl:i for i,sl in enumerate(slices)} label_to_slice = {i:sl for i,sl in enumerate(slices)} label_to_name = {i:name for i,name in enumerate(slice_names)} n=len(slices) G=Graph(n) edges = [] for i1, i2 in combinations(range(n),2): sl1 = slices[i1] sl2 = slices[i2] inter=sl1.intersection(sl2) if not inter.is_empty(): edges.append([i1,i2]) G.add_edges(edges)
G.num_verts()
91
G.num_edges()
1544
G.is_connected()
False
G.connected_components_number()
4
G.connected_components_sizes()
[88, 1, 1, 1]
G.show()
G.connected_component_containing_vertex(27)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90]
H=G.subgraph(G.connected_component_containing_vertex(27))
H
Subgraph of (): Graph on 88 vertices
save(H,'5s_intersection_graph')
c1,c2 = H.cliques_maximum()
c1
[1, 4, 5, 6, 7, 8, 9, 12, 13, 14, 18, 22, 23, 24, 26, 28, 31, 33, 34, 36, 37, 40, 45, 46, 47, 51, 53, 55, 58, 59, 61, 62, 63, 64, 65, 67, 68, 73, 76, 78, 79, 86, 87, 89]
c2
[1, 4, 6, 7, 8, 9, 12, 13, 14, 18, 22, 23, 24, 26, 28, 31, 33, 34, 36, 37, 40, 45, 46, 47, 51, 53, 55, 58, 59, 61, 62, 63, 64, 65, 66, 67, 68, 73, 76, 78, 79, 86, 87, 89]
print set(c1).difference(c2) print set(c2).difference(c1)
set([5]) set([66])
print slice_names[66] print slice_names[5]
5s/slices/d.5.b.E.coli_V00336.mas_dict.sobj 5s/slices/d.5.e.P.tetraurelia_J01872.mas_dict.sobj
for K in [c1,c2]: for i,j,k,l in combinations(K,4): if 5 in [i,j,k,l] or 66 in [i,j,k,l]: continue si = slices[i] sj = slices[j] sk = slices[k] sl = slices[l] inter = si.intersection(sj) inter = inter.intersection(sk) inter = inter.intersection(sl) if inter.is_empty(): print "Not pairwise overlapping. Failed at {0}, {1}, {2}, {3}.".format(i,j,k,l) break else: print "Find intersection for regions in {0}!!".format(K)
Find intersection for regions in [1, 4, 5, 6, 7, 8, 9, 12, 13, 14, 18, 22, 23, 24, 26, 28, 31, 33, 34, 36, 37, 40, 45, 46, 47, 51, 53, 55, 58, 59, 61, 62, 63, 64, 65, 67, 68, 73, 76, 78, 79, 86, 87, 89]!! Find intersection for regions in [1, 4, 6, 7, 8, 9, 12, 13, 14, 18, 22, 23, 24, 26, 28, 31, 33, 34, 36, 37, 40, 45, 46, 47, 51, 53, 55, 58, 59, 61, 62, 63, 64, 65, 66, 67, 68, 73, 76, 78, 79, 86, 87, 89]!!
K=copy(c1) K.remove(5)
K
[1, 4, 6, 7, 8, 9, 12, 13, 14, 18, 22, 23, 24, 26, 28, 31, 33, 34, 36, 37, 40, 45, 46, 47, 51, 53, 55, 58, 59, 61, 62, 63, 64, 65, 67, 68, 73, 76, 78, 79, 86, 87, 89]
inter = slices[1].intersection(slices[4]) for i in K: inter = inter.intersection(slices[i])
type(ob)
A 3-dimensional polyhedron in QQ^3 defined as the convex hull of 4 vertices and 1 ray
print inter.vertices_list() print inter.rays_list()
[[1033/170, -9/170, 19/17], [61/10, -1/20, 11/10], [91/20, -1/20, 11/10], [771/170, -9/170, 19/17]] [[-3, 0, 1]]
inter
A 3-dimensional polyhedron in QQ^3 defined as the convex hull of 4 vertices and 1 ray
slice_center(inter)
(5189/1360, -7/136, 547/340)
%md # Improved accuracy region for 5S This is an unbounded region with vertices ``` [[1033/170, -9/170, 19/17], [61/10, -1/20, 11/10], [91/20, -1/20, 11/10], [771/170, -9/170, 19/17]] ``` and a ray ``` [-3, 0, 1] ``` The center of this region is taken to be `(5189/1360, -7/136, 547/340)`.

Improved accuracy region for 5S

This is an unbounded region with vertices

[[1033/170, -9/170, 19/17], [61/10, -1/20, 11/10], [91/20, -1/20, 11/10], [771/170, -9/170, 19/17]]

and a ray

[-3, 0, 1]

The center of this region is taken to be (5189/1360, -7/136, 547/340).