archaeopteryx 3.13.0 → 3.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -257,8 +257,10 @@ the mouse wheel zooms too, and never rotates), **X− / X+ become rotate** (a
257
257
  direction** flip — labels riding their spokes or standing upright — while
258
258
  vertical expansion greys out. **Fit** centres and scales the fan; **Esc**
259
259
  also resets rotation and label direction. Unrooted
260
- additionally greys out the aligned-phylogram option and Auto-hide Labels
261
- (there is no common label edge, and no even row spacing to hide against).
260
+ additionally greys out the aligned-phylogram option (there is no common label
261
+ edge). Auto-hide Labels stays live: the tip-label thinning it governs needs
262
+ even row spacing and so does nothing in unrooted, but the crowded-branch-data
263
+ rule it also governs applies in every layout.
262
264
 
263
265
  ## Rooting
264
266
 
@@ -526,6 +528,16 @@ section holds the controls:
526
528
  the tree), or `None`.
527
529
  * **Glow** — a soft glow in each domain's own colour around its box.
528
530
 
531
+ **Hovering a domain** reads it out: the domain's name, its E-value (small
532
+ ones keep their exponent, 7.20e-117), the residues it spans with its own length and the protein's,
533
+ the tree tip it belongs to, and its accession where the file carries one.
534
+ **Clicking the box** looks the domain up: straight to the Pfam entry when
535
+ there is an accession, and an InterPro search by name when there is not —
536
+ phyloXML's domain `id` is optional, and a file with names alone (our own
537
+ `apaf.xml` among them) cannot address an entry, since InterPro resolves
538
+ accessions and not Pfam identifiers. Only the domain boxes take the mouse, so
539
+ the tree behind the track stays clickable.
540
+
529
541
  In the circular and unrooted layouts the tracks ride each tip's spoke
530
542
  outward and carry no names (the legend still works); they need radial
531
543
  labels, which switching layouts turns on. A malformed domain — a missing or
@@ -555,7 +567,7 @@ To find a motif, pick **Molecular Sequence** in a search box: it matches the
555
567
  residues as written, gap characters included, as the desktop does.
556
568
 
557
569
  **Sequence Logo** (the checkbox under **Alignment**) replaces the conservation
558
- bar with a **logo**: every column a stack of letters, as tall as that column's
570
+ bar with a **logo**: a stack of letters per column, as tall as that column's
559
571
  information content in bits and shared out by residue frequency, most frequent
560
572
  on top — the display the MEME Suite and WebLogo draw. A conserved column is one
561
573
  tall letter, a variable one a short pile, and the caption gives the scale
@@ -566,7 +578,8 @@ clade's motif rather than the file's, and the caption names how many tips that
566
578
  is (`n = 12`). Two consequences worth knowing: gaps are not a letter —
567
579
  frequencies are taken over the residues present, and the stack is then scaled
568
580
  by the column's occupancy, so a column held up by two sequences out of fifty
569
- draws short rather than perfectly conserved; and there is **no small-sample
581
+ draws short rather than perfectly conserved and an all-gap column draws
582
+ nothing; and there is **no small-sample
570
583
  correction**, because entering a three-tip clade is a normal thing to do and
571
584
  Schneider's correction would subtract more than the maximum and leave the
572
585
  column blank. Read `n` and judge.
@@ -1040,11 +1053,13 @@ each with a checkbox under Display Data to turn it off.
1040
1053
  Support and branch-length values draw **2 px smaller than the label font**
1041
1054
  (never below 6 px), as on the desktop, so they annotate without competing.
1042
1055
  And besides the numeric display there are **Support Dots**: a filled dot at
