Talk:Branching order of bacterial phyla (Genome Taxonomy Database, 2018)
This article has not yet been rated on Wikipedia's content assessment scale. It is of interest to the following WikiProjects: | |||||||||||
|
GTDB version
[edit]Maybe we should update this page to use a newer GTDB release whenever one is available? Their releases aren't hard to parse: just go to https://data.gtdb.ecogenomic.org/releases/latest/ and get the two .tree
files for bacteria and archaea. Trim it down to the phylum p__
level by discarding other nodes and that's the tree you want. Maybe add some names to the beyond-phylum-level clades we have here. Artoria2e5 🌉 02:43, 11 May 2022 (UTC)
Alright, here's a script to do that.
#!/usr/bin/env python3
import newick
import re
RANK_REGEX = re.compile(r'(^|:)[dp]__.+')
def do_prune(inname, outname):
tree = newick.read(inname)
# Inefficient, so what?
accept = [n for n in tree[0].walk() if RANK_REGEX.search(n.name)]
print(accept)
tree[0].prune(accept, True)
newick.write(tree, outname)
if __name__ == '__main__':
import sys
do_prune(*sys.argv[1:])
But! Before you think pip3 install newick
is enough, it isn't.
- The GTDB files has a lot of semicolons that the original library doesn't like. Replace all occurrences of
;
with/
before you start. With sed, maybe, but I was experimenting so I used a graphical text editor. Trysed -i -e 's@;@/@g' bac120.tree
. - The GTDB files use colons in a way that the library cannot understand at all. To overcome that I "dumbified" the newick.py library by turning off colon handling in the following places:
- Remove the colon from
RESERVED_PUNCTUATION
at the top. - In
_parse_name_and_length
, remove theif ':' in s:
part completely.
- Remove the colon from
Yeah. I was too tired to find another library. Anyways I have a tree now with python3 bac120{.tree,.phy}
, so that's a start... --Artoria2e5 🌉 03:23, 11 May 2022 (UTC)
Alright, the trees may be still a bit big. What to do?
- Kill em numbers: remove
[:\)][0-9]+\.[0-9]+
(keep the braces!) and[0-9]+\.[0-9]+:
, sed is unhappy with me sorry - Kill extra monotypic names: remove
/[^']+
, although this can cause some confusion with GTDB auto-generated names based on lower taxa
The end result is something like this for v207:
d Archaea; |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
d Bacteria |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Okay start I'd say. --Artoria2e5 🌉 03:42, 11 May 2022 (UTC)
Further processing
[edit]HUGE thanks to Videsh Ramsahai for getting the job done! It's beautiful. I can't even imagine how much work that takes.
Still, we should maybe... get a way to automate the updating and specifically the relabelling from all the p__Blah names to proper stuff with quotation marks, links, and explanation about what it includes if the grouping is novel. Ideally we get:
- a script that takes an old article cladogram and the corresponding "crude" newick (as above) and generates a look-up table for how to rename all the nodes
- another script that takes a "crude" newick from a newer version and applies the table to it
--Artoria2e5 🌉 15:07, 14 September 2022 (UTC)
- Hi Artoria2e5,
- I do not posses the skill to do create a bot that updates the GTDB tree whenever there is a newer version. If you can do this it is highly appreciated and commendable. If and when ne is created I can manually curate the new tree to remove errors if you would like.
- Sincerely, Videsh Ramsahai (talk) 16:50, 14 September 2022 (UTC)
- I guess I will do that sometime then. I think the first script can be skipped if we just kept comments describing what each node is in the article source. That would provide traceability even for human editors, although the source code size is... gonna get bigger and arguably the parenthesized stuff (e.g. "(Bacillota C)") will be duplicated unnecessarily. Artoria2e5 🌉 11:48, 15 September 2022 (UTC)
Oh no, Spirochaetota and Lindowbacteria are clearly not in the right place. And Undinarchaeota isn't branching early enough either. I don't want to check everything... --Artoria2e5 🌉 04:01, 27 January 2023 (UTC)