archaeopteryx 3.5.0 → 3.6.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
@@ -296,8 +296,11 @@ so every branch and position is scored by how far the tip pairs' ancestors
296
296
  fall from that halfway point, and the root goes where that deviation is
297
297
  smallest [1]. It has been compared with other rooting methods on prokaryotic
298
298
  gene families [2]. It needs branch lengths and at least three tips, and is
299
- offered only then. The algorithm is the desktop Archaeopteryx's, and gives
300
- the same roots; it runs in O(n²) time and O(n) memory (the 13,246-tip H5N1
299
+ offered only then. Tip pairs closer than 1/100,000 of the tree's diameter
300
+ (identical sequences, or FastTree's 5 × 10⁻⁹ stand-in for a zero branch) are
301
+ left out of the deviation sums: their deviation measures noise, and summing
302
+ it would swamp the precision of all the others. The algorithm is the desktop
303
+ Archaeopteryx's, and gives the same roots; it runs in O(n²) time and O(n) memory (the 13,246-tip H5N1
301
304
  demo tree roots in 0.4 s, measured in Node).
302
305
 
303
306
  Every internal branch then carries its **MAD value**: the root-mean-square
@@ -630,17 +633,19 @@ viewer.destroy(); // unmount COMPLETELY: the container DOM, the node
630
633
  // handler; a later launch() works normally
631
634
  ```
632
635
 
633
- **Big trees draw on the next frame.** Above 3,000 nodes, `launch()` does all
636
+ **Big trees draw on the next frame.** From 5,000 nodes, `launch()` does all
634
637
  its validation, shows a "Drawing N nodes" card over the tree area, and
635
638
  returns within milliseconds — the label analysis, visualization candidates,
636
639
  control panel and the draw itself all run one frame later, so the browser
637
640
  can paint the card instead of appearing frozen for the seconds a large tree
638
641
  takes. Every error still throws synchronously from `launch()`
639
642
  exactly as before; only the draw is deferred. `viewer.ready` resolves when it
640
- has run (immediately for a small tree, which stays fully synchronous). Later
641
- redraws on a big tree — a checkbox, a slider, a search — work the same way:
642
- they show a "Redrawing" card and run on the next frame, and every redraw
643
- requested in the same tick collapses into one. Wait on `ready` before reading
643
+ has run (immediately for a smaller tree, which draws synchronously). Later
644
+ redraws — a checkbox, a slider, a search, the mouse wheel — run on the next
645
+ animation frame for a tree of any size, and every redraw requested before
646
+ that frame collapses into one: a wheel flick is one redraw, not one per
647
+ notch. A "Redrawing" card appears only when the tree's previous redraw took
648
+ 300 ms or more on the computer it runs on. Wait on `ready` before reading
644
649
  the tree's DOM after `launch()`:
645
650
 
646
651
  ```js