1043
- the midpoint of every branch whose support is at least 95% (`supportDotMinimum`;
1056
+ the midpoint of a branch whose support is at least 95% (`supportDotMinimum`;
1044
1057
  posterior- and bootstrap-scaled trees are told apart automatically). The dot
1045
1058
  is always a fixed amount wider than the branch itself, so it tracks the
1046
1059
  Branch Width slider instead of sitting at one fixed size. A branch drawn
1047
- shorter than the dot itself stays clean.
1060
+ shorter than the dot itself stays clean, and so does one whose dot would land
1061
+ on a dot already drawn — see the crowding rule below, which is what decides
1062
+ between them rather than either one being shrunk.
1048
1063
 
1049
1064
  The **control panel itself** follows the same idea. It opens showing the
1050
1065
  sections that describe the tree — what it can be coloured by, what it shows —
@@ -1059,7 +1074,69 @@ never at all on a tall screen. Growing the window back leaves the folds where
1059
1074
  they are: what is open is your choice, and only running out of room overrules
1060
1075
  it. Anything that puts something into a folded section opens it, so jumping to
1061
1076
  the search box (⌘F / Ctrl+F) or a tool reporting its result as search hits
1062
- unfolds Search. A host with little room to give can
1077
+ unfolds Search. The **ⓘ** button in the panel header (or ⌘I / Ctrl+I) opens **Tree
1078
+ properties**, modelled on the desktop Archaeopteryx's *View › Tree
1079
+ Properties* and read-only:
1080
+
1081
+ * **Tree** — name, description, identifier, type, branch-length unit,
1082
+ rootedness and rerootability (each shown only where the file actually says
1083
+ so), and "tree 2 of 3" when the file held several.
1084
+ * **Structure** — tips, internal nodes, total nodes, branches, whether the
1085
+ tree is fully binary or how many polytomies it has and the widest of them,
1086
+ depth from root to deepest tip, the longest tip label, and how many internal
1087
+ nodes are named.
1088
+ * **Branch lengths** — how many branches carry one, then **minimum, median,
1089
+ maximum and mean**, the sum as total tree length, the height from root to
1090
+ farthest tip, any zero-length or negative branches, and whether the tree is
1091
+ ultrametric.
1092
+ * **Support** — the same n / minimum / median / maximum / mean, **one section
1093
+ per kind**. A bootstrap and a posterior on the same branch are not on one
1094
+ scale, so they are never pooled; MAD values are not support and are counted
1095
+ with the annotations instead.
1096
+ * **The tree carries** — taxonomies (and how many are distinct), taxonomy
1097
+ identifiers, sequences, molecular sequences with the alignment width, domain
1098
+ architectures, dates, distributions, events, branch colours, and **every
1099
+ phyloXML property `ref` with the number of nodes carrying it** — each as
1100
+ "n of m tips" or "n of m nodes".
1101
+ * **Time** — geologic ages or calendar years, dated nodes, the oldest node or
1102
+ most recent tip, and whether there are confidence intervals.
1103
+
1104
+ It describes what is on screen, so inside a subtree it describes the subtree
1105
+ and says so, and it is recomputed each time it opens rather than cached (24 ms
1106
+ on the 13,246-tip demo). There is no histogram.
1107
+
1108
+ **Auto-hide Labels** also thins out **crowded branch data**. Support values,
1109
+ branch-length values and support symbols are drawn only where they fit: each
1110
+ mark claims the box it is about to occupy, and one that would overlap a box
1111
+ already claimed in that pass is left out. The claim order is the tree's own,
1112
+ root first, so the mark nearer the root keeps its place and the same tree at
1113
+ the same size always drops the same marks — on screen and in every export.
1114
+ Numbers and symbols are kept in separate maps, since the symbol sits on the
1115
+ branch and the numbers just above and below it. Symbols are never shrunk to
1116
+ fit: where a symbol's size means something, a smaller one would report
1117
+ something else. Switch the toggle off and everything is drawn. Zero needs no
1118
+ special case — a lone zero-length branch overlaps nothing, so its number
1119
+ stays. Branch events take part too. This is the desktop Archaeopteryx's rule,
1120
+ adopted so the two programs thin the same tree the same way; the marks they
1121
+ drop are close but not identical, because the boxes come from each program's
1122
+ own font metrics.
1123
+
1124
+ It applies in **all three layouts**. In the circular and unrooted views a mark
1125
+ rides its branch: it is drawn at the branch's midpoint, turned to the branch's
1126
+ direction and set just off the line, so the box claimed for it is the
1127
+ axis-aligned bounds of that turned rectangle, centred where the text's own
1128
+ centre lands — the desktop's formula, which carries over because both programs
1129
+ measure it in real screen space rather than in the layout's own units. A
1130
+ diagonal label's bounds are wider than its ink, so a crowded number is dropped
1131
+ rather than overprinted. The circular view of `flu_h5.xml` goes from 785 drawn
1132
+ numbers, 743 of them overlapping another, to 87 with none.
1133
+
1134
+ One placement follows from that: in the two radial views every mark is drawn on
1135
+ the same point, the branch's midpoint, so a **branch event** sits a line clear
1136
+ of the branch-length value rather than on top of it. In the rectangular layout
1137
+ they are already apart along the branch and share the line above it.
1138
+
1139
+ A host with little room to give can
1063
1140
  also start the whole panel tighter and narrower with
1064
1141
  [`panelDensity: 'compact'`](#configuration), or collapsed to its header bar
1065
1142
  with `collapseControlPanel`.
@@ -1097,7 +1174,7 @@ copy-pastable JSON.
1097
1174
  | `layout` | `'rectangular'` | The starting layout: `'rectangular'`, `'circular'`, or `'unrooted'`. |
1098
1175
  | `ladderizeTree` | `true` | Ladderize the tree on load: at each node, the larger clade first (any number of children, so a polytomy sorts too). |
1099
1176
  | `showMsa` | tree-derived | Open with the alignment track shown. Default: on when the tree carries an aligned `mol_seq`, off otherwise — an explicit `true`/`false` overrides that. |
1100
- | `showMsaLogo` | `false` | Open with the alignment summarised as a sequence logo instead of a conservation bar: each column a stack of letters as tall as its information content, over the tips currently on screen. Only drawn while the alignment track is shown. |
1177
+ | `showMsaLogo` | `false` | Open with the alignment summarised as a sequence logo instead of a conservation bar: a stack of letters per column, as tall as its information content, over the tips currently on screen. Only drawn while the alignment track is shown. |
1101
1178
  | `showHeatmap` | `false` | Open with the heat map shown. Offered whenever the tree carries two or more numeric per-tip fields, but off unless asked for: almost any annotated tree has such fields, so turning it on by itself would be an opinion about the tree rather than a service. |
1102
1179
  | `heatmapColumnOrder` | tree-derived | How the heat map's columns are ordered: `'document'` (as the file lists them), `'clustered'` (Euclidean), `'clustered-presence'` (Bray–Curtis), `'alphabetical'`, `'frequency'`. The clustered modes also draw the dendrogram. Default: a **clustered** order, with the distance chosen from the values — Bray–Curtis where the matrix has zeros to ignore and nothing negative, Euclidean otherwise. An explicit value always wins and is never re-derived. |
1103
1180
  | `heatmapManualOrder` | `null` | The heat map's columns in your own order, as an array of property refs (`['meta:recA', 'meta:gyrA', …]`). Only read while `heatmapColumnOrder` is `'manual'`. A ref the tree has not got is ignored, and a column the list does not name follows the ones it does. |