c5shen / WITCH

WITCH is a multiple sequence alignment method that uses multiple weighted HMMs to align unaligned sequences and find consensuses.
GNU General Public License v3.0
10 stars 3 forks source link

Trouble importing modules #5

Closed ClarenceBLe closed 1 year ago

ClarenceBLe commented 1 year ago

Greetings,

I have been trying to run WITCH, but have been receiving the following messages:

Traceback (most recent call last): File "/WITCH/witch.py", line 8, in from gcmm.gcmm import mainAlignmentProcess File "/WITCH/gcmm/gcmm.py", line 9, in from gcmm.algorithm import DecompositionAlgorithm, SearchAlgorithm File "/WITCH/gcmm/algorithm.py", line 9, in from helpers.alignment_tools import Alignment, MutableAlignment File "/WITCH/helpers/alignment_tools.py", line 8, in from dendropy.datamodel.taxonmodel import Taxon ModuleNotFoundError: No module named 'dendropy'

When looking into each directory and specific file, the cited lines are simply module import lines and I wanted to know if there were any specific changes that could resolve these.

-Clarence

c5shen commented 1 year ago

Hi Clarence, please try installing (or updating) the Dendropy python package on your running environment. You can also run the following script pip3 install -r requirements.txt to install all necessary packages for WITCH. I am also working on a dockerfile for WITCH to make the software more accessible to users.

ClarenceBLe commented 1 year ago

Thank you for the timely response! I ran the pip3 line successfully, but am still receiving the same messages from the initial message. I also used 'conda install dendropy' in my current conda env and that worked fine. I'm currently looking in the */gcmm/tree.py file (lines 27 and 282), and wanted to know if this was an issue since there was no '_convert_node_to_root_polytomy' function that I saw in the 'dendropy' documentation. Screenshot 2023-06-21 at 11 28 11 AM

c5shen commented 1 year ago

I found the relevant issue that caused your problem here: (SEPP also uses Dendropy and Dendropy 4.6.0 moved the function to be private). Thus, downgrading your Dendropy to v4.4.0-4.5.3 should be a workaround for the issue.

Thanks for bringing this up, and I want to change my code so that it does not depend on Dendropy (I want to switch to TreeSwift in the future update.

c5shen commented 1 year ago

As of now, I will change the requirements.txt to dendropy>=4.4.0,<4.6.0.

ClarenceBLe commented 1 year ago

Fantastic! Thank you so much for your feedback.

c5shen commented 1 year ago

Glad I helped. I will close the issue now.