lvwerra HF Staff Claude Opus 4.7 (1M context) commited on
Commit
468dae5
·
1 Parent(s): 7b77685

§6 UMAP: highlight curated gene sets (HOX, mitochondrial) + per-mode descriptions

Browse files

Adds 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 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 info = document.getElementById("dumap-info");
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
- float a = aa * u_alpha;
216
- float t = (v_cat + 0.5) / u_paletteN;
217
- vec3 color = texture2D(u_palette, vec2(t, 0.5)).rgb;
 
 
 
 
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(color * a, a);
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 * 3);
267
  for (let i = 0; i < n; i++) {
268
- buf[i*3] = palette[i][0];
269
- buf[i*3+1] = palette[i][1];
270
- buf[i*3+2] = palette[i][2];
 
271
  }
272
  gl.bindTexture(gl.TEXTURE_2D, paletteTex);
273
- gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGB, n, 1, 0, gl.RGB, gl.UNSIGNED_BYTE, buf);
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 === colorBy;
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
- const alpha = Math.min(0.85, Math.max(0.22, 0.22 + 0.20 * Math.log2(view.scale + 1)));
 
 
 
 
 
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
- setColorBy("species"); // initial coloring + first draw
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>49,152</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,12 +187,12 @@
187
  routing. -->
188
  <div class="intro-primer-heading" id="primer">
189
  <div class="section-num">Background</div>
190
- <h2>A quick primer in genetics</h2>
191
  <p>
192
- What the strings Carbon reads actually are: <em>bases, DNA, genes, RNA, and protein</em>.
193
- By the end you'll know what the four-letter sequences the model is fed represent, and
194
- which parts of that meaning Carbon has to figure out on its own. Skip if you already
195
- know all that.
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="gene-info" id="dumap-info">scroll to zoom · drag to pan · hover for details</div>
 
 
 
 
 
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