FunVIP 0.3.24.2__tar.gz → 0.3.24.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. {funvip-0.3.24.2 → funvip-0.3.24.3}/FunVIP.egg-info/PKG-INFO +1 -1
  2. {funvip-0.3.24.2 → funvip-0.3.24.3}/PKG-INFO +1 -1
  3. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/hasher.py +11 -4
  4. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/tool.py +10 -1
  5. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/tree_interpretation.py +266 -109
  6. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/tree_interpretation_pipe.py +135 -78
  7. {funvip-0.3.24.2 → funvip-0.3.24.3}/pyproject.toml +1 -1
  8. {funvip-0.3.24.2 → funvip-0.3.24.3}/FunVIP.egg-info/SOURCES.txt +0 -0
  9. {funvip-0.3.24.2 → funvip-0.3.24.3}/FunVIP.egg-info/dependency_links.txt +0 -0
  10. {funvip-0.3.24.2 → funvip-0.3.24.3}/FunVIP.egg-info/entry_points.txt +0 -0
  11. {funvip-0.3.24.2 → funvip-0.3.24.3}/FunVIP.egg-info/requires.txt +0 -0
  12. {funvip-0.3.24.2 → funvip-0.3.24.3}/FunVIP.egg-info/top_level.txt +0 -0
  13. {funvip-0.3.24.2 → funvip-0.3.24.3}/LICENSE +0 -0
  14. {funvip-0.3.24.2 → funvip-0.3.24.3}/MANIFEST.in +0 -0
  15. {funvip-0.3.24.2 → funvip-0.3.24.3}/README.md +0 -0
  16. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/FunVIP_GUI.py +0 -0
  17. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/__init__.py +0 -0
  18. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/data/Option_manager.xlsx +0 -0
  19. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/data/__init__.py +0 -0
  20. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/data/genus_line.txt +0 -0
  21. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/BLAST_Windows/Uninstall-ncbi-blast-2.12.0+.exe +0 -0
  22. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/BLAST_Windows/bin/blastn.exe +0 -0
  23. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/BLAST_Windows/bin/cleanup-blastdb-volumes.py +0 -0
  24. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/BLAST_Windows/bin/get_species_taxids.sh +0 -0
  25. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/BLAST_Windows/bin/legacy_blast.pl +0 -0
  26. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/BLAST_Windows/bin/makeblastdb.exe +0 -0
  27. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/BLAST_Windows/bin/nghttp2.dll +0 -0
  28. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/BLAST_Windows/bin/update_blastdb.pl +0 -0
  29. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/BLAST_Windows/doc/README.txt +0 -0
  30. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/FastTree_Windows/FastTree.exe +0 -0
  31. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/Gblocks_Windows_0.91b/Gblocks_0.91b/Documentation/Gblocks_documentation.html +0 -0
  32. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/Gblocks_Windows_0.91b/Gblocks_0.91b/Gblocks.exe +0 -0
  33. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/Gblocks_Windows_0.91b/Gblocks_0.91b/more_alignments/cox2.pir +0 -0
  34. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/Gblocks_Windows_0.91b/Gblocks_0.91b/more_alignments/cytb.pir +0 -0
  35. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/Gblocks_Windows_0.91b/Gblocks_0.91b/more_alignments/nad3.pir +0 -0
  36. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/Gblocks_Windows_0.91b/Gblocks_0.91b/more_alignments/nad5.pir +0 -0
  37. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/Gblocks_Windows_0.91b/Gblocks_0.91b/nad3.pir +0 -0
  38. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/Gblocks_Windows_0.91b/Gblocks_0.91b/paths +0 -0
  39. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/MAFFT_LICENSE +0 -0
  40. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/MAFFT_Windows.zip +0 -0
  41. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/RAxML_Windows/GPL-3.0.txt +0 -0
  42. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/RAxML_Windows/README +0 -0
  43. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/RAxML_Windows/raxmlHPC-PTHREADS-AVX2.exe +0 -0
  44. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/__init__.py +0 -0
  45. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/iqtree/bin/iqtree2-click.exe +0 -0
  46. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/iqtree/bin/iqtree2.exe +0 -0
  47. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/iqtree/bin/libiomp5md.dll +0 -0
  48. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/iqtree/example.cf +0 -0
  49. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/iqtree/example.nex +0 -0
  50. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/iqtree/example.phy +0 -0
  51. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/iqtree/models.nex +0 -0
  52. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/LICENSE.md +0 -0
  53. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/README.md +0 -0
  54. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/bin/busybox.exe +0 -0
  55. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/bin/cygbz2-1.dll +0 -0
  56. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/bin/cyggcc_s-seh-1.dll +0 -0
  57. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/bin/cyggomp-1.dll +0 -0
  58. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/bin/cygstdc++-6.dll +0 -0
  59. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/bin/cygwin1.dll +0 -0
  60. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/bin/cygz.dll +0 -0
  61. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/bin/mmseqs.exe +0 -0
  62. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/examples/QUERY.fasta +0 -0
  63. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM10.out +0 -0
  64. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM100.out +0 -0
  65. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM110.out +0 -0
  66. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM120.out +0 -0
  67. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM130.out +0 -0
  68. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM140.out +0 -0
  69. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM150.out +0 -0
  70. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM160.out +0 -0
  71. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM170.out +0 -0
  72. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM180.out +0 -0
  73. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM190.out +0 -0
  74. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM20.out +0 -0
  75. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM30.out +0 -0
  76. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM40.out +0 -0
  77. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM50.out +0 -0
  78. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM60.out +0 -0
  79. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM70.out +0 -0
  80. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM80.out +0 -0
  81. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM90.out +0 -0
  82. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/VTML10.out +0 -0
  83. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/VTML120.out +0 -0
  84. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/VTML160.out +0 -0
  85. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/VTML20.out +0 -0
  86. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/VTML40.out +0 -0
  87. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/VTML80.out +0 -0
  88. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/blosum100.out +0 -0
  89. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/blosum30.out +0 -0
  90. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/blosum35.out +0 -0
  91. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/blosum40.out +0 -0
  92. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/blosum45.out +0 -0
  93. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/blosum50.out +0 -0
  94. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/blosum55.out +0 -0
  95. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/blosum60.out +0 -0
  96. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/blosum62.out +0 -0
  97. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/blosum65.out +0 -0
  98. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/blosum70.out +0 -0
  99. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/blosum75.out +0 -0
  100. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/blosum80.out +0 -0
  101. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/blosum85.out +0 -0
  102. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/blosum90.out +0 -0
  103. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/blosum95.out +0 -0
  104. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/nucleotide.out +0 -0
  105. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/mmseqs.bat +0 -0
  106. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/util/bash-completion.sh +0 -0
  107. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/AUTHORS +0 -0
  108. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/CHANGELOG +0 -0
  109. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/LICENSE +0 -0
  110. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/README +0 -0
  111. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/bin/libgcc_s_dw2-1.dll +0 -0
  112. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/bin/libstdc++-6.dll +0 -0
  113. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/bin/trimal.exe +0 -0
  114. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/scripts/check_codon_alignments.py +0 -0
  115. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/scripts/compare_trimmed_msas.sh +0 -0
  116. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/scripts/generateRandomAlignmentsUsingAsSeedRealAlignments.py +0 -0
  117. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/scripts/generate_trimmed_msas.sh +0 -0
  118. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/scripts/get_sequence_representative_from_alignment.py +0 -0
  119. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/scripts/get_sequences_gaps_ratio.py +0 -0
  120. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/scripts/remove_shorter_sequences.py +0 -0
  121. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/scripts/selective_trimming_for_dNdS_analyses.based_neighbours.py +0 -0
  122. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/scripts/set_manual_boundaries.py +0 -0
  123. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/alignment.cpp +0 -0
  124. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/alignment.h +0 -0
  125. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/alignment.o +0 -0
  126. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/autAlignment.cpp +0 -0
  127. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/autAlignment.o +0 -0
  128. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/compareFiles.cpp +0 -0
  129. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/compareFiles.h +0 -0
  130. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/compareFiles.o +0 -0
  131. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/defines.h +0 -0
  132. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/main.cpp +0 -0
  133. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/makefile +0 -0
  134. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/makefile.MacOS +0 -0
  135. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/readAl.cpp +0 -0
  136. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/readal.exe +0 -0
  137. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/rwAlignment.cpp +0 -0
  138. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/rwAlignment.o +0 -0
  139. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/sequencesMatrix.cpp +0 -0
  140. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/sequencesMatrix.h +0 -0
  141. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/sequencesMatrix.o +0 -0
  142. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/similarityMatrix.cpp +0 -0
  143. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/similarityMatrix.h +0 -0
  144. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/similarityMatrix.o +0 -0
  145. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/statAl.cpp +0 -0
  146. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/statal.exe +0 -0
  147. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/statisticsConservation.cpp +0 -0
  148. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/statisticsConservation.h +0 -0
  149. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/statisticsConservation.o +0 -0
  150. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/statisticsFiles.cpp +0 -0
  151. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/statisticsFiles.h +0 -0
  152. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/statisticsGaps.cpp +0 -0
  153. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/statisticsGaps.h +0 -0
  154. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/statisticsGaps.o +0 -0
  155. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/utils.cpp +0 -0
  156. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/utils.h +0 -0
  157. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/utils.o +0 -0
  158. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/values.h +0 -0
  159. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/main.py +0 -0
  160. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/preset/.gitignore +0 -0
  161. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/preset/accurate.yaml +0 -0
  162. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/preset/fast.yaml +0 -0
  163. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/.gitignore +0 -0
  164. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__init__.py +0 -0
  165. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/CATV_pipe.cpython-310.pyc +0 -0
  166. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/CAT_V.cpython-310.pyc +0 -0
  167. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/CAT_V.cpython-39.pyc +0 -0
  168. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/CAT_V_pipe.cpython-39.pyc +0 -0
  169. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/__init__.cpython-310.pyc +0 -0
  170. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/__init__.cpython-39.pyc +0 -0
  171. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/align.cpython-310.pyc +0 -0
  172. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/cluster.cpython-39.pyc +0 -0
  173. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/dataset.cpython-39.pyc +0 -0
  174. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/ext.cpython-310.pyc +0 -0
  175. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/ext.cpython-39.pyc +0 -0
  176. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/hasher.cpython-39.pyc +0 -0
  177. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/initialize.cpython-39.pyc +0 -0
  178. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/io.cpython-310.pyc +0 -0
  179. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/io.cpython-39.pyc +0 -0
  180. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/logger.cpython-39.pyc +0 -0
  181. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/modeltest.cpython-39.pyc +0 -0
  182. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/multigene.cpython-39.pyc +0 -0
  183. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/ncbi.cpython-39.pyc +0 -0
  184. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/opt_generator.cpython-39.pyc +0 -0
  185. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/reporter.cpython-39.pyc +0 -0
  186. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/search.cpython-39.pyc +0 -0
  187. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/tool.cpython-39.pyc +0 -0
  188. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/validation.cpython-39.pyc +0 -0
  189. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/visualize.cpython-39.pyc +0 -0
  190. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/align.py +0 -0
  191. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/cluster.py +0 -0
  192. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/command.py +0 -0
  193. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/concatenate.py +0 -0
  194. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/dataset.py +0 -0
  195. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/ext.py +0 -0
  196. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/initialize.py +0 -0
  197. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/logger.py +0 -0
  198. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/logics.py +0 -0
  199. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/modeltest.py +0 -0
  200. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/ncbi.py +0 -0
  201. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/opt_generator.py +0 -0
  202. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/reporter.py +0 -0
  203. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/save.py +0 -0
  204. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/search.py +0 -0
  205. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/templates/template.html +0 -0
  206. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/tree.py +0 -0
  207. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/trim.py +0 -0
  208. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/validate_input.py +0 -0
  209. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/validate_option.py +0 -0
  210. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/validation.py +0 -0
  211. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/version.py +0 -0
  212. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/visualize.py +0 -0
  213. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/test_dataset/penicillium/DB/DB_Penicillium.xlsx +0 -0
  214. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/test_dataset/penicillium/Options.config +0 -0
  215. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/test_dataset/penicillium/Query/Query.xlsx +0 -0
  216. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/test_dataset/penicillium/preset.yaml +0 -0
  217. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/test_dataset/sanghuangporus/DB/FunVIP_Sanghuangporus_db.xlsx +0 -0
  218. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/test_dataset/sanghuangporus/Query/FunVIP_Sanghuangporus_query.xlsx +0 -0
  219. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/test_dataset/sanghuangporus/preset.yaml +0 -0
  220. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/test_dataset/terrei/DB/FunVIP_Aspergillus_db.xlsx +0 -0
  221. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/test_dataset/terrei/Query/FunVIP_Aspergillus_query.xlsx +0 -0
  222. {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/test_dataset/terrei/preset.yaml +0 -0
  223. {funvip-0.3.24.2 → funvip-0.3.24.3}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: FunVIP
3
- Version: 0.3.24.2
3
+ Version: 0.3.24.3
4
4
  Summary: Fungal Validation & Identification Pipeline
5
5
  Author-email: Changwan Seo <wan101010@snu.ac.kr>
6
6
  License: GPL-3.0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: FunVIP
3
- Version: 0.3.24.2
3
+ Version: 0.3.24.3
4
4
  Summary: Fungal Validation & Identification Pipeline
5
5
  Author-email: Changwan Seo <wan101010@snu.ac.kr>
6
6
  License: GPL-3.0
@@ -3,6 +3,7 @@ import re
3
3
  from Bio import SeqIO
4
4
  import copy
5
5
  import pandas as pd
6
+ import sys
6
7
 
7
8
 
8
9
  # Remove all newick illegal strings
@@ -119,11 +120,17 @@ def hasher(funinfo_list: list, path, option, outgroup: bool = False):
119
120
  return group_result
120
121
 
121
122
 
122
- def hash_funinfo_list(list_funinfo: list) -> list:
123
+ def hash_funinfo_list(list_FI: list) -> list:
123
124
  """
124
125
  Generate hash numbers
125
126
  """
126
- for n, funinfo in enumerate(list_funinfo):
127
- funinfo.update_hash(n)
128
127
 
129
- return list_funinfo
128
+ for n, FI in enumerate(list_FI):
129
+ FI.update_hash(n)
130
+
131
+ # To reduce memory
132
+
133
+ # sys.intern(FI.hash)
134
+ # sys.intern(FI.id)
135
+
136
+ return list_FI
@@ -5,12 +5,21 @@ from Bio.Seq import Seq
5
5
  # from .logger import Mes
6
6
  import logging
7
7
  from functools import lru_cache
8
- import sys, os
8
+ import sys
9
+ import os
9
10
  import shutil
10
11
  import platform
11
12
  from unidecode import unidecode
12
13
 
13
14
 
15
+ def sizeof_fmt(num, suffix="B"):
16
+ for unit in ["", "Ki", "Mi", "Gi", "Ti", "Pi", "Ei", "Zi"]:
17
+ if abs(num) < 1024.0:
18
+ return "%3.1f %s%s" % (num, unit, suffix)
19
+ num /= 1024.0
20
+ return "%.1f %s%s" % (num, "Yi", suffix)
21
+
22
+
14
23
  # Maybe we should move this to /funvip/src/toolbox/ and split these to multiple files
15
24
  def initialize_path(path):
16
25
  global genus_file
@@ -14,9 +14,13 @@ from time import sleep
14
14
  import lxml.etree as ET
15
15
  import pandas as pd
16
16
  from functools import lru_cache
17
+ from funvip.src.tool import sizeof_fmt
17
18
  from funvip.src.tool import get_id, get_genus_species
19
+ from itertools import combinations
20
+ import tracemalloc
18
21
  import dendropy
19
22
  import collections
23
+ import psutil
20
24
  import os
21
25
  import re
22
26
  import sys
@@ -569,6 +573,7 @@ class Tree_information:
569
573
 
570
574
  # Calculate zero length branch length cutoff with given tree and alignment
571
575
  def calculate_zero(self, alignment_file, gene, partition_dict):
576
+ # tracemalloc.start()
572
577
  # Parse alignment
573
578
  seq_list = list(SeqIO.parse(alignment_file, "fasta"))
574
579
 
@@ -586,129 +591,151 @@ class Tree_information:
586
591
 
587
592
  # Find identical or including pairs in alignment
588
593
  identical_pairs = []
589
- different_pairs = []
590
- for seq1 in seq_list:
591
- for seq2 in seq_list:
592
- if not (
593
- str(seq1.id).strip() == str(seq2.id).strip()
594
- or (seq1.id, seq2.id) in identical_pairs
595
- or (seq2.id, seq1.id) in identical_pairs
596
- ):
597
- # Chenge unusable chars into gap
598
- seq1_str = str(seq1.seq).lower()
599
- seq2_str = str(seq2.seq).lower()
600
-
601
- for char in set(seq1_str) - {"a", "t", "g", "c", "-"}:
602
- seq1_str = seq1_str.replace(char, "-")
603
-
604
- for char in set(seq2_str) - {"a", "t", "g", "c", "-"}:
605
- seq2_str = seq2_str.replace(char, "-")
606
-
607
- identical_flag = True
608
- # To prevent distance among different region detected as zero in concatenated analysis
609
- overlapping_cnt = 0
610
-
611
- # For concatenated sequence alignment, identical sequnece should be checked by each partitions
612
- if gene == "concatenated":
613
- len_dict = partition_dict["len"]
614
- gene_order = partition_dict["order"]
615
-
616
- valid_index = []
617
-
618
- # calculate valid index to check
619
- previous_index = 0
620
-
621
- for gene in gene_order:
622
- start = previous_index
623
- end = previous_index + len_dict[gene] - 1
624
-
625
- # Find the starting point
626
- for n in range(
627
- previous_index, len_dict[gene] + previous_index
628
- ):
629
- if seq1_str[n] != "-" and seq2_str[n] != "-":
630
- start = n
631
- break
632
-
633
- # Compare from the start
634
- for n in range(
635
- len_dict[gene] + previous_index - 1,
636
- previous_index - 1,
637
- -1,
638
- ):
639
- if seq1_str[n] != "-" and seq2_str[n] != "-":
640
- end = n
641
- break
642
-
643
- """
644
- for n in range(start, end + 1):
645
- valid_index.append(n)
646
- """
647
- valid_index.extend(range(start, end + 1))
648
-
649
- previous_index += len_dict[gene]
650
-
651
- # for valid part
652
- for n in valid_index:
653
- # connected with or to evaluate insertions or deletions
654
- if seq1_str[n] != seq2_str[n]:
655
- identical_flag = False
656
- else:
657
- overlapping_cnt += 1
594
+ # different_pairs = []
658
595
 
659
- else:
660
- start = 0
661
- end = len(seq1_str) - 1
662
- # calculate start and end
663
- for n in range(len(seq1_str)):
596
+ # make phylogenetic distance matrix
597
+ pdc = self.dendro_t.phylogenetic_distance_matrix().as_data_table()._data
598
+
599
+ diff_min = 999999
600
+ for seq1, seq2 in combinations(seq_list, 2):
601
+ if not (
602
+ str(seq1.id).strip() == str(seq2.id).strip()
603
+ or (seq1.id, seq2.id) in identical_pairs
604
+ or (seq2.id, seq1.id) in identical_pairs
605
+ ):
606
+ """
607
+ # Chenge unusable chars into gap
608
+ seq1_str = str(seq1.seq).lower()
609
+ seq2_str = str(seq2.seq).lower()
610
+
611
+ for char in set(seq1_str) - {"a", "t", "g", "c", "-"}:
612
+ seq1_str = seq1_str.replace(char, "-")
613
+
614
+ for char in set(seq2_str) - {"a", "t", "g", "c", "-"}:
615
+ seq2_str = seq2_str.replace(char, "-")
616
+ """
617
+
618
+ seq1_str, seq2_str = str(seq1.seq).lower(), str(seq2.seq).lower()
619
+ seq1_str = "".join(
620
+ "-" if char not in "atgc-" else char for char in seq1_str
621
+ )
622
+ seq2_str = "".join(
623
+ "-" if char not in "atgc-" else char for char in seq2_str
624
+ )
625
+
626
+ identical_flag = True
627
+ # To prevent distance among different region detected as zero in concatenated analysis
628
+ overlapping_cnt = 0
629
+
630
+ # For concatenated sequence alignment, identical sequnece should be checked by each partitions
631
+ if gene == "concatenated":
632
+ len_dict = partition_dict["len"]
633
+ gene_order = partition_dict["order"]
634
+
635
+ valid_index = []
636
+
637
+ # calculate valid index to check
638
+ previous_index = 0
639
+
640
+ for gene in gene_order:
641
+ start = previous_index
642
+ end = previous_index + len_dict[gene] - 1
643
+
644
+ # Find the starting point
645
+ for n in range(previous_index, len_dict[gene] + previous_index):
664
646
  if seq1_str[n] != "-" and seq2_str[n] != "-":
665
647
  start = n
666
648
  break
667
649
 
668
- for n in range(len(seq1_str)):
669
- if (
670
- seq1_str[len(seq1_str) - n - 1] != "-"
671
- and seq2_str[len(seq1_str) - n - 1] != "-"
672
- ):
673
- end = len(seq1_str) - n
650
+ # Compare from the start
651
+ for n in range(
652
+ len_dict[gene] + previous_index - 1,
653
+ previous_index - 1,
654
+ -1,
655
+ ):
656
+ if seq1_str[n] != "-" and seq2_str[n] != "-":
657
+ end = n
674
658
  break
675
659
 
676
- # for valid part
677
- for n in range(start, end):
678
- # connected with or to evaluate insertions or deletions
679
- if seq1_str[n] != seq2_str[n]:
680
- identical_flag = False
681
- else:
682
- overlapping_cnt += 1
660
+ valid_index.extend(range(start, end + 1))
683
661
 
684
- if identical_flag is True and overlapping_cnt > 0:
685
- identical_pairs.append(
686
- tuple(sorted([str(seq1.id).strip(), str(seq2.id).strip()]))
687
- )
688
- elif identical_flag is False:
689
- different_pairs.append(
690
- tuple(sorted([str(seq1.id).strip(), str(seq2.id).strip()]))
691
- )
662
+ previous_index += len_dict[gene]
692
663
 
693
- # make phylogenetic distance matrix
694
- pdc = self.dendro_t.phylogenetic_distance_matrix().as_data_table()._data
664
+ # for valid part
665
+ for n in valid_index:
666
+ # connected with or to evaluate insertions or deletions
667
+ if seq1_str[n] != seq2_str[n]:
668
+ identical_flag = False
669
+ else:
670
+ overlapping_cnt += 1
695
671
 
696
- # print(pdc)
672
+ else:
673
+ start = 0
674
+ end = len(seq1_str) - 1
675
+ # calculate start and end
676
+ for n in range(len(seq1_str)):
677
+ if seq1_str[n] != "-" and seq2_str[n] != "-":
678
+ start = n
679
+ break
680
+
681
+ for n in range(len(seq1_str)):
682
+ if (
683
+ seq1_str[len(seq1_str) - n - 1] != "-"
684
+ and seq2_str[len(seq1_str) - n - 1] != "-"
685
+ ):
686
+ end = len(seq1_str) - n
687
+ break
688
+
689
+ # for valid part
690
+ for n in range(start, end):
691
+ # connected with or to evaluate insertions or deletions
692
+ if seq1_str[n] != seq2_str[n]:
693
+ identical_flag = False
694
+ else:
695
+ overlapping_cnt += 1
697
696
 
698
- # For each alignment identical_pairs, find tree length
699
- for pair in identical_pairs:
700
- if pdc[pair[0]][pair[1]] > self.zero:
701
- # print(f"Updated zero to {pdc[pair[0]][pair[1]]} from {pair}")
702
- self.zero = pdc[pair[0]][pair[1]]
697
+ # if identical pairs
698
+ id1 = str(seq1.id).strip()
699
+ id2 = str(seq2.id).strip()
703
700
 
704
- diff_min = 999999
705
- for pair in different_pairs:
706
- if pdc[pair[0]][pair[1]] < diff_min:
707
- # print(f"Updated diff_min to {pdc[pair[0]][pair[1]]} from {pair}")
708
- diff_min = pdc[pair[0]][pair[1]]
701
+ if identical_flag is True and overlapping_cnt > 0:
702
+ if pdc[id1][id2] > self.zero:
703
+ self.zero = pdc[id1][id2]
704
+
705
+ # if different pairs
706
+ elif identical_flag is False:
707
+ if pdc[id1][id2] < diff_min:
708
+ diff_min = pdc[id1][id2]
709
709
 
710
710
  if diff_min < self.zero:
711
711
  self.zero = diff_min - 0.00000001
712
+ """
713
+ print("Calculate zero")
714
+
715
+ for name, size in sorted(
716
+ ((name, sys.getsizeof(value)) for name, value in list(locals().items())),
717
+ key=lambda x: -x[1],
718
+ )[:10]:
719
+ # print("{:>30}: {:>8}".format(name, sizeof_fmt(size)))
720
+ pass
721
+
722
+ snapshot = tracemalloc.take_snapshot()
723
+ top_stats = snapshot.statistics("lineno")
724
+
725
+ # Print the top memory usage lines
726
+
727
+ print("[ Top 10 ]")
728
+ for stat in top_stats[:10]:
729
+ print(stat)
730
+
731
+ print("===========================")
732
+ """
733
+
734
+ if self.opt.verbose >= 3:
735
+ print(f"[DEBUG] End of calculate zero")
736
+ process = psutil.Process(os.getpid())
737
+ memory_info = process.memory_info()
738
+ print(f"[DEBUG] RAM usage: {memory_info.rss / 1000 / 1000} MB")
712
739
 
713
740
  # I think also finding minimal distance between non-identical sequences are also needed
714
741
  return self.zero
@@ -799,6 +826,34 @@ class Tree_information:
799
826
  self.t.render(f"{out}", tree_style=self.Tree_style.ts)
800
827
  self.Tree_style.ts.show_leaf_name = False
801
828
 
829
+ """
830
+ print("reroot outgroup")
831
+
832
+ for name, size in sorted(
833
+ ((name, sys.getsizeof(value)) for name, value in list(locals().items())),
834
+ key=lambda x: -x[1],
835
+ )[:10]:
836
+ print("{:>30}: {:>8}".format(name, sizeof_fmt(size)))
837
+
838
+
839
+ snapshot = tracemalloc.take_snapshot()
840
+ top_stats = snapshot.statistics("lineno")
841
+
842
+ # Print the top memory usage lines
843
+
844
+ print("[ Top 10 ]")
845
+ for stat in top_stats[:10]:
846
+ print(stat)
847
+
848
+ print("===========================")
849
+ """
850
+
851
+ if self.opt.verbose >= 3:
852
+ print(f"[DEBUG] End of reroot outgroup")
853
+ process = psutil.Process(os.getpid())
854
+ memory_info = process.memory_info()
855
+ print(f"[DEBUG] RAM usage: {memory_info.rss / 1000 / 1000} MB")
856
+
802
857
  def collapse(self, collapse_info, clade, taxon):
803
858
  collapse_info.clade = clade
804
859
  collapse_info.taxon = taxon
@@ -918,8 +973,39 @@ class Tree_information:
918
973
 
919
974
  ## start of tree_search
920
975
  # at the last leaf
976
+ # tracemalloc.start()
977
+
921
978
  if len(clade.children) == 1:
922
979
  local_generate_collapse_information(clade, opt=opt)
980
+ """
981
+ print("tree search part 1")
982
+
983
+ for name, size in sorted(
984
+ (
985
+ (name, sys.getsizeof(value))
986
+ for name, value in list(locals().items())
987
+ ),
988
+ key=lambda x: -x[1],
989
+ )[:10]:
990
+ print("{:>30}: {:>8}".format(name, sizeof_fmt(size)))
991
+
992
+ snapshot = tracemalloc.take_snapshot()
993
+ top_stats = snapshot.statistics("lineno")
994
+
995
+ # Print the top memory usage lines
996
+ print("[ Top 10 ]")
997
+ for stat in top_stats[:10]:
998
+ print(stat)
999
+
1000
+ print("===========================")
1001
+ """
1002
+
1003
+ if self.opt.verbose >= 3:
1004
+ print(f"[DEBUG] End of Tree search with monophyletic branches")
1005
+ process = psutil.Process(os.getpid())
1006
+ memory_info = process.memory_info()
1007
+ print(f"[DEBUG] RAM usage: {memory_info.rss / 1000 / 1000} MB")
1008
+
923
1009
  return
924
1010
 
925
1011
  # In bifurcated clades
@@ -948,6 +1034,36 @@ class Tree_information:
948
1034
  # Else, do recursive tree search to divide clades
949
1035
  else:
950
1036
  self.tree_search(child_clade, gene, opt=opt)
1037
+
1038
+ """
1039
+ print("tree search part 2")
1040
+
1041
+ for name, size in sorted(
1042
+ (
1043
+ (name, sys.getsizeof(value))
1044
+ for name, value in list(locals().items())
1045
+ ),
1046
+ key=lambda x: -x[1],
1047
+ )[:10]:
1048
+ print("{:>30}: {:>8}".format(name, sizeof_fmt(size)))
1049
+
1050
+ snapshot = tracemalloc.take_snapshot()
1051
+ top_stats = snapshot.statistics("lineno")
1052
+
1053
+ # Print the top memory usage lines
1054
+ print("[ Top 10 ]")
1055
+ for stat in top_stats[:10]:
1056
+ print(stat)
1057
+
1058
+ print("===========================")
1059
+ """
1060
+
1061
+ if self.opt.verbose >= 3:
1062
+ print(f"[DEBUG] End of Tree search with bifurcated branches")
1063
+ process = psutil.Process(os.getpid())
1064
+ memory_info = process.memory_info()
1065
+ print(f"[DEBUG] RAM usage: {memory_info.rss / 1000 / 1000} MB")
1066
+
951
1067
  return
952
1068
 
953
1069
  # if error (more than two branches or no branches)
@@ -1272,6 +1388,28 @@ class Tree_information:
1272
1388
  root_dist=clade.dist,
1273
1389
  root_support=clade.support,
1274
1390
  ).copy("newick")
