TEagle v3.4.0
This release is mostly about answers TEagle no longer gives. Two rounds of review went looking for places where a result claimed more than the evidence behind it, and every one of them now withholds the claim, qualifies it, or shows the limit that was previously invisible.
Results may differ from 3.3.0 for three classes of element. In every case the earlier answer was the confident one and the new answer is the honest one.
Calls that claimed more than their evidence
A Copia/Gypsy call is no longer made from an unreadable arrangement. Copia and Gypsy are told apart by whether the integrase sits before or after the reverse transcriptase in translation order. That order is recovered by negating the minus-strand coordinate — correct within one strand, meaningless across two. Measured: with the integrase and RT on opposite strands, moving the integrase from far upstream to far downstream of the RT produced the identical verdict. The comparison had collapsed to "which of the two is on the minus strand." Such an element is now reported as superfamily undetermined — which is what the manual already said the tool did.
A protein-domain scan that crashed no longer reports "not detected". The empty result was passed to the classifier, which then listed every unfound domain as absent. An environment failure was indistinguishable from a finding about the sequence.
The search budget is disclosed. Only the twelve longest open reading frames are searched. On a record with more, the shorter ones were never looked at, yet still fed the visible "not detected" list. The record now says how many were left out.
A Helitron is no longer filed as a retroelement. A helicase hit fell through to a generic branch and emerged classed as Class I retro, labelled "transposase not detected" on a record where the diagnostic domain was found. The class is left unassigned. No Helitron superfamily call is made — that standing decision is unchanged.
A terminal repeat rejected on identity leaves a trace. The detector accepts a pair at ≥80% identity and previously discarded anything below it silently. LTR copies are identical at insertion and diverge with time, so that floor is an age limit: the detector is blind to older elements by construction, and reported that blindness as absence. A pair failing only the identity test is now listed as an advisory candidate carrying its measured identity — and cannot be mistaken for a confirmed one. Below roughly 72% identity the k-mer seeding stops finding the pair at all, which no threshold change recovers; that is stated too.
The confidence tier follows the evidence ledger. A terminal inverted repeat that does not enclose the transposase was already refused credit by the completeness ledger, yet still lifted the badge out of Candidate. Two records with identical ledgers no longer get different badges.
In-silico PCR says when it stopped early, instead of letting a truncated search on a repetitive template read as a clean specificity result.
New
A coding-structure line beside the completeness tier. The tier is a domain-ledger verdict: it reports partial whenever an expected model was not detected. Read alone that says decayed — which is why other tools call the same element "intact". The card now states separately whether the domains that were detected sit in one uninterrupted reading frame, so "a module we did not detect" is never confused with "a broken copy". The tier value itself is unchanged.
Genome-anchored GFF3 and BED export. When the specimen came from a coordinate fetch, the annotation can be written against the chromosome with every feature offset into genome space, so bedtools intersect and a genome browser find it. A minus-strand fetch is refused rather than shipped subtly wrong — remapping those needs a flip, not an offset.
The thresholds that decide the result are sealed. The analysis manifest sealed one parameter while every decisive number — HMMER E-value, the LTR and TIR identity floors, the PPT purine fraction, the TSD window, the ORF budget — lived only as a function default. Twenty are now sealed, read from the functions that apply them, so a changed default changes the seal. The manifest hash for identical input therefore differs from 3.3.0.
Exports carry their caveats. The scope notes shown beneath a table travel into the file, and coordinate columns are exported under headers that spell out the convention.
Fixed
- A finished whole-genome annotation is shown. It previously completed with no banner and no results window, while discarding an annotation announced a fabricated completion.
- Deleting a cached genome is refused while an annotation is reading it, and the refusal is visible rather than silent.
- Every export is written atomically, so an interrupted write cannot leave a complete-looking half-file over a good one. A failed export explains what to do.
- File-open and backend failures report in plain language instead of an errno with a full filesystem path.
- The ViennaRNA cross-check distinguishes "ran, found no structure" from "engine not installed".
- Degenerate IUPAC bases are reported — a sequence a third R/Y/W read "valid" beside "N content 0.0%".
- The TSD method text states the 2–12 bp window it actually searches.
- Numeric table columns align so digits line up; scope prose moved out of the data typeface; cards ease open and closed, honouring the Windows "show animations" setting.
- At high UI scale in a narrow window the figure toolbar was clipped and unreachable.
Documentation
Thirty claims across the user manual and the technical report were audited against the code and corrected. All 44 figures were re-captured from this build through the pinned harness. Both PDFs were rebuilt and inspected page by page — 50 of 50 pages, no defects found.
Note on the installer
The installer is not code-signed, so Windows SmartScreen will show "Windows protected your PC". Choose More info → Run anyway. On a managed laptop the prompt may be blocked outright, in which case your IT team has to approve the executable.