-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Switch from ete3 to ete4 #618
base: main
Are you sure you want to change the base?
Conversation
Thank you very much!
This is why I was asking for a release of ete4 on pypi. Currently, I cannot merge/accept this PR because I could not distribute pertpy on pypi. Github dependencies are not supported on pypi for obvious reasons. What is the status of a pypi release of ete4? Thank you again! |
@johannesostner could you please comment on this? |
Hi @dengzq1234, Some questions:
|
I see the issue, the current ete4 is undergoing development on one of the major features which is not showing on the github yet therefore we haven't put it on pypi. I will need to coordinate to see if we want to release the beta version on pypi or wait until it is fully ready. I will keep you updated! |
Hi! If the tree is relatively small then I think treeview at this moment will handle just fine and tree will be shown clearly. To your questions:
And no because your barplot is bidirectional barplot with negative, that's something we are currently working on it. One of the downside of current ete4 is instead of drawing a tree as static image, we open the tree as a browsing and interactive session, users need to active this browsing session in order to output the static png/pdf for tree. For users who need to automate the tree drawing pipeline, it might be a hinder. But as you said if your users would like to see the tree in the jupyter cells, then I would say ete4 smartview fit this purpose. |
@dengzq1234 kindly pinging you after 3 months:
Do you have an update on this? |
@dengzq1234 sorry to ping you again, but is there a status update? I don't want to be annoying but I'd be happy to adopt ete4 |
Hi @Zethson, i am very sorry for the late reply. I did see the message but I don't have answer in regards to the status update. Now it's more of a decision making about if we release ete4 to pip in current state or wait until a major feature. I'm not able to give you the answer because I am also waiting for the answer. :( |
PR Checklist
docs
is updatedDescription of changes
This PR is the response to the issue etetoolkit/ete#739, which aim to upgrade the usage of etetoolkit
in pertpy from ete3 to ete4.
perpty implement ete for the following tasks:
a) browsing trees, such as getting leaves, descendants, ancestors, etc.
b) annotation of trees, such as adding information to nodes.
c) drawing tree, including drawing tree with layouts of nodes' information.
This repo upgrade the syntax in regards to the first two tasks. The third task which include the drawing part will mostly maintain the usage of ete3 version expect for calling the module in new places
Technical details
This PR mostly just correct the syntax of calling the methods or features from ete3 to ete4, straight forward and trivial.
detailed differences can be found from
I used two ways to conduct the test
Passed the unitest this folder /home/deng/Projects/metatree_drawer/test_pertpy/pertpy/tests/tools/_coda
Be able to recreate tree images from the step-by-step tutorial of tasccoda tree-aggregated analysis from https://pertpy.readthedocs.io/en/latest/tutorials/notebooks/tasccoda.html
Additional context
ete4 installation, ete4 currently is released on githup repo as beta version therefore not yet available in pip nor conda. Users can install ete4 via githup
pip install https://github.com/etetoolkit/ete/archive/ete4.zip
In regards to c) drawing tree, ete4 still contains the treeview inherited from ete3 which relies on novel PyQt6 module to render tree image. Users can install the depencies by
pip install PyQt6
or install ete4 via
pip install -e .[treeview]
for a local editable installation.
Important information:
In ete4 we will stop maintaining nor making new updates in the old treeview module which is used in pertpy, at this moment it is still functional.
Instead ete4 embrace the new smartview module which has abilities to visualize large tree dataset up to thousands of tips interactively and introduce with novel layouts. The new drawing engine has been implemented in some tools such as
PhyloCloud https://phylocloud.cgmlab.org/ (https://doi.org/10.1093/nar/gkac324)
TreeProfiler https://doi.org/10.1101/2023.09.21.558621
If pertpy has the demands to visualize trees with ete4 smartview, I'm more than welcome to provide a novel PR in regards to this feature.