1391
+ """
1392
+ print(f"Reconstruct")
1393
+
1394
+ for name, size in sorted(
1395
+ (
1396
+ (name, sys.getsizeof(value))
1397
+ for name, value in list(locals().items())
1398
+ ),
1399
+ key=lambda x: -x[1],
1400
+ )[:30]:
1401
+ print("{:>30}: {:>8}".format(name, sizeof_fmt(size)))
1402
+
1403
+ print("==============================")
1404
+ sys.stdout.flush()
1405
+ """
1406
+
1407
+ if self.opt.verbose >= 3:
1408
+ print(f"[DEBUG] End of reconstruct")
1409
+ process = psutil.Process(os.getpid())
1410
+ memory_info = process.memory_info()
1411
+ print(f"[DEBUG] RAM usage: {memory_info.rss / 1000 / 1000} MB")
1412
+
1275
1413
  return concatanated_clade
1276
1414
 
1277
1415
  else:
@@ -1423,7 +1561,7 @@ class Tree_information:
1423
1561
  ### end of collapse tree
1424
1562
 
1425
1563
  ### edit svg image from initial output from ete3
1426
- def polish_image(self, out, taxon_string_dict, genus_list):
1564
+ def polish_image(self, out, taxon_string_dict):
1427
1565
  # runname_group_gene.svg file enters here
1428
1566
  # the tree has rectangle collapsed group, tmpseperator, and hash
1429
1567
 
@@ -1581,3 +1719,22 @@ class Tree_information:
1581
1719
  encoding="utf-8",
1582
1720
  xml_declaration=True,
1583
1721
  )
1722
+ """
1723
+ print("In tree visualization")
1724
+
1725
+ for name, size in sorted(
1726
+ ((name, sys.getsizeof(value)) for name, value in list(locals().items())),
1727
+ key=lambda x: -x[1],
1728
+ )[:10]:
1729
+ print("{:>30}: {:>8}".format(name, sizeof_fmt(size)))
1730
+
1731
+ print("===========================")
1732
+
1733
+
1734
+ """
1735
+
1736
+ if self.opt.verbose >= 3:
1737
+ print(f"[DEBUG] End of Tree visualization")
1738
+ process = psutil.Process(os.getpid())
1739
+ memory_info = process.memory_info()
1740
+ print(f"[DEBUG] RAM usage: {memory_info.rss / 1000 / 1000} MB")