Spaces:
Running
Running
§6 UMAP: highlight curated gene sets (HOX, mitochondrial) + per-mode descriptions
Browse filesAdds a second toolbar row of "highlight" pills next to the existing colour-by
controls. Each pill recolors the WebGL scatter via a 2-class palette (dimmed
grey ghost + vivid foreground), so the highlight is a view of the existing
points, not new geometry on top. Identity matching is coord-snap via the
spatial grid already built for hover, since the bin is species-bucketed and
the CSV's row_idx doesn't line up with the bin's row order.
Adds a per-mode descriptive paragraph above the chart explaining what each
axis or gene set actually is (biotypes, GC content, HOX, mt-DNA), and moves
the navigation hint to a right-aligned slot in the stat row.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Dockerfile +1 -0
- annotations/hox_genes.csv +340 -0
- annotations/mitochondrial_genes.csv +328 -0
- app.py +80 -0
- assets/js/sections/umap.js +218 -19
- assets/styles/section-umap.css +37 -0
- demo.html +13 -7
Dockerfile
CHANGED
|
@@ -8,6 +8,7 @@ RUN pip install --no-cache-dir -r requirements.txt
|
|
| 8 |
COPY app.py index.html demo.html social-banner.html ./
|
| 9 |
COPY data/ ./data/
|
| 10 |
COPY img/ ./img/
|
|
|
|
| 11 |
# Modular CSS/JS for demo.html. demo.html links these by relative URL
|
| 12 |
# (/assets/styles/*.css, /assets/js/**/*.js) and app.py mounts the
|
| 13 |
# directory as static; without this COPY the prod image serves the
|
|
|
|
| 8 |
COPY app.py index.html demo.html social-banner.html ./
|
| 9 |
COPY data/ ./data/
|
| 10 |
COPY img/ ./img/
|
| 11 |
+
COPY annotations/ ./annotations/
|
| 12 |
# Modular CSS/JS for demo.html. demo.html links these by relative URL
|
| 13 |
# (/assets/styles/*.css, /assets/js/**/*.js) and app.py mounts the
|
| 14 |
# directory as static; without this COPY the prod image serves the
|
annotations/hox_genes.csv
ADDED
|
@@ -0,0 +1,340 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
row_idx,gene_id,name,biotype,chrom,start,end,strand,assembly,species,length,gc_content,seq_len_used,umap2d_x,umap2d_y,umap3d_x,umap3d_y,umap3d_z,hox_cluster
|
| 2 |
+
57412,ENSGALG00010001788,HOXA1,protein_coding,2,32479296,32481746,-,GRCg7b,chicken,2451,0.6561,2451,13.2953,9.4867,15.2519,9.1075,8.0927,A
|
| 3 |
+
57414,ENSGALG00010001790,HOXA2,protein_coding,2,32485579,32487851,-,GRCg7b,chicken,2273,0.5856,2273,15.5308,4.6628,14.2215,6.4232,3.0136,A
|
| 4 |
+
57415,ENSGALG00010001801,HOXA3,protein_coding,2,32491888,32510667,-,GRCg7b,chicken,18780,0.5235,8190,13.1834,10.2438,15.6204,9.5041,8.6459,A
|
| 5 |
+
57416,ENSGALG00010001808,HOXA4,protein_coding,2,32512064,32514374,-,GRCg7b,chicken,2311,0.5772,2311,15.5076,4.7644,14.1409,6.6071,2.9847,A
|
| 6 |
+
57418,ENSGALG00010001813,HOXA5,protein_coding,2,32525265,32528034,-,GRCg7b,chicken,2770,0.5249,2770,15.4624,4.857,14.097,6.7213,3.0009,A
|
| 7 |
+
57419,ENSGALG00010001819,HOXA6,protein_coding,2,32528935,32532085,-,GRCg7b,chicken,3151,0.5271,3151,13.2766,9.52,14.5048,6.2165,3.1505,A
|
| 8 |
+
57420,ENSGALG00010001826,HOXA7,protein_coding,2,32537106,32542394,-,GRCg7b,chicken,5289,0.526,5289,13.2449,10.2407,15.5714,9.4445,8.6701,A
|
| 9 |
+
57421,ENSGALG00010001840,HOXA9,protein_coding,2,32546009,32563954,-,GRCg7b,chicken,17946,0.5412,8190,13.2257,10.2152,15.6163,9.4728,8.6611,A
|
| 10 |
+
57422,ENSGALG00010001844,HOXA10,protein_coding,2,32554165,32559746,-,GRCg7b,chicken,5582,0.5491,5582,13.2133,10.1481,15.5419,9.4312,8.5767,A
|
| 11 |
+
57423,ENSGALG00010001848,HOXA11,protein_coding,2,32565244,32569341,-,GRCg7b,chicken,4098,0.5139,4098,13.2465,9.7744,15.471,9.3326,8.345,A
|
| 12 |
+
57424,ENSGALG00010001321,HOXA13,protein_coding,2,32582495,32585463,-,GRCg7b,chicken,2969,0.5295,2969,13.2952,9.6886,15.314,9.152,8.2928,A
|
| 13 |
+
67595,ENSGALG00010024724,HOXD3,protein_coding,7,15883210,15895207,-,GRCg7b,chicken,11998,0.5823,8190,13.2135,10.2292,15.5795,9.4731,8.671,D
|
| 14 |
+
67596,ENSGALG00010024746,HOXD4,protein_coding,7,15898314,15900370,-,GRCg7b,chicken,2057,0.491,2057,15.462,4.6519,14.205,6.3383,3.0504,D
|
| 15 |
+
67599,ENSGALG00010024753,HOXD8,protein_coding,7,15913086,15916284,-,GRCg7b,chicken,3199,0.6286,3199,13.3912,9.9778,15.4271,9.2312,8.5813,D
|
| 16 |
+
67600,ENSGALG00010024763,HOXD9,protein_coding,7,15919168,15921430,-,GRCg7b,chicken,2263,0.5532,2263,15.5225,4.745,14.1782,6.5452,3.0043,D
|
| 17 |
+
67601,ENSGALG00010026746,HOXD10,protein_coding,7,15922631,15927519,-,GRCg7b,chicken,4889,0.53,4889,16.1071,4.9684,14.9311,6.5972,3.3388,D
|
| 18 |
+
67604,ENSGALG00010024780,HOXD11,protein_coding,7,15934443,15936738,-,GRCg7b,chicken,2296,0.4856,2296,15.567,4.6247,14.2761,6.3747,3.0065,D
|
| 19 |
+
67605,ENSGALG00010024782,HOXD12,protein_coding,7,15941698,15943367,-,GRCg7b,chicken,1670,0.5192,1670,15.5282,4.7165,14.2063,6.4856,3.014,D
|
| 20 |
+
67606,ENSGALG00010024790,HOXD13,protein_coding,7,15947381,15949933,-,GRCg7b,chicken,2553,0.5872,2553,13.3066,9.5382,15.2721,9.0978,8.1555,D
|
| 21 |
+
77578,ENSBTAG00000015840,HOXD1,protein_coding,2,20724031,20726490,-,ARS-UCD1.3,cow,2460,0.5492,2460,16.2054,3.4803,14.6931,5.2068,2.7862,D
|
| 22 |
+
77580,ENSBTAG00000004835,HOXD3,protein_coding,2,20740547,20765626,-,ARS-UCD1.3,cow,25080,0.5238,8190,17.7633,3.633,16.3776,5.2098,3.0901,D
|
| 23 |
+
77581,ENSBTAG00000049845,HOXD8,protein_coding,2,20780820,20784011,-,ARS-UCD1.3,cow,3192,0.5263,3192,16.0459,4.5414,14.6809,6.2796,3.0074,D
|
| 24 |
+
77582,ENSBTAG00000016033,HOXD9,protein_coding,2,20788260,20790849,-,ARS-UCD1.3,cow,2590,0.6039,2590,15.5009,4.7818,14.1273,6.6423,2.9996,D
|
| 25 |
+
77583,ENSBTAG00000016030,HOXD10,protein_coding,2,20793704,20797179,-,ARS-UCD1.3,cow,3476,0.5141,3476,15.5772,4.9569,14.2154,6.7886,3.0074,D
|
| 26 |
+
77584,ENSBTAG00000033330,HOXD11,protein_coding,2,20803593,20809661,-,ARS-UCD1.3,cow,6069,0.6036,6069,17.4162,4.0588,16.0905,5.6309,3.2215,D
|
| 27 |
+
77585,ENSBTAG00000004314,HOXD12,protein_coding,2,20812814,20813774,-,ARS-UCD1.3,cow,961,0.6514,961,15.3721,4.9212,14.0175,6.8051,2.972,D
|
| 28 |
+
77586,ENSBTAG00000004313,HOXD13,protein_coding,2,20817850,20820662,-,ARS-UCD1.3,cow,2813,0.503,2813,15.9132,4.3178,14.5429,6.079,2.9875,D
|
| 29 |
+
81161,ENSBTAG00000014735,HOXA13,protein_coding,4,68842500,68844696,+,ARS-UCD1.3,cow,2197,0.6172,2197,15.4834,4.87,14.1253,6.7314,2.9348,A
|
| 30 |
+
81163,ENSBTAG00000014738,HOXA11,protein_coding,4,68857083,68860798,+,ARS-UCD1.3,cow,3716,0.5708,3716,15.5945,4.8941,14.2155,6.7498,2.9769,A
|
| 31 |
+
81164,ENSBTAG00000040082,HOXA10,protein_coding,4,68862754,68872131,+,ARS-UCD1.3,cow,9378,0.54,8190,17.3019,4.2298,15.958,5.8421,3.124,A
|
| 32 |
+
81165,ENSBTAG00000053595,HOXA9,protein_coding,4,68876700,68880437,+,ARS-UCD1.3,cow,3738,0.5257,3738,15.8519,4.885,14.5152,6.6753,3.0366,A
|
| 33 |
+
81166,ENSBTAG00000001455,HOXA7,protein_coding,4,68885933,68888817,+,ARS-UCD1.3,cow,2885,0.5764,2885,15.5453,4.8913,14.1884,6.7416,2.9732,A
|
| 34 |
+
81168,ENSBTAG00000024341,HOXA6,protein_coding,4,68894951,68898027,+,ARS-UCD1.3,cow,3077,0.557,3077,15.5928,4.9209,14.2402,6.7526,2.9813,A
|
| 35 |
+
81169,ENSBTAG00000012211,HOXA5,protein_coding,4,68897373,68901559,+,ARS-UCD1.3,cow,4187,0.5508,4187,15.8293,4.9849,14.4471,6.7474,3.0663,A
|
| 36 |
+
81170,ENSBTAG00000008139,HOXA3,protein_coding,4,68902556,68934981,+,ARS-UCD1.3,cow,32426,0.49,8190,17.8187,3.6399,16.4234,5.2066,3.0945,A
|
| 37 |
+
81171,ENSBTAG00000008138,HOXA2,protein_coding,4,68939317,68941279,+,ARS-UCD1.3,cow,1963,0.5262,1963,15.3524,4.9518,13.9963,6.8321,2.9287,A
|
| 38 |
+
81173,ENSBTAG00000013263,HOXA1,protein_coding,4,68945049,68948579,+,ARS-UCD1.3,cow,3531,0.5276,3531,15.7007,4.8498,14.3566,6.6655,2.976,A
|
| 39 |
+
81979,ENSBTAG00000003304,HOXC4,protein_coding,5,25950127,25979765,-,ARS-UCD1.3,cow,29639,0.4811,8190,19.9841,2.0405,18.0018,3.9071,1.0681,C
|
| 40 |
+
81982,ENSBTAG00000009634,HOXC5,protein_coding,5,25997378,25999826,-,ARS-UCD1.3,cow,2449,0.5937,2449,15.4588,4.867,14.0788,6.7292,2.9829,C
|
| 41 |
+
81983,ENSBTAG00000009238,HOXC6,protein_coding,5,26002110,26015460,-,ARS-UCD1.3,cow,13351,0.5226,8190,16.8478,4.9895,15.5768,6.5808,3.277,C
|
| 42 |
+
81984,ENSBTAG00000012149,HOXC8,protein_coding,5,26020239,26023561,-,ARS-UCD1.3,cow,3323,0.5441,3323,15.5003,4.9441,14.1464,6.7932,2.9939,C
|
| 43 |
+
81985,ENSBTAG00000005606,HOXC9,protein_coding,5,26028919,26038153,-,ARS-UCD1.3,cow,9235,0.5783,8190,16.6241,5.1105,15.3769,6.7021,3.3186,C
|
| 44 |
+
81986,ENSBTAG00000003278,HOXC10,protein_coding,5,26042191,26047529,-,ARS-UCD1.3,cow,5339,0.5355,5339,16.0962,5.0353,14.749,6.7723,3.1484,C
|
| 45 |
+
81987,ENSBTAG00000006879,HOXC11,protein_coding,5,26057080,26059552,-,ARS-UCD1.3,cow,2473,0.6381,2473,15.4749,4.8663,14.1108,6.7246,2.9844,C
|
| 46 |
+
81988,ENSBTAG00000000924,HOXC12,protein_coding,5,26075091,26077752,-,ARS-UCD1.3,cow,2662,0.5995,2662,15.8401,4.2684,14.4252,6.0832,2.8811,C
|
| 47 |
+
81990,ENSBTAG00000000923,HOXC13,protein_coding,5,26085701,26093573,-,ARS-UCD1.3,cow,7873,0.4889,7873,17.0171,4.7893,15.7425,6.3718,3.2748,C
|
| 48 |
+
99684,ENSBTAG00000014663,HOXB13,protein_coding,19,37792257,37794223,+,ARS-UCD1.3,cow,1967,0.5796,1967,15.6379,4.5873,14.2783,6.455,2.8339,B
|
| 49 |
+
99686,ENSBTAG00000061622,HOXB9,protein_coding,19,37866983,37870934,+,ARS-UCD1.3,cow,3952,0.5678,3952,15.9796,5.0338,14.6685,6.7873,3.1028,B
|
| 50 |
+
99688,ENSBTAG00000054162,HOXB8,protein_coding,19,37878401,37881121,+,ARS-UCD1.3,cow,2721,0.5935,2721,15.5274,4.8763,14.1671,6.7186,2.9831,B
|
| 51 |
+
99689,ENSBTAG00000005546,HOXB7,protein_coding,19,37882418,37884842,+,ARS-UCD1.3,cow,2425,0.593,2425,15.6179,4.6524,14.2416,6.4994,2.8568,B
|
| 52 |
+
99690,ENSBTAG00000050006,HOXB6,protein_coding,19,37887739,37897080,+,ARS-UCD1.3,cow,9342,0.5517,8190,16.5756,5.1487,15.3141,6.7808,3.2926,B
|
| 53 |
+
99691,ENSBTAG00000045835,HOXB5,protein_coding,19,37898606,37901190,+,ARS-UCD1.3,cow,2585,0.5644,2585,15.4421,4.9203,14.0889,6.7832,2.9451,B
|
| 54 |
+
99692,ENSBTAG00000039599,HOXB4,protein_coding,19,37913845,37916664,+,ARS-UCD1.3,cow,2820,0.5699,2820,15.47,4.9179,14.126,6.7485,2.9389,B
|
| 55 |
+
99693,ENSBTAG00000021427,HOXB3,protein_coding,19,37915998,37942452,+,ARS-UCD1.3,cow,26455,0.5145,8190,17.7575,3.9353,16.3546,5.5222,3.0567,B
|
| 56 |
+
99694,ENSBTAG00000009979,HOXB2,protein_coding,19,37946201,37948660,+,ARS-UCD1.3,cow,2460,0.5679,2460,15.5206,4.778,14.1402,6.6606,2.9324,B
|
| 57 |
+
99696,ENSBTAG00000007603,HOXB1,protein_coding,19,37957710,37960269,+,ARS-UCD1.3,cow,2560,0.6,2560,15.8572,4.5261,14.4804,6.3672,2.8737,B
|
| 58 |
+
113678,ENSCAFG00845017096,HOXB1,protein_coding,9,25587585,25588998,-,ROS_Cfam_1.0,dog,1414,0.6782,1414,15.6305,4.6314,14.2089,6.4971,2.9624,B
|
| 59 |
+
113680,ENSCAFG00845017142,HOXB2,protein_coding,9,25598682,25601013,-,ROS_Cfam_1.0,dog,2332,0.578,2332,15.7493,4.5209,14.3868,6.3347,2.8681,B
|
| 60 |
+
113681,ENSCAFG00845017188,HOXB3,protein_coding,9,25605623,25630630,-,ROS_Cfam_1.0,dog,25008,0.5367,8190,17.9262,3.4252,16.4949,4.9829,3.0206,B
|
| 61 |
+
113682,ENSCAFG00845017264,HOXB4,protein_coding,9,25633230,25635059,-,ROS_Cfam_1.0,dog,1830,0.6268,1830,15.4444,4.8833,14.0692,6.764,2.9938,B
|
| 62 |
+
113683,ENSCAFG00845009832,HOXB5,protein_coding,9,25648192,25651900,-,ROS_Cfam_1.0,dog,3709,0.5584,3709,15.814,4.9402,14.4692,6.7356,3.0633,B
|
| 63 |
+
113684,ENSCAFG00845009871,HOXB6,protein_coding,9,25653508,25655228,-,ROS_Cfam_1.0,dog,1721,0.6485,1721,15.4573,4.8724,14.0963,6.7352,2.9723,B
|
| 64 |
+
113685,ENSCAFG00845009899,HOXB7,protein_coding,9,25664496,25667914,-,ROS_Cfam_1.0,dog,3419,0.5633,3419,16.0177,4.7054,14.6641,6.4672,3.0075,B
|
| 65 |
+
113686,ENSCAFG00845009931,HOXB8,protein_coding,9,25670240,25671932,-,ROS_Cfam_1.0,dog,1693,0.596,1693,15.4358,4.9215,14.092,6.7629,2.9738,B
|
| 66 |
+
113687,ENSCAFG00845009956,HOXB9,protein_coding,9,25680383,25683856,-,ROS_Cfam_1.0,dog,3474,0.5852,3474,15.7269,4.9134,14.3948,6.7538,3.0669,B
|
| 67 |
+
113689,ENSCAFG00845009992,HOXB13,protein_coding,9,25753220,25755912,-,ROS_Cfam_1.0,dog,2693,0.5752,2693,16.5588,4.0341,15.0988,5.7706,2.8712,B
|
| 68 |
+
117922,ENSCAFG00845011289,HOXA1,protein_coding,14,40206290,40208443,-,ROS_Cfam_1.0,dog,2154,0.5009,2154,15.5586,4.18,14.1546,6.0849,2.7792,A
|
| 69 |
+
117923,ENSCAFG00845011307,HOXA2,protein_coding,14,40213230,40215000,-,ROS_Cfam_1.0,dog,1771,0.5443,1771,15.4085,4.9285,14.033,6.8209,2.9717,A
|
| 70 |
+
117924,ENSCAFG00845011325,HOXA3,protein_coding,14,40220574,40239394,-,ROS_Cfam_1.0,dog,18821,0.5121,8190,16.7109,5.1147,15.4392,6.7031,3.3067,A
|
| 71 |
+
117925,ENSCAFG00845011344,HOXA4,protein_coding,14,40241589,40243094,-,ROS_Cfam_1.0,dog,1506,0.6567,1506,14.8641,4.8064,13.4583,6.8825,3.1698,A
|
| 72 |
+
117926,ENSCAFG00845011359,HOXA5,protein_coding,14,40254476,40256603,-,ROS_Cfam_1.0,dog,2128,0.6194,2128,15.4139,4.9217,14.0532,6.7997,3.0046,A
|
| 73 |
+
117927,ENSCAFG00845011371,HOXA6,protein_coding,14,40258316,40260418,-,ROS_Cfam_1.0,dog,2103,0.5521,2103,15.5046,4.8357,14.1509,6.6924,2.9423,A
|
| 74 |
+
117928,ENSCAFG00845011385,HOXA7,protein_coding,14,40267783,40269502,-,ROS_Cfam_1.0,dog,1720,0.6343,1720,15.4916,4.837,14.1301,6.6943,2.9735,A
|
| 75 |
+
117929,ENSCAFG00845011412,HOXA9,protein_coding,14,40275952,40278578,-,ROS_Cfam_1.0,dog,2627,0.5744,2627,15.4612,4.8463,14.1136,6.693,2.9801,A
|
| 76 |
+
117930,ENSCAFG00845016148,HOXA10,protein_coding,14,40283823,40287557,-,ROS_Cfam_1.0,dog,3735,0.5639,3735,15.5721,4.9542,14.2074,6.7872,3.0344,A
|
| 77 |
+
117931,ENSCAFG00845016202,HOXA11,protein_coding,14,40295087,40299055,-,ROS_Cfam_1.0,dog,3969,0.5717,3969,15.841,4.8739,14.5064,6.6573,3.0619,A
|
| 78 |
+
117932,ENSCAFG00845016263,HOXA13,protein_coding,14,40311665,40314704,-,ROS_Cfam_1.0,dog,3040,0.6628,3040,16.4564,4.225,15.0985,5.9372,3.0589,A
|
| 79 |
+
142335,ENSXETG00000025181,hoxc3,protein_coding,2,145920781,145927936,-,UCB_Xtro_10.0,frog,7156,0.4181,7156,4.6295,11.27,8.576,14.3029,7.6139,C
|
| 80 |
+
142336,ENSXETG00000038997,hoxc4,protein_coding,2,145980473,146066854,-,UCB_Xtro_10.0,frog,86382,0.4055,8190,3.8252,11.3033,7.8712,14.5845,7.4892,C
|
| 81 |
+
142337,ENSXETG00000042371,hoxc6,protein_coding,2,146016594,146075196,-,UCB_Xtro_10.0,frog,58603,0.4078,8190,4.3969,11.4567,8.5271,14.4922,7.4543,C
|
| 82 |
+
142338,ENSXETG00000025183,hoxc5,protein_coding,2,146060447,146062948,-,UCB_Xtro_10.0,frog,2502,0.4137,2502,6.5942,10.5047,9.06,13.4514,8.7775,C
|
| 83 |
+
142339,ENSXETG00000023476,hoxc8,protein_coding,2,146085662,146089469,-,UCB_Xtro_10.0,frog,3808,0.4343,3808,5.1759,11.0085,8.7758,13.9423,8.1058,C
|
| 84 |
+
142340,ENSXETG00000044877,hoxc9,protein_coding,2,146094868,146149103,-,UCB_Xtro_10.0,frog,54236,0.3813,8190,4.1456,11.4431,8.2125,14.6034,7.5645,C
|
| 85 |
+
142341,ENSXETG00000023472,hoxc10,protein_coding,2,146107005,146111242,-,UCB_Xtro_10.0,frog,4238,0.3568,4238,7.835,10.9513,9.7382,13.3781,9.9372,C
|
| 86 |
+
142342,ENSXETG00000023470,hoxc12,protein_coding,2,146141299,146142869,-,UCB_Xtro_10.0,frog,1571,0.4863,1571,7.1449,10.4488,9.5923,13.0861,9.0576,C
|
| 87 |
+
142343,ENSXETG00000038664,HOXC13,protein_coding,2,146196800,146201156,-,UCB_Xtro_10.0,frog,4357,0.4078,4357,5.1546,11.0222,8.7779,13.9406,8.1046,C
|
| 88 |
+
150791,ENSXETG00000000715,hoxa1,protein_coding,6,42135898,42138055,-,UCB_Xtro_10.0,frog,2158,0.4351,2158,7.2616,10.4542,9.4901,13.1018,9.2667,A
|
| 89 |
+
150792,ENSXETG00000000716,hoxa2,protein_coding,6,42145969,42147900,-,UCB_Xtro_10.0,frog,1932,0.4503,1932,7.1017,10.3727,9.6155,13.089,9.0385,A
|
| 90 |
+
150793,ENSXETG00000000717,hoxa3,protein_coding,6,42151954,42161191,-,UCB_Xtro_10.0,frog,9238,0.3885,8190,4.0734,11.5334,8.2684,14.7334,7.5265,A
|
| 91 |
+
150794,ENSXETG00000027534,hoxa4,protein_coding,6,42172312,42174313,-,UCB_Xtro_10.0,frog,2002,0.4291,2002,7.048,10.3945,9.3978,13.1312,9.1156,A
|
| 92 |
+
150795,ENSXETG00000036073,hoxa6,protein_coding,6,42183495,42189001,-,UCB_Xtro_10.0,frog,5507,0.4218,5507,4.8778,11.2205,8.6813,14.1784,7.9002,A
|
| 93 |
+
150796,ENSXETG00000000722,hoxa7,protein_coding,6,42193336,42196378,-,UCB_Xtro_10.0,frog,3043,0.4019,3043,5.722,10.6916,8.8611,13.6873,8.3349,A
|
| 94 |
+
150797,ENSXETG00000000724,hoxa9,protein_coding,6,42201260,42202713,-,UCB_Xtro_10.0,frog,1454,0.5014,1454,7.0214,10.3785,9.4981,13.0858,9.0012,A
|
| 95 |
+
150798,ENSXETG00000000728,hoxa10,protein_coding,6,42208759,42209031,-,UCB_Xtro_10.0,frog,273,0.5128,273,14.0221,4.5843,12.7848,6.5951,2.6589,A
|
| 96 |
+
150799,ENSXETG00000044962,hoxa13,protein_coding,6,42217823,42232998,-,UCB_Xtro_10.0,frog,15176,0.4043,8190,3.8705,11.3048,7.9371,14.5939,7.4842,A
|
| 97 |
+
158324,ENSXETG00000007575,hoxd13,protein_coding,9,64969999,64974696,+,UCB_Xtro_10.0,frog,4698,0.4332,4698,4.7828,11.0948,8.5775,14.1444,7.8565,D
|
| 98 |
+
158325,ENSXETG00000045288,hoxd9,protein_coding,9,64984814,65005353,+,UCB_Xtro_10.0,frog,20540,0.3916,8190,4.3185,11.2948,8.3024,14.4404,7.5685,D
|
| 99 |
+
158326,ENSXETG00000032416,hoxd10,protein_coding,9,64988898,64991109,+,UCB_Xtro_10.0,frog,2212,0.3852,2212,6.9855,10.3685,9.3183,13.1464,9.0559,D
|
| 100 |
+
158329,ENSXETG00000040128,hoxd8,protein_coding,9,65056423,65059718,+,UCB_Xtro_10.0,frog,3296,0.4278,3296,4.9808,10.9956,8.6524,14.026,7.9897,D
|
| 101 |
+
158330,ENSXETG00000001799,hoxd4,protein_coding,9,65084151,65085451,+,UCB_Xtro_10.0,frog,1301,0.4604,1301,6.8888,10.2616,9.567,13.0642,8.9122,D
|
| 102 |
+
158331,ENSXETG00000037804,hoxd3,protein_coding,9,65089677,65101688,+,UCB_Xtro_10.0,frog,12012,0.4094,8190,3.7814,11.2694,7.8585,14.6396,7.4815,D
|
| 103 |
+
158332,ENSXETG00000001801,hoxd1,protein_coding,9,65133876,65136008,+,UCB_Xtro_10.0,frog,2133,0.429,2133,6.1498,10.4248,8.876,13.4969,8.5505,D
|
| 104 |
+
158991,ENSXETG00000049208,hoxb1,protein_coding,10,11993262,11999131,-,UCB_Xtro_10.0,frog,5870,0.4525,5870,5.0708,11.5009,9.1556,14.2292,7.5169,B
|
| 105 |
+
158992,ENSXETG00000027353,hoxb2,protein_coding,10,12016147,12021633,-,UCB_Xtro_10.0,frog,5487,0.3984,5487,4.8946,11.2124,8.7415,14.1655,7.7147,B
|
| 106 |
+
158993,ENSXETG00000021967,hoxb3,protein_coding,10,12024305,12074600,-,UCB_Xtro_10.0,frog,50296,0.4051,8190,4.3694,11.3007,8.3488,14.4193,7.5778,B
|
| 107 |
+
158994,ENSXETG00000021973,hoxb4,protein_coding,10,12047821,12049826,-,UCB_Xtro_10.0,frog,2006,0.4731,2006,6.9572,10.3994,9.403,13.143,9.0057,B
|
| 108 |
+
158995,ENSXETG00000021978,hoxb5,protein_coding,10,12060895,12063893,-,UCB_Xtro_10.0,frog,2999,0.4555,2999,5.534,10.8563,8.8886,13.7667,8.2802,B
|
| 109 |
+
158996,ENSXETG00000021987,hoxb6,protein_coding,10,12065152,12071893,-,UCB_Xtro_10.0,frog,6742,0.418,6742,4.3888,11.303,8.3716,14.3929,7.5776,B
|
| 110 |
+
158997,ENSXETG00000021993,hoxb8,protein_coding,10,12075825,12091915,-,UCB_Xtro_10.0,frog,16091,0.4527,8190,4.9559,11.4544,9.0004,14.2982,7.4808,B
|
| 111 |
+
158998,ENSXETG00000043711,hoxb9,protein_coding,10,12094129,12101069,-,UCB_Xtro_10.0,frog,6941,0.3791,6941,4.7393,11.2496,8.6327,14.2529,7.6664,B
|
| 112 |
+
168410,ENSG00000128714,HOXD13,protein_coding,2,176092721,176095944,+,GRCh38,human,3224,0.4988,3224,15.729,4.9247,14.3802,6.7413,3.0163,D
|
| 113 |
+
168411,ENSG00000170178,HOXD12,protein_coding,2,176099795,176102489,+,GRCh38,human,2695,0.5644,2695,16.1491,4.6837,14.792,6.4397,2.9876,D
|
| 114 |
+
168412,ENSG00000128713,HOXD11,protein_coding,2,176104216,176109754,+,GRCh38,human,5539,0.616,5539,16.6621,4.6935,15.2792,6.3057,3.1449,D
|
| 115 |
+
168413,ENSG00000128710,HOXD10,protein_coding,2,176108790,176119937,+,GRCh38,human,11148,0.4931,8190,17.1139,4.5008,15.822,6.1134,3.2474,D
|
| 116 |
+
168415,ENSG00000128709,HOXD9,protein_coding,2,176122719,176124937,+,GRCh38,human,2219,0.6016,2219,15.4578,4.8649,14.0929,6.7138,2.9009,D
|
| 117 |
+
168417,ENSG00000175879,HOXD8,protein_coding,2,176129694,176132695,+,GRCh38,human,3002,0.5217,3002,15.6537,4.6892,14.2623,6.5332,2.8991,D
|
| 118 |
+
168418,ENSG00000128652,HOXD3,protein_coding,2,176136612,176173102,+,GRCh38,human,36491,0.5111,8190,16.6507,5.1161,15.394,6.7221,3.3156,D
|
| 119 |
+
168419,ENSG00000170166,HOXD4,protein_coding,2,176151550,176153226,+,GRCh38,human,1677,0.6136,1677,15.425,4.8936,14.0876,6.7784,2.9383,D
|
| 120 |
+
168424,ENSG00000128645,HOXD1,protein_coding,2,176188668,176190907,+,GRCh38,human,2240,0.5607,2240,15.5,4.7967,14.1582,6.6486,2.8902,D
|
| 121 |
+
182272,ENSG00000105991,HOXA1,protein_coding,7,27092993,27096000,-,GRCh38,human,3008,0.4678,3008,16.1427,4.1899,14.8137,5.9932,2.9072,A
|
| 122 |
+
182281,ENSG00000105996,HOXA2,protein_coding,7,27100354,27102686,-,GRCh38,human,2333,0.5002,2333,15.4814,4.7781,14.1279,6.6333,2.9507,A
|
| 123 |
+
182282,ENSG00000105997,HOXA3,protein_coding,7,27106184,27152583,-,GRCh38,human,46400,0.5031,8190,16.7395,5.027,15.4743,6.6199,3.3253,A
|
| 124 |
+
182284,ENSG00000197576,HOXA4,protein_coding,7,27128507,27130780,-,GRCh38,human,2274,0.5695,2274,15.4637,4.8332,14.1034,6.6959,2.9818,A
|
| 125 |
+
182287,ENSG00000106004,HOXA5,protein_coding,7,27141052,27143681,-,GRCh38,human,2630,0.5338,2630,15.4283,4.8932,14.06,6.7786,3.0067,A
|
| 126 |
+
182288,ENSG00000106006,HOXA6,protein_coding,7,27145396,27150603,-,GRCh38,human,5208,0.5382,5208,16.2853,5.0457,14.9952,6.7626,3.1517,A
|
| 127 |
+
182290,ENSG00000122592,HOXA7,protein_coding,7,27153716,27157936,-,GRCh38,human,4221,0.5662,4221,16.4818,4.8151,15.1844,6.4672,3.1199,A
|
| 128 |
+
182292,ENSG00000078399,HOXA9,protein_coding,7,27162438,27175180,-,GRCh38,human,12743,0.5525,8190,16.8531,4.7648,15.5972,6.3793,3.2887,A
|
| 129 |
+
182296,ENSG00000253293,HOXA10,protein_coding,7,27170605,27180261,-,GRCh38,human,9657,0.5365,8190,17.5216,4.0139,16.1572,5.5836,3.1991,A
|
| 130 |
+
182297,ENSG00000005073,HOXA11,protein_coding,7,27181157,27185232,-,GRCh38,human,4076,0.5437,4076,15.8422,4.9702,14.5024,6.7497,3.0799,A
|
| 131 |
+
182307,ENSG00000106031,HOXA13,protein_coding,7,27193503,27200091,-,GRCh38,human,6589,0.4535,6589,17.162,4.2971,15.8247,5.9118,3.1414,A
|
| 132 |
+
196358,ENSG00000123364,HOXC13,protein_coding,12,53938831,53946544,+,GRCh38,human,7714,0.4894,7714,17.0018,4.901,15.6851,6.5367,3.2776,C
|
| 133 |
+
196361,ENSG00000123407,HOXC12,protein_coding,12,53954903,53958956,+,GRCh38,human,4054,0.5816,4054,16.6034,4.794,15.2165,6.4141,3.0975,C
|
| 134 |
+
196368,ENSG00000123388,HOXC11,protein_coding,12,53973126,53977643,+,GRCh38,human,4518,0.5598,4518,16.4735,4.7599,15.1625,6.3895,3.0905,C
|
| 135 |
+
196371,ENSG00000180818,HOXC10,protein_coding,12,53985065,53990279,+,GRCh38,human,5215,0.5292,5215,16.3075,5.1922,15.0361,6.8828,3.2114,C
|
| 136 |
+
196373,ENSG00000197757,HOXC6,protein_coding,12,53990624,54030823,+,GRCh38,human,40200,0.5361,8190,17.1771,4.647,15.8728,6.1916,3.237,C
|
| 137 |
+
196375,ENSG00000180806,HOXC9,protein_coding,12,53994895,54003337,+,GRCh38,human,8443,0.5689,8190,16.6263,5.1227,15.3537,6.7352,3.3171,C
|
| 138 |
+
196377,ENSG00000037965,HOXC8,protein_coding,12,54008985,54012769,+,GRCh38,human,3785,0.5176,3785,15.6186,4.9625,14.2936,6.8118,3.0077,C
|
| 139 |
+
196378,ENSG00000198353,HOXC4,protein_coding,12,54016931,54056030,+,GRCh38,human,39100,0.5168,8190,16.9274,4.9023,15.6989,6.4282,3.288,C
|
| 140 |
+
196381,ENSG00000172789,HOXC5,protein_coding,12,54033050,54035361,+,GRCh38,human,2312,0.5986,2312,15.4905,4.848,14.126,6.7119,2.9334,C
|
| 141 |
+
207800,ENSG00000120094,HOXB1,protein_coding,17,48528526,48531011,-,GRCh38,human,2486,0.5849,2486,16.0417,4.0948,14.6341,5.8758,2.8421,B
|
| 142 |
+
207801,ENSG00000173917,HOXB2,protein_coding,17,48540894,48545109,-,GRCh38,human,4216,0.5624,4216,16.5141,4.5108,15.1218,6.2129,3.081,B
|
| 143 |
+
207803,ENSG00000120093,HOXB3,protein_coding,17,48548870,48604912,-,GRCh38,human,56043,0.5252,8190,16.6419,5.106,15.3508,6.7212,3.325,B
|
| 144 |
+
207806,ENSG00000182742,HOXB4,protein_coding,17,48575507,48578350,-,GRCh38,human,2844,0.565,2844,15.5064,4.9172,14.1274,6.7935,3.0026,B
|
| 145 |
+
207808,ENSG00000120075,HOXB5,protein_coding,17,48591257,48593779,-,GRCh38,human,2523,0.5466,2523,15.3868,4.945,14.0332,6.8234,2.985,B
|
| 146 |
+
207809,ENSG00000108511,HOXB6,protein_coding,17,48595751,48604992,-,GRCh38,human,9242,0.5406,8190,16.7352,5.082,15.4407,6.681,3.3159,B
|
| 147 |
+
207810,ENSG00000260027,HOXB7,protein_coding,17,48607232,48633572,-,GRCh38,human,26341,0.5413,8190,17.6868,3.9148,16.3268,5.4566,3.1198,B
|
| 148 |
+
207811,ENSG00000120068,HOXB8,protein_coding,17,48611377,48615292,-,GRCh38,human,3916,0.5784,3916,15.8992,4.7882,14.5336,6.5722,3.0806,B
|
| 149 |
+
207812,ENSG00000170689,HOXB9,protein_coding,17,48621156,48626358,-,GRCh38,human,5203,0.5585,5203,16.2264,4.8214,14.8898,6.5205,3.1351,B
|
| 150 |
+
207823,ENSG00000159184,HOXB13,protein_coding,17,48724763,48728750,-,GRCh38,human,3988,0.5652,3988,16.8496,3.8761,15.4333,5.5867,2.9247,B
|
| 151 |
+
224700,ENSMMUG00000013463,HOXA13,protein_coding,3,87904691,87906788,+,Mmul_10,macaque,2098,0.6611,2098,15.4534,4.8808,14.0784,6.7455,2.9656,A
|
| 152 |
+
224702,ENSMMUG00000055708,HOXA11,protein_coding,3,87919781,87923845,+,Mmul_10,macaque,4065,0.5387,4065,16.0524,4.8803,14.774,6.6308,3.0556,A
|
| 153 |
+
224703,ENSMMUG00000051571,HOXA10,protein_coding,3,87930645,87933053,+,Mmul_10,macaque,2409,0.6214,2409,15.5877,4.7813,14.224,6.631,2.9325,A
|
| 154 |
+
224704,ENSMMUG00000013459,HOXA9,protein_coding,3,87939547,87943387,+,Mmul_10,macaque,3841,0.5397,3841,16.549,4.6775,15.2084,6.3609,3.161,A
|
| 155 |
+
224705,ENSMMUG00000013458,HOXA7,protein_coding,3,87947759,87951764,+,Mmul_10,macaque,4006,0.5449,4006,16.4421,4.7789,15.117,6.4785,3.1053,A
|
| 156 |
+
224706,ENSMMUG00000061724,HOXA6,protein_coding,3,87954491,87961095,+,Mmul_10,macaque,6605,0.5438,6605,16.7911,4.8303,15.4928,6.4356,3.2867,A
|
| 157 |
+
224707,ENSMMUG00000061471,HOXA5,protein_coding,3,87961116,87963229,+,Mmul_10,macaque,2114,0.6022,2114,15.453,4.9122,14.0865,6.7651,2.9392,A
|
| 158 |
+
224708,ENSMMUG00000040874,HOXA4,protein_coding,3,87974157,87975831,+,Mmul_10,macaque,1675,0.6418,1675,15.4131,4.8885,14.0635,6.76,2.9785,A
|
| 159 |
+
224709,ENSMMUG00000051572,HOXA3,protein_coding,3,87994291,87997137,+,Mmul_10,macaque,2847,0.5922,2847,15.7205,4.8009,14.3635,6.6196,2.9497,A
|
| 160 |
+
224710,ENSMMUG00000054649,HOXA2,protein_coding,3,88002613,88004381,+,Mmul_10,macaque,1769,0.5319,1769,15.3526,4.9566,14.0119,6.8257,2.8957,A
|
| 161 |
+
224711,ENSMMUG00000012807,HOXA1,protein_coding,3,88009205,88011922,+,Mmul_10,macaque,2718,0.4728,2718,15.6382,4.7493,14.2803,6.5932,2.8932,A
|
| 162 |
+
236886,ENSMMUG00000054600,HOXC13,protein_coding,11,53540741,53547136,+,Mmul_10,macaque,6396,0.4861,6396,17.2284,4.7107,15.9044,6.2894,3.2335,C
|
| 163 |
+
236887,ENSMMUG00000004541,HOXC12,protein_coding,11,53556786,53558414,+,Mmul_10,macaque,1629,0.6065,1629,15.6243,4.6793,14.2602,6.4926,2.8685,C
|
| 164 |
+
236888,ENSMMUG00000000924,HOXC11,protein_coding,11,53574934,53578720,+,Mmul_10,macaque,3787,0.5846,3787,16.2715,4.668,14.9271,6.3919,3.0692,C
|
| 165 |
+
236889,ENSMMUG00000000925,HOXC10,protein_coding,11,53586459,53591263,+,Mmul_10,macaque,4805,0.5457,4805,16.3567,5.1082,15.0635,6.8183,3.1901,C
|
| 166 |
+
236890,ENSMMUG00000063144,HOXC9,protein_coding,11,53601991,53604461,+,Mmul_10,macaque,2471,0.5791,2471,15.5443,4.9036,14.1512,6.7577,2.9592,C
|
| 167 |
+
236891,ENSMMUG00000063741,HOXC8,protein_coding,11,53611023,53613167,+,Mmul_10,macaque,2145,0.5543,2145,15.5058,4.8315,14.143,6.6934,2.9219,C
|
| 168 |
+
236892,ENSMMUG00000046055,HOXC6,protein_coding,11,53630370,53631807,+,Mmul_10,macaque,1438,0.5577,1438,15.4201,4.9382,14.0379,6.7926,2.9132,C
|
| 169 |
+
236893,ENSMMUG00000062271,HOXC5,protein_coding,11,53634943,53636323,+,Mmul_10,macaque,1381,0.601,1381,15.4043,4.9472,14.0435,6.8253,2.9675,C
|
| 170 |
+
236894,ENSMMUG00000055610,HOXC4,protein_coding,11,53655926,53658151,+,Mmul_10,macaque,2226,0.5018,2226,15.3923,4.9419,14.0503,6.8043,2.9128,C
|
| 171 |
+
238273,ENSMMUG00000055831,HOXD13,protein_coding,12,63207153,63208992,+,Mmul_10,macaque,1840,0.5413,1840,15.4408,4.9084,14.1242,6.7673,2.9305,D
|
| 172 |
+
238274,ENSMMUG00000023501,HOXD12,protein_coding,12,63214106,63215064,+,Mmul_10,macaque,959,0.6548,959,15.2027,5.0805,13.8548,6.959,2.8757,D
|
| 173 |
+
238275,ENSMMUG00000047915,HOXD11,protein_coding,12,63221644,63223424,+,Mmul_10,macaque,1781,0.6575,1781,15.3534,4.9619,14.0272,6.8174,2.9591,D
|
| 174 |
+
238276,ENSMMUG00000046368,HOXD10,protein_coding,12,63231135,63233494,+,Mmul_10,macaque,2360,0.5284,2360,15.4894,4.8855,14.1492,6.7348,2.945,D
|
| 175 |
+
238277,ENSMMUG00000032599,HOXD9,protein_coding,12,63237049,63238434,+,Mmul_10,macaque,1386,0.6198,1386,15.2016,5.0979,13.8617,6.9567,2.8632,D
|
| 176 |
+
238278,ENSMMUG00000023504,HOXD8,protein_coding,12,63244623,63245899,+,Mmul_10,macaque,1277,0.5333,1277,15.4289,4.8752,14.0672,6.7553,2.8962,D
|
| 177 |
+
238279,ENSMMUG00000060947,HOXD4,protein_coding,12,63266073,63267381,+,Mmul_10,macaque,1309,0.6295,1309,15.4221,4.9092,14.0659,6.7762,2.9432,D
|
| 178 |
+
238280,ENSMMUG00000051761,HOXD3,protein_coding,12,63267047,63286750,+,Mmul_10,macaque,19704,0.5057,8190,17.6664,3.9892,16.2885,5.5776,3.1435,D
|
| 179 |
+
238282,ENSMMUG00000065344,HOXD1,protein_coding,12,63303634,63305746,+,Mmul_10,macaque,2113,0.5495,2113,15.5024,4.7584,14.1557,6.6172,2.8626,D
|
| 180 |
+
243863,ENSMMUG00000060879,HOXB13,protein_coding,16,48071831,48078479,+,Mmul_10,macaque,6649,0.5593,6649,17.4538,4.0692,16.1051,5.6015,3.1963,B
|
| 181 |
+
243866,ENSMMUG00000052505,HOXB9,protein_coding,16,48169545,48174922,+,Mmul_10,macaque,5378,0.5586,5378,16.2698,5.1379,14.9668,6.8554,3.1856,B
|
| 182 |
+
243867,ENSMMUG00000020868,HOXB8,protein_coding,16,48180886,48182988,+,Mmul_10,macaque,2103,0.5706,2103,15.4281,4.9755,14.0479,6.8386,2.9956,B
|
| 183 |
+
243868,ENSMMUG00000055324,HOXB7,protein_coding,16,48184898,48188996,+,Mmul_10,macaque,4099,0.5301,4099,16.3618,4.7651,15.0242,6.4822,3.0541,B
|
| 184 |
+
243869,ENSMMUG00000062283,HOXB6,protein_coding,16,48191119,48202117,+,Mmul_10,macaque,10999,0.5451,8190,16.585,5.1876,15.3455,6.8232,3.2898,B
|
| 185 |
+
243870,ENSMMUG00000051420,HOXB5,protein_coding,16,48202138,48203609,+,Mmul_10,macaque,1472,0.5849,1472,15.3969,4.9545,14.041,6.816,2.9353,B
|
| 186 |
+
243872,ENSMMUG00000052130,HOXB4,protein_coding,16,48217449,48219043,+,Mmul_10,macaque,1595,0.5987,1595,15.4438,4.9065,14.0842,6.7635,2.9411,B
|
| 187 |
+
243874,ENSMMUG00000057001,HOXB2,protein_coding,16,48251261,48253134,+,Mmul_10,macaque,1874,0.6078,1874,15.4812,4.7822,14.1244,6.6467,2.8743,B
|
| 188 |
+
243875,ENSMMUG00000022212,HOXB1,protein_coding,16,48265292,48266657,+,Mmul_10,macaque,1366,0.6091,1366,15.4326,4.9001,14.0705,6.7572,2.9214,B
|
| 189 |
+
294800,ENSMUSG00000001819,Hoxd13,protein_coding,2,74498654,74501943,+,GRCm39,mouse,3290,0.4617,3290,16.1208,4.5724,14.7456,6.3369,2.9519,D
|
| 190 |
+
294801,ENSMUSG00000001823,Hoxd12,protein_coding,2,74505357,74508049,+,GRCm39,mouse,2693,0.5421,2693,16.3282,4.1066,14.8896,5.8369,2.8844,D
|
| 191 |
+
294802,ENSMUSG00000042499,Hoxd11,protein_coding,2,74509901,74517360,+,GRCm39,mouse,7460,0.5307,7460,17.1456,4.4929,15.8038,6.0593,3.2716,D
|
| 192 |
+
294805,ENSMUSG00000050368,Hoxd10,protein_coding,2,74522268,74525449,+,GRCm39,mouse,3182,0.4846,3182,15.644,4.8113,14.3009,6.6229,2.9357,D
|
| 193 |
+
294808,ENSMUSG00000043342,Hoxd9,protein_coding,2,74528071,74530552,+,GRCm39,mouse,2482,0.5931,2482,15.5622,4.6742,14.2222,6.5429,2.9215,D
|
| 194 |
+
294811,ENSMUSG00000027102,Hoxd8,protein_coding,2,74534959,74538277,+,GRCm39,mouse,3319,0.5538,3319,16.2064,4.4514,14.8323,6.2124,2.9187,D
|
| 195 |
+
294812,ENSMUSG00000079277,Hoxd3,protein_coding,2,74542271,74578786,+,GRCm39,mouse,36516,0.4919,8190,16.8973,4.7607,15.6163,6.3528,3.2745,D
|
| 196 |
+
294813,ENSMUSG00000101174,Hoxd4,protein_coding,2,74542273,74559504,+,GRCm39,mouse,17232,0.492,8190,17.0837,-3.251,15.3499,1.2784,5.2877,D
|
| 197 |
+
294817,ENSMUSG00000042448,Hoxd1,protein_coding,2,74593324,74595486,+,GRCm39,mouse,2163,0.5529,2163,15.6462,4.5129,14.2787,6.3563,2.7999,D
|
| 198 |
+
308195,ENSMUSG00000029844,Hoxa1,protein_coding,6,52132570,52135297,-,GRCm39,mouse,2728,0.4842,2728,15.941,4.02,14.6069,5.8024,2.8289,A
|
| 199 |
+
308201,ENSMUSG00000014704,Hoxa2,protein_coding,6,52139397,52141811,-,GRCm39,mouse,2415,0.4965,2415,15.5398,4.7512,14.1884,6.5918,2.9515,A
|
| 200 |
+
308204,ENSMUSG00000079560,Hoxa3,protein_coding,6,52146042,52190316,-,GRCm39,mouse,44275,0.4927,8190,17.3395,4.318,16.0161,5.8794,3.2267,A
|
| 201 |
+
308210,ENSMUSG00000000942,Hoxa4,protein_coding,6,52166651,52168733,-,GRCm39,mouse,2083,0.5727,2083,15.5208,4.5615,14.1221,6.4438,2.9364,A
|
| 202 |
+
308211,ENSMUSG00000038253,Hoxa5,protein_coding,6,52178734,52181567,-,GRCm39,mouse,2834,0.5162,2834,15.495,4.8645,14.1301,6.7224,2.9833,A
|
| 203 |
+
308212,ENSMUSG00000043219,Hoxa6,protein_coding,6,52183268,52185702,-,GRCm39,mouse,2435,0.5113,2435,15.757,4.3957,14.399,6.2495,2.8279,A
|
| 204 |
+
308213,ENSMUSG00000038236,Hoxa7,protein_coding,6,52191471,52198834,-,GRCm39,mouse,7364,0.5205,7364,17.4277,4.1617,16.0759,5.722,3.2579,A
|
| 205 |
+
308214,ENSMUSG00000038227,Hoxa9,protein_coding,6,52200080,52208069,-,GRCm39,mouse,7990,0.5144,7990,17.4492,4.1128,16.1002,5.6805,3.2415,A
|
| 206 |
+
308217,ENSMUSG00000000938,Hoxa10,protein_coding,6,52208177,52217834,-,GRCm39,mouse,9658,0.5046,8190,17.6588,3.7775,16.283,5.3449,3.1737,A
|
| 207 |
+
308218,ENSMUSG00000038210,Hoxa11,protein_coding,6,52219086,52222790,-,GRCm39,mouse,3705,0.5282,3705,15.817,4.8221,14.4541,6.6196,3.0097,A
|
| 208 |
+
308226,ENSMUSG00000038203,Hoxa13,protein_coding,6,52234674,52237788,-,GRCm39,mouse,3115,0.538,3115,16.1146,4.1819,14.6932,5.9467,2.9928,A
|
| 209 |
+
325354,ENSMUSG00000049604,Hoxb13,protein_coding,11,96085142,96088273,+,GRCm39,mouse,3132,0.5383,3132,16.4102,4.0898,14.9805,5.8391,2.9409,B
|
| 210 |
+
325360,ENSMUSG00000020875,Hoxb9,protein_coding,11,96162283,96167421,+,GRCm39,mouse,5139,0.5371,5139,16.603,4.8068,15.2505,6.456,3.1614,B
|
| 211 |
+
325364,ENSMUSG00000056648,Hoxb8,protein_coding,11,96172731,96176141,+,GRCm39,mouse,3411,0.5441,3411,15.671,4.8869,14.3257,6.6987,3.0167,B
|
| 212 |
+
325366,ENSMUSG00000038721,Hoxb7,protein_coding,11,96177449,96180988,+,GRCm39,mouse,3540,0.5226,3540,16.3871,4.5699,15.0115,6.2815,2.9876,B
|
| 213 |
+
325367,ENSMUSG00000000690,Hoxb6,protein_coding,11,96183302,96192395,+,GRCm39,mouse,9094,0.5214,8190,16.8794,4.786,15.5791,6.3836,3.3231,B
|
| 214 |
+
325368,ENSMUSG00000038700,Hoxb5,protein_coding,11,96194162,96196947,+,GRCm39,mouse,2786,0.533,2786,15.5245,4.6783,14.1879,6.5256,2.8497,B
|
| 215 |
+
325370,ENSMUSG00000038692,Hoxb4,protein_coding,11,96209093,96212464,+,GRCm39,mouse,3372,0.5424,3372,15.7025,4.7747,14.3574,6.5849,2.9527,B
|
| 216 |
+
325371,ENSMUSG00000048763,Hoxb3,protein_coding,11,96214152,96238756,+,GRCm39,mouse,24605,0.5041,8190,17.9719,3.3657,16.4672,4.917,3.0842,B
|
| 217 |
+
325374,ENSMUSG00000075588,Hoxb2,protein_coding,11,96241351,96244838,+,GRCm39,mouse,3488,0.5258,3488,16.2406,4.2973,14.8416,6.0532,2.9203,B
|
| 218 |
+
325375,ENSMUSG00000018973,Hoxb1,protein_coding,11,96256578,96259082,+,GRCm39,mouse,2505,0.5365,2505,16.2595,4.2842,14.8671,6.0235,2.884,B
|
| 219 |
+
335761,ENSMUSG00000001655,Hoxc13,protein_coding,15,102829538,102837249,+,GRCm39,mouse,7712,0.4774,7712,17.2968,4.6356,16.01,6.2028,3.2007,C
|
| 220 |
+
335763,ENSMUSG00000050328,Hoxc12,protein_coding,15,102845192,102847044,+,GRCm39,mouse,1853,0.5526,1853,15.7719,4.4352,14.3683,6.2208,2.8152,C
|
| 221 |
+
335769,ENSMUSG00000001656,Hoxc11,protein_coding,15,102862862,102866143,+,GRCm39,mouse,3282,0.571,3282,15.8429,4.7489,14.4937,6.5334,2.9707,C
|
| 222 |
+
335770,ENSMUSG00000022484,Hoxc10,protein_coding,15,102875231,102880328,+,GRCm39,mouse,5098,0.4774,5098,16.5362,4.9887,15.2488,6.6446,3.1634,C
|
| 223 |
+
335771,ENSMUSG00000022485,Hoxc5,protein_coding,15,102875878,102925861,+,GRCm39,mouse,49984,0.4989,8190,17.6278,3.9359,16.2493,5.4892,3.2037,C
|
| 224 |
+
335772,ENSMUSG00000036139,Hoxc9,protein_coding,15,102884874,102893531,+,GRCm39,mouse,8658,0.5243,8190,16.9254,4.822,15.6481,6.4039,3.2851,C
|
| 225 |
+
335774,ENSMUSG00000001657,Hoxc8,protein_coding,15,102899039,102902543,+,GRCm39,mouse,3505,0.5016,3505,15.7301,4.7264,14.3724,6.5693,2.9295,C
|
| 226 |
+
335776,ENSMUSG00000001661,Hoxc6,protein_coding,15,102906689,102920313,+,GRCm39,mouse,13625,0.4924,8190,17.3189,4.4062,15.9436,5.972,3.3013,C
|
| 227 |
+
335777,ENSMUSG00000075394,Hoxc4,protein_coding,15,102927366,102945278,+,GRCm39,mouse,17913,0.4689,8190,19.0374,2.0435,17.1586,3.9797,2.1432,C
|
| 228 |
+
366436,ENSSSCG00000000279,HOXC13,protein_coding,5,19151084,19158646,+,Sscrofa11.1,pig,7563,0.5129,7563,17.0689,4.8047,15.7749,6.3897,3.2512,C
|
| 229 |
+
366437,ENSSSCG00000000281,HOXC12,protein_coding,5,19167157,19169795,+,Sscrofa11.1,pig,2639,0.6211,2639,16.1431,4.6057,14.7261,6.4103,2.9868,C
|
| 230 |
+
366438,ENSSSCG00000028104,HOXC11,protein_coding,5,19178619,19189013,+,Sscrofa11.1,pig,10395,0.5706,8190,17.512,3.9938,16.1906,5.5797,3.1663,C
|
| 231 |
+
366439,ENSSSCG00000022728,HOXC10,protein_coding,5,19197807,19202970,+,Sscrofa11.1,pig,5164,0.5544,5164,16.2562,5.1401,14.9928,6.8291,3.1747,C
|
| 232 |
+
366442,ENSSSCG00000034474,HOXC9,protein_coding,5,19212905,19215984,+,Sscrofa11.1,pig,3080,0.5708,3080,15.5437,4.8923,14.1847,6.7441,2.9571,C
|
| 233 |
+
366443,ENSSSCG00000038644,HOXC8,protein_coding,5,19222057,19225835,+,Sscrofa11.1,pig,3779,0.5366,3779,15.6554,4.9619,14.3206,6.8028,3.0225,C
|
| 234 |
+
366444,ENSSSCG00000030585,HOXC6,protein_coding,5,19229594,19243652,+,Sscrofa11.1,pig,14059,0.5442,8190,16.7465,5.106,15.4382,6.6787,3.3182,C
|
| 235 |
+
366445,ENSSSCG00000040798,HOXC5,protein_coding,5,19245851,19248172,+,Sscrofa11.1,pig,2322,0.6042,2322,15.4721,4.8785,14.1345,6.7035,2.929,C
|
| 236 |
+
366446,ENSSSCG00000038993,HOXC4,protein_coding,5,19265081,19268257,+,Sscrofa11.1,pig,3177,0.5477,3177,15.7508,4.8919,14.4511,6.6692,3.0274,C
|
| 237 |
+
378339,ENSSSCG00000017532,HOXB1,protein_coding,12,24784594,24786576,-,Sscrofa11.1,pig,1983,0.6485,1983,15.9139,4.1286,14.4666,5.9622,2.8605,B
|
| 238 |
+
378340,ENSSSCG00000017533,HOXB2,protein_coding,12,24797225,24799303,-,Sscrofa11.1,pig,2079,0.6085,2079,15.6263,4.6144,14.2344,6.4648,2.9006,B
|
| 239 |
+
378341,ENSSSCG00000017534,HOXB3,protein_coding,12,24804647,24809937,-,Sscrofa11.1,pig,5291,0.5662,5291,16.1339,5.1134,14.8425,6.8114,3.1741,B
|
| 240 |
+
378343,ENSSSCG00000017535,HOXB4,protein_coding,12,24829452,24832318,-,Sscrofa11.1,pig,2867,0.594,2867,15.5249,4.7852,14.1661,6.6302,2.9724,B
|
| 241 |
+
378344,ENSSSCG00000017540,HOXB5,protein_coding,12,24845225,24847918,-,Sscrofa11.1,pig,2694,0.5668,2694,15.4411,4.9521,14.0661,6.8238,2.9913,B
|
| 242 |
+
378345,ENSSSCG00000017539,HOXB6,protein_coding,12,24849742,24852286,-,Sscrofa11.1,pig,2545,0.6161,2545,15.4307,4.8883,14.0719,6.778,3.0143,B
|
| 243 |
+
378346,ENSSSCG00000017538,HOXB7,protein_coding,12,24861174,24864620,-,Sscrofa11.1,pig,3447,0.5587,3447,15.9363,4.7021,14.5371,6.4635,2.9629,B
|
| 244 |
+
378347,ENSSSCG00000017537,HOXB8,protein_coding,12,24865984,24868930,-,Sscrofa11.1,pig,2947,0.5741,2947,15.426,4.9477,14.0606,6.8176,3.002,B
|
| 245 |
+
378348,ENSSSCG00000061856,HOXB9,protein_coding,12,24875723,24880333,-,Sscrofa11.1,pig,4611,0.5849,4611,16.1532,4.8227,14.7961,6.5429,3.1273,B
|
| 246 |
+
378349,ENSSSCG00000017541,HOXB13,protein_coding,12,24947687,24950714,-,Sscrofa11.1,pig,3028,0.5614,3028,16.6265,3.9318,15.1724,5.6165,2.897,B
|
| 247 |
+
384422,ENSSSCG00000057890,HOXD13,protein_coding,15,81893972,81896944,+,Sscrofa11.1,pig,2973,0.5092,2973,15.6517,4.8985,14.3005,6.7471,2.9838,D
|
| 248 |
+
384423,ENSSSCG00000015980,HOXD12,protein_coding,15,81900833,81902995,+,Sscrofa11.1,pig,2163,0.5895,2163,15.9178,4.4736,14.5374,6.2353,2.8417,D
|
| 249 |
+
384424,ENSSSCG00000034741,HOXD11,protein_coding,15,81908460,81911282,+,Sscrofa11.1,pig,2823,0.5848,2823,15.6709,4.7893,14.3489,6.5851,2.9327,D
|
| 250 |
+
384425,ENSSSCG00000015981,HOXD10,protein_coding,15,81917637,81921461,+,Sscrofa11.1,pig,3825,0.5077,3825,16.0209,4.881,14.7407,6.6561,3.0545,D
|
| 251 |
+
384426,ENSSSCG00000015982,HOXD9,protein_coding,15,81924142,81926274,+,Sscrofa11.1,pig,2133,0.6006,2133,15.5217,4.7957,14.1568,6.6826,2.9422,D
|
| 252 |
+
384427,ENSSSCG00000040349,HOXD8,protein_coding,15,81931010,81935529,+,Sscrofa11.1,pig,4520,0.4912,4520,16.5711,4.6023,15.2068,6.2807,3.0932,D
|
| 253 |
+
384428,ENSSSCG00000015984,HOXD4,protein_coding,15,81952660,81955172,+,Sscrofa11.1,pig,2513,0.577,2513,15.5066,4.831,14.1564,6.6842,2.9205,D
|
| 254 |
+
384429,ENSSSCG00000015985,HOXD3,protein_coding,15,81958701,81973673,+,Sscrofa11.1,pig,14973,0.5304,8190,17.8569,3.6397,16.4294,5.1841,3.1506,D
|
| 255 |
+
384430,ENSSSCG00000015986,HOXD1,protein_coding,15,81987769,81990134,+,Sscrofa11.1,pig,2366,0.5655,2366,15.91,4.4354,14.5081,6.2586,2.9038,D
|
| 256 |
+
387482,ENSSSCG00000062559,HOXA13,protein_coding,18,45373440,45376325,+,Sscrofa11.1,pig,2886,0.5638,2886,15.5869,4.809,14.2249,6.6637,2.9357,A
|
| 257 |
+
387483,ENSSSCG00000016698,HOXA11,protein_coding,18,45388375,45391953,+,Sscrofa11.1,pig,3579,0.5873,3579,15.6896,4.8771,14.3337,6.6939,2.9932,A
|
| 258 |
+
387484,ENSSSCG00000021204,HOXA10,protein_coding,18,45393885,45403257,+,Sscrofa11.1,pig,9373,0.5485,8190,17.2151,4.4793,15.8859,6.0709,3.2106,A
|
| 259 |
+
387485,ENSSSCG00000028997,HOXA9,protein_coding,18,45408375,45411509,+,Sscrofa11.1,pig,3135,0.541,3135,15.5651,4.8922,14.2617,6.7065,2.9663,A
|
| 260 |
+
387486,ENSSSCG00000016701,HOXA7,protein_coding,18,45417203,45419101,+,Sscrofa11.1,pig,1899,0.6145,1899,15.5137,4.7992,14.142,6.6785,2.9328,A
|
| 261 |
+
387487,ENSSSCG00000016703,HOXA5,protein_coding,18,45421663,45432885,+,Sscrofa11.1,pig,11223,0.5737,8190,16.6155,5.0441,15.3373,6.6745,3.2972,A
|
| 262 |
+
387491,ENSSSCG00000016705,HOXA3,protein_coding,18,45454213,45466537,+,Sscrofa11.1,pig,12325,0.534,8190,16.7375,5.0644,15.441,6.6609,3.3135,A
|
| 263 |
+
387492,ENSSSCG00000016706,HOXA2,protein_coding,18,45470862,45473876,+,Sscrofa11.1,pig,3015,0.4799,3015,16.0896,4.5141,14.7689,6.3178,2.9636,A
|
| 264 |
+
387493,ENSSSCG00000016707,HOXA1,protein_coding,18,45477461,45480152,+,Sscrofa11.1,pig,2692,0.5156,2692,15.5443,4.8365,14.2058,6.722,2.931,A
|
| 265 |
+
395054,ENSRNOG00000001588,Hoxd13,protein_coding,3,59570646,59573963,+,mRatBN7.2,rat,3318,0.4572,3318,16.1435,4.5335,14.8525,6.3319,2.9647,D
|
| 266 |
+
395055,ENSRNOG00000001587,Hoxd12,protein_coding,3,59577677,59578798,+,mRatBN7.2,rat,1122,0.6043,1122,15.5002,4.6561,14.1108,6.5249,2.8625,D
|
| 267 |
+
395056,ENSRNOG00000069591,Hoxd11,protein_coding,3,59585039,59586783,+,mRatBN7.2,rat,1745,0.639,1745,15.3812,4.9547,14.0595,6.7925,2.9617,D
|
| 268 |
+
395057,ENSRNOG00000001581,Hoxd10,protein_coding,3,59594516,59597725,+,mRatBN7.2,rat,3210,0.4822,3210,15.6548,4.7353,14.2975,6.5623,2.9092,D
|
| 269 |
+
395058,ENSRNOG00000001580,Hoxd9,protein_coding,3,59600575,59602754,+,mRatBN7.2,rat,2180,0.5959,2180,15.5914,4.6833,14.2144,6.5356,2.8973,D
|
| 270 |
+
395059,ENSRNOG00000071108,Hoxd8,protein_coding,3,59607996,59610361,+,mRatBN7.2,rat,2366,0.4742,2366,15.5727,4.5235,14.2199,6.387,2.7837,D
|
| 271 |
+
395060,ENSRNOG00000001578,Hoxd4,protein_coding,3,59614464,59631528,+,mRatBN7.2,rat,17065,0.4923,8190,17.0621,-3.137,15.2573,1.3786,5.2773,D
|
| 272 |
+
395062,ENSRNOG00000001577,Hoxd3,protein_coding,3,59638708,59650282,+,mRatBN7.2,rat,11575,0.5002,8190,17.9308,3.4102,16.4238,4.9921,3.2005,D
|
| 273 |
+
395063,ENSRNOG00000001572,Hoxd1,protein_coding,3,59665629,59667769,+,mRatBN7.2,rat,2141,0.5479,2141,15.6068,4.4396,14.2562,6.3138,2.7766,D
|
| 274 |
+
397137,ENSRNOG00000005628,Hoxa1,protein_coding,4,81255883,81258504,-,mRatBN7.2,rat,2622,0.4855,2622,15.9765,3.9426,14.5441,5.7195,2.8688,A
|
| 275 |
+
397138,ENSRNOG00000005968,Hoxa2,protein_coding,4,81262768,81265044,-,mRatBN7.2,rat,2277,0.5059,2277,15.5506,4.6842,14.2124,6.4981,2.9625,A
|
| 276 |
+
397139,ENSRNOG00000006281,Hoxa3,protein_coding,4,81269243,81313218,-,mRatBN7.2,rat,43976,0.4925,8190,17.1616,4.5694,15.9165,6.087,3.2664,A
|
| 277 |
+
397140,ENSRNOG00000027365,Hoxa4,protein_coding,4,81289682,81291685,-,mRatBN7.2,rat,2004,0.5714,2004,15.5176,4.6503,14.1408,6.5188,2.9236,A
|
| 278 |
+
397141,ENSRNOG00000047951,Hoxa5,protein_coding,4,81302353,81306234,-,mRatBN7.2,rat,3882,0.5546,3882,15.8465,4.859,14.4781,6.6514,3.0255,A
|
| 279 |
+
397142,ENSRNOG00000048917,Hoxa6,protein_coding,4,81306407,81308850,-,mRatBN7.2,rat,2444,0.5164,2444,15.7217,4.3755,14.374,6.2099,2.8368,A
|
| 280 |
+
397143,ENSRNOG00000046361,Hoxa7,protein_coding,4,81314625,81317659,-,mRatBN7.2,rat,3035,0.5213,3035,15.8303,4.6227,14.4823,6.4535,2.9461,A
|
| 281 |
+
397144,ENSRNOG00000064322,Hoxa9,protein_coding,4,81323382,81326358,-,mRatBN7.2,rat,2977,0.516,2977,15.9074,4.5143,14.5191,6.3202,2.9943,A
|
| 282 |
+
397145,ENSRNOG00000065199,Hoxa10,protein_coding,4,81331591,81340919,-,mRatBN7.2,rat,9329,0.5091,8190,17.585,3.9126,16.2153,5.4758,3.194,A
|
| 283 |
+
397146,ENSRNOG00000059870,Hoxa11,protein_coding,4,81342528,81346232,-,mRatBN7.2,rat,3705,0.5244,3705,15.7691,4.8635,14.4566,6.6409,3.0421,A
|
| 284 |
+
397148,ENSRNOG00000057061,Hoxa13,protein_coding,4,81358956,81361091,-,mRatBN7.2,rat,2136,0.61,2136,15.6171,4.5604,14.199,6.3613,2.9557,A
|
| 285 |
+
402664,ENSRNOG00000028679,Hoxc13,protein_coding,7,134058640,134064800,+,mRatBN7.2,rat,6161,0.4926,6161,17.4313,4.453,16.0867,6.006,3.198,C
|
| 286 |
+
402665,ENSRNOG00000016116,Hoxc12,protein_coding,7,134074199,134075797,+,mRatBN7.2,rat,1599,0.5666,1599,15.6949,4.5377,14.3134,6.3387,2.8244,C
|
| 287 |
+
402666,ENSRNOG00000016141,Hoxc11,protein_coding,7,134091552,134094738,+,mRatBN7.2,rat,3187,0.5711,3187,15.8116,4.7504,14.4831,6.521,2.9609,C
|
| 288 |
+
402667,ENSRNOG00000016149,Hoxc10,protein_coding,7,134103643,134108966,+,mRatBN7.2,rat,5324,0.4776,5324,16.6088,4.9438,15.2732,6.6313,3.177,C
|
| 289 |
+
402668,ENSRNOG00000016199,Hoxc9,protein_coding,7,134118817,134121492,+,mRatBN7.2,rat,2676,0.5452,2676,15.6541,4.7005,14.3126,6.5382,2.9085,C
|
| 290 |
+
402669,ENSRNOG00000028619,Hoxc8,protein_coding,7,134127913,134130503,+,mRatBN7.2,rat,2591,0.5206,2591,15.7239,4.6202,14.4325,6.4876,2.9096,C
|
| 291 |
+
402670,ENSRNOG00000063956,Hoxc6,protein_coding,7,134135502,134148392,+,mRatBN7.2,rat,12891,0.4993,8190,17.2515,4.5652,15.9061,6.1256,3.2977,C
|
| 292 |
+
402671,ENSRNOG00000016598,Hoxc5,protein_coding,7,134150988,134154410,+,mRatBN7.2,rat,3423,0.5349,3423,16.0638,4.7352,14.7186,6.4911,2.9953,C
|
| 293 |
+
402672,ENSRNOG00000016613,Hoxc4,protein_coding,7,134170591,134173133,+,mRatBN7.2,rat,2543,0.5124,2543,15.4849,4.9032,14.1434,6.7395,2.9418,C
|
| 294 |
+
406595,ENSRNOG00000007491,Hoxb13,protein_coding,10,81160498,81162777,+,mRatBN7.2,rat,2280,0.561,2280,16.0017,4.1738,14.5933,5.9982,2.8159,B
|
| 295 |
+
406596,ENSRNOG00000007573,Hoxb9,protein_coding,10,81237312,81240818,+,mRatBN7.2,rat,3507,0.5563,3507,16.3191,4.5799,14.9286,6.3322,2.9829,B
|
| 296 |
+
406597,ENSRNOG00000007585,Hoxb8,protein_coding,10,81248887,81250638,+,mRatBN7.2,rat,1752,0.601,1752,15.4567,4.8061,14.0919,6.6829,2.9047,B
|
| 297 |
+
406598,ENSRNOG00000007611,Hoxb7,protein_coding,10,81252553,81256034,+,mRatBN7.2,rat,3482,0.5253,3482,16.3059,4.2041,14.8962,5.953,2.8568,B
|
| 298 |
+
406600,ENSRNOG00000007823,Hoxb6,protein_coding,10,81265056,81267449,+,mRatBN7.2,rat,2394,0.5731,2394,15.5238,4.7633,14.1382,6.635,2.8793,B
|
| 299 |
+
406601,ENSRNOG00000008010,Hoxb5,protein_coding,10,81269372,81271580,+,mRatBN7.2,rat,2209,0.5491,2209,15.5083,4.662,14.1804,6.5353,2.8503,B
|
| 300 |
+
406602,ENSRNOG00000008191,Hoxb4,protein_coding,10,81284552,81287128,+,mRatBN7.2,rat,2577,0.5607,2577,15.5594,4.7158,14.2187,6.5733,2.9038,B
|
| 301 |
+
406603,ENSRNOG00000008313,Hoxb3,protein_coding,10,81299357,81313107,+,mRatBN7.2,rat,13751,0.5177,8190,17.6659,3.7678,16.3028,5.3697,3.1584,B
|
| 302 |
+
406604,ENSRNOG00000008365,Hoxb2,protein_coding,10,81318026,81320192,+,mRatBN7.2,rat,2167,0.5524,2167,15.647,4.4649,14.2783,6.2927,2.8081,B
|
| 303 |
+
406605,ENSRNOG00000008506,Hoxb1,protein_coding,10,81331507,81332836,+,mRatBN7.2,rat,1330,0.5699,1330,15.4347,4.6407,14.0709,6.5366,2.8486,B
|
| 304 |
+
551395,ENSDARG00000056015,hoxb13a,protein_coding,3,23654233,23655834,+,GRCz11,zebrafish,1602,0.4189,1602,7.3107,10.4841,9.5891,13.1406,9.3498,B
|
| 305 |
+
551396,ENSDARG00000011579,hoxb10a,protein_coding,3,23669267,23671863,+,GRCz11,zebrafish,2597,0.3854,2597,7.2225,10.2262,9.1458,13.0996,9.2861,B
|
| 306 |
+
551397,ENSDARG00000056023,hoxb9a,protein_coding,3,23677351,23682436,+,GRCz11,zebrafish,5086,0.3708,5086,8.3658,10.5536,9.4495,13.02,10.4497,B
|
| 307 |
+
551398,ENSDARG00000056027,hoxb8a,protein_coding,3,23687909,23690481,+,GRCz11,zebrafish,2573,0.4318,2573,7.3641,10.5453,9.5793,13.1554,9.3923,B
|
| 308 |
+
551399,ENSDARG00000056030,hoxb7a,protein_coding,3,23691847,23696208,+,GRCz11,zebrafish,4362,0.3597,4362,7.9179,10.5449,9.4593,13.1301,10.0569,B
|
| 309 |
+
551400,ENSDARG00000029263,hoxb3a,protein_coding,3,23697997,23771945,+,GRCz11,zebrafish,73949,0.372,8190,8.3998,10.5001,9.3796,12.9631,10.4856,B
|
| 310 |
+
551401,ENSDARG00000010630,hoxb6a,protein_coding,3,23703704,23705746,+,GRCz11,zebrafish,2043,0.4068,2043,7.3992,10.5291,9.5678,13.1543,9.4388,B
|
| 311 |
+
551402,ENSDARG00000013057,hoxb5a,protein_coding,3,23707691,23710095,+,GRCz11,zebrafish,2405,0.41,2405,7.3571,10.599,9.7471,13.1537,9.2946,B
|
| 312 |
+
551403,ENSDARG00000013533,hoxb4a,protein_coding,3,23710839,23723982,+,GRCz11,zebrafish,13144,0.3656,8190,8.4088,10.5032,9.3875,12.9552,10.4864,B
|
| 313 |
+
551404,ENSDARG00000000175,hoxb2a,protein_coding,3,23752150,23754831,+,GRCz11,zebrafish,2682,0.4456,2682,7.3532,10.5671,9.6754,13.1573,9.3482,B
|
| 314 |
+
551405,ENSDARG00000008174,hoxb1a,protein_coding,3,23768898,23771142,+,GRCz11,zebrafish,2245,0.429,2245,7.4778,10.3553,9.3759,13.142,9.5248,B
|
| 315 |
+
558935,ENSDARG00000059280,hoxd3a,protein_coding,9,1937049,1959917,-,GRCz11,zebrafish,22869,0.36,8190,8.3325,10.6367,9.5009,13.0838,10.4364,D
|
| 316 |
+
558936,ENSDARG00000059276,hoxd4a,protein_coding,9,1948465,1951144,-,GRCz11,zebrafish,2680,0.3873,2680,7.5335,10.4934,9.5139,13.1597,9.6095,D
|
| 317 |
+
558937,ENSDARG00000059274,hoxd9a,protein_coding,9,1964005,1965727,-,GRCz11,zebrafish,1723,0.401,1723,7.238,10.4229,9.4823,13.1044,9.2781,D
|
| 318 |
+
558938,ENSDARG00000057859,hoxd10a,protein_coding,9,1967707,1970071,-,GRCz11,zebrafish,2365,0.422,2365,7.3043,10.4684,9.5349,13.0996,9.3026,D
|
| 319 |
+
558939,ENSDARG00000059267,hoxd11a,protein_coding,9,1975818,1978090,-,GRCz11,zebrafish,2273,0.3973,2273,7.2299,10.4229,9.4618,13.1065,9.2765,D
|
| 320 |
+
558940,ENSDARG00000059263,hoxd12a,protein_coding,9,1981882,1986014,-,GRCz11,zebrafish,4133,0.36,4133,7.519,10.3686,9.3396,13.0774,9.6131,D
|
| 321 |
+
558941,ENSDARG00000059256,hoxd13a,protein_coding,9,1986816,1990323,-,GRCz11,zebrafish,3508,0.3404,3508,7.2673,10.2743,9.2393,13.0721,9.3806,D
|
| 322 |
+
560751,ENSDARG00000113877,hoxc13b,protein_coding,11,2156430,2162821,+,GRCz11,zebrafish,6392,0.3511,6392,8.4688,11.0281,9.7947,13.2898,10.5781,C
|
| 323 |
+
560752,ENSDARG00000103133,hoxc12b,protein_coding,11,2172335,2175033,+,GRCz11,zebrafish,2699,0.3646,2699,7.2649,10.268,9.2606,13.0795,9.372,C
|
| 324 |
+
560753,ENSDARG00000102631,hoxc11b,protein_coding,11,2180072,2185174,+,GRCz11,zebrafish,5103,0.3625,5103,8.0675,10.5085,9.4303,13.03,10.1792,C
|
| 325 |
+
560754,ENSDARG00000101954,hoxc6b,protein_coding,11,2198831,2204754,+,GRCz11,zebrafish,5924,0.3347,5924,8.3757,10.5466,9.4606,13.0111,10.4738,C
|
| 326 |
+
562113,ENSDARG00000054025,hoxb8b,protein_coding,12,27117609,27120171,+,GRCz11,zebrafish,2563,0.3753,2563,7.4197,10.5607,9.5376,13.1387,9.5147,B
|
| 327 |
+
562114,ENSDARG00000026513,hoxb6b,protein_coding,12,27127139,27128768,+,GRCz11,zebrafish,1630,0.389,1630,7.4303,10.5189,9.5687,13.1529,9.4692,B
|
| 328 |
+
562115,ENSDARG00000054030,hoxb5b,protein_coding,12,27129659,27131735,+,GRCz11,zebrafish,2077,0.3987,2077,7.3639,10.5734,9.6966,13.1584,9.345,B
|
| 329 |
+
562116,ENSDARG00000054033,hoxb1b,protein_coding,12,27141140,27142834,+,GRCz11,zebrafish,1695,0.4295,1695,7.4209,10.4605,9.4905,13.1374,9.4831,B
|
| 330 |
+
565472,ENSDARG00000036254,hoxa13b,protein_coding,16,20895904,20897836,+,GRCz11,zebrafish,1933,0.4123,1933,7.3764,10.4731,9.4332,13.1506,9.4106,A
|
| 331 |
+
565473,ENSDARG00000007009,hoxa11b,protein_coding,16,20904754,20907378,+,GRCz11,zebrafish,2625,0.387,2625,7.5231,10.4396,9.4231,13.1367,9.6028,A
|
| 332 |
+
565474,ENSDARG00000031337,hoxa10b,protein_coding,16,20910186,20913003,+,GRCz11,zebrafish,2818,0.374,2818,7.5464,10.442,9.4314,13.1352,9.631,A
|
| 333 |
+
565475,ENSDARG00000056819,hoxa9b,protein_coding,16,20915319,20917584,+,GRCz11,zebrafish,2266,0.3923,2266,7.4792,10.4493,9.4267,13.14,9.5428,A
|
| 334 |
+
565476,ENSDARG00000023031,hoxa2b,protein_coding,16,20926673,20929183,+,GRCz11,zebrafish,2511,0.4345,2511,7.3555,10.5454,9.5966,13.1582,9.3907,A
|
| 335 |
+
568323,ENSDARG00000100312,hoxa13a,protein_coding,19,19729506,19731291,+,GRCz11,zebrafish,1786,0.4485,1786,7.3949,10.4746,9.467,13.1624,9.4502,A
|
| 336 |
+
568324,ENSDARG00000104162,hoxa11a,protein_coding,19,19737214,19738923,+,GRCz11,zebrafish,1710,0.3912,1710,7.2428,10.5504,9.5877,13.1401,9.2872,A
|
| 337 |
+
568325,ENSDARG00000105013,hoxa9a,protein_coding,19,19747430,19752145,+,GRCz11,zebrafish,4716,0.3478,4716,8.2603,10.5414,9.4592,13.0357,10.3361,A
|
| 338 |
+
568327,ENSDARG00000103862,hoxa4a,protein_coding,19,19754950,19780245,+,GRCz11,zebrafish,25296,0.358,8190,8.4253,10.5238,9.4504,13.001,10.5052,A
|
| 339 |
+
568328,ENSDARG00000102501,hoxa5a,protein_coding,19,19759577,19760971,+,GRCz11,zebrafish,1395,0.4108,1395,7.3661,10.5446,9.5639,13.1401,9.3684,A
|
| 340 |
+
568329,ENSDARG00000104307,hoxa1a,protein_coding,19,19786117,19787752,+,GRCz11,zebrafish,1636,0.4395,1636,7.3834,10.5119,9.571,13.1529,9.3863,A
|
annotations/mitochondrial_genes.csv
ADDED
|
@@ -0,0 +1,328 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
name,chrom,species,umap2d_x,umap2d_y
|
| 2 |
+
ATMG00440,Mt,arabidopsis,5.945,-2.5048
|
| 3 |
+
ATMG00850,Mt,arabidopsis,4.1334,-1.2615
|
| 4 |
+
ATMG01350,Mt,arabidopsis,4.5651,-2.7634
|
| 5 |
+
ATMG01300,Mt,arabidopsis,5.5997,-2.5289
|
| 6 |
+
ATMG01275,Mt,arabidopsis,11.8487,3.9396
|
| 7 |
+
AT2G07707,Mt,arabidopsis,11.839,3.9207
|
| 8 |
+
ATMG00320,Mt,arabidopsis,4.5455,-2.1891
|
| 9 |
+
ATMG01120,Mt,arabidopsis,5.1791,-1.9581
|
| 10 |
+
ATMG00960,Mt,arabidopsis,11.8647,3.9548
|
| 11 |
+
ATMG00870,Mt,arabidopsis,5.4793,-2.5473
|
| 12 |
+
ATMG00660,Mt,arabidopsis,5.5788,-2.6036
|
| 13 |
+
cox2,Mt,arabidopsis,11.8535,3.9346
|
| 14 |
+
ATMG00410,Mt,arabidopsis,11.7,3.7749
|
| 15 |
+
ATMG00590,Mt,arabidopsis,5.0882,-2.03
|
| 16 |
+
ATMG00620,Mt,arabidopsis,5.2239,-2.2319
|
| 17 |
+
atp1,Mt,arabidopsis,11.8729,3.969
|
| 18 |
+
ATMG00280,Mt,arabidopsis,11.5895,3.658
|
| 19 |
+
nad7,Mt,arabidopsis,3.7983,4.2127
|
| 20 |
+
ATMG00670,Mt,arabidopsis,5.1096,-2.4048
|
| 21 |
+
ATMG00760,Mt,arabidopsis,4.9706,-2.486
|
| 22 |
+
ATMG01410,Mt,arabidopsis,5.6614,-2.4448
|
| 23 |
+
ATMG00010,Mt,arabidopsis,2.0773,-6.4272
|
| 24 |
+
ATMG00570,Mt,arabidopsis,11.8216,3.9006
|
| 25 |
+
ATMG00820,Mt,arabidopsis,3.669,-1.6843
|
| 26 |
+
ATMG00240,Mt,arabidopsis,3.8622,-1.4831
|
| 27 |
+
ATMG00610,Mt,arabidopsis,5.0222,-3.0462
|
| 28 |
+
ATMG01140,Mt,arabidopsis,5.5666,-2.2563
|
| 29 |
+
ATMG00880,Mt,arabidopsis,5.3068,-2.3978
|
| 30 |
+
ATMG01200,Mt,arabidopsis,5.0674,-2.5271
|
| 31 |
+
ATMG00130,Mt,arabidopsis,4.7718,-2.6504
|
| 32 |
+
ATMG00710,Mt,arabidopsis,4.075,-1.4461
|
| 33 |
+
ATMG00260,Mt,arabidopsis,5.5384,-2.4779
|
| 34 |
+
ABCI5,Mt,arabidopsis,11.8619,3.9459
|
| 35 |
+
ATMG00690,Mt,arabidopsis,5.4204,-2.794
|
| 36 |
+
ATMG01100,Mt,arabidopsis,5.4771,-2.7092
|
| 37 |
+
ATMG00450,Mt,arabidopsis,5.3012,-2.714
|
| 38 |
+
ATMG01180,Mt,arabidopsis,5.7914,-2.8583
|
| 39 |
+
ATMG00470,Mt,arabidopsis,5.7657,-2.6041
|
| 40 |
+
ATMG00285,Mt,arabidopsis,5.3468,-2.0916
|
| 41 |
+
ATMG01310,Mt,arabidopsis,5.0894,-2.4134
|
| 42 |
+
nad4,Mt,arabidopsis,3.7829,4.2403
|
| 43 |
+
ATMG00920,Mt,arabidopsis,5.057,-3.0531
|
| 44 |
+
ATMG00890,Mt,arabidopsis,5.5317,-2.4824
|
| 45 |
+
ATMG01250,Mt,arabidopsis,3.864,-1.3679
|
| 46 |
+
ATMG00030,Mt,arabidopsis,5.4189,-2.5702
|
| 47 |
+
rpl2,Mt,arabidopsis,11.6389,3.7821
|
| 48 |
+
ATMG00720,Mt,arabidopsis,2.5218,-6.37
|
| 49 |
+
ATMG01370,Mt,arabidopsis,6.405,-2.7511
|
| 50 |
+
ATMG00550,Mt,arabidopsis,4.9075,-2.2873
|
| 51 |
+
ATMG00170,Mt,arabidopsis,5.2452,-2.2338
|
| 52 |
+
ATMG00530,Mt,arabidopsis,5.819,-2.6755
|
| 53 |
+
ATMG01240,Mt,arabidopsis,5.5174,-2.7301
|
| 54 |
+
ATMG01040,Mt,arabidopsis,5.4731,-2.6793
|
| 55 |
+
ATMG01220,Mt,arabidopsis,6.1366,-2.7538
|
| 56 |
+
ATMG00070,Mt,arabidopsis,11.8637,3.9611
|
| 57 |
+
ATMG00140,Mt,arabidopsis,4.4281,-2.5779
|
| 58 |
+
ATMG01030,Mt,arabidopsis,5.5498,-2.7075
|
| 59 |
+
atp6-2,Mt,arabidopsis,11.5143,3.6591
|
| 60 |
+
ATMG01210,Mt,arabidopsis,6.1175,-2.7419
|
| 61 |
+
ATMG00490,Mt,arabidopsis,5.4869,-2.5873
|
| 62 |
+
ATMG00120,Mt,arabidopsis,5.0404,-2.1512
|
| 63 |
+
ATMG00516,Mt,arabidopsis,11.8358,3.9192
|
| 64 |
+
ATMG00640,Mt,arabidopsis,11.8611,3.9378
|
| 65 |
+
ccmFN1,Mt,arabidopsis,11.8661,3.9573
|
| 66 |
+
ATMG00150,Mt,arabidopsis,5.875,-2.6144
|
| 67 |
+
AT2G07675,Mt,arabidopsis,11.8694,3.9425
|
| 68 |
+
AT2G07701,Mt,arabidopsis,6.046,-2.2887
|
| 69 |
+
ATMG00770,Mt,arabidopsis,5.2095,-2.6363
|
| 70 |
+
ATMG01290,Mt,arabidopsis,5.3498,-2.6382
|
| 71 |
+
ATMG00300,Mt,arabidopsis,3.9673,-1.5042
|
| 72 |
+
ATMG00680,Mt,arabidopsis,5.792,-2.7044
|
| 73 |
+
ATMG01230,Mt,arabidopsis,6.0594,-2.2045
|
| 74 |
+
ATMG01130,Mt,arabidopsis,5.4573,-2.502
|
| 75 |
+
ATMG00750,Mt,arabidopsis,3.9011,-1.1695
|
| 76 |
+
ATMG01330,Mt,arabidopsis,4.9431,-2.0845
|
| 77 |
+
MATR,Mt,arabidopsis,12.1845,4.6399
|
| 78 |
+
atp9,Mt,arabidopsis,5.0393,-1.6397
|
| 79 |
+
ATMG00810,Mt,arabidopsis,3.6546,-1.6545
|
| 80 |
+
ATMG01400,Mt,arabidopsis,6.282,-2.3413
|
| 81 |
+
nad6,Mt,arabidopsis,11.8668,3.9622
|
| 82 |
+
RPS7,Mt,arabidopsis,11.8779,3.9719
|
| 83 |
+
ATMG00940,Mt,arabidopsis,4.9416,-3.1119
|
| 84 |
+
ATMG01280,Mt,arabidopsis,11.5385,3.621
|
| 85 |
+
ATMG00310,Mt,arabidopsis,3.6808,-1.7424
|
| 86 |
+
COX1,Mt,arabidopsis,11.8687,3.967
|
| 87 |
+
ATMG01090,Mt,arabidopsis,5.1195,-2.1165
|
| 88 |
+
ccb206,Mt,arabidopsis,11.877,3.969
|
| 89 |
+
ATMG00290,Mt,arabidopsis,11.8301,3.9155
|
| 90 |
+
ATMG00630,Mt,arabidopsis,5.0265,-2.2404
|
| 91 |
+
ATMG00040,Mt,arabidopsis,4.8977,-2.8981
|
| 92 |
+
AT2G07701,Mt,arabidopsis,5.8038,-2.7461
|
| 93 |
+
ATMG01050,Mt,arabidopsis,5.5693,-2.8733
|
| 94 |
+
ATMG00665,Mt,arabidopsis,6.102,-3.3492
|
| 95 |
+
rps3,Mt,arabidopsis,11.8093,3.9001
|
| 96 |
+
ATMG01020,Mt,arabidopsis,5.1091,-2.2087
|
| 97 |
+
ccmFC,Mt,arabidopsis,11.8614,3.9624
|
| 98 |
+
AT2G07713,Mt,arabidopsis,5.9172,-2.7653
|
| 99 |
+
rpl5,Mt,arabidopsis,11.858,3.9586
|
| 100 |
+
ATMG00513,Mt,arabidopsis,11.8794,3.9398
|
| 101 |
+
ATMG00730,Mt,arabidopsis,11.7286,3.8506
|
| 102 |
+
ATMG00740,Mt,arabidopsis,4.1632,-1.6162
|
| 103 |
+
ATMG00370,Mt,arabidopsis,11.8216,3.9012
|
| 104 |
+
ATMG00860,Mt,arabidopsis,3.5193,-1.7128
|
| 105 |
+
ATMG01060,Mt,arabidopsis,5.5565,-2.5582
|
| 106 |
+
ATMG00600,Mt,arabidopsis,6.0784,-2.7345
|
| 107 |
+
ATMG00840,Mt,arabidopsis,3.7172,-1.4985
|
| 108 |
+
ATMG00220,Mt,arabidopsis,11.8747,3.9884
|
| 109 |
+
orf107b,Mt,arabidopsis,5.4965,-2.5839
|
| 110 |
+
rpl16,Mt,arabidopsis,11.8903,3.9842
|
| 111 |
+
nad4L,Mt,arabidopsis,11.8249,3.9187
|
| 112 |
+
ATMG01000,Mt,arabidopsis,5.5748,-2.5208
|
| 113 |
+
ATMG00970,Mt,arabidopsis,5.3984,-2.5151
|
| 114 |
+
ATMG01260,Mt,arabidopsis,2.6827,-5.9859
|
| 115 |
+
ATMG01010,Mt,arabidopsis,4.8804,-3.0055
|
| 116 |
+
ATMG00400,Mt,arabidopsis,5.7548,-2.5263
|
| 117 |
+
ATMG01110,Mt,arabidopsis,1.9514,-6.4934
|
| 118 |
+
AT2G07751,Mt,arabidopsis,11.836,3.9239
|
| 119 |
+
ATMG00050,Mt,arabidopsis,5.0011,-2.9392
|
| 120 |
+
ATMG00910,Mt,arabidopsis,5.3734,-2.7007
|
| 121 |
+
ATMG00500,Mt,arabidopsis,6.0896,-2.2463
|
| 122 |
+
ND1,MT,chicken,-1.2485,9.8783
|
| 123 |
+
ND2,MT,chicken,-1.2482,9.8781
|
| 124 |
+
COX1,MT,chicken,-1.2486,9.8784
|
| 125 |
+
COX2,MT,chicken,-1.2481,9.878
|
| 126 |
+
ATP8,MT,chicken,-1.2482,9.878
|
| 127 |
+
ATP6,MT,chicken,-1.2485,9.8783
|
| 128 |
+
COX3,MT,chicken,-1.2484,9.8782
|
| 129 |
+
ND3,MT,chicken,-1.2479,9.878
|
| 130 |
+
ND4L,MT,chicken,-1.2484,9.8782
|
| 131 |
+
ND4,MT,chicken,-1.2486,9.8783
|
| 132 |
+
ND5,MT,chicken,-1.2486,9.8783
|
| 133 |
+
CYTB,MT,chicken,-1.248,9.878
|
| 134 |
+
ND6,MT,chicken,-1.2481,9.878
|
| 135 |
+
ND1,MT,cow,-1.2485,9.8783
|
| 136 |
+
MT-ND2,MT,cow,-1.2485,9.8783
|
| 137 |
+
COX1,MT,cow,-1.2486,9.8783
|
| 138 |
+
MT-CO2,MT,cow,-1.2485,9.8782
|
| 139 |
+
MT-ATP8,MT,cow,11.6113,3.6537
|
| 140 |
+
MT-ATP6,MT,cow,-1.2485,9.8783
|
| 141 |
+
COX3,MT,cow,-1.2487,9.8784
|
| 142 |
+
MT-ND3,MT,cow,-1.2481,9.878
|
| 143 |
+
MT-ND4L,MT,cow,-1.2484,9.8783
|
| 144 |
+
MT-ND4,MT,cow,-1.2485,9.8783
|
| 145 |
+
ND5,MT,cow,-1.2485,9.8783
|
| 146 |
+
MT-ND6,MT,cow,-1.2482,9.8781
|
| 147 |
+
MT-CYB,MT,cow,-1.2485,9.8782
|
| 148 |
+
SPMIT.02,MT,fission_yeast,3.3576,-3.9075
|
| 149 |
+
SPMIT.03,MT,fission_yeast,3.0469,-4.3472
|
| 150 |
+
cob1,MT,fission_yeast,3.1065,-4.2626
|
| 151 |
+
SPMIT.06,MT,fission_yeast,3.3422,-3.9283
|
| 152 |
+
atp8,MT,fission_yeast,3.1155,-4.2494
|
| 153 |
+
cox2,MT,fission_yeast,3.0657,-4.2864
|
| 154 |
+
cox1,MT,fission_yeast,3.0858,-4.2902
|
| 155 |
+
atp6,MT,fission_yeast,3.0452,-4.3097
|
| 156 |
+
cox3,MT,fission_yeast,3.0522,-4.3162
|
| 157 |
+
var1,MT,fission_yeast,3.9882,-3.2434
|
| 158 |
+
atp9,MT,fission_yeast,2.9991,-4.3311
|
| 159 |
+
nd1,MT,frog,-1.2482,9.878
|
| 160 |
+
nd2,MT,frog,-1.2482,9.878
|
| 161 |
+
COX1,MT,frog,-1.2484,9.878
|
| 162 |
+
cox2,MT,frog,-1.2476,9.8773
|
| 163 |
+
ATP8,MT,frog,-1.2473,9.8771
|
| 164 |
+
ATP6,MT,frog,-1.2478,9.8775
|
| 165 |
+
cox3,MT,frog,-1.2488,9.8787
|
| 166 |
+
nd3,MT,frog,-1.2476,9.8774
|
| 167 |
+
nd4l,MT,frog,-1.2478,9.8775
|
| 168 |
+
nd4,MT,frog,-1.247,9.8769
|
| 169 |
+
nd5,MT,frog,-1.2469,9.8766
|
| 170 |
+
nd6,MT,frog,-1.2481,9.878
|
| 171 |
+
cytb,MT,frog,-1.2482,9.878
|
| 172 |
+
MT-ND1,MT,human,-1.2486,9.8784
|
| 173 |
+
MT-ND2,MT,human,-1.2478,9.8777
|
| 174 |
+
MT-CO1,MT,human,-1.2486,9.8784
|
| 175 |
+
MT-CO2,MT,human,-1.2486,9.8784
|
| 176 |
+
MT-ATP8,MT,human,-1.2469,9.8769
|
| 177 |
+
MT-ATP6,MT,human,-1.2485,9.8783
|
| 178 |
+
MT-CO3,MT,human,-1.254,9.8846
|
| 179 |
+
MT-ND3,MT,human,-1.2482,9.8782
|
| 180 |
+
MT-ND4L,MT,human,-1.249,9.8786
|
| 181 |
+
MT-ND4,MT,human,-1.2486,9.8785
|
| 182 |
+
MT-ND5,MT,human,-1.2489,9.8787
|
| 183 |
+
MT-ND6,MT,human,-1.2485,9.8783
|
| 184 |
+
MT-CYB,MT,human,-1.2485,9.8784
|
| 185 |
+
ND1,MT,macaque,-1.2488,9.8787
|
| 186 |
+
ND2,MT,macaque,-1.2486,9.8785
|
| 187 |
+
COX1,MT,macaque,-1.249,9.8789
|
| 188 |
+
COX2,MT,macaque,-1.2495,9.8794
|
| 189 |
+
ATP8,MT,macaque,-1.238,9.8675
|
| 190 |
+
ATP6,MT,macaque,-1.2484,9.8784
|
| 191 |
+
COX3,MT,macaque,-1.2491,9.8788
|
| 192 |
+
ND3,MT,macaque,-1.2483,9.8782
|
| 193 |
+
ND4L,MT,macaque,-1.2487,9.8785
|
| 194 |
+
ND4,MT,macaque,-1.249,9.8786
|
| 195 |
+
ND5,MT,macaque,-1.2502,9.8788
|
| 196 |
+
ND6,MT,macaque,-1.2484,9.8783
|
| 197 |
+
CYTB,MT,macaque,-1.2487,9.8786
|
| 198 |
+
mt-Nd1,MT,mouse,-1.2484,9.8782
|
| 199 |
+
mt-Nd2,MT,mouse,-1.2483,9.8782
|
| 200 |
+
mt-Co1,MT,mouse,-1.2485,9.8783
|
| 201 |
+
mt-Co2,MT,mouse,-1.2485,9.8783
|
| 202 |
+
mt-Atp8,MT,mouse,-1.2471,9.8772
|
| 203 |
+
mt-Atp6,MT,mouse,-1.2486,9.8785
|
| 204 |
+
mt-Co3,MT,mouse,-1.2483,9.8781
|
| 205 |
+
mt-Nd3,MT,mouse,-1.2479,9.8777
|
| 206 |
+
mt-Nd4l,MT,mouse,-1.2484,9.8784
|
| 207 |
+
mt-Nd4,MT,mouse,-1.2483,9.8781
|
| 208 |
+
mt-Nd5,MT,mouse,-1.2478,9.8779
|
| 209 |
+
mt-Nd6,MT,mouse,-1.2485,9.8783
|
| 210 |
+
mt-Cytb,MT,mouse,-1.2477,9.8776
|
| 211 |
+
NCU16001,Mt,neurospora,3.3479,-3.9108
|
| 212 |
+
NCU16002,Mt,neurospora,4.3612,-2.9592
|
| 213 |
+
NCU16003,Mt,neurospora,3.0006,-4.3557
|
| 214 |
+
NCU16004,Mt,neurospora,3.155,-4.1844
|
| 215 |
+
NCU16005,Mt,neurospora,3.1556,-4.1929
|
| 216 |
+
NCU16006,Mt,neurospora,3.059,-4.2919
|
| 217 |
+
NCU16007,Mt,neurospora,3.3335,-3.941
|
| 218 |
+
NCU16009,Mt,neurospora,3.1149,-4.2578
|
| 219 |
+
NCU16008,Mt,neurospora,3.1654,-4.1593
|
| 220 |
+
NCU16011,Mt,neurospora,3.0766,-4.3295
|
| 221 |
+
NCU16012,Mt,neurospora,3.0907,-4.2489
|
| 222 |
+
NCU16010,Mt,neurospora,3.0562,-4.3294
|
| 223 |
+
NCU16014,Mt,neurospora,3.028,-4.3492
|
| 224 |
+
NCU16013,Mt,neurospora,3.0549,-4.3239
|
| 225 |
+
NCU16015,Mt,neurospora,3.0655,-4.3235
|
| 226 |
+
NCU16016,Mt,neurospora,3.0092,-4.3533
|
| 227 |
+
NCU16017,Mt,neurospora,4.3329,-2.9422
|
| 228 |
+
NCU16018,Mt,neurospora,3.1261,-4.3433
|
| 229 |
+
NCU16019,Mt,neurospora,3.0514,-4.3352
|
| 230 |
+
NCU16020,Mt,neurospora,3.0698,-4.3154
|
| 231 |
+
NCU16021,Mt,neurospora,3.0753,-4.2873
|
| 232 |
+
NCU16022,Mt,neurospora,4.1336,-3.1233
|
| 233 |
+
NCU16023,Mt,neurospora,5.7096,-2.6894
|
| 234 |
+
NCU16024,Mt,neurospora,3.1712,-4.1887
|
| 235 |
+
NCU16025,Mt,neurospora,3.0659,-4.3242
|
| 236 |
+
NCU16026,Mt,neurospora,3.0271,-4.3536
|
| 237 |
+
NCU16027,Mt,neurospora,3.0204,-4.3608
|
| 238 |
+
NCU16028,Mt,neurospora,3.0087,-4.3612
|
| 239 |
+
ND1,MT,pig,-1.2484,9.8784
|
| 240 |
+
ND2,MT,pig,-1.248,9.878
|
| 241 |
+
COX1,MT,pig,-1.2488,9.8787
|
| 242 |
+
COX2,MT,pig,-1.2481,9.8776
|
| 243 |
+
ATP8,MT,pig,-1.245,9.8756
|
| 244 |
+
ATP6,MT,pig,-1.2485,9.8783
|
| 245 |
+
COX3,MT,pig,-1.2486,9.8784
|
| 246 |
+
ND3,MT,pig,-1.2476,9.8778
|
| 247 |
+
ND4L,MT,pig,-1.2479,9.8779
|
| 248 |
+
ND4,MT,pig,-1.2483,9.8781
|
| 249 |
+
ND5,MT,pig,-1.2482,9.8781
|
| 250 |
+
ND6,MT,pig,-1.2485,9.8783
|
| 251 |
+
CYTB,MT,pig,-1.2485,9.8782
|
| 252 |
+
Mt-nd1,MT,rat,-1.2484,9.8782
|
| 253 |
+
Mt-nd2,MT,rat,-1.2484,9.8782
|
| 254 |
+
Mt-co1,MT,rat,-1.2488,9.8785
|
| 255 |
+
Mt-co2,MT,rat,-1.2489,9.8785
|
| 256 |
+
Mt-atp8,MT,rat,-1.2473,9.8772
|
| 257 |
+
Mt-atp6,MT,rat,-1.249,9.8789
|
| 258 |
+
Mt-co3,MT,rat,-1.2487,9.8784
|
| 259 |
+
Mt-nd3,MT,rat,-1.2483,9.878
|
| 260 |
+
Mt-nd4l,MT,rat,-1.2479,9.8776
|
| 261 |
+
Mt-nd4,MT,rat,-1.2485,9.8783
|
| 262 |
+
Mt-nd5,MT,rat,-1.2484,9.8782
|
| 263 |
+
Mt-nd6,MT,rat,-1.2484,9.8784
|
| 264 |
+
Mt-cyb,MT,rat,-1.2487,9.8784
|
| 265 |
+
gene-nad6,Mt,rice,11.8652,3.9502
|
| 266 |
+
orf490,Mt,rice,3.5137,-1.6945
|
| 267 |
+
orf224,Mt,rice,5.776,-1.9732
|
| 268 |
+
rps13,Mt,rice,11.8591,3.9597
|
| 269 |
+
gene-rpl2-2,Mt,rice,11.6443,3.7546
|
| 270 |
+
orf165,Mt,rice,5.8884,-2.2158
|
| 271 |
+
atp9,Mt,rice,11.8537,3.9577
|
| 272 |
+
rps7,Mt,rice,11.8669,3.9535
|
| 273 |
+
gene-cox2,Mt,rice,11.8906,3.9864
|
| 274 |
+
orf181,Mt,rice,4.5843,-1.8056
|
| 275 |
+
gene-atp1,Mt,rice,11.8994,4.0385
|
| 276 |
+
nad9,Mt,rice,11.8886,3.9915
|
| 277 |
+
orfB,Mt,rice,11.8687,3.9601
|
| 278 |
+
gene-atp6,Mt,rice,11.745,3.808
|
| 279 |
+
rps1,Mt,rice,11.8219,3.8951
|
| 280 |
+
nad3,Mt,rice,11.8258,3.8992
|
| 281 |
+
orf161,Mt,rice,5.8926,-2.4962
|
| 282 |
+
ccmB,Mt,rice,11.8693,3.966
|
| 283 |
+
gene-nad4L,Mt,rice,11.8479,3.9365
|
| 284 |
+
gene-nad4,Mt,rice,11.8894,3.9757
|
| 285 |
+
orf258,Mt,rice,3.8992,-1.6406
|
| 286 |
+
orf173,Mt,rice,11.6459,3.6999
|
| 287 |
+
orf152b,Mt,rice,5.6288,-2.2827
|
| 288 |
+
orf288,Mt,rice,5.0911,-2.7278
|
| 289 |
+
orfX,Mt,rice,11.8521,3.927
|
| 290 |
+
orf153,Mt,rice,5.6115,-2.5866
|
| 291 |
+
rps4,Mt,rice,11.8688,3.948
|
| 292 |
+
orf176,Mt,rice,5.4823,-2.6451
|
| 293 |
+
rps19,Mt,rice,11.7378,3.7986
|
| 294 |
+
gene-ccmFc,Mt,rice,11.8618,3.9539
|
| 295 |
+
cox3,Mt,rice,11.8681,3.9638
|
| 296 |
+
gene-ccmFn,Mt,rice,11.8633,3.9537
|
| 297 |
+
orf160,Mt,rice,5.2519,-2.7357
|
| 298 |
+
orf183,Mt,rice,5.1003,-2.4687
|
| 299 |
+
gene-nad1,Mt,rice,11.8672,3.9733
|
| 300 |
+
orf240,Mt,rice,11.8647,3.9551
|
| 301 |
+
rpl5,Mt,rice,11.8717,3.9486
|
| 302 |
+
orf194,Mt,rice,5.6115,-2.5264
|
| 303 |
+
orf25,Mt,rice,11.8829,3.9166
|
| 304 |
+
orf241,Mt,rice,3.6947,0.1518
|
| 305 |
+
cob,Mt,rice,11.8685,3.9586
|
| 306 |
+
orf152a,Mt,rice,5.5599,-2.3152
|
| 307 |
+
gene-nad5,Mt,rice,11.8646,3.966
|
| 308 |
+
orf162,Mt,rice,5.5029,-2.5524
|
| 309 |
+
orf187,Mt,rice,5.3953,-2.3972
|
| 310 |
+
RPS12,Mt,rice,11.8775,3.9827
|
| 311 |
+
rps2,Mt,rice,11.5405,3.6677
|
| 312 |
+
gene-nad7,Mt,rice,6.0914,-3.0086
|
| 313 |
+
orf284,Mt,rice,5.2231,-2.1728
|
| 314 |
+
mat-r,Mt,rice,12.2473,4.6581
|
| 315 |
+
gene-rps3-2,Mt,rice,11.8586,3.9348
|
| 316 |
+
mt-nd1,MT,zebrafish,-1.2477,9.8774
|
| 317 |
+
mt-nd2,MT,zebrafish,-1.2484,9.878
|
| 318 |
+
mt-co1,MT,zebrafish,-1.2484,9.8781
|
| 319 |
+
mt-co2,MT,zebrafish,-1.2473,9.8766
|
| 320 |
+
mt-atp8,MT,zebrafish,-1.2452,9.875
|
| 321 |
+
mt-atp6,MT,zebrafish,-1.2479,9.8774
|
| 322 |
+
mt-co3,MT,zebrafish,-1.2486,9.8783
|
| 323 |
+
mt-nd3,MT,zebrafish,-1.2462,9.8758
|
| 324 |
+
mt-nd4l,MT,zebrafish,-1.2474,9.8771
|
| 325 |
+
mt-nd4,MT,zebrafish,-1.2482,9.8778
|
| 326 |
+
mt-nd5,MT,zebrafish,-1.2453,9.8743
|
| 327 |
+
mt-nd6,MT,zebrafish,-1.248,9.8778
|
| 328 |
+
mt-cyb,MT,zebrafish,-1.2479,9.8772
|
app.py
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
|
|
| 1 |
import hashlib
|
| 2 |
import json
|
| 3 |
import os
|
|
@@ -189,6 +190,85 @@ def umap():
|
|
| 189 |
)
|
| 190 |
|
| 191 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 192 |
@app.get("/umap_labels")
|
| 193 |
def umap_labels():
|
| 194 |
return FileResponse(
|
|
|
|
| 1 |
+
import csv
|
| 2 |
import hashlib
|
| 3 |
import json
|
| 4 |
import os
|
|
|
|
| 190 |
)
|
| 191 |
|
| 192 |
|
| 193 |
+
def _load_highlight_csv(path):
|
| 194 |
+
"""Read a (name, umap2d_x, umap2d_y[, species, hox_cluster]) CSV and
|
| 195 |
+
return a list of point dicts: {x, y, name, species?, group?}.
|
| 196 |
+
|
| 197 |
+
The two highlight CSVs in annotations/ have slightly different columns
|
| 198 |
+
(HOX has a `hox_cluster` letter, mitochondrial doesn't) but both share
|
| 199 |
+
name + umap2d_x + umap2d_y + species, which is all the frontend needs.
|
| 200 |
+
"""
|
| 201 |
+
out = []
|
| 202 |
+
with open(path) as f:
|
| 203 |
+
for row in csv.DictReader(f):
|
| 204 |
+
try:
|
| 205 |
+
x = float(row["umap2d_x"])
|
| 206 |
+
y = float(row["umap2d_y"])
|
| 207 |
+
except (KeyError, ValueError):
|
| 208 |
+
continue
|
| 209 |
+
pt = {"x": x, "y": y, "name": row.get("name", "")}
|
| 210 |
+
if row.get("species"):
|
| 211 |
+
pt["species"] = row["species"]
|
| 212 |
+
if row.get("hox_cluster"):
|
| 213 |
+
pt["group"] = row["hox_cluster"]
|
| 214 |
+
out.append(pt)
|
| 215 |
+
return out
|
| 216 |
+
|
| 217 |
+
|
| 218 |
+
_HIGHLIGHTS_CACHE = None
|
| 219 |
+
|
| 220 |
+
|
| 221 |
+
def _build_highlights():
|
| 222 |
+
"""Read annotations/*.csv and pack into one JSON payload for §6.
|
| 223 |
+
|
| 224 |
+
Each "track" carries:
|
| 225 |
+
- `key` : id used by the frontend pill (`hox` / `mito`)
|
| 226 |
+
- `label` : human-readable name shown on the pill
|
| 227 |
+
- `blurb` : one-liner editorial caption (colleague-supplied)
|
| 228 |
+
- `points` : raw umap2d positions; the frontend matches each one to
|
| 229 |
+
its slot in data/umap.bin (via row_idx where the CSV
|
| 230 |
+
carries it, nearest-coord snap otherwise) so the
|
| 231 |
+
highlight reuses the existing WebGL points instead of
|
| 232 |
+
drawing new geometry.
|
| 233 |
+
"""
|
| 234 |
+
ann_dir = os.path.join(HERE, "annotations")
|
| 235 |
+
tracks = []
|
| 236 |
+
|
| 237 |
+
hox_path = os.path.join(ann_dir, "hox_genes.csv")
|
| 238 |
+
if os.path.isfile(hox_path):
|
| 239 |
+
tracks.append({
|
| 240 |
+
"key": "hox",
|
| 241 |
+
"label": "HOX genes",
|
| 242 |
+
"blurb": "key developmental regulators",
|
| 243 |
+
"points": _load_highlight_csv(hox_path),
|
| 244 |
+
})
|
| 245 |
+
|
| 246 |
+
mito_path = os.path.join(ann_dir, "mitochondrial_genes.csv")
|
| 247 |
+
if os.path.isfile(mito_path):
|
| 248 |
+
tracks.append({
|
| 249 |
+
"key": "mito",
|
| 250 |
+
"label": "Mitochondrial",
|
| 251 |
+
"blurb": "encoded outside the nuclear genome",
|
| 252 |
+
"points": _load_highlight_csv(mito_path),
|
| 253 |
+
})
|
| 254 |
+
|
| 255 |
+
return {"tracks": tracks}
|
| 256 |
+
|
| 257 |
+
|
| 258 |
+
@app.get("/highlights")
|
| 259 |
+
def highlights():
|
| 260 |
+
"""Curated gene highlights overlaid on the §6 UMAP.
|
| 261 |
+
|
| 262 |
+
Sourced from annotations/*.csv (committed alongside the data, not
|
| 263 |
+
generated). Cached on first call — the CSVs are tiny but parsing on
|
| 264 |
+
every request is still wasted work.
|
| 265 |
+
"""
|
| 266 |
+
global _HIGHLIGHTS_CACHE
|
| 267 |
+
if _HIGHLIGHTS_CACHE is None:
|
| 268 |
+
_HIGHLIGHTS_CACHE = _build_highlights()
|
| 269 |
+
return _HIGHLIGHTS_CACHE
|
| 270 |
+
|
| 271 |
+
|
| 272 |
@app.get("/umap_labels")
|
| 273 |
def umap_labels():
|
| 274 |
return FileResponse(
|
assets/js/sections/umap.js
CHANGED
|
@@ -14,7 +14,7 @@
|
|
| 14 |
if (!canvas) return;
|
| 15 |
const tooltip = document.getElementById("dumap-tooltip");
|
| 16 |
const overlay = document.getElementById("dumap-overlay");
|
| 17 |
-
const
|
| 18 |
const legend = document.getElementById("dumap-legend");
|
| 19 |
const resetBtn = document.getElementById("dumap-reset");
|
| 20 |
// The UMAP toolbar used to ship a `<span class="status">` indicator that
|
|
@@ -30,6 +30,7 @@
|
|
| 30 |
const elNsp = document.getElementById("dumap-nsp");
|
| 31 |
const elFps = document.getElementById("dumap-fps");
|
| 32 |
const annContainer = document.getElementById("dumap-annotations");
|
|
|
|
| 33 |
|
| 34 |
// ---- Palettes ----------------------------------------------------------
|
| 35 |
// 27 species grouped into 6 kingdoms, each kingdom gets a hue band.
|
|
@@ -114,12 +115,31 @@
|
|
| 114 |
return out;
|
| 115 |
}
|
| 116 |
const LENGTH_PALETTE = buildLengthPalette();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 117 |
const PALETTES = {
|
| 118 |
species: SPECIES_PALETTE,
|
| 119 |
biotype: BIOTYPE_PALETTE,
|
| 120 |
strand: STRAND_PALETTE,
|
| 121 |
gc: GC_PALETTE,
|
| 122 |
length: LENGTH_PALETTE,
|
|
|
|
|
|
|
| 123 |
};
|
| 124 |
|
| 125 |
// Format a bp count for the hover tooltip: "873 bp", "12.4 kb", "2.4 Mb".
|
|
@@ -151,6 +171,11 @@
|
|
| 151 |
// World bounds + current colorBy axis.
|
| 152 |
let bounds = [0,0,0,0];
|
| 153 |
let colorBy = "species";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 154 |
// Viewport: translate (tx, ty) + scale around origin, in NDC space.
|
| 155 |
// We *don't* show the data fully fit-to-canvas at zoom 1: the UMAP layout
|
| 156 |
// has a wide empty band along the top edge and a smaller one on the left,
|
|
@@ -212,13 +237,17 @@
|
|
| 212 |
float r = length(d);
|
| 213 |
float aa = smoothstep(0.50, 0.42, r);
|
| 214 |
if (aa <= 0.001) discard;
|
| 215 |
-
|
| 216 |
-
|
| 217 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 218 |
// Pre-multiplied output matches blendFunc(ONE, ONE_MINUS_SRC_ALPHA)
|
| 219 |
// and prevents the dense-overlap brightening you get with straight
|
| 220 |
// alpha (which would need blendFunc(SRC_ALPHA, ONE_MINUS_SRC_ALPHA)).
|
| 221 |
-
gl_FragColor = vec4(
|
| 222 |
}
|
| 223 |
`;
|
| 224 |
function compile(type, src) {
|
|
@@ -262,15 +291,20 @@
|
|
| 262 |
}
|
| 263 |
|
| 264 |
function uploadPalette(palette) {
|
|
|
|
|
|
|
|
|
|
|
|
|
| 265 |
const n = palette.length;
|
| 266 |
-
const buf = new Uint8Array(n *
|
| 267 |
for (let i = 0; i < n; i++) {
|
| 268 |
-
buf[i*
|
| 269 |
-
buf[i*
|
| 270 |
-
buf[i*
|
|
|
|
| 271 |
}
|
| 272 |
gl.bindTexture(gl.TEXTURE_2D, paletteTex);
|
| 273 |
-
gl.texImage2D(gl.TEXTURE_2D, 0, gl.
|
| 274 |
gl.uniform1f(gl.getUniformLocation(program, "u_paletteN"), n);
|
| 275 |
}
|
| 276 |
|
|
@@ -410,7 +444,6 @@
|
|
| 410 |
|
| 411 |
const ms = (performance.now() - t0) | 0;
|
| 412 |
setStatus("idle", `loaded ${(n/1000)|0}k pts · ${ms} ms`);
|
| 413 |
-
info.textContent = `${n.toLocaleString("en-US")} sequences · ${labels.species.length} species · drag to pan, wheel to zoom`;
|
| 414 |
overlay.classList.add("hidden");
|
| 415 |
|
| 416 |
return pos16;
|
|
@@ -541,7 +574,7 @@
|
|
| 541 |
const label = document.getElementById(`ann-label-${i}`);
|
| 542 |
if (!label) return;
|
| 543 |
|
| 544 |
-
const visible = a.mode ===
|
| 545 |
if (!visible) { label.style.display = "none"; return; }
|
| 546 |
|
| 547 |
const [tx, ty] = dataToScreen(a.target[0], a.target[1]);
|
|
@@ -555,6 +588,130 @@
|
|
| 555 |
});
|
| 556 |
}
|
| 557 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 558 |
// ---- Spatial grid (hover picking) --------------------------------------
|
| 559 |
// We store, per cell, a list of point indices whose normalized (x,y) falls
|
| 560 |
// in that cell. At hover, look up the cell under the cursor plus the 8
|
|
@@ -608,8 +765,13 @@
|
|
| 608 |
const ps = Math.min(8.0, Math.max(1.4, 1.4 + 0.6 * Math.log2(view.scale + 1))) * dpr;
|
| 609 |
gl.uniform1f(gl.getUniformLocation(program, "u_pointSize"), ps);
|
| 610 |
// Alpha rises with zoom so individual dots stay readable, but starts low
|
| 611 |
-
// so the dense 571 K cloud doesn't blow out at zoom 1.
|
| 612 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 613 |
gl.uniform1f(gl.getUniformLocation(program, "u_alpha"), alpha);
|
| 614 |
|
| 615 |
gl.drawArrays(gl.POINTS, 0, n);
|
|
@@ -650,6 +812,41 @@
|
|
| 650 |
requestRedraw();
|
| 651 |
}
|
| 652 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 653 |
// ---- Legend ------------------------------------------------------------
|
| 654 |
// Render a continuous-gradient legend bar for one of the two continuous
|
| 655 |
// overlays (gc, length). Both share the same SVG shape; they just differ
|
|
@@ -918,10 +1115,7 @@
|
|
| 918 |
setupGL();
|
| 919 |
|
| 920 |
colorPills.forEach(p => {
|
| 921 |
-
p.addEventListener("click", () =>
|
| 922 |
-
colorPills.forEach(x => x.classList.toggle("active", x === p));
|
| 923 |
-
setColorBy(p.dataset.color);
|
| 924 |
-
});
|
| 925 |
});
|
| 926 |
|
| 927 |
// Defer loading until the umap section is near the viewport, 571K points
|
|
@@ -932,13 +1126,18 @@
|
|
| 932 |
try {
|
| 933 |
const pos16 = await loadData();
|
| 934 |
posSnapshot = pos16;
|
| 935 |
-
|
| 936 |
|
| 937 |
// Two-phase load: heavy gene-name strip (~6.5 MB plain text,
|
| 938 |
// ~1.9 MB gzipped) lands AFTER the WebGL render is up. The
|
| 939 |
// tooltip silently upgrades from "·" to the real name as soon
|
| 940 |
// as it's parsed and re-aligned to the shuffled order. Failures
|
| 941 |
// here are non-fatal, the scatter still works without names.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 942 |
if (labels && labels.has_names) {
|
| 943 |
fetch("/umap_names")
|
| 944 |
.then(r => r.ok ? r.text() : Promise.reject(new Error("names " + r.status)))
|
|
|
|
| 14 |
if (!canvas) return;
|
| 15 |
const tooltip = document.getElementById("dumap-tooltip");
|
| 16 |
const overlay = document.getElementById("dumap-overlay");
|
| 17 |
+
const modeDesc = document.getElementById("dumap-mode-desc");
|
| 18 |
const legend = document.getElementById("dumap-legend");
|
| 19 |
const resetBtn = document.getElementById("dumap-reset");
|
| 20 |
// The UMAP toolbar used to ship a `<span class="status">` indicator that
|
|
|
|
| 30 |
const elNsp = document.getElementById("dumap-nsp");
|
| 31 |
const elFps = document.getElementById("dumap-fps");
|
| 32 |
const annContainer = document.getElementById("dumap-annotations");
|
| 33 |
+
const hlPills = document.getElementById("dumap-highlight-pills");
|
| 34 |
|
| 35 |
// ---- Palettes ----------------------------------------------------------
|
| 36 |
// 27 species grouped into 6 kingdoms, each kingdom gets a hue band.
|
|
|
|
| 115 |
return out;
|
| 116 |
}
|
| 117 |
const LENGTH_PALETTE = buildLengthPalette();
|
| 118 |
+
// Highlight palettes are 2-class [not-in-set, in-set]. The alpha on
|
| 119 |
+
// class 0 fades the rest of the scatter to a near-paper ghost so the
|
| 120 |
+
// foreground class reads as the figure, the rest as ground.
|
| 121 |
+
const HOX_PALETTE = [
|
| 122 |
+
[205, 205, 205, 20], // off, dim grey ghost
|
| 123 |
+
[124, 58, 237, 255], // HOX, vivid violet
|
| 124 |
+
];
|
| 125 |
+
const MITO_PALETTE = [
|
| 126 |
+
[205, 205, 205, 20], // off
|
| 127 |
+
// Deep magenta. Amber (the obvious "iron / cytochrome" pick) sat too
|
| 128 |
+
// bright against the dimmed grey carpet — luminance ~136 vs the HOX
|
| 129 |
+
// violet's ~98 — so the points washed out. This pink-700 lands in
|
| 130 |
+
// the same low-luminance band as the HOX violet, contrasting on
|
| 131 |
+
// hue rather than brightness so both highlight modes feel equally
|
| 132 |
+
// present.
|
| 133 |
+
[190, 24, 93, 255], // mito
|
| 134 |
+
];
|
| 135 |
const PALETTES = {
|
| 136 |
species: SPECIES_PALETTE,
|
| 137 |
biotype: BIOTYPE_PALETTE,
|
| 138 |
strand: STRAND_PALETTE,
|
| 139 |
gc: GC_PALETTE,
|
| 140 |
length: LENGTH_PALETTE,
|
| 141 |
+
hl_hox: HOX_PALETTE,
|
| 142 |
+
hl_mito: MITO_PALETTE,
|
| 143 |
};
|
| 144 |
|
| 145 |
// Format a bp count for the hover tooltip: "873 bp", "12.4 kb", "2.4 Mb".
|
|
|
|
| 171 |
// World bounds + current colorBy axis.
|
| 172 |
let bounds = [0,0,0,0];
|
| 173 |
let colorBy = "species";
|
| 174 |
+
// Unified active mode: a colour-by key ("species", "biotype", …) OR
|
| 175 |
+
// a highlight key prefixed with "hl:" ("hl:hox"). The two pill rows
|
| 176 |
+
// funnel through setMode() so only one can ever be active at a time;
|
| 177 |
+
// updateAnnotations() filters labels off this value.
|
| 178 |
+
let currentMode = "species";
|
| 179 |
// Viewport: translate (tx, ty) + scale around origin, in NDC space.
|
| 180 |
// We *don't* show the data fully fit-to-canvas at zoom 1: the UMAP layout
|
| 181 |
// has a wide empty band along the top edge and a smaller one on the left,
|
|
|
|
| 237 |
float r = length(d);
|
| 238 |
float aa = smoothstep(0.50, 0.42, r);
|
| 239 |
if (aa <= 0.001) discard;
|
| 240 |
+
// Palette texture is RGBA: the alpha channel lets a single palette
|
| 241 |
+
// entry dim itself relative to the global u_alpha (used by the
|
| 242 |
+
// highlight modes, where the "not in this gene set" class needs to
|
| 243 |
+
// fade into the paper while the highlighted class stays vivid).
|
| 244 |
+
vec4 cls = texture2D(u_palette, vec2((v_cat + 0.5) / u_paletteN, 0.5));
|
| 245 |
+
float a = aa * u_alpha * cls.a;
|
| 246 |
+
if (a <= 0.001) discard;
|
| 247 |
// Pre-multiplied output matches blendFunc(ONE, ONE_MINUS_SRC_ALPHA)
|
| 248 |
// and prevents the dense-overlap brightening you get with straight
|
| 249 |
// alpha (which would need blendFunc(SRC_ALPHA, ONE_MINUS_SRC_ALPHA)).
|
| 250 |
+
gl_FragColor = vec4(cls.rgb * a, a);
|
| 251 |
}
|
| 252 |
`;
|
| 253 |
function compile(type, src) {
|
|
|
|
| 291 |
}
|
| 292 |
|
| 293 |
function uploadPalette(palette) {
|
| 294 |
+
// Palette entries are [r, g, b] (existing colour-by palettes) or
|
| 295 |
+
// [r, g, b, a] (highlight palettes that need a class to dim). Default
|
| 296 |
+
// alpha to 255 keeps every existing palette pixel-identical to the
|
| 297 |
+
// pre-RGBA shader.
|
| 298 |
const n = palette.length;
|
| 299 |
+
const buf = new Uint8Array(n * 4);
|
| 300 |
for (let i = 0; i < n; i++) {
|
| 301 |
+
buf[i*4] = palette[i][0];
|
| 302 |
+
buf[i*4+1] = palette[i][1];
|
| 303 |
+
buf[i*4+2] = palette[i][2];
|
| 304 |
+
buf[i*4+3] = palette[i].length > 3 ? palette[i][3] : 255;
|
| 305 |
}
|
| 306 |
gl.bindTexture(gl.TEXTURE_2D, paletteTex);
|
| 307 |
+
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, n, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, buf);
|
| 308 |
gl.uniform1f(gl.getUniformLocation(program, "u_paletteN"), n);
|
| 309 |
}
|
| 310 |
|
|
|
|
| 444 |
|
| 445 |
const ms = (performance.now() - t0) | 0;
|
| 446 |
setStatus("idle", `loaded ${(n/1000)|0}k pts · ${ms} ms`);
|
|
|
|
| 447 |
overlay.classList.add("hidden");
|
| 448 |
|
| 449 |
return pos16;
|
|
|
|
| 574 |
const label = document.getElementById(`ann-label-${i}`);
|
| 575 |
if (!label) return;
|
| 576 |
|
| 577 |
+
const visible = a.mode === currentMode;
|
| 578 |
if (!visible) { label.style.display = "none"; return; }
|
| 579 |
|
| 580 |
const [tx, ty] = dataToScreen(a.target[0], a.target[1]);
|
|
|
|
| 588 |
});
|
| 589 |
}
|
| 590 |
|
| 591 |
+
// ---- Highlights --------------------------------------------------------
|
| 592 |
+
// A colleague flagged a couple of biologically meaningful gene sets (HOX
|
| 593 |
+
// paralogs, the mitochondrial genome) and asked to surface them on top
|
| 594 |
+
// of the embedding. Each highlight is a *view of the same 571 K WebGL
|
| 595 |
+
// points* — not new geometry on top — so the rendering path stays the
|
| 596 |
+
// category-buffer + palette swap we already use for "colour by". The
|
| 597 |
+
// mask is a Uint8Array of length n with 1 at the slot of every gene in
|
| 598 |
+
// the set and 0 elsewhere; the highlight palette dims class 0 to a
|
| 599 |
+
// ghost and paints class 1 vividly so the foreground reads as figure.
|
| 600 |
+
//
|
| 601 |
+
// Identity matching: every gene in the highlight CSVs ships its
|
| 602 |
+
// (umap2d_x, umap2d_y) coordinate, which we snap to the closest
|
| 603 |
+
// WebGL slot via the spatial grid built for hover. The CSV also
|
| 604 |
+
// carries `row_idx`, but that's the row in the *pre-bin* viz.csv;
|
| 605 |
+
// scripts/build_real_umap.py re-buckets rows by species before
|
| 606 |
+
// packing, so row_idx doesn't line up with the bin's row order and
|
| 607 |
+
// can't be used as a direct index.
|
| 608 |
+
let highlights = null; // server payload {tracks: [...]}
|
| 609 |
+
let hlActiveKey = null; // single active highlight track key (or null)
|
| 610 |
+
let hlMasks = {}; // track key → GLBuffer of Uint8 mask
|
| 611 |
+
|
| 612 |
+
// Snap a single (data-space) point to the closest WebGL slot using the
|
| 613 |
+
// hover grid. Returns -1 if no point falls inside the search radius
|
| 614 |
+
// (large enough here that we expect a hit for every annotated gene).
|
| 615 |
+
function snapToPoint(x, y) {
|
| 616 |
+
if (!grid || !posSnapshot) return -1;
|
| 617 |
+
const [xMin, xMax, yMin, yMax] = labels.bounds_2d;
|
| 618 |
+
const nx = (x - xMin) / (xMax - xMin) * 2 - 1;
|
| 619 |
+
const ny = (y - yMin) / (yMax - yMin) * 2 - 1;
|
| 620 |
+
const gx = Math.floor((nx + 1) * 0.5 * GRID_N);
|
| 621 |
+
const gy = Math.floor((ny + 1) * 0.5 * GRID_N);
|
| 622 |
+
let best = -1, bestD2 = Infinity;
|
| 623 |
+
for (let dy = -1; dy <= 1; dy++) {
|
| 624 |
+
const yy = gy + dy;
|
| 625 |
+
if (yy < 0 || yy >= GRID_N) continue;
|
| 626 |
+
for (let dx = -1; dx <= 1; dx++) {
|
| 627 |
+
const xx = gx + dx;
|
| 628 |
+
if (xx < 0 || xx >= GRID_N) continue;
|
| 629 |
+
const cell = grid[yy * GRID_N + xx];
|
| 630 |
+
if (!cell) continue;
|
| 631 |
+
for (let k = 0; k < cell.length; k++) {
|
| 632 |
+
const idx = cell[k];
|
| 633 |
+
const px = posSnapshot[2*idx] / 32767;
|
| 634 |
+
const py = posSnapshot[2*idx + 1] / 32767;
|
| 635 |
+
const d2 = (px - nx) * (px - nx) + (py - ny) * (py - ny);
|
| 636 |
+
if (d2 < bestD2) { bestD2 = d2; best = idx; }
|
| 637 |
+
}
|
| 638 |
+
}
|
| 639 |
+
}
|
| 640 |
+
return best;
|
| 641 |
+
}
|
| 642 |
+
|
| 643 |
+
function buildHighlightMask(track) {
|
| 644 |
+
const mask = new Uint8Array(n);
|
| 645 |
+
let placed = 0;
|
| 646 |
+
for (const p of track.points) {
|
| 647 |
+
const slot = snapToPoint(p.x, p.y);
|
| 648 |
+
if (slot >= 0) { mask[slot] = 1; placed++; }
|
| 649 |
+
}
|
| 650 |
+
if (placed < track.points.length) {
|
| 651 |
+
console.warn(`highlight ${track.key}: placed ${placed}/${track.points.length} genes`);
|
| 652 |
+
}
|
| 653 |
+
return mask;
|
| 654 |
+
}
|
| 655 |
+
|
| 656 |
+
function uploadHighlightMask(key, mask) {
|
| 657 |
+
const buf = gl.createBuffer();
|
| 658 |
+
gl.bindBuffer(gl.ARRAY_BUFFER, buf);
|
| 659 |
+
gl.bufferData(gl.ARRAY_BUFFER, mask, gl.STATIC_DRAW);
|
| 660 |
+
hlMasks[key] = buf;
|
| 661 |
+
}
|
| 662 |
+
|
| 663 |
+
function renderHighlightPills() {
|
| 664 |
+
if (!highlights || !hlPills) return;
|
| 665 |
+
hlPills.innerHTML = highlights.tracks.map(t =>
|
| 666 |
+
`<button class="pill" data-track="${t.key}">${t.label}</button>`
|
| 667 |
+
).join("");
|
| 668 |
+
// Highlights and "color by" are mutually exclusive views of the same
|
| 669 |
+
// scatter — clicking a highlight pill takes over as the active mode;
|
| 670 |
+
// re-clicking it drops back to whatever colour-by was active before.
|
| 671 |
+
hlPills.querySelectorAll(".pill").forEach(pill => {
|
| 672 |
+
pill.addEventListener("click", () => {
|
| 673 |
+
const key = pill.dataset.track;
|
| 674 |
+
setMode(hlActiveKey === key ? colorBy : ("hl:" + key));
|
| 675 |
+
});
|
| 676 |
+
});
|
| 677 |
+
}
|
| 678 |
+
|
| 679 |
+
// Per-mode caption: explains the *concept* behind the active axis, not
|
| 680 |
+
// what's visually happening in the chart. The takeaway block below the
|
| 681 |
+
// chart already does the "look at this!" framing, so this slot is
|
| 682 |
+
// reserved for a quick gloss on what biotypes / GC content / HOX
|
| 683 |
+
// genes / mt-DNA actually are.
|
| 684 |
+
const MODE_DESCRIPTIONS = {
|
| 685 |
+
species: "Each point is a gene from one of 27 species, spanning vertebrates (human, mouse, zebrafish, dog, cow, pig, chicken, frog, macaque, rat), invertebrates (fly, worm), plants (Arabidopsis, rice, soybean, maize, tomato), fungi, bacteria, and a couple of viruses.",
|
| 686 |
+
biotype: "Biotype is what kind of RNA a gene produces. Protein-coding genes encode proteins. lncRNAs are long non-coding RNAs that often regulate other genes. snRNAs are small nuclear RNAs that help splice messenger RNA. misc_RNA collects the rest.",
|
| 687 |
+
strand: "DNA is double-stranded, and each gene is read in one direction along one of the two strands: forward (+) or reverse (-). Roughly half of all genes sit on each strand, with no strong regional preference.",
|
| 688 |
+
gc: "GC content is the fraction of a sequence's bases that are guanine (G) or cytosine (C) rather than adenine (A) or thymine (T). G-C base pairs are bound by three hydrogen bonds versus two for A-T, so GC-rich DNA is more thermally stable. GC content varies dramatically between organisms (bacteria range from 17% to 75%) and between regions of a single genome, often marking gene-dense vs gene-sparse zones.",
|
| 689 |
+
length: "Gene length in this dataset spans six orders of magnitude, from a few hundred base pairs (compact non-coding RNAs) up to nearly 3 million (genes with vast introns, like dystrophin in humans). Length correlates loosely with function: regulatory and developmental genes often run long, housekeeping genes short.",
|
| 690 |
+
"hl:hox": "HOX genes are a family of transcription factors that lay out the body plan during embryonic development, telling cells along the head-to-tail axis what to become. They share a conserved 60-amino-acid DNA-binding domain (the homeobox) and sit in four paralogous clusters (HOXA, HOXB, HOXC, HOXD) on different chromosomes, with deep homologs going all the way back to insects.",
|
| 691 |
+
"hl:mito": "Mitochondria are energy-generating organelles inside eukaryotic cells. They carry their own small circular genome, inherited maternally and evolving independently of the nuclear DNA of their host. Because all mitochondria descend from a single ancestral endosymbiont, mt-DNA evolves on its own track inside each lineage, so mt-DNA from related species ends up looking more like other mt-DNA than like the nuclear genome it lives inside.",
|
| 692 |
+
};
|
| 693 |
+
function updateModeDescription() {
|
| 694 |
+
if (!modeDesc) return;
|
| 695 |
+
modeDesc.textContent = MODE_DESCRIPTIONS[currentMode] || "";
|
| 696 |
+
}
|
| 697 |
+
|
| 698 |
+
async function loadHighlights() {
|
| 699 |
+
try {
|
| 700 |
+
const r = await fetch("/highlights");
|
| 701 |
+
if (!r.ok) throw new Error("highlights " + r.status);
|
| 702 |
+
highlights = await r.json();
|
| 703 |
+
if (!highlights.tracks || highlights.tracks.length === 0) return;
|
| 704 |
+
for (const t of highlights.tracks) {
|
| 705 |
+
const mask = buildHighlightMask(t);
|
| 706 |
+
uploadHighlightMask(t.key, mask);
|
| 707 |
+
}
|
| 708 |
+
renderHighlightPills();
|
| 709 |
+
requestRedraw();
|
| 710 |
+
} catch (err) {
|
| 711 |
+
console.warn("highlights load failed:", err);
|
| 712 |
+
}
|
| 713 |
+
}
|
| 714 |
+
|
| 715 |
// ---- Spatial grid (hover picking) --------------------------------------
|
| 716 |
// We store, per cell, a list of point indices whose normalized (x,y) falls
|
| 717 |
// in that cell. At hover, look up the cell under the cursor plus the 8
|
|
|
|
| 765 |
const ps = Math.min(8.0, Math.max(1.4, 1.4 + 0.6 * Math.log2(view.scale + 1))) * dpr;
|
| 766 |
gl.uniform1f(gl.getUniformLocation(program, "u_pointSize"), ps);
|
| 767 |
// Alpha rises with zoom so individual dots stay readable, but starts low
|
| 768 |
+
// so the dense 571 K cloud doesn't blow out at zoom 1. Highlight modes
|
| 769 |
+
// override this to 1.0 — the foreground class needs to read as a sharp
|
| 770 |
+
// figure, and the per-class palette alpha is what gates how visible
|
| 771 |
+
// each side is.
|
| 772 |
+
const alpha = currentMode.startsWith("hl:")
|
| 773 |
+
? 1.0
|
| 774 |
+
: Math.min(0.85, Math.max(0.22, 0.22 + 0.20 * Math.log2(view.scale + 1)));
|
| 775 |
gl.uniform1f(gl.getUniformLocation(program, "u_alpha"), alpha);
|
| 776 |
|
| 777 |
gl.drawArrays(gl.POINTS, 0, n);
|
|
|
|
| 812 |
requestRedraw();
|
| 813 |
}
|
| 814 |
|
| 815 |
+
// ---- Mode (color-by / highlight) --------------------------------------
|
| 816 |
+
// Single switchpoint that drives both pill rows. A colour-by key
|
| 817 |
+
// ("species", "biotype", …) binds the per-category GL buffer + its
|
| 818 |
+
// palette; a "hl:<track>" key binds the per-track highlight mask
|
| 819 |
+
// (Uint8: 0/1) + its 2-class palette (dim grey + vivid colour) instead.
|
| 820 |
+
// Either way it's the same a_cat attribute and the same draw call, so
|
| 821 |
+
// there's no separate "highlight pass" to keep in sync.
|
| 822 |
+
function setMode(key) {
|
| 823 |
+
currentMode = key;
|
| 824 |
+
const catLoc = gl.getAttribLocation(program, "a_cat");
|
| 825 |
+
if (key.startsWith("hl:")) {
|
| 826 |
+
const trackKey = key.slice(3);
|
| 827 |
+
const buf = hlMasks[trackKey];
|
| 828 |
+
if (!buf) return; // mask not built yet, ignore
|
| 829 |
+
hlActiveKey = trackKey;
|
| 830 |
+
gl.bindBuffer(gl.ARRAY_BUFFER, buf);
|
| 831 |
+
gl.enableVertexAttribArray(catLoc);
|
| 832 |
+
gl.vertexAttribPointer(catLoc, 1, gl.UNSIGNED_BYTE, false, 0, 0);
|
| 833 |
+
uploadPalette(PALETTES["hl_" + trackKey]);
|
| 834 |
+
colorPills.forEach(p => p.classList.remove("active"));
|
| 835 |
+
hlPills?.querySelectorAll(".pill").forEach(p =>
|
| 836 |
+
p.classList.toggle("active", p.dataset.track === trackKey));
|
| 837 |
+
// Legend doesn't add anything in highlight mode — the pill + blurb
|
| 838 |
+
// already say what the foreground class is.
|
| 839 |
+
if (legend) legend.innerHTML = "";
|
| 840 |
+
} else {
|
| 841 |
+
hlActiveKey = null;
|
| 842 |
+
colorPills.forEach(p => p.classList.toggle("active", p.dataset.color === key));
|
| 843 |
+
hlPills?.querySelectorAll(".pill").forEach(p => p.classList.remove("active"));
|
| 844 |
+
setColorBy(key);
|
| 845 |
+
}
|
| 846 |
+
updateModeDescription();
|
| 847 |
+
requestRedraw();
|
| 848 |
+
}
|
| 849 |
+
|
| 850 |
// ---- Legend ------------------------------------------------------------
|
| 851 |
// Render a continuous-gradient legend bar for one of the two continuous
|
| 852 |
// overlays (gc, length). Both share the same SVG shape; they just differ
|
|
|
|
| 1115 |
setupGL();
|
| 1116 |
|
| 1117 |
colorPills.forEach(p => {
|
| 1118 |
+
p.addEventListener("click", () => setMode(p.dataset.color));
|
|
|
|
|
|
|
|
|
|
| 1119 |
});
|
| 1120 |
|
| 1121 |
// Defer loading until the umap section is near the viewport, 571K points
|
|
|
|
| 1126 |
try {
|
| 1127 |
const pos16 = await loadData();
|
| 1128 |
posSnapshot = pos16;
|
| 1129 |
+
setMode("species"); // initial coloring + first draw + mode description
|
| 1130 |
|
| 1131 |
// Two-phase load: heavy gene-name strip (~6.5 MB plain text,
|
| 1132 |
// ~1.9 MB gzipped) lands AFTER the WebGL render is up. The
|
| 1133 |
// tooltip silently upgrades from "·" to the real name as soon
|
| 1134 |
// as it's parsed and re-aligned to the shuffled order. Failures
|
| 1135 |
// here are non-fatal, the scatter still works without names.
|
| 1136 |
+
// Curated gene highlights ride the same lazy-load slot: cheap (~12 KB
|
| 1137 |
+
// gzipped) but unrelated to the scatter render path, so it shouldn't
|
| 1138 |
+
// gate first paint either.
|
| 1139 |
+
loadHighlights();
|
| 1140 |
+
|
| 1141 |
if (labels && labels.has_names) {
|
| 1142 |
fetch("/umap_names")
|
| 1143 |
.then(r => r.ok ? r.text() : Promise.reject(new Error("names " + r.status)))
|
assets/styles/section-umap.css
CHANGED
|
@@ -93,6 +93,43 @@
|
|
| 93 |
paint-order: stroke fill;
|
| 94 |
transition: opacity 0.18s;
|
| 95 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 96 |
.umap-legend {
|
| 97 |
display: flex; flex-wrap: wrap;
|
| 98 |
gap: 6px 14px;
|
|
|
|
| 93 |
paint-order: stroke fill;
|
| 94 |
transition: opacity 0.18s;
|
| 95 |
}
|
| 96 |
+
/* Highlights toolbar: a second row under "color by" listing curated
|
| 97 |
+
gene sets a colleague flagged (HOX paralogs, mitochondrial genome…). */
|
| 98 |
+
.umap-highlight-toolbar {
|
| 99 |
+
margin-top: -8px; /* tighten gap to the colour-by row above */
|
| 100 |
+
margin-bottom: 12px;
|
| 101 |
+
}
|
| 102 |
+
/* Per-mode description above the chart. One short paragraph that swaps
|
| 103 |
+
to whatever colour-by or highlight is active, replacing what used to
|
| 104 |
+
be a static "N sequences · M species" stat-line — the stats moved
|
| 105 |
+
into the stat-row below the canvas, so this slot is free to carry
|
| 106 |
+
real editorial. */
|
| 107 |
+
.umap-mode-desc {
|
| 108 |
+
font-family: "Inter", sans-serif;
|
| 109 |
+
font-size: 13px;
|
| 110 |
+
line-height: 1.5;
|
| 111 |
+
color: #4a4a48;
|
| 112 |
+
margin: 0 0 12px;
|
| 113 |
+
/* Hold ~4 lines so the canvas doesn't bounce around as the user
|
| 114 |
+
switches between a short mode (strand) and a long one (GC content
|
| 115 |
+
or mt-DNA). Longer descriptions still grow past this without
|
| 116 |
+
clamping, just with a smaller visual jump. */
|
| 117 |
+
min-height: 6em;
|
| 118 |
+
}
|
| 119 |
+
/* Navigation hint lives inside .stat-row as a right-floated sibling of
|
| 120 |
+
the stat-pairs. margin-left:auto absorbs the flex gap so it pins to
|
| 121 |
+
the right edge regardless of how many stats sit on the left, and
|
| 122 |
+
align-self:flex-end keeps it lined up with the *values* row (the
|
| 123 |
+
visually heavier line) rather than centred between label and value. */
|
| 124 |
+
.umap-nav-hint {
|
| 125 |
+
margin-left: auto;
|
| 126 |
+
align-self: flex-end;
|
| 127 |
+
font-family: "JetBrains Mono", monospace;
|
| 128 |
+
font-size: 10px;
|
| 129 |
+
color: #888;
|
| 130 |
+
text-transform: uppercase;
|
| 131 |
+
letter-spacing: 1.5px;
|
| 132 |
+
}
|
| 133 |
.umap-legend {
|
| 134 |
display: flex; flex-wrap: wrap;
|
| 135 |
gap: 6px 14px;
|
demo.html
CHANGED
|
@@ -73,7 +73,7 @@
|
|
| 73 |
<h1 class="banner-wordmark"><span>CARBON</span><span class="banner-cursor" aria-hidden="true"></span></h1>
|
| 74 |
<p class="banner-subtitle">Autoregressive Genomic Foundation Model</p>
|
| 75 |
<ul class="banner-specs" aria-label="Model specs">
|
| 76 |
-
<li class="banner-spec"><strong>
|
| 77 |
<li class="banner-spec"><strong>6-mer</strong> tokenizer</li>
|
| 78 |
<li class="banner-spec"><strong>1T</strong> train tokens</li>
|
| 79 |
</ul>
|
|
@@ -187,12 +187,12 @@
|
|
| 187 |
routing. -->
|
| 188 |
<div class="intro-primer-heading" id="primer">
|
| 189 |
<div class="section-num">Background</div>
|
| 190 |
-
<h2>
|
| 191 |
<p>
|
| 192 |
-
|
| 193 |
-
|
| 194 |
-
|
| 195 |
-
|
| 196 |
</p>
|
| 197 |
</div>
|
| 198 |
|
|
@@ -1052,7 +1052,12 @@ for name, ids in zip(species_prefixes, new_ids):
|
|
| 1052 |
<button id="dumap-reset" class="action" disabled>↺ reset view</button>
|
| 1053 |
</div>
|
| 1054 |
|
| 1055 |
-
<div class="
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1056 |
|
| 1057 |
<div class="umap-frame">
|
| 1058 |
<canvas class="umap-canvas" id="dumap-canvas"></canvas>
|
|
@@ -1068,6 +1073,7 @@ for name, ids in zip(species_prefixes, new_ids):
|
|
| 1068 |
<div class="stat-pair"><span class="stat-pair-label">species</span><span class="stat-pair-val muted" id="dumap-nsp">·</span></div>
|
| 1069 |
<div class="stat-pair"><span class="stat-pair-label">embedding dim</span><span class="stat-pair-val muted">3072</span></div>
|
| 1070 |
<div class="stat-pair"><span class="stat-pair-label">render</span><span class="stat-pair-val muted" id="dumap-fps">·</span></div>
|
|
|
|
| 1071 |
</div>
|
| 1072 |
</div>
|
| 1073 |
|
|
|
|
| 73 |
<h1 class="banner-wordmark"><span>CARBON</span><span class="banner-cursor" aria-hidden="true"></span></h1>
|
| 74 |
<p class="banner-subtitle">Autoregressive Genomic Foundation Model</p>
|
| 75 |
<ul class="banner-specs" aria-label="Model specs">
|
| 76 |
+
<li class="banner-spec"><strong>393,216</strong> bp context</li>
|
| 77 |
<li class="banner-spec"><strong>6-mer</strong> tokenizer</li>
|
| 78 |
<li class="banner-spec"><strong>1T</strong> train tokens</li>
|
| 79 |
</ul>
|
|
|
|
| 187 |
routing. -->
|
| 188 |
<div class="intro-primer-heading" id="primer">
|
| 189 |
<div class="section-num">Background</div>
|
| 190 |
+
<h2>What Carbon reads</h2>
|
| 191 |
<p>
|
| 192 |
+
The model is fed long strings of four letters: A, C, G, T. Those letters are the
|
| 193 |
+
bases of DNA. Stretches of it are genes, which cells copy into RNA and translate
|
| 194 |
+
into proteins. A century of molecular biology has been spent working out how.
|
| 195 |
+
Carbon is given only the letters. What they mean is what it has to learn.
|
| 196 |
</p>
|
| 197 |
</div>
|
| 198 |
|
|
|
|
| 1052 |
<button id="dumap-reset" class="action" disabled>↺ reset view</button>
|
| 1053 |
</div>
|
| 1054 |
|
| 1055 |
+
<div class="demo-toolbar umap-highlight-toolbar">
|
| 1056 |
+
<span>highlights</span>
|
| 1057 |
+
<span id="dumap-highlight-pills" class="pills"></span>
|
| 1058 |
+
</div>
|
| 1059 |
+
|
| 1060 |
+
<p class="umap-mode-desc" id="dumap-mode-desc"></p>
|
| 1061 |
|
| 1062 |
<div class="umap-frame">
|
| 1063 |
<canvas class="umap-canvas" id="dumap-canvas"></canvas>
|
|
|
|
| 1073 |
<div class="stat-pair"><span class="stat-pair-label">species</span><span class="stat-pair-val muted" id="dumap-nsp">·</span></div>
|
| 1074 |
<div class="stat-pair"><span class="stat-pair-label">embedding dim</span><span class="stat-pair-val muted">3072</span></div>
|
| 1075 |
<div class="stat-pair"><span class="stat-pair-label">render</span><span class="stat-pair-val muted" id="dumap-fps">·</span></div>
|
| 1076 |
+
<div class="umap-nav-hint">drag to pan · wheel to zoom · hover for details</div>
|
| 1077 |
</div>
|
| 1078 |
</div>
|
| 1079 |
|