Changelog
This is a continuously updated resource: every deploy is a numbered version, and this page records what each one added, corrected, or removed. The live site is currently running v124 (2026-10-20). Per-gene diffs against the Mycobrowser baseline live in a separate per-gene changelog (CSV); this page tracks the site itself.
v124 — 2026-10-20
- Gene pages are lighter to read. A short "At a glance" panel at the top of each page gives the verdict, the revised function and the confidence, then up to eight facts read from the page's own layers (domains, structure, conservation, essentiality, localisation, interaction partners, UniProt, literature), each linked to its full section; 23 evidence layers now start collapsed. Nothing was removed: the long sections are one click away, and the page of Rv1462 drops from about 11,900 px to about 4,150 px of scroll.
- The About page says how the text of a gene page is produced. Template-generated, quoted from a source, or individually curated with the help of an AI coding agent under the author's validation, and that every page passes the automated coherence engine. It also states the release and update policy: corrections published within one month, external layers re-queried at least every three months, full pipeline re-run at least once a year, each scheduled refresh archived on Zenodo.
- The network view says what it shows. Each gene's partner list is capped, so the drawing is now labelled "Extract, not a topology" with the number of partners shown out of the full degree, or "Complete at this threshold" when no list is capped. No data changed.
v123 — 2026-10-18
- Gene pages now say when a table shows only part of what its header counts. Conditional Tn-seq phenotypes (169 records: the table lists the strongest 12 by |log2FC|, not all of the significant conditions), RB-TnSeq fitness (3 records, strongest 14 by |t|), intrinsically disordered regions (1 record, first 8 listed) and sub-threshold Pfam hits (38 records, whose summary used to say "all N" above a table of N−1 rows because the best hit is shown separately). No data changed, only what the page tells the reader about its own truncation.
- A consistency rule now guards the counters of uncapped lists (iModulons, post-translational modifications, pupylome peptides, STRING partners served): an announced number must match the list rendered below it. All 3,974 records pass.
v122 — 2026-10-18
- Four records no longer announce more regulators than they list.
Rv0167,Rv0168,Rv0171andRv2107said "Regulated by (18 TF)" (20 forRv0171) above a list cut at 15. The cap is lifted and the full lists are served; the cut had removed the transcription factors with the highest locus numbers, among them CRP onRv2107. With it visible,Rv2107shows the same opposition asRv3681c: the signed network has CRP activating the gene, whereas a ΔCRP RNA-seq experiment (Kahramanoglou et al. 2014) measures repression. Both signals are real and the page now says so. A consistency rule checks that an announced regulator count matches the list. - 52 pages now state a conflict they used to leave implicit. They assert "evidence at protein level" while the same page serves a mass-spectrometry non-detection; each carries a note naming which channels (ribosome profiling, structure, UniProt annotation) do support the protein.
- Foldseek tables report the TM-score normalised by the query as well as by the alignment, with identity and coverage on both sides, on 3,763 records (29,997 hits). 4,918 of the 23,070 significant hits have a query-normalised TM-score below 0.5, a case the previous column hid. The Mol* structure viewer frame was fixed so its panels no longer overflow at browser zoom levels above 100 %.
- Domain-coherence check on inherited enzyme annotations. Eleven records whose EC number was inherited from an orthologous group whose catalytic domain the protein does not carry (nine PE/PPE-family proteins,
Rv0627,Rv1868) now carry a "Domain check" line. The About page states how the texts are produced and how the atlas is kept up to date. - STRING evidence and
Rv2472. The statement of what STRING's "experimental" channel covers is bounded (it includes orthology-transferred evidence), andRv2472no longer claims a "second independent handle": its function rests on the sequence-search cascade alone.
v121 — 2026-10-15
- Correction to the v120 notes. They announced that three records (Rv2438A, Rv3196A, Rv3531c) had moved from "family assigned" to "dark". That is not what the site serves: an ingestion rule recalibrates a hand-curated record that carries an assigned function back to "family assigned", so these three are still served that way and the verdict counts are unchanged (dark 214, family assigned 1,945, requalified 1,815). The statement was withdrawn from v120; the conflict between the curated verdict and the ingestion rule is being resolved.
v120 — 2026-10-15
- STRING evidence now says where it was measured. 99.0 % of the interaction edges that carried "experimental" support were transferred by orthology from other proteomes; only 106 pairs (0.27 %) rest on an interaction measured in M. tuberculosis. On the 3,942 gene records that have STRING partners, each partner list now states how many partners were measured in this species and whether the list is cut at the 15-partner cap, and the "closest characterised functional partner" (3,758 records) says whether its support was measured, curated or only transferred. Seven pages that credited an experimental STRING score without saying so were reworded (four had based their family assignment on a transferred score of 756-997, with no measurement in this species); one page that attributed its score to a two-hybrid screen which does not contain the pair was corrected. The network page now says it shows an extract (for example "12 of 351 direct partners") instead of presenting the drawn nodes as the gene's partners.
- The coverage limit of the full-text literature search is now written on 1,089 gene records (285 in v119): Europe PMC full text covers about 8-13 % of the TB literature published before 2005, 21 % for 2005-2009, 40 % for 2010-2014 and 66 % since 2020, so the absence of a hit says little about older mentions. The paper counts quoted in 14 literature summaries were corrected.
- The REMap operon-agreement significance was corrected on 12 records. The statement that REMap agrees with the proposed operon-based requalifications more often than chance (9/10, p = 0.005) used a null computed over all adjacent gene pairs; opposite-strand pairs cannot form an operon, so the right null is the rate over co-directional pairs only, and the agreement is then not significant (p = 0.116). Neither operon map supports those requalifications on its own.
- Phylogenetic age no longer overstated for 62 short genes. Their "universally conserved" wording rested on the detection of a single Pfam domain; they now say that the domain is widespread without establishing an ortholog, with a "domain-level" badge.
- Eleven still-uncharacterised genes show the partners predicted by Humphreys et al. 2024 (co-evolution and structure screen), with their provenance, the authors' precision ceiling (6 validations out of 12) and a caveat for the four partners that are RNA or ribosome components. Predictions are never counted among the measured interactions.
- AlphaFold3 complex predictions described for what they are on the toxin Rv2663 and the antitoxins Rv2664 and Rv2308: a seed with a score of 0.61-0.63 in the uncertain zone and no matched decoy, not a "credible interface" or an "absent complex" (for Rv2308 the partner is unfolded and does not test the pairing).
- Rv3909 now names the structural template behind its "Asp383/Pro505" residues, and its selection claim is restricted to what the data carry: Pro505 is ancestral and constrained in the genus, but dN/dS is 0.47 (95 % CI 0.12-1.97), which does not exclude neutrality.
v119 — 2026-10-01
- The selective-pressure ("conservation") layer was recomputed without the M. canettii group. The frequency floor used to count M. canettii strains, which sit outside the MTBC proper and biased calls towards purifying selection. Recomputed on a 2026-09-29 snapshot (142,601 pooled strains), about 3,900 gene records changed; genes called "strong purifying selection" fall from 147 to 63, and many more are now reported as quasi-invariant or under-powered (too few variable sites to conclude) instead of purifying. The per-clade disruption blocks were replayed on the same snapshot (no block names M. canettii any more), and free-text sentences quoting pre-recomputation numbers were corrected on 12 pages (for example Rv2597 moves from "purifying, pN/pS 0.347" to "quasi-invariant, under-powered").
- "Never studied" is now worded as what was actually checked. Europe PMC full text covers only 8-13 % of the TB literature published before 2005 (66 % since 2020), so the absence of a hit is weaker evidence for older genes. The badge now reads "no title/abstract or full-text mention found", with a tooltip giving these coverage figures. 285 gene records carry an explicit caveat on their full-text search; 130 are flagged as partly unverifiable.
- 19 literature summaries contradicting their own evidence were corrected (for example a record that called a gene "genuinely unstudied" while the full text named it as a validated HicA toxin), and 10 sentences claiming "no publication mentions this gene" were restricted to title and abstract.
- One over-stated claim was withdrawn from the Rv2660c page, and three gene records whose dedicated study had been completed (Rv0537c, Rv2628, Rv2892c) are now sealed against being overwritten by automatic curation.
v118 — 2026-09-26
- 89 hand-reviewed gene records still told the reader they hadn't been. Their
evidencefield carried a note inherited from automatic curation ("auto-curated by rules ...; not hand-reviewed") that a later hand review had superseded without updating the wording. The note now reads "initial automatic assignment: auto-curated by rules ...; superseded by hand review" — same origin, corrected claim, nothing else on these pages changed. - Three loci where an MTBC0 re-anchoring search was possible now say what it found. Rv0943c, Rv1313c and Rv2812 previously left this search unstated; each page now states that no complete ancestral ORF candidate was found at the locus, rather than defaulting silently to an unstated assumption.
v117 — 2026-09-26
- A source label on 28 pages was one step behind the pipeline that produces it. Their structural search evidence cited "HHpred (MPI Toolkit)"; the underlying method is more precisely a profile-profile search run through the MPI Toolkit's web service, and the label now says so ("HHpred profile-profile (MPI Toolkit web)"). Wording only: no verdict, confidence or evidence content changed on any of these pages.
v116 — 2026-09-23
- The interaction network, and the "closest characterised functional partner" it names, were not reading this atlas's own annotation. Both relied on the hypothetical flag inherited from Mycobrowser, which is frozen at its original value and never updated by curation: of the 1,086 genes it marks, 924 have since been assigned a family or requalified. The flag did not merely label a page, it selected what the page offered as evidence. As a result, 65 pages presented as "characterised" a partner that this atlas itself leaves uncharacterised; 696 named a partner less well supported than the best one available, because the better candidate had been skipped for carrying the stale flag; and 129 pages named none at all although a qualified partner existed. The selection now reads the current verdict, and those pages name a partner again, or correctly name none: 7 pages lost their only partner, which was an uncharacterised gene with no replacement, and saying nothing is the honest outcome there.
- The "hyp" badge on partner lists is now "dark", and means what it says. It marks a gene this atlas still leaves uncharacterised today, not one Mycobrowser once labelled hypothetical. 8,996 badge occurrences across 2,968 pages were showing the second while reading as the first. Dashed nodes in the network diagrams follow the same rule. Where a statement is genuinely about the historical record, the wording continues to say "legacy" or to name Mycobrowser explicitly.
- Ten PE/PPE pages carried a family sub-classification that their own domain evidence did not support, and it has been corrected.
- Two pages returned to "dark". Rv2705c and Rv3531c had been assigned a function on the strength of a match that later inspection invalidated. Rv2705c now proposes no function, having no independent support left. Rv3531c keeps the cholesterol and kstR context that is genuinely observed (operon, regulon, partners, phenotype) without claiming a precise molecular function.
v114 — 2026-09-19
- One page claimed a protein is exported by the ESX/type VII pathway while the same page predicted the signal peptide that rules that pathway out. Rv0965c was curated as a WXG100-like, ESX-secreted protein on the strength of a high TM-score against EsxB structures. Re-read against the record's own layers, that attribution does not hold: the sequence carries no WXG motif, the structural match is not significant in either search (E=0.11 on the ESMFold model, E=0.010 on the AlphaFold model), the gene sits outside any esx locus, and type VII substrates are defined by being exported without a signal peptide. What is observed is kept — a small helical hairpin resembling EsxB, and a predicted Sec-dependent secretion — and the family attribution is gone.
- One page understated its own evidence. Rv0193c cited only the structural search run on its low-confidence ESMFold model, which made a reasonable assignment look like a gamble. The search run on its AlphaFold model — a confident one — independently returns a significant match to a non-heme alpha-ketoglutarate dioxygenase, agreeing with the eight ESMFold hits to the same 2OG-Fe(II) superfamily. Both searches are now cited, and the page says plainly that no catalytic-residue check has been done, so the activity itself is not established.
v113 — 2026-09-19
- The Methods of the accompanying manuscript promise that a structural hit is discounted when the predicted model is unreliable; the curator never read the model's confidence at all. Two guards now exist where the rule actually lives. A hit no longer carries a functional assignment on its own when the ESMFold model falls below mean pLDDT 70 and nothing else supports it — with the exception, which a literal reading of the published sentence would have got wrong, of a model matched to the experimental structure of that very gene, where low model confidence is beside the point. And a hit must now be statistically significant whichever branch of the rule retains it: one branch previously accepted a near-identical fold with no significance requirement at all, which is independent of model confidence and reached pages whose model is excellent. Measured before applying, on all 3,974 records: exactly one served verdict changes, Rv3440c, whose single supporting hit had an E-value of 1.27 against a fungal protein with no named function of its own.
- Structural neighbour tables now label a hit that is the gene's own experimental structure. For eleven genes the best "structural neighbour" is a PDB entry of that same protein: true, but misnamed under that heading, since a fold shared with oneself validates the predicted model rather than suggesting a function. The hit stays, under an explicit
self-matchlabel.
v112 — 2026-09-19
- Eleven gene pages called a locus a pseudogene candidate on the strength of a variant that does not truncate the protein. The
pseudogene_flagbadge is mechanical: it counts disrupting alleles and their frequency, and never checks where the real stop codon falls. Each of the 105 flagged loci whose variant protein is not a simple truncation was re-examined one by one — translated to its true stop rather than to the annotated CDS boundary, checked for placement ambiguity and 31-mer uniqueness, and polarised against 13 closed complete MTBC assemblies. Eleven badges have been withdrawn, the clearest being Rv1143/mcr, where the reported insertion lies inside the stop codon and leaves the 360-residue protein strictly unchanged, and Rv2148c, where the frameshift falls in the last codon. Eight further loci keep the badge but now state that the variant produces a full-length protein with a non-native C-terminal extension of 36 to 752 residues rather than a truncation — not a truncation, and not evidence of a working protein either. Every one of these 19 pages carries the measurement, its variant and its provenance, and the correction is applied at the source layer so that a future re-export cannot silently undo it.
v111 — 2026-09-18
- 3,304 gene pages carried a CRISPRi vulnerability caveat that judged the fit's support by the number of guides tested, a number that turns out not to predict it. Bosch et al. (2021) publish the quantity that does — the span of repression strengths their guides actually sampled for a gene — and it was never read. Pages now say whether the gene's guide library included a short guide (needed to sample partial knockdown at all): 73 pages did, and their caveat now says the fit's uncertainty is the authors' own confidence call, not a data shortage; 3,231 did not — every guide for these genes falls in the length range where repression strength saturates, so the underlying dose-response fit was never really constrained by data, a limitation of the screen's design for non-essential genes rather than a defect of this specific measurement. This caveat is now also shown on the page itself, not only through the API as before.
v110 — 2026-09-18
- Up to 1,044 gene pages carried a "never studied" badge although at least one paper names the gene in its full text. A second, older full-text field (distinct from the one fixed in v109) was written to every gene record with a corroborated hit but read by no page. The badge now checks it too, and pages that only had this field now show "named only in full text" together with a short callout naming how many papers and under which name they were found, though without the per-paper list the v109 field carries.
- 228 gene pages report a transposon-mutant phenotype for
marPwith no source, and 109 of them also report an antibiotic-exposure phenotype from Xu et al. 2017 (Antimicrob Agents Chemother 61(12):e01334-17) as if it were unrelated evidence. ThemarPcondition traces to an unpublished 2017 PhD thesis by the same author as the 2017 paper, almost certainly using the same transposon library — the two are not independent lines of evidence. Both conditions now carry a note on the pages where they appear: the source of themarPcondition, and, where both conditions co-occur, an explicit caveat that they should count as one line of evidence, not two.
v109 — 2026-09-18
- 351 gene pages carried a "never studied" badge above a list of papers that name the gene. The badge rests on a sweep of titles and abstracts only, and the same page listed, lower down, publications found by a full-text search of Europe PMC that name the gene in their body text. The full-text field even states its own purpose ("This field exists to retract an absence claim"); the badge was not reading it. Those pages now carry the badge "named only in full text", which says exactly what is known: no title or abstract names the gene, at least one body text does, and being named is not being characterised. In the same pass, the label of the literature layer on 1,092 pages, which said "no publication mentions this gene", now says "no publication mentions this gene in its title or abstract", the only claim its source supports. No category, count or verdict changes; 932 pages keep the "never studied" badge, 86 of them with no second source queried yet.
- 2,162 pages served three literature counts as if they were one total and its two parts, and on 343 of them the arithmetic was impossible (a total smaller than one of its "parts", or larger than their sum; for instance 682 publications, "573 in a M. tuberculosis context, 108 in other mycobacteria"). The three numbers come from three separate PubMed queries with different context filters, and the total is text-verified when small while the context counts are raw query volumes, so they neither partition the total nor add up to it. The sentence now says so, names which count is text-verified, and attributes the species breakdown to the verified sample it actually comes from. None of the numbers changed.
- 869 pages said "All N publications found for this gene" directly under a different, larger count in bold. The exhaustive list is a title-and-abstract sweep and claims no exhaustivity; the wording now reads "N records returned by the alias sweep", and where the two counts differ below the threshold that opens the existing explanatory callout, a short clause says they come from two separate sweeps, both shown, neither exhaustive.
- 943 pages captioned their short literature table "Most recent N of M", and on 54 of them a paper verified to name the gene, up to 24 years newer, appeared only in the exhaustive list below. The short table is the head of the curated sweep in PubMed entry order, not a sort by publication date, and that sweep predates the exhaustive one. The caption now says that, and points to the exhaustive list for newer papers. The table itself is unchanged.
- For five genes whose ancestral sequence was restored in an earlier release (Rv1086, Rv2195, Rv2335, Rv2805, Rv3876), the API still served an arbitration block announcing the protein length from before the correction as "length served". The page was unaffected (that block is rendered only for flagged anchors), but the JSON record was contradicting itself. The block is kept as the record of the earlier measurement and now states that its length is historical and where the current one is; a new intra-record coherence rule catches any future recurrence.
v108 — 2026-09-16
- 2,110 gene pages were serving their selection verdict in French. For genes that the statistical-power guard sets aside from a graded pN/pS call, the
conservationlayer rendered its label verbatim asquasi-invariant (6 sites), pN/pS sous-puissant— French text on an English-language resource. The label now readspN/pS underpowered. Nothing about the underlying verdict changes: these genes carry too few segregating sites across 145,209 genomes for a graded selection call, and the site count itself remains the signal worth reading. The same pass fixes an agreement error in that label, which read(1 sites)on the 224 pages where a single segregating site was found. - The fix was applied at every level of the chain that produces this label — the script that composes it, the intermediate file the export reads, and the served records — so that neither a re-export nor the next full recomputation can reintroduce the old text. Verified on the served database rather than on a script exit code, with a negative control confirming the English labels of the other selection classes were left untouched.
v107 — 2026-09-16
- 243 public pages were stating the transcription start site of a different gene as their own. The
tsslayer (Cortes et al. 2013, Table S3 re-annotation-candidate subset) was keyed by row position rather than by gene identity: the row labelledRv1899c, for instance, carried the exact coordinates ofRv0118c, two megabases away — not an adjacent-row slip, but a desynchronisation of the identity columns from the numeric ones somewhere upstream of this site, never traced to a single constant offset. All 679 rows of the source table have now been re-matched to the H37Rv genome by coordinate instead of by the row's own label — against the full 3978-gene annotation, with zero ambiguous matches, so every match found is unique. 664 pages carried atssclaim before this fix: 647 now carry their own locus's real data, recovered from the row that actually describes it; the remaining 16 had the claim removed rather than guessed, because their source row could not be matched to any locus tag in the current genome annotation (stale identifiers, most likely superseded Tuberculist tags). - Rv2569c's page called its measured active site a "serine protease" because the paper that found it did — the residues it reports are not a serine protease's. Zang et al. 2024 matched the predicted fold of Rv2569c to human coagulation Factor XIII, a transglutaminase (M-CSA entry 149), and measured a Cys-His-Asp catalytic triad there, then titled the finding around a different enzyme class. Re-measured here independently on this atlas's own structural model rather than taken on trust: Cys196(SG)-His239(ND1) at 3.69 Å, His239(NE2)-Asp259(OD2) at 2.74 Å, pLDDT 95-98 — the same geometry, but M-CSA 149 itself assigns that triad to protein-glutamine gamma-glutamyltransferase activity (EC 2.3.2.13), not to a serine protease. The page's verdict moves from a tentative fold match to a confirmed catalytic mechanism (confidence: medium → high), now backed by a second, independent line of evidence (El-Etr et al. 2004) rather than the single 2024 paper. That same 2004 paper, on the M. marinum orthologue, tested this gene under the name
melEand named the five-gene locusmel1it belongs to — both now on the page, together with four more recent papers that mention this gene in their body text without ever naming it in a title or abstract, and were therefore invisible to this site's literature count until searched full-text rather than by title/abstract alone. - A companion manuscript's status stayed "submitted" on this site after it had already been accepted. Rv2438A's page cited its reproducibility companion study as "submitted to mSystems" under a title since abandoned; that submission was rejected on 2026-08-09, the manuscript was revised, and it was accepted on 2026-09-16 by the Journal of Microbiological Methods (MIMET-D-26-01013R2). The reference and the note quoting its old title and status now reflect the accepted paper. The Zenodo reproducibility DOI already cited is unaffected; the article itself has no DOI of its own yet, still in production at the publisher.
v106 — 2026-09-12
- This site told machine consumers that 2946 proteins were cytoplasmic, on the strength of a predictor that never said so. The localisation layer reports the output of DeepTMHMM, which predicts membrane topology and Sec/Tat export signals. Its
GLOBclass means exactly one thing: no transmembrane helix and no signal peptide was found. This site translated that as "predicted cytoplasmic / globular" — a compartment the predictor does not measure, and an inference added here rather than a result. The evidence that it was wrong was already on this site: the 12 Esx paralogues of the atlas, including EsxA/ESAT-6 and EsxB/CFP-10, the best-established secreted proteins of M. tuberculosis, all carried that same label, because substrates of the type VII (ESX) secretion system leave no recognisable signal peptide. The label now reads "no signal peptide, no TM helix (DeepTMHMM class GLOB)". Scope, stated precisely: the phrase reached the REST API and the downloadable JSON only. The gene pages never displayed it, because the localisation section did not open on a bareGLOBcall — so no page was showing a wrong compartment, and 2946 API records were. - Those 2946 pages were silent about localisation, and now say what was looked for and not found. A verified absence is information: each of these pages now states that no signal peptide, no transmembrane helix and no lipobox was found, and immediately adds the reservation that makes the statement usable — in this organism, "secreted" and "no signal peptide" are true together, as the Esx family shows. No cytoplasmic conclusion is drawn anywhere on the page.
- Two proteins now carry a MEASURED localisation, with its method and its limits, next to the prediction rather than instead of it. Rv2569c is reported predominantly in the cell-wall fraction of H37Rv and at the cell surface by immunoelectron microscopy (Zang et al. 2024, PLoS Pathog 20(5):e1012214), and the page says that this does not contradict the prediction, which speaks of signals and topology and not of compartments. It also says what the measurement does not settle: the fractionation blot shows only Ag85B, itself a wall-associated and secreted marker, and no cytoplasmic marker (RpoB, GroEL2) — the control that decides whether a wall fraction is clean — so the wall/cytoplasm partition is weaker than the surface localisation, which rests on the microscopy. Rv1761c is the opposite case: solution NMR resolves one transmembrane helix plus a ~10 kDa extramembranous domain (Page et al. 2009, Protein Sci 18:134-146) where the predictor finds no helix at all, so the page says the experiment contradicts the prediction and that the structure is what should be read — while carrying the authors' own caveat that a detergent micelle is not a membrane. The prediction itself is kept exactly as produced in both cases: a layer whose provenance says DeepTMHMM must keep saying what DeepTMHMM said.
- A JSON endpoint published in the manuscript had been answering 404 for six days, and answers again.
/api/genes, cited in the paper as the companion endpoint for programmatic access, is still declared in the application and still works locally; the move to static hosting on 2026-09-06 simply stopped freezing it, and nothing noticed. It is frozen again, returns the complete collection, and says so — theqsearch parameter cannot be applied by a static host, and that is stated in the response rather than silently ignored. The published-URL check that was missing has been added to the deployment witness: from now on, every address cited in a paper, a README or a tool is verified on each release, not just the content of the pages. - The pocket-screen caveat quoted a calibration without naming the threshold it was measured at, and gave recall without its false-positive rate. On the 111 pages carrying a P2Rank pocket screen, the caveat read that "only 3.8% (1/26) under 200 aa reach the P2Rank confidence threshold, versus 60.5% (75/124) above it". Both rates are measured at 0.70, the threshold this layer applies — but a script elsewhere in the project filtered candidate pockets at 0.50 while quoting those same two numbers as its justification, and a reader of the page had no way to tell which threshold the calibration belonged to. Every caveat now names it explicitly, and adds the side that was missing: at 0.70 the detector's specificity above 200 aa is 81.1% (18.9% of proteins annotated as non-catalytic also clear it), 0.70 is the best separation this detector reaches on that panel (Youden J = 0.416), and even at that optimum it misses 39.5% of proven enzymes. A page reporting a confident pocket now says so too: a cleared threshold is a lead, not evidence of catalysis.
- Below 200 aa, the caveat said the detector's false-positive rate had never been measured. It was measurable all along, and measuring it strengthens the warning. The calibration panel contains 76 proteins annotated as non-catalytic shorter than 200 aa, and at that length they clear the threshold slightly MORE often than proven enzymes do (6.6%, 5/76, against 3.8%, 1/26; Fisher p = 1.00, and 15.4% against 11.8% at the looser 0.50, p = 0.73). So a score under 200 aa is not merely of untested power against a negative result: it carries no measured information in either direction, which is what the 71 short-protein pages now state.
- This site counted one Tn-seq condition as a mouse-infection measurement on 432 pages, and it is not one. The MtbTnDB compendium labels the condition
mbio_H37Rv_vs_in_vitroas in vivo, on the Collaborative Cross mouse panel, and credits it to Smith et al. 2022 (eLife 74419). Both are wrong, for one reason: the tokenmbio_H37Rvis not a mouse strain but the saturated H37Rv reference of DeJesus et al. 2017 (mBio 8(1):e02133-16), fourteen independent transposon libraries grown in standard laboratory medium, which is why that line carries 14 control replicates where the sixty genuine mouse conditions carry one to three. The same sample is the in vitro control of six knockout screens in the same file, and a sample cannot be both. Two sibling projects (Rv2569c,Rv0537c) found this independently from two different genes; the full text of the eLife paper describes no dataset namedmbio. Measured here without relying on the metadata at all, which contradicts itself: across the 3971 genes shared by all conditions, this one tracks the other 81 first-order in vivo conditions at a rank correlation of +0.03, where those conditions track each other at +0.270. It does not behave like an infection measurement. What it actually is could not be established, so it is now served as undetermined rather than renamed, it no longer counts toward the in-vivo phenotype total, and every affected page states why. The cost is stated rather than hidden: 186 of those 432 pages had no other in-vivo evidence, and they now show none. - The whole compendium was audited rather than that one condition patched, and the result is reassuring. All 146 conditions of the metadata file were checked on two independent grounds: what their metadata claims, and how their data behaves against the other conditions of the same declared category. Exactly one turned out to misdescribe its own nature, the one above. The audit also put numbers on two lesser problems that remain: 15 conditions cite no source at all, and 9 publications account for 125 of the conditions, so anyone counting conditions as independent lines of evidence overcounts by that factor. A report has been prepared for the compendium's authors, since the defect is theirs to fix for every user, not only ours.
- Rv2569c's page now names the locus its M. marinum orthologue was discovered in, and shows five more papers that mention this gene without ever counting toward its title/abstract total. El-Etr et al. 2004 (Infect Immun 72(12):6902-6913) first tested this gene — under its M. marinum name,
melE— years before it had a functional annotation here: a transposon mutant loses the ability to associate with macrophages, and the defect is repaired by adding back the M. tuberculosis gene itself. That paper names the M. tuberculosis locus tag only in its methods, never in its title or abstract, so it was invisible to this site's literature count; four more recent papers that cite this gene in their body text share the same blind spot. All five are now listed, clearly marked as full-text-only mentions, next to (not merged into) the three papers the title/abstract count already reported — the counting method for that number has not changed. The page also now namesmel1, the five-gene set the M. marinum study defined, and states plainly what it is not: not a demonstrated operon (two of its five members sit on opposite DNA strands, which rules one out on its own), and not individually tested beyond this gene itself.
v105 — 2026-09-12
- Two screens disagreed on 119 more genes than this site admitted. The record already declared, on 125 pages, that the Tn-seq screen (DeJesus 2017) and the CRISPRi screen (Bosch 2021) do not agree — they do not measure the same thing, and a gene can absorb a transposon insertion yet still be required at full dosage. The detector that found those disagreements, however, only knew three of the Tn-seq calls.
GD(growth-defect, 135 genes) andGA(growth-advantage, 300) appeared nowhere in it, although the data itself states that aGDgene is not essential: insertions are tolerated, fitness is merely reduced. So 119 pages presented the two screens side by side as if they concurred. 115 of them carry Bosch 2021's owncertainflag, meaning the disagreement there is a real methodological tension rather than a weak fit — the very case the site previously described as limited to a dozen genes. Declarations rise from 125 to 244. - A third kind of disagreement, which is about scope rather than direction. For 27 genes, Tn-seq returns
ESD: only a sub-region of the reading frame is required, and the gene as a whole is explicitly not called essential, while CRISPRi calls the gene essential. Both screens point to an important gene and differ on what is required. These pages now say so in those terms, and no longer under a heading claiming a plain contradiction. - "Essential" no longer means three different things in the same sentence. A derived field on these records groups
ES,ESDandGDinto one boolean, kept for backward compatibility — 164 genes are flagged that way without being strictly essential. The downloadable per-gene changelog named all of them "essential"; it now distinguishesessential,essential-domainandgrowth-defect. Two pages asserted essentiality without saying which screen supported it, and now name both the screen and the reach of the Tn-seq call: Rv2516c and Rv2195 (qcrA). - One measurement no longer outvotes nine — 37 phenotype summaries corrected. The in vivo phenotype summary declared a gene "required for fitness in vivo" as soon as a single measurement said so, however many said the opposite. Rv0502 carried that label on one depleted measurement against nine enriched ones; Rv2569c on one against seven. Unlike drug-exposure and stress phenotypes, which keep each condition with its own statement, these are replicate studies of the same condition and cannot be separated that way — so the summary now reports the split ("required in 1 of 10 measurements, disruption advantageous in 9") instead of resolving it by an implicit one-vote majority. Thanks are due to the sister project on Rv2569c, which located the cause precisely.
- The downloadable changelog had been stale for weeks, and nothing would have caught it. It is a derived file, regenerated by hand, and it had not been regenerated since the conservation layer gained a statistical-power guard. That guard downgrades a "purifying selection" call to "quasi-invariant, underpowered" when two to seven variable sites cannot support the inference — so the file asserted purifying selection for 1014 genes where the layer itself no longer asserts it. Publication now refreshes its derived artefacts, the site database included, and refuses to proceed if that refresh fails. A downloaded file reaches its reader once and is never re-downloaded; it is the most durable kind of stale artefact.
v104 — 2026-09-11
- Zero unresolved internal contradictions, for the first time. The intra-record coherence sweep counted 96 of them on 2026-09-09 and counts none today. The two campaigns that closed the gap are below; what they have in common is that measuring first changed what had to be fixed.
- "Secreted" and "no signal peptide" are true together in this organism, and the site said otherwise. Fifteen records were flagged for sending a protein to the envelope while DeepTMHMM returned a globular prediction. Calibration on 21 published controls settled it: the layer finds the lipobox of the four acylated lipoproteins (LprG, LpqH, Mpt83, LprA), the Sec signal of the culture-filtrate antigens and the helices of MmpL3, Tap and P55 — and it calls the six canonical ESX substrates globular too, ESAT-6 and CFP-10 included. A globular prediction can contradict an asserted topology; it can never contradict secretion, because type VII secretion leaves no signature. Seven pages now say so instead of leaving the reader with two incompatible statements.
- An experimental structure beats a prediction — Rv1761c. Solution NMR in DPC micelles resolves this 127-residue protein as one transmembrane helix plus a ~10 kDa extramembranous domain (Page et al. 2009). The DeepTMHMM call on this page is simply wrong, and the page now says which to read.
- Two inherited "lipoprotein" names that nothing supports — Rv1899c (LppD) and Rv1946c (LppG). Of the 92 loci here whose inherited name says lipoprotein, 86 carry a predicted export signal and 4 more are membrane-embedded; these two are the only ones with neither. LppD turns out to be, in substance, a macrodomain (Pfam Macro) that the one primary study of the gene treats as such — and the whole lipoprotein question hangs on a start codon: RefSeq gives 343 residues, UniProt 359, and the 16 extra residues carry exactly the charged region a signal peptide needs.
- Rv2862c loses a membrane it never had. "LiaF-like integral membrane protein" was a family-level inference twice over: no helix by either predictor, and Pfam says of the domain itself that every protein carrying it is uncharacterised.
- Two EC numbers withdrawn. An EC number names a reaction. Rv1088a (60 residues) had inherited the cellulase reaction of a full-length glycoside hydrolase, and Rv2224d (73 residues) the reaction of a long-chain acyltransferase, both through a distant orthologue. The numbers are now shown as inherited and explicitly not adopted.
- A caveat that only worked in one direction now works in both. For proteins under 200 residues, the pocket detector has no measured power, and the page already warned that a weak score proves nothing. It said nothing about a strong one — yet the calibration never measured the false-positive rate at that length either. All 71 short-protein pages now state both halves.
- Two internal checks were reading less than the page says. The contradiction detector stripped quoted text so that a correction would not flag itself; its pattern also caught the English possessive apostrophe, and two distant possessives swallowed everything between them — 37 pages were being read at half length. And an "essential gene" check was counting calls that the same layer describes as not essential. Neither bug was visible from the outside; both were changing what the site said about itself.
v103 — 2026-09-10
- A fourth channel: the name under which the literature actually cites a protein. The sweep behind every literature count searched three families of names — the H37Rv locus tag, the gene name the record carried, and the orthologue tags. It never searched the usage name: papers write
MftA,DyP,HigA3,MtbVKOR, not the full UniProt protein name. Where a record had no gene name, the page ended up saying "no publication mentions this gene" about a protein the literature names. - The source of those names was already on disk, and was being discarded at parse time. The UniProt harvest never requested the
gene_primaryandgene_synonymfields, and cut the protein name at its first parenthesis — exactly where UniProt keeps synonyms: "Triple specificity protein phosphatase PtpB (MPtpB) (…)". 503 genes carry a UniProt gene name that had never been searched; restricted to pages whose label is falsifiable, this release covers 80 of them. - Five filters, because a short token lies in five different ways. A term shared with another locus is dropped before it is searched (
MCMbelongs to the neighbouringRv1492); so is the bare form of a numbered name, which cannot tell paralogues apart (rpsRcoversrpsR1andrpsR2,cysAthree loci); case is significant, soTACT(a DNA motif) andtACT(telehealth) are nottacT, andRIP3(a human kinase) is notrip3; an activity abbreviation is reported but never counted; and every remaining record was re-read against the text PubMed indexes. - And then they were read one by one, because no rule catches everything.
pglreturned 87 apparent hits that are all the phenolic glycolipid PGL-I of leprosy serology; thetadArecords describe the Flp pilus operon, whereRv3752cis a tRNA adenosine deaminase. Eight pages therefore keep their label and now say why the count does not count. - 21 pages now say they are cited under their usage name, with the records listed and the name given: mftA (7 records), coaBC (8), fasR (6), cas6 (5), dyp (4), pabB, mce1E, fpg2, stf3, kefB, coaX, mbcA, MtbVKOR, sseC2, tacT, ybeY, rip3, fabG5, higA3, mddA, ipdC. The clearest case is
Rv3238c, a "conserved hypothetical protein" whose function has been published since 2015: MddA, the methanethiol S-methyltransferase that makes dimethylsulphide, named in M. tuberculosis. - 36 pages have their silence confirmed on all four channels — locus tag, full protein name, orthologue tags and usage name. A verified absence is a result, and the page says so.
v102 — 2026-09-10
- A publication count is not a count of publications about the gene. Yesterday's release put a warning on fifty-four pages whose header said no publication mentions the gene while their own sweep had counted some. Before letting that count rewrite the header, we checked what it counts.
Rv2909c(rpsP) had 155, and the first was a study of mortality in a Brazilian HIV cohort: all 155 came from the single aliasrpsP, matched against the DOI prefix of Rev Panam Salud Publica (10.26633/RPSP.…). PubMed's[All Fields]searches the DOI, the journal name, the affiliations and the author names as well as the text. Four more mechanisms, each verified in the raw records: the author Cobo forcobO(31 records), the author Moda formodA(8) — neither even an exact match —, "Str. Prov. per Casamassima" in an affiliation forproV(10), and the substance field "RpsI protein, E. coli" forrpsI(9). - All 264 records were re-read against the text a reader can read — title, abstract and author keywords — with the gene identifier required to appear as a whole token. A second filter proved necessary: of the 27 genes the text confirmed, 8 were homonyms in another organism (
sseBandsthAof a Salmonella vaccine,ZWF1of Candida,xylBof E. coli) or not gene names at all (RPSS, a surveillance system;RPLO, an entry in a list of abbreviations). The mycobacterial context the sweep required could be satisfied by the authors' affiliation alone; it must now be in the text itself. - Twenty pages did carry a false statement, and now say so. They are labelled as named in the mycobacterial literature under their gene name or locus tag, with the papers listed and the attribution left to the reader: naming is not attribution. Twenty-nine of yesterday's warnings have been withdrawn — they announced a disagreement between two counts, one of which measured nothing.
- Where the count proves nothing, the page says what it is. Instead of "All 155 publications found for this gene", the list now opens with "155 records returned by the alias sweep — none names this gene", each row carries its own verdict (names it, same name, other organism, does not name it), and a note explains where the match actually fell.
- Nothing was deleted to make a page tidier. Every rewritten summary is kept verbatim on the page it belonged to, with the date and where it was recovered from, and the explanation of what the label used to say and why it changed — written last week and never displayed — is now visible under the summary.
v101 — 2026-09-10
- Fifty-four pages said no publication mentions the gene, while their own literature sweep had counted some — one of them 155. Each page carries two counts of the same thing, produced by different methods, and shows both rather than silently overwriting one with the other. A warning is meant to appear whenever they disagree. It could not appear on these fifty-four, because the test behind it required both counts to be non-zero, and the count in the page header was zero. The very case where the header is most clearly wrong was the one case the check could not see.
Rv2909c(rpsP, 30S ribosomal protein S16) headed its page with zero publications while its own sweep, run on 7 September, had found 155. - The warning now appears on those pages, and it is legible. Once the check was fixed, the sentence it produces turned out to read "This count disagrees with the None reported above" — the same treat-zero-as-absent mistake, two lines further down in the same script, making the warning unreadable exactly where it had been invisible. Both are fixed; the sentence now names the figure.
- Nothing was rewritten to make the disagreement go away. No publication count changed, on any page. Rewriting a figure produced by one method with a figure produced by another would hide the disagreement instead of showing it, and showing it is the point.
- The check remains deliberately one-sided, and this is not an oversight. A page whose sweep found nothing while its inherited count is positive is still not flagged: that sweep reads titles and abstracts only, so finding nothing there proves nothing. Of the nine hundred and twenty-three differences the old test passed over, all but fifty-four were passed over for good reasons — small gaps, or that one-sided case.
- Two pages lost an explanation they no longer needed.
Rv0040candRv0798chad been given a note explaining why a label contradicted their structure; that label was corrected hours later, and the note was still quoting wording the page no longer showed. An explanation of a disagreement that has since been resolved is its own kind of error.
v100 — 2026-09-10
- The explanatory notes added in v99 were written in French, on a site that is otherwise entirely in English. Fifty-one notes across the atlas — the forty-six published minutes earlier and five older ones — appeared inside the "Conflicting signals on this page" box as a paragraph most readers could not read, at exactly the point where the page was trying to explain a disagreement to them. All fifty-one are now in English. The five older ones were translated literally: every figure, reference and conclusion is carried across unchanged.
- Six pages said "no publication mentions this gene" while listing publications they had themselves attributed to that gene. The label is derived from the locus-tag sweep alone, and never reads the protein-name sweep sitting a few sections below it in the same layer. Those six now read "cited in the literature under its protein name, not under its locus tag", and say which papers, under which name, and on what basis the attribution was made. Only the label changed: no count, no paper and no verdict was touched.
- Four of those six were invisible to the check that found the problem. The contradiction surfaced through a rule that compares an experimental structure against an "unstudied" label, so it could only fire on genes that have a structure.
Rv1321(NucS),Rv0935,Rv0357candRv3542chave none, and carried the same defect unnoticed. Looking for the defect directly, rather than through the symptom that revealed it, is what found them.
v99 — 2026-09-10
- Forty-six pages said "no publication mentions this gene" while showing an experimental structure of that same protein. Each now explains, in its own words, why both statements appear together. A solved structure means somebody purified this protein and published the work, so the two claims looked irreconcilable. Reading them one by one produced four different answers, not one.
- Fourteen of them are simply named something else in the literature. The label is computed from the H37Rv locus tag and the ortholog tags; a companion sweep adds the full UniProt protein name. Neither sees the short name papers actually use.
Rv1433is cited as LdtMt3, never as "L,D-transpeptidase 3";Rv0798cas Cfp29 or encapsulin, in seventeen abstracts;Rv0040cas MTC28, in eight. These pages now say so, with the name and the count, and tell the reader to read the label as "the tag is silent", never as "nobody has studied this protein". - Fourteen others carry a structure they are not the subject of. They are ribosomal proteins resolved inside whole-ribosome cryo-EM maps. A subunit appearing in an assembly is not a study of that subunit, so "a structure exists" and "no publication names this gene" are both true. The page now says which of the two is which.
- Six are genuinely unstudied, and that is now a measured statement rather than a default. For
Rv1445c(DevB),Rv1493(MutB),Rv2277c(GlpQ),Rv2717c,Rv2740(EphG) andRv2908c(KhpA), the silence holds under all three channels — locus tag, full protein name, and short usage name. A verified absence is information: it flags an annotation with no primary study behind it. The last twelve have no usage name distinct from their tag, so the third channel cannot apply, and the page says that too. - One measurement was wrong before it was right, and the correction is worth stating. Searching grouped name variants counted a neighbouring gene: querying LdtMt3 OR LdtMt2 returned 38 papers for
Rv1433, but LdtMt2 is a different locus, and the honest count is 3. Two other genes flipped the other way, from an apparent 13 and 24 papers down to none, once family and activity names were excluded. Only names unique to a gene are counted here; family names are reported and never counted, because they cannot tell one paralogue from another.
v98 — 2026-09-10
- Eight genes served as functionally unknown, while this atlas's own literature layer called them "functional", now say which of the two is right — and it is the verdict. Read one by one, the evidence behind that label turned out to be a genome-wide screen, a genetic-requirement screen, a regulon membership, a co-immunoprecipitation partner, a comparative transcription study, or a position in an operon. None of these is a molecular function: a phenotype is not a function, and being co-transcribed with a gene is not being that gene. Flipping the eight verdicts would have requalified, in one pass, eight genes nobody knows the job of. Each page now states what the label rests on, with its PubMed identifier, and why the verdict stands.
- One of those eight was hiding something real.
Rv0426cread "function unknown" although a study dedicated to this gene reports that expressing it in a recombinant mycobacterium promotes intracellular survival by modulating host inflammatory cytokines (PubMed 31614213). That is a phenotype obtained in a surrogate host, not a molecular function of the M. tuberculosis protein — the verdict is unchanged, but the sentence now cites the study and says exactly what it does and does not establish. - "Absent from all 53 non-MTBC mycobacterial genomes" does not mean "absent from the genus", and six pages now say so. The panel behind that statement is made of slow growers and close relatives: it contains neither M. smegmatis nor M. abscessus. Six records claimed MTBC specificity while their own orthology layer named an ortholog in exactly those unlisted species — most strikingly
Rv2737c(recA), 93 % identical to its M. smegmatis counterpart. The two layers never disagreed; they interrogated different genomes, and the page now states which. - Three pages carried a badge their own text refuted.
Rv2274c,Rv2341andRv3852were labelled MTBC-specific while the same section read "NOT a robust MTBC-specific innovation — present but divergent". The downgrade had been computed and written months ago, but only into a neighbouring field; it now reaches the label, with the previous value kept for traceability. - The site is reachable over HTTPS again. Since the move to static hosting,
https://mtbc.gclab.frhad been failing on a certificate mismatch while plain HTTP worked — which broke the link printed in the manuscript and the API endpoint used by client tools. The certificate is issued, HTTPS is enforced, and HTTP now redirects to it.
v97 — 2026-09-09
- The atlas now says when its own evidence layers disagree, instead of leaving the reader to notice. A gene page carries some thirty layers, written by different passes months apart, and two of them can point in opposite directions on the same screen. A systematic pass over all 3,974 pages (25 rules, each calibrated on a synthetic positive and negative control) found 339 such places. Where two measurements genuinely disagree, the page now declares it — next to the number the reader is about to trust, not two sections further down — and says what to make of the disagreement.
- Essentiality: the two genome-wide screens disagree on 125 genes, and the pattern is not what a single sentence would have said. Tn-seq (DeJesus 2017) measures tolerance to transposon insertion; CRISPRi (Bosch 2021) measures tolerance to partial knockdown. All 101 genes called non-essential by Tn-seq and essential by CRISPRi carry the CRISPRi authors' own "not certain" flag on that estimate — every single one, against 85 % across the atlas — so that direction of disagreement rests on weak fits rather than on biology, and each page now says so. The 12 genes where Tn-seq calls essential and a confident CRISPRi call says otherwise are the genuine methodological tension, and they are labelled as such.
- Disorder: 55 proteins are called highly disordered from their sequence while their AlphaFold model is confident. These are dominated by low-complexity sequence: 38 of the 55 are PE/PPE proteins (69 %, against 4.0 % atlas-wide, hypergeometric p = 1.8e-42), with a median alanine+glycine+proline content of 0.55 against 0.28 elsewhere. Neither predictor is wrong; the page now declines to present either number as a settled statement about the protein's shape.
- Five gene pages placed the same CDS on opposite strands in their header and in their neighbourhood view. Arbitrated against both reference annotations and corrected (
Rv0814c,Rv0815c,Rv1038c,Rv1047,Rv1199c); the cause was a re-anchoring step that moved coordinates without moving the strand, now fixed at the source. On three further pages (Rv0943c,Rv1313c,Rv2812) the same discrepancy turned out to be a symptom of a known imperfect ancestral anchor, and is declared rather than papered over. - Two co-transcription claims are downgraded from statement to hypothesis.
Rv2481candRv2767casserted co-transcription with a named neighbour as a fact, while the one published operon map covering the pair places that neighbour in another transcript. The claim is not refuted — that map agrees with only 5 of our 12 operon-based calls, no better than chance — but it is unsupported, and the sentence now says which is which.
v96 — 2026-09-08
- A hypothesis published yesterday is withdrawn today, by this atlas's own data. The v95 page for
Rv3196Araised an open question: the RNA-seq table that shows this gene strongly induced is dominated by the WhiB7 regulon, so isRv3196Aa member of it? The answer is no, and the test that settles it was already in the atlas. The co-expression layer (647 RNA-seq samples, iModulonDB) contains a WhiB7 iModulon of 8 genes that recovers the canonical set —whiB7itself,eis,erm(37),Rv1258c,Rv0263c.Rv3196Ais not in it; its only iModulon isUnc_4, which contains none of those. The positive control matters: the WhiB7 signature is detectable in this compendium, so the test could have said yes. - A chromosomal statement on the same page was true but incomplete, and is corrected. v95 noted that
Rv3196Asits about 1.5 kb fromwhiB7on the same strand. It does — butRv3197lies between them on the opposite strand (gaps of 127 and 33 bp), so transcriptional read-through from thewhiB7locus is not a simple explanation. The page now says so. - What remains, stated as what it is.
Rv3196Ais the second most induced gene of 41 in analkXdeletion mutant (log2 fold change 3.76, adjusted P = 1.8e-30), and that induction now has no established explanation. The page records it as an unexplained fact rather than dressing it in a mechanism. - The culture-filtrate evidence added in v95 is downgraded, because it was measured. v95 said
Rv3196Ais "probably exported", resting partly on its M. marinum orthologue being found in a secreted protein fraction, with a qualitative caveat about lysis carry-over. That caveat has now been quantified across the whole dataset: in that fraction, predicted-cytoplasmic globular proteins are detected at 42.1 % and predicted signal-peptide proteins at 42.0 % — no enrichment whatsoever (Fisher P = 0.07) — while detection tracks abundance instead (80.6 % of globular proteins in the most abundant quartile). RpoB and GroEL2, both strictly cytoplasmic, are in the table.Rv3196Asits in that top abundance quartile, so its presence in the filtrate is what its abundance alone predicts. The page now reads "plausibly but not demonstrably exported", and the case for export rests on the MHC class I result, which comes from a different group and a different method. - What the same dataset does establish for this gene is a negative, and it stands: whatever puts the M. marinum orthologue in that fraction, it is not ESX-1.
- Everything else on the page is unchanged: the gene remains
dark, with no molecular function assigned, and the MHC class I antigenicity evidence added in v95 stands. - Two sentences the proteomics section had been serving on every page are now measured, and one of them was misleading. It said that reproducible detection across several independent datasets makes the existence claim robust. Across the 3,491 detected proteins, the number of datasets a protein appears in tracks abundance almost monotonically — median 1.2 ppm at 1 dataset of 16, 27 ppm at 10, 1,325 ppm at 16, three orders of magnitude — so a high count says "abundant" at least as much as it says "independently confirmed". The page now says so; what the count does establish, at any value, is that the protein product exists.
- The clade attribution shipped this morning was naming lineages it had no right to name. When a page said a disrupting site is "fixed in L4", the underlying code had recorded the root of the fine clade that fixes it — so a site fixed in a single sub-clade of 5 strains out of 54,539 was displayed as an L4-wide loss. Across the 789 fixed sites in this atlas, the sub-clades that actually fix a site cover a median of 9.2 % of the lineage named, and under 10 % in half the cases. Pages now read, for example, "fixed in 136 sub-clades of Bovis, L4, L5, L6, L_1, La4, totalling 13,507 strains — 18.3 % of the 73,634 strains in the lineages named", and name the largest sub-clades with their carrier counts.
- The disruption percentage now comes with its ceiling. The strain collection is deeply imbalanced: a gene lost in every L6 strain still caps at 0.96 % of the collection, in every M. caprae strain at 0.20 %, in every M. microti strain at 0.02 %, and 689 of the 705 clades have a ceiling below 1 %. "Disrupted in 0.15 % of strains" is therefore uninterpretable on its own — noise, or a complete loss defining an entire animal ecotype. The section says this, on the pages that have a disruption site.
- And the reason a protein goes undetected was attributed to the wrong cause. The page listed small, highly hydrophobic or repetitive proteins. Measured on the 482 undetected ones, size dominates: median 145 aa versus 295 aa, 25.3 % shorter than 100 aa versus 6.0 %. Predicted localisation matters much less (89.3 % of globular proteins detected, 84.9 % of transmembrane ones), and signal-peptide proteins are the least detected class at 77.8 % — which a hydrophobicity story does not predict. The page now names size first and gives the four rates.
v95 — 2026-09-08
Rv3196Anow carries a hand-written, sourced curation instead of a rule-generated sentence. This is the gene that prompted the previous release, and it was the only one not to benefit from it: its page still read "Function unknown. Foldseek best (non-significant) hit: human Nup49 coiled-coil" — a match whose own probability (0.66) makes it noise. Reading its four papers rather than counting them changed what can be said about it.- A statement made in v95 that v94 got wrong. The previous release said
Rv3196A"had been detected by mass spectrometry in culture filtrates (Bell et al. 2012)". What had been verified was the reference, never theRv3196Arow of its tables: the article is closed access, has no preprint, and its supplementary tables cannot be retrieved. That detection is now reported as cited by Sher et al. and not verified here. - The M. marinum orthologue, by contrast, is now verified in the primary table. Cronin et al. (PNAS 2022, ESX-1 proteo-genetics, open access) was located and its Dataset S2 read: MMAR_1367 (UniProt B2HFI1) is quantified in the secreted protein fraction of all 13 mutant-versus-wild-type comparisons — and its secretion is not ESX-1-dependent (log2 fold change -0.11 to +0.80, P >= 0.46, the authors' own threshold never met, including in the deltaeccCb1, deltaesxA and deltaesxB strains). A positive result and a negative one, neither of which appears in any abstract. The page also states the standard caveat: a secreted fraction can carry cytoplasmic protein released by lysis, so this is consistent with export rather than proof of it.
- One of the papers the previous release filed as a passing table mention was not one. In Microbiology Spectrum 2022,
Rv3196Ais the second most upregulated gene of 41 in analkXdeletion mutant (log2 fold change 3.76, adjusted P = 1.8e-30) — the strongest transcriptional fact known for this locus. The general point of v94 stands in aggregate: being named is not being studied. It does not survive gene by gene, and the pages that depend on it say so now. - What the page still refuses to say. Antigenicity and export are a status, not a molecular function. The verdict stays
darkwith low confidence, and no function is assigned. An open hypothesis is recorded as such, with the two checks that failed to support it:Rv3196Asits about 1.5 kb fromwhiB7on the same strand, and three canonical WhiB7-regulon genes occupy ranks 3, 5 and 7 of that same table.
v94 — 2026-09-08
- "No publication mentions this gene" was wrong on 154 pages, and the fix distinguishes two things the site had been conflating. For genes with no hit in either abstract corpus, the page used to conclude that the gene was genuinely unstudied. A full-text search — the same Europe PMC channel the atlas already used on 1,089 other genes — finds at least one paper naming 154 of the 179 such genes (median 3 papers, up to 23). Those pages now list what was found and no longer make the claim.
- Being NAMED is not being STUDIED, and the distinction is the point. The papers are overwhelmingly large-scale screens: drug-resistance surveys, comparative genomics, GWAS and pangenome studies, proteomics, whole-genome sequencing. The gene appears in a supplementary list, not in an investigation. So the atlas still holds that this residue is genuinely dark in the sense that no one has studied these genes — what it withdraws is the broader wording, which a reader could refute with a single Europe PMC query. 23 genes remain silent across all three channels; those are the ones for which an absence can now be stated without reservation.
- One gene came out of this with real biology attached.
Rv3196A— 66 amino acids, no known domain, abundant (733 ppm, 91.5th percentile, seen in 14 of 16 proteomics datasets) and conserved across the genus (31 of 53 non-tuberculous mycobacteria) — is shown by immunopeptidomics (Sher et al., eLife 2023) to have peptides presented on MHC class I during infection, and had been detected by mass spectrometry in culture filtrates (Bell et al. 2012), as had its M. marinum orthologue. The authors conclude it is likely secreted despite lacking any recognisable secretion signal — which this atlas's own localisation layer independently reports. Its molecular function is still unknown, so the verdict staysdark; what changed is that "never observed" no longer holds.
v93 — 2026-09-08
- Which clade carries which disrupting site — the question the previous counter never asked. The conservation layer reported how many premature-stop or frameshift sites a gene carries, and called the gene convergent as soon as there were four of them. That word is an evolutionary claim, but the calculation was a count: it never looked at who carries what, nor at whether the sites differ between clades. A companion project read "one site dominates in 92.6 % of strains" on
Rv2566and concluded, for a year, a loss of function specific to M. bovis. Attributing the sites shows three fixations in three DIFFERENT animal ecotypes — Bovis (13,001 strains), M. orygis (353) and M. caprae (280): convergence, the opposite of the story the page allowed. - The count was wrong in both directions, and that is now visible on 452 gene pages. Of the 105 genes the layer called convergent, 85 are confirmed, 10 have only a single site actually fixed in a clade, 6 are INTRA-clade convergence (several sites, one ecotype — a real but different phenomenon), and 4 have no fixed site at all. Meanwhile the attribution finds 214 inter-clade convergences in total, so roughly 130 were being missed. Each affected page now carries the clades involved, the true union of carriers (the older figure is a maximum over sites, not a union), and, per site, the clades in which it is fixed.
- The distinction the new field enforces. Several clades sharing the SAME site is shared ancestry, not convergence; convergence requires DIFFERENT sites in DIFFERENT clades. Without that rule the field would manufacture convergences in bulk. A clade counts as carrying a site when at least half of its strains have it, and the finding is robust to that choice: 240 convergences at a 30 % threshold, 214 at 50 %, 182 at 80 %, 150 at 95 % — above the 105 previously declared at every setting. The original
disrupt_mode,disrupt_sitesanddisrupt_strainsfields are left untouched, side by side with the new reading. - Conservation figures now say when they were computed. The heavy pass over the strain collection is rarely re-run while the collection itself keeps changing, so each page now states the snapshot date (currently 2026-06-03, 145,209 strains) next to the strain count. This explains, for instance, why
Rv2566shows 14,039 strains for its commonest site while a fresh recount over today's collection gives 13,786.
v92 — 2026-09-07
- The literature layer now serves every publication it knows of, not the five most recent. The previous pipeline queried PubMed, obtained all matching PMIDs, then persisted only six of them: a fiche reading "Most recent 5 of 19" was honest about the five and wrong about the nineteen, since the fourteen others existed nowhere. A full re-sweep of the proteome adds 52,806 references across 3,974 genes (45,012 more than were previously reachable), exposed under a foldable "All N publications" block with a client-side filter. The legacy count is not overwritten: both numbers appear side by side with the method that produced them, and a clear disagreement is flagged on the fiche rather than silently arbitrated —
Rv0670, whose gene name is the English word end, announced 6,373 publications where a mycobacterium-constrained search finds 2. - The dark residue is now cross-checked against a second, independent literature source. For the 210 genes still dark, a fiche sometimes asserts an absence of literature, which is the strongest claim this site makes. Checking the PubMed sweep against the tbmonitor corpus shows that neither source is complete and that which one misses what is not predictable: three genes are seen only by tbmonitor, four only by PubMed, 178 by neither. The three publications missed by the sweep are now on their fiches, and the sentence "this gene is genuinely unstudied" has been withdrawn wherever the second source contradicts it.
- A caution the site now states explicitly: "dark" means unknown function, not unstudied.
Rv2660ccarries 38 publications as the latency antigen of the multistage vaccine H56 (Ag85B + ESAT-6 + Rv2660c, Aagaard et al., Nat Med 2011) and its molecular function is still unknown. The two axes are independent; conflating them yields either a false requalification or a false claim of absence. - Operon-based requalifications are re-judged against two published operon maps instead of one. An earlier audit reported that 8 of the 12 dark genes requalified through a co-transcription argument were contradicted by Roback et al. 2007. That figure compared whole operon boundaries, whereas the argument each fiche actually makes is narrower: that the gene is co-transcribed with one named neighbour. Judged on that claim, and with REMap 2016 as a second independent map, none of the twelve is contradicted by both sources at once — four are corroborated by both, six by one, two by the only source covering them. Each fiche now carries both verdicts together with their base rates over all adjacent gene pairs of the genome (Roback 26.3 %, REMap 45.6 %), without which an agreement cannot be read: REMap agrees more often than chance on this set (9/10, one-sided binomial p = 0.005), Roback does not (5/12, p = 0.19).
v91 — 2026-09-05
- Rv0007 (CofA) fiche corrected — the previous entry misreported its own primary source. The fiche stated that full-length Mtb CofA interacts with both class-A penicillin-binding proteins, PonA1 (Rv0050) and PonA2 (Rv3682). The primary source (Sher, Lim & Bernhardt, eLife 2020) reports the opposite: in a heterologous POLAR two-hybrid assay in E. coli, full-length CofA gives a weak signal with the transmembrane domain of PonA2 and explicitly not with that of PonA1. Two distinct experiments of that paper — a physical interaction naming PonA2, and a Tn-seq epistasis result naming the non-cognate paralog PonA1 — had been merged into a single claim. The partner is now reported as PonA2 only; the paper's own internal inconsistency on this point (one Results sentence says PonA1, while its Discussion, figure-supplement title and orthology notes all say PonA2) is stated on the fiche rather than silently resolved.
- Confidence lowered from high to medium for that gene: the interaction rests on a single heterologous assay using isolated transmembrane domains, described as weak by its own authors, and no curated interaction database records any of these pairs (IntAct returns zero interactions for CofA, PonA1 and PonA2 queried separately; all 15 STRING partners of Rv0007 have an experimental score of zero, and neither aPBP appears among them). The
requalifiedverdict is unchanged: the DUF3566 family assignment does not depend on which aPBP is the partner. - New positive result added to the same fiche: a residue-level alignment of the C-terminal module against the characterised Corynebacterium glutamicum ortholog (cgp_0016 / Q8NUC5, 114 aa) — 34.3% identity over 105 aligned positions, the aligned window covering both predicted transmembrane helices and 93% of the C. glutamicum protein. The N-terminal 1-186 extension is disordered and specific to M. tuberculosis. Not published in this form elsewhere.
v90 — 2026-09-03
- Rv1125 fiche updated (back-propagation from the mtbc/Rv1125 project). Function summary now includes the cross-species polarization of the WS/DGAT catalytic motif (ancestral loss of the first catalytic histidine, at or before the divergence of Corynebacteriales, at least 200 million years ago) and the outcome of an independent reassessment of a published bacterial GWAS signal linking this gene to meningeal tuberculosis (the association is best explained by a probable construction artifact in the published genotype table, not a genuine phenotypic determinant). Also corrects a stale eggNOG COG1020 description that had propagated an unrelated ortholog group's function ("D-alanine ligase") since scaffolding.
v89 — 2026-08-29
- New evidence layer: lineage-specific gene relaxation. 122 gene fiches (mostly "hypothetical") now show, where detected, a candidate lineage-specific loss-of-function signal: the fraction of strains carrying a disrupting mutation in a given MTBC lineage compared to the rest of the complex, with odds ratio, Fisher's exact test and FDR correction. Framed explicitly as one evidence handle, never a verdict by itself, consistent with this atlas's general policy against over-claiming function from a single signal. Anchored in a 2024 genome-scale study of the same phenomenon (Silva-Pereira et al., Microbiology Spectrum).
v88 — 2026-08-29
- Citation correction on 122 gene fiches. The lineage-relaxation evidence layer (P8) cited a 2024 paper on lineage-specific gene loss under the wrong author name ("Coscolla M, et al."); the actual authors are Silva-Pereira, Soler-Camargo and Sá Guimarães. Title, journal and DOI were already correct throughout — only the author attribution was wrong, now fixed in both the structured reference and the narrative text. No verdict, function, or scientific conclusion was affected by this correction. Caught by an independent Claude session working on a related project, verified against PubMed before correcting.
v87 — 2026-08-29
- PE/PPE family genes get a real fiche, not just a family label. The 157 PE/PPE genes (Mycobrowser names them but rarely says more) now carry a "PE/PPE family context" section: fine subfamily (PE, PE_PGRS, or -- newly refined via dedicated Pfam domains -- PPE-MPTR, PPE-SVP, PPE-PPW, or plain PPE for the ancestral form), Type VII secretion status (cis-encoded within its own ESX-1..5 gene cluster, with named cluster partners, or orphan and trans-secreted via ESX-5), and whether the literature specifically frames this gene as a vaccine/antigen/diagnostic candidate. Four of these genes (PE35, PPE68, PPE18, PE_PGRS33) additionally carry a literature-grounded deep-dive: cited evidence and explicit caveats, including a case (PE_PGRS33) where the one in-vivo knockout study found contradicts the "virulence factor" framing common in review titles. Purely additive: no verdict or function was changed by this release.
v86 — 2026-08-28
- Two independent published operon maps now cited alongside the predicted operon. Gene pages showing a genomic-context operon (co-directional intergenic distance) now also cite, where available, two peer-reviewed operon maps: Roback et al. 2007 (logistic regression on distance and expression correlation, 474 microarrays) and REMap 2016 (Pelly et al., RNA-seq coverage continuity across intergenic junctions in exponential and stationary phase — the most direct of the three signals). Each is flagged as agreeing or disagreeing with the distance heuristic, so a reader can judge how well-supported a predicted operon really is. Purely additive: no verdict or function was changed by this release. Also surfaces, on the 12 gene fiches where a "dark" requalification cited co-transcription as evidence, whether that specific claim is corroborated by Roback 2007.
v85 — 2026-08-26
- Regions of Difference: rare MTBC ecotypes no longer silently dropped. Lineages with too few covered strains for a reliable frequency (e.g. the chimpanzee bacillus, M. mungi, M. suricattae, Dassie — often n=1 sequenced strain) were previously filtered out of the "Regions of Difference (lineage deletions)" section entirely, with no trace. They are now shown with an explicit
n=X, not statisticalbadge instead: a single-sample observation, not a population frequency, but still informative for the rarest, least-sampled clades of the complex — every sequenced strain counts there. No change to the well-covered lineages.
v84 — 2026-08-26
- dark_enzymes manuscript findings linked to their six genes. Rv2492, Rv3577, Rv1118c, Rv2558, Rv3196 and Rv3839 gain curation notes tracing their existing verdicts to the group's own structure-guided six-enzyme manuscript (submitted to FEMS Microbiology Letters, 2026-08-01), with per-gene calibration: robust family-level conservation signal noted where supported (Rv2492, Rv3577, Rv1118c weaker), the self-detected false-positive re-routing documented for Rv3196 (YcaO to ThiF/MoeB/E1), the weaker/uncertain call flagged for Rv2558, and the independent post-hoc confirmation (Quirk et al. 2026) noted for Rv3839. No verdict or function call changed — this was a provenance gap, not a content gap: the underlying science was already correctly reflected in these fiches.
v83 — 2026-08-26
- Freshness pass on genes tied to recent manuscripts. Rv0810c and Rv3222c curation notes updated to reflect their real submission status after this week's cascade of desk-rejects and resubmissions (Rv0810c: Journal of Bacteriology desk-reject to Proteins, In Screening; Rv3222c: Journal of Bacteriology desk-reject to Archives of Microbiology, submitted).
- BPaL/BPaLM resistance-emergence findings linked to their six genes. fgd1 (Rv0407), ddn (Rv3547), fbiC (Rv1173), fbiA (Rv3261), fbiB (Rv3262) and cofC/fbiD (Rv2983) gain curation notes pointing to the group's own not-yet-peer-reviewed manuscript on phenotype-free, phylogenetic-convergence pretomanid-resistance candidates in the F420 pathway, with per-gene specificity (headline candidates for fgd1/ddn/fbiC, explicitly-excluded candidate noted for fbiA, pathway-wide-scan-only for fbiB/cofC — no candidate overclaimed where none is named).
- Rv1025 literature layer completed. The full-text Europe PMC sweep already run by the dedicated Rv1025 project (4 hits, 2026-08-03) is now merged into the live fiche, alongside a nuanced summary: no title/abstract mention, but not entirely silent in the full-text literature either.
v82 — 2026-08-20
- HHpred profile-profile curation for the bounded pilot-27 batch. 6/8 jobs of the
HOMOLOGIE_DISTANTEpilot-27 screen (MPI Bioinformatics Toolkit) completed and are now curated. Two records reclassifiedfamily_assigned: Rv2517c gains the most statistically significant HHpred match of the whole programme so far, a HicA/HicA3 mRNA-interferase toxin fold (toxin-antitoxin system, Probability 99.1-99.4%, E down to 3.2e-12); Rv1951c gains a confident WXG100/ESAT-6-like fold assignment (ESX/T7SS-associated helical hairpin), the same reference set already confirmed for the paralogues Rv2077c and Rv2541. Four records (Rv2774c, Rv3566A, Rv1914c, Rv1669) confirmed as genuinely uninformative, no confident hit. The remaining two targets of the pilot, Rv2620c and Rv2784c, could not be tested: both submissions were accepted by the MPI Toolkit server but never left the queue (status: Pendingfor over 29 hours with zero movement, checked read-only via the public job-status API), a server-side scheduling failure distinct from the job-ID collision that affected the first submission attempt. They remaindark/HOMOLOGIE_DISTANTE. - Cross-genus phylostratigraphy corrected for 62 short genes misclassified as absent beyond the genus. A systematic hmmsearch (profile HMM, more sensitive than the tblastn scan
phase66relies on for short proteins) against 66 non-MTBC reference genomes recovers a homology signal outside the genus for 62 of the 123 short dark/hypothetical genes previously flagged "absent from the whole genus and from all outgroups tested". Theiroutgroup.phylostratumfield is corrected accordingly (deepest detected clade moves from "Mycobacterium-or-shallower" up to Corynebacteriales, Actinomycetia or Bacteria depending on the gene). This narrows the pool of candidate MTBC-specific evolutionary innovations; it does not change any gene's function verdict.
v81 — 2026-08-18
- HHpred profile-profile curation completed for the archived screening campaign. 89 dark gene records had an HHpred profile-profile search already run (MPI Bioinformatics Toolkit) but never written back to the atlas. All 89 are now curated: 8 reclassified
family_assigned(fold or domain identified, precise function still undetermined) and 81 confirmed as genuinely uninformative (no confident hit), each now recording the search so it will not be repeated. Highlights: Rv2472 gains a structural match to the ParD/MazE ribbon-helix-helix antitoxin family, independently corroborating an existing network-based toxin-antitoxin lead; Rv2541 matches the M. tuberculosis-specific antigen MTB48; Rv1048c gains a candidate DNA-binding regulatory domain consistent with an existing phenotypic lead. Every record states plainly when a hit was found but judged not confidently assignable, so the search is not silently repeated later.
v80 — 2026-08-18
- Literature-layer coverage regression fixed (P27). Two annotation fields (
alias_scope, which states what a "no publication mentions this gene" verdict actually swept;summary_is_paraphrase, which flags a summary as a reformulation rather than a quotation) had gone missing from 188 and 35 gene records respectively, wherever a still-unresolved ("dark") gene's record had been rewritten by the audit sweep after these flags were added. One case was more than a missing flag: Rv2517c's summary had reverted to an earlier, over-interpreted reading ("induced as part of the SOS response") that a previous correction had already fixed. Root cause identified and fixed at the source (the sweep script now preserves these fields across reruns instead of overwriting them); all 223 affected records restored, plus 2 bonus records missing aregulationcondition caveat found in the same pass. Permanent regression witnesses restored on Rv2516c and Rv2517c specifically (the two originally-affected records), in addition to the general template witnesses added when the regression was first caught.
v79 — 2026-08-18
- Rv3363c reclassified
family_assigned->requalified(confidence high), named mfpC. The previous label was self-contradictory (an eggNOG-derived "MarR-family transcriptional regulator" call that conflicted with the atlas's own Pfam domain, DUF742, covering nearly the whole protein). Corrected to MfpC, a guanine-nucleotide exchange factor for the small GTPase MfpB (Rv3362c), within the mfpA-mfpB-mfpC-mfpD-mfpE fluoroquinolone-resistance operon (Rv3361c-Rv3365c). Sources: Cui et al. 2022, mBio (PMID 36453945) and Ye et al. 2024 (PMID 39179666). - 222 gene records enriched with an additional corroborating full-text literature citation (function and verdict unchanged).
- 3 external claims checked against full text and explicitly rejected as false leads after verification (Rv0364, Rv0508, Rv2926c), documented as caveats on each record.
- About 10 still-"unknown" gene records (including Rv0966c, Rv0424c, Rv0426c, Rv1000c, Rv2100, Rv0061c, Rv0236A, Rv2137c, Rv2472, Rv3675) annotated with a documented literature check: relevant evidence found (phenotype, genomic context, or a paper's mention) but not a molecular function, so the "still unknown" verdict is kept rather than upgraded.
- First full sweep of the literature for every "still unknown" gene completed and triaged in its entirety (roughly 10,700 candidate mentions reviewed).
v77 — 2026-08-17
- Toxin-antitoxin repertoire table (57 loci, Table S4 of the manuscript) linked and downloadable from the site for the first time.
- New evidence layer: pupylome (Festa et al. 2010, PMID 20066036) — 55 genes with a mass-spectrometry-confirmed pupylation site.
- New evidence layer: transcription start sites / leaderless transcripts (Cortes et al. 2013, PMID 24268774) — 665 genes.
- Rv3338 reclassified
requalified(confidence high), named ephH (epoxide hydrolase, enzymatic activity confirmed in vitro).
v76 — 2026-08-17
- Correction: a Ribo-seq isoform note added to Rv0875c in v75 was retracted after audit found it was an artefact of a locus-matching bug (now fixed), not a genuine second reading frame. 19 of the original 20 Ribo-seq isoform notes (Smith et al. 2022) remain valid and in place.
v75 — 2026-08-17
- 19 "still unknown" gene records annotated with a Ribo-seq / Ribo-RET translated-isoform note (Smith et al. 2022, PMID 35244584).
v73 — 2026-08-11
- Fixed a regression on 26 toxin-antitoxin persistence gene records (the
TA_persistenceevidence layer had gone missing from those records; restored). --- Earlier versions (v19-v71): seedocs/historique_revisions_site.mdin the project repository for the full technical history.