FunVIP 0.3.24.4__tar.gz → 0.3.24.6__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.4 → funvip-0.3.24.6}/FunVIP.egg-info/PKG-INFO +1 -1
  2. {funvip-0.3.24.4 → funvip-0.3.24.6}/PKG-INFO +1 -1
  3. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/main.py +3 -0
  4. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/concatenate.py +4 -116
  5. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/ext.py +4 -4
  6. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/modeltest.py +49 -20
  7. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/search.py +2 -2
  8. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/tree.py +1 -2
  9. {funvip-0.3.24.4 → funvip-0.3.24.6}/pyproject.toml +1 -1
  10. {funvip-0.3.24.4 → funvip-0.3.24.6}/FunVIP.egg-info/SOURCES.txt +0 -0
  11. {funvip-0.3.24.4 → funvip-0.3.24.6}/FunVIP.egg-info/dependency_links.txt +0 -0
  12. {funvip-0.3.24.4 → funvip-0.3.24.6}/FunVIP.egg-info/entry_points.txt +0 -0
  13. {funvip-0.3.24.4 → funvip-0.3.24.6}/FunVIP.egg-info/requires.txt +0 -0
  14. {funvip-0.3.24.4 → funvip-0.3.24.6}/FunVIP.egg-info/top_level.txt +0 -0
  15. {funvip-0.3.24.4 → funvip-0.3.24.6}/LICENSE +0 -0
  16. {funvip-0.3.24.4 → funvip-0.3.24.6}/MANIFEST.in +0 -0
  17. {funvip-0.3.24.4 → funvip-0.3.24.6}/README.md +0 -0
  18. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/FunVIP_GUI.py +0 -0
  19. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/__init__.py +0 -0
  20. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/data/Option_manager.xlsx +0 -0
  21. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/data/__init__.py +0 -0
  22. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/data/genus_line.txt +0 -0
  23. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/BLAST_Windows/Uninstall-ncbi-blast-2.12.0+.exe +0 -0
  24. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/BLAST_Windows/bin/blastn.exe +0 -0
  25. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/BLAST_Windows/bin/cleanup-blastdb-volumes.py +0 -0
  26. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/BLAST_Windows/bin/get_species_taxids.sh +0 -0
  27. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/BLAST_Windows/bin/legacy_blast.pl +0 -0
  28. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/BLAST_Windows/bin/makeblastdb.exe +0 -0
  29. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/BLAST_Windows/bin/nghttp2.dll +0 -0
  30. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/BLAST_Windows/bin/update_blastdb.pl +0 -0
  31. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/BLAST_Windows/doc/README.txt +0 -0
  32. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/FastTree_Windows/FastTree.exe +0 -0
  33. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/Gblocks_Windows_0.91b/Gblocks_0.91b/Documentation/Gblocks_documentation.html +0 -0
  34. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/Gblocks_Windows_0.91b/Gblocks_0.91b/Gblocks.exe +0 -0
  35. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/Gblocks_Windows_0.91b/Gblocks_0.91b/more_alignments/cox2.pir +0 -0
  36. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/Gblocks_Windows_0.91b/Gblocks_0.91b/more_alignments/cytb.pir +0 -0
  37. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/Gblocks_Windows_0.91b/Gblocks_0.91b/more_alignments/nad3.pir +0 -0
  38. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/Gblocks_Windows_0.91b/Gblocks_0.91b/more_alignments/nad5.pir +0 -0
  39. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/Gblocks_Windows_0.91b/Gblocks_0.91b/nad3.pir +0 -0
  40. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/Gblocks_Windows_0.91b/Gblocks_0.91b/paths +0 -0
  41. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/MAFFT_LICENSE +0 -0
  42. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/MAFFT_Windows.zip +0 -0
  43. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/RAxML_Windows/GPL-3.0.txt +0 -0
  44. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/RAxML_Windows/README +0 -0
  45. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/RAxML_Windows/raxmlHPC-PTHREADS-AVX2.exe +0 -0
  46. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/__init__.py +0 -0
  47. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/iqtree/bin/iqtree2-click.exe +0 -0
  48. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/iqtree/bin/iqtree2.exe +0 -0
  49. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/iqtree/bin/libiomp5md.dll +0 -0
  50. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/iqtree/example.cf +0 -0
  51. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/iqtree/example.nex +0 -0
  52. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/iqtree/example.phy +0 -0
  53. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/iqtree/models.nex +0 -0
  54. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/LICENSE.md +0 -0
  55. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/README.md +0 -0
  56. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/bin/busybox.exe +0 -0
  57. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/bin/cygbz2-1.dll +0 -0
  58. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/bin/cyggcc_s-seh-1.dll +0 -0
  59. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/bin/cyggomp-1.dll +0 -0
  60. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/bin/cygstdc++-6.dll +0 -0
  61. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/bin/cygwin1.dll +0 -0
  62. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/bin/cygz.dll +0 -0
  63. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/bin/mmseqs.exe +0 -0
  64. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/examples/QUERY.fasta +0 -0
  65. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/PAM10.out +0 -0
  66. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/PAM100.out +0 -0
  67. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/PAM110.out +0 -0
  68. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/PAM120.out +0 -0
  69. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/PAM130.out +0 -0
  70. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/PAM140.out +0 -0
  71. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/PAM150.out +0 -0
  72. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/PAM160.out +0 -0
  73. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/PAM170.out +0 -0
  74. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/PAM180.out +0 -0
  75. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/PAM190.out +0 -0
  76. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/PAM20.out +0 -0
  77. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/PAM30.out +0 -0
  78. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/PAM40.out +0 -0
  79. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/PAM50.out +0 -0
  80. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/PAM60.out +0 -0
  81. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/PAM70.out +0 -0
  82. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/PAM80.out +0 -0
  83. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/PAM90.out +0 -0
  84. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/VTML10.out +0 -0
  85. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/VTML120.out +0 -0
  86. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/VTML160.out +0 -0
  87. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/VTML20.out +0 -0
  88. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/VTML40.out +0 -0
  89. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/VTML80.out +0 -0
  90. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/blosum100.out +0 -0
  91. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/blosum30.out +0 -0
  92. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/blosum35.out +0 -0
  93. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/blosum40.out +0 -0
  94. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/blosum45.out +0 -0
  95. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/blosum50.out +0 -0
  96. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/blosum55.out +0 -0
  97. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/blosum60.out +0 -0
  98. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/blosum62.out +0 -0
  99. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/blosum65.out +0 -0
  100. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/blosum70.out +0 -0
  101. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/blosum75.out +0 -0
  102. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/blosum80.out +0 -0
  103. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/blosum85.out +0 -0
  104. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/blosum90.out +0 -0
  105. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/blosum95.out +0 -0
  106. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/matrices/nucleotide.out +0 -0
  107. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/mmseqs.bat +0 -0
  108. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/mmseqs_Windows/util/bash-completion.sh +0 -0
  109. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/AUTHORS +0 -0
  110. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/CHANGELOG +0 -0
  111. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/LICENSE +0 -0
  112. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/README +0 -0
  113. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/bin/libgcc_s_dw2-1.dll +0 -0
  114. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/bin/libstdc++-6.dll +0 -0
  115. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/bin/trimal.exe +0 -0
  116. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/scripts/check_codon_alignments.py +0 -0
  117. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/scripts/compare_trimmed_msas.sh +0 -0
  118. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/scripts/generateRandomAlignmentsUsingAsSeedRealAlignments.py +0 -0
  119. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/scripts/generate_trimmed_msas.sh +0 -0
  120. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/scripts/get_sequence_representative_from_alignment.py +0 -0
  121. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/scripts/get_sequences_gaps_ratio.py +0 -0
  122. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/scripts/remove_shorter_sequences.py +0 -0
  123. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/scripts/selective_trimming_for_dNdS_analyses.based_neighbours.py +0 -0
  124. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/scripts/set_manual_boundaries.py +0 -0
  125. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/alignment.cpp +0 -0
  126. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/alignment.h +0 -0
  127. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/alignment.o +0 -0
  128. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/autAlignment.cpp +0 -0
  129. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/autAlignment.o +0 -0
  130. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/compareFiles.cpp +0 -0
  131. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/compareFiles.h +0 -0
  132. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/compareFiles.o +0 -0
  133. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/defines.h +0 -0
  134. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/main.cpp +0 -0
  135. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/makefile +0 -0
  136. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/makefile.MacOS +0 -0
  137. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/readAl.cpp +0 -0
  138. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/readal.exe +0 -0
  139. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/rwAlignment.cpp +0 -0
  140. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/rwAlignment.o +0 -0
  141. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/sequencesMatrix.cpp +0 -0
  142. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/sequencesMatrix.h +0 -0
  143. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/sequencesMatrix.o +0 -0
  144. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/similarityMatrix.cpp +0 -0
  145. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/similarityMatrix.h +0 -0
  146. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/similarityMatrix.o +0 -0
  147. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/statAl.cpp +0 -0
  148. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/statal.exe +0 -0
  149. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/statisticsConservation.cpp +0 -0
  150. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/statisticsConservation.h +0 -0
  151. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/statisticsConservation.o +0 -0
  152. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/statisticsFiles.cpp +0 -0
  153. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/statisticsFiles.h +0 -0
  154. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/statisticsGaps.cpp +0 -0
  155. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/statisticsGaps.h +0 -0
  156. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/statisticsGaps.o +0 -0
  157. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/utils.cpp +0 -0
  158. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/utils.h +0 -0
  159. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/utils.o +0 -0
  160. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/external/trimal.v1.4/trimAl/source/values.h +0 -0
  161. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/preset/.gitignore +0 -0
  162. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/preset/accurate.yaml +0 -0
  163. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/preset/fast.yaml +0 -0
  164. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/.gitignore +0 -0
  165. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/__init__.py +0 -0
  166. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/__pycache__/CATV_pipe.cpython-310.pyc +0 -0
  167. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/__pycache__/CAT_V.cpython-310.pyc +0 -0
  168. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/__pycache__/CAT_V.cpython-39.pyc +0 -0
  169. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/__pycache__/CAT_V_pipe.cpython-39.pyc +0 -0
  170. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/__pycache__/__init__.cpython-310.pyc +0 -0
  171. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/__pycache__/__init__.cpython-39.pyc +0 -0
  172. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/__pycache__/align.cpython-310.pyc +0 -0
  173. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/__pycache__/cluster.cpython-39.pyc +0 -0
  174. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/__pycache__/dataset.cpython-39.pyc +0 -0
  175. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/__pycache__/ext.cpython-310.pyc +0 -0
  176. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/__pycache__/ext.cpython-39.pyc +0 -0
  177. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/__pycache__/hasher.cpython-39.pyc +0 -0
  178. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/__pycache__/initialize.cpython-39.pyc +0 -0
  179. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/__pycache__/io.cpython-310.pyc +0 -0
  180. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/__pycache__/io.cpython-39.pyc +0 -0
  181. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/__pycache__/logger.cpython-39.pyc +0 -0
  182. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/__pycache__/modeltest.cpython-39.pyc +0 -0
  183. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/__pycache__/multigene.cpython-39.pyc +0 -0
  184. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/__pycache__/ncbi.cpython-39.pyc +0 -0
  185. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/__pycache__/opt_generator.cpython-39.pyc +0 -0
  186. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/__pycache__/reporter.cpython-39.pyc +0 -0
  187. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/__pycache__/search.cpython-39.pyc +0 -0
  188. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/__pycache__/tool.cpython-39.pyc +0 -0
  189. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/__pycache__/validation.cpython-39.pyc +0 -0
  190. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/__pycache__/visualize.cpython-39.pyc +0 -0
  191. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/align.py +0 -0
  192. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/cluster.py +0 -0
  193. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/command.py +0 -0
  194. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/dataset.py +0 -0
  195. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/hasher.py +0 -0
  196. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/initialize.py +0 -0
  197. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/logger.py +0 -0
  198. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/logics.py +0 -0
  199. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/ncbi.py +0 -0
  200. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/opt_generator.py +0 -0
  201. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/reporter.py +0 -0
  202. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/save.py +0 -0
  203. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/templates/template.html +0 -0
  204. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/tool.py +0 -0
  205. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/tree_interpretation.py +0 -0
  206. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/tree_interpretation_pipe.py +0 -0
  207. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/trim.py +0 -0
  208. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/validate_input.py +0 -0
  209. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/validate_option.py +0 -0
  210. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/validation.py +0 -0
  211. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/version.py +0 -0
  212. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/src/visualize.py +0 -0
  213. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/test_dataset/penicillium/DB/DB_Penicillium.xlsx +0 -0
  214. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/test_dataset/penicillium/Options.config +0 -0
  215. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/test_dataset/penicillium/Query/Query.xlsx +0 -0
  216. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/test_dataset/penicillium/preset.yaml +0 -0
  217. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/test_dataset/sanghuangporus/DB/FunVIP_Sanghuangporus_db.xlsx +0 -0
  218. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/test_dataset/sanghuangporus/Query/FunVIP_Sanghuangporus_query.xlsx +0 -0
  219. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/test_dataset/sanghuangporus/preset.yaml +0 -0
  220. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/test_dataset/terrei/DB/FunVIP_Aspergillus_db.xlsx +0 -0
  221. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/test_dataset/terrei/Query/FunVIP_Aspergillus_query.xlsx +0 -0
  222. {funvip-0.3.24.4 → funvip-0.3.24.6}/funvip/test_dataset/terrei/preset.yaml +0 -0
  223. {funvip-0.3.24.4 → funvip-0.3.24.6}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: FunVIP
3
- Version: 0.3.24.4
3
+ Version: 0.3.24.6
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.4
3
+ Version: 0.3.24.6
4
4
  Summary: Fungal Validation & Identification Pipeline
5
5
  Author-email: Changwan Seo <wan101010@snu.ac.kr>
6
6
  License: GPL-3.0
@@ -34,6 +34,9 @@ def main():
34
34
  import logging
35
35
  import PyQt5
36
36
 
37
+ # To prevent pyqt error
38
+ os.environ["QT_QPA_PLATFORM"] = "offscreen"
39
+
37
40
  # To initialize logger to print ANSI color
38
41
  _ = subprocess.call("", shell=True)
39
42
 
@@ -148,33 +148,8 @@ def concatenate_df(V, path, opt):
148
148
  gene_list.append(gene)
149
149
 
150
150
  df = deepcopy(V.dict_gene_SR[gene].set_index(["qseqid", "sseqid"]))
151
-
152
- """
153
- df = deepcopy(
154
- V.dict_gene_SR[gene]
155
- .set_index(["qseqid", "sseqid"])
156
- .drop(
157
- columns=[
158
- "pident",
159
- "length",
160
- "mismatch",
161
- "gaps",
162
- "qstart",
163
- "qend",
164
- "sstart",
165
- "send",
166
- "evalue",
167
- "bitscore",
168
- "subject_group",
169
- ]
170
- )
171
- )
172
- """
173
151
  df_list.append(df)
174
152
 
175
- print("line 175")
176
- print(time_start - time())
177
-
178
153
  if len(df_list) <= 0:
179
154
  logging.warning(f"Stop concatenating because same or less than 0 gene exists")
180
155
  return V
@@ -214,24 +189,8 @@ def concatenate_df(V, path, opt):
214
189
  inplace=True,
215
190
  )
216
191
 
217
- print("line 217")
218
- print(time_start - time())
219
-
220
- """
221
192
  # Column name managing on subject_group
222
- def same_merge(x, list_col):
223
- values = x[list_col].dropna()
224
- if values.empty:
225
- raise Exception
226
- return values.iloc[0]
227
193
 
228
- df_multigene_regression_ori[
229
- "subject_group"
230
- ] = df_multigene_regression_ori.apply(
231
- lambda x: same_merge(x, [f"{gene}_subject_group" for gene in gene_list]),
232
- axis=1,
233
- )
234
- """
235
194
  subject_group_cols = [f"{gene}_subject_group" for gene in gene_list]
236
195
  df_multigene_regression_ori["subject_group"] = (
237
196
  df_multigene_regression_ori[subject_group_cols].bfill(axis=1).iloc[:, 0]
@@ -240,13 +199,6 @@ def concatenate_df(V, path, opt):
240
199
  # For regression, leave anchor points with all genes existing
241
200
  df_multigene_regression = df_multigene_regression_ori
242
201
 
243
- """
244
- for gene in gene_list:
245
- df_multigene_regression = df_multigene_regression[
246
- df_multigene_regression[f"{gene}_bitscore"].notna()
247
- ]
248
- """
249
-
250
202
  mask = (
251
203
  df_multigene_regression_ori[[f"{gene}_bitscore" for gene in gene_list]]
252
204
  .notna()
@@ -255,9 +207,6 @@ def concatenate_df(V, path, opt):
255
207
 
256
208
  df_multigene_regression = df_multigene_regression_ori[mask]
257
209
 
258
- print("line 243")
259
- print(time_start - time())
260
-
261
210
  # Perform regression
262
211
  # Get regression line
263
212
  def distance_to_line(line, pts, l0=None, p0=None):
@@ -276,24 +225,13 @@ def concatenate_df(V, path, opt):
276
225
  D = (P - (P.dot.u) * u).length
277
226
  """
278
227
  # line origin other than (0,0,0,..)
228
+ # do not use line -= l0 because casting rule error might happen
279
229
  if l0 is not None:
280
- line -= l0
230
+ line = line - l0
281
231
  # points origin other than (0,0,0,..)
232
+ # do not use pts -= l0 because casting rule error might happen
282
233
  if p0 is not None:
283
- pts -= p0
284
-
285
- """
286
- # dot product
287
- dp = np.dot(pts, line)
288
- # dot product value divided by normalized vector of line
289
- # np.linalg.norm(line) : size of the line vector
290
- # pp should be orthographic projected length of the dot
291
- pp = dp / np.linalg.norm(line)
292
- # norm value of point
293
- # length from p0 to point
294
- pn = np.linalg.norm(pts, axis=1)
295
- return np.sqrt(np.clip(pn**2 - pp**2, a_min=1e-10, a_max=None))
296
- """
234
+ pts = pts - p0
297
235
 
298
236
  norm_line = np.linalg.norm(line)
299
237
  projected_lengths = np.dot(pts, line) / norm_line
@@ -329,32 +267,6 @@ def concatenate_df(V, path, opt):
329
267
  K_optimized,
330
268
  )
331
269
 
332
- # Reset df before filling it
333
- """
334
- def calculate_prediction(row, gene_list, coeff, grad):
335
- # Calculate linear_constant of the strain
336
- linear_constant = []
337
- for k, gene in enumerate(gene_list):
338
- if not np.isnan(row[f"{gene}_bitscore"]):
339
- # (coeff - value) / gradient = linear constant
340
- linear_constant.append(
341
- (coeff[k] - row[f"{gene}_bitscore"]) / grad[k]
342
- )
343
-
344
- # Predict unknown BLAST value
345
- for k, gene in enumerate(gene_list):
346
- if np.isnan(row[f"{gene}_bitscore"]):
347
- # prediction value = coeff - linear constant * gradient
348
- prediction = coeff[k] - np.mean(linear_constant) * grad[k]
349
- row[f"{gene}_bitscore"] = prediction
350
- return row
351
-
352
-
353
- def apply_prediction(row, gene_list, coeff, grad):
354
- row = calculate_prediction(row, gene_list, coeff, grad)
355
- return row
356
- """
357
-
358
270
  def vectorized_prediction(df, gene_list, coeff, grad):
359
271
  for k, gene in enumerate(gene_list):
360
272
  linear_constant = (coeff[k] - df[f"{gene}_bitscore"]) / grad[k]
@@ -366,23 +278,14 @@ def concatenate_df(V, path, opt):
366
278
  )
367
279
  return df
368
280
 
369
- print("line 344")
370
- print(time_start - time())
371
-
372
281
  # Change to numpy for faster cazlculation
373
282
  np_bitscore = df_multigene_regression[
374
283
  [f"{gene}_bitscore" for gene in gene_list]
375
284
  ].to_numpy()
376
285
 
377
- print("line 353")
378
- print(time_start - time())
379
-
380
286
  # get coefficient and gradient with regression
381
287
  coeff, grad = optimize_regression_line(np_bitscore)
382
288
 
383
- print("optimize regression line")
384
- print(time_start - time())
385
-
386
289
  # Inform users about linear regression result
387
290
  # (C0 - X0) / K0 = (C1 -X1) / X1 = (C2 - X2) / X2 = K
388
291
  trend_line_string = ""
@@ -403,15 +306,6 @@ def concatenate_df(V, path, opt):
403
306
  df_multigene_regression, gene_list, coeff, grad
404
307
  )
405
308
 
406
- print("vectorized regression line")
407
- print(time_start - time())
408
-
409
- """
410
- df_multigene_regression = df_multigene_regression.apply(
411
- apply_prediction, args=(gene_list, coeff, grad), axis=1
412
- )
413
- """
414
-
415
309
  # Also update each gene bitscore matrix
416
310
  # This part is needed, for multigene analysis, for example ITS, CaM and RPB2
417
311
  # If query only exists for ITS and CaM, no blast result for RPB2 were generated
@@ -423,9 +317,6 @@ def concatenate_df(V, path, opt):
423
317
  ].mean(axis=1)
424
318
  V.cSR = df_multigene_regression.reset_index()
425
319
 
426
- print("mean and reset index line")
427
- print(time_start - time())
428
-
429
320
  # Save it
430
321
  # decode df is not working well here
431
322
  if opt.nosearchresult is False:
@@ -435,7 +326,4 @@ def concatenate_df(V, path, opt):
435
326
  fmt=opt.tableformat,
436
327
  )
437
328
 
438
- print("save table")
439
- print(time_start - time())
440
-
441
329
  return V
@@ -292,10 +292,10 @@ def ModelFinder(fasta, opt, path, thread):
292
292
  if platform == "win32":
293
293
  if " " in fasta:
294
294
  fasta = f'"{fasta}"'
295
- CMD = f"{path.sys_path}/external/iqtree/bin/iqtree2.exe --seqtype DNA -s {fasta} {model_term} -merit {opt.criterion} -T {thread} -mem {opt.memory}"
295
+ CMD = f"{path.sys_path}/external/iqtree/bin/iqtree2.exe --seqtype DNA -s {fasta} {model_term} -merit {opt.criterion} -nt AUTO -ntmax {thread} -mem {opt.memory} --quiet"
296
296
  else:
297
297
  # not final
298
- CMD = f"iqtree --seqtype DNA -s '{fasta}' {model_term} -merit {opt.criterion} -T {thread} -mem {opt.memory}"
298
+ CMD = f"iqtree --seqtype DNA -s '{fasta}' {model_term} -merit {opt.criterion} -nt AUTO -ntmax {thread} -mem {opt.memory} --quiet"
299
299
  logging.info(CMD)
300
300
  Run = subprocess.call(CMD, shell=True)
301
301
 
@@ -418,9 +418,9 @@ def IQTREE(
418
418
  else:
419
419
  tmp_fasta = fasta
420
420
 
421
- CMD = f"{path.sys_path}/external/iqtree/bin/iqtree2.exe -s {tmp_fasta} -B {bootstrap} -T {thread} {model}"
421
+ CMD = f"{path.sys_path}/external/iqtree/bin/iqtree2.exe -s {tmp_fasta} -B {bootstrap} -nt AUTO -ntmax {thread} {model}"
422
422
  else:
423
- CMD = f"iqtree -s {fasta} -B {bootstrap} -T {thread} {model}"
423
+ CMD = f"iqtree -s {fasta} -B {bootstrap} -nt AUTO -ntmax {thread} {model}"
424
424
 
425
425
  logging.info(f"partition: {partition}")
426
426
  # Partitioned analysis cannot be used with memory option
@@ -1,6 +1,9 @@
1
1
  from funvip.src import ext
2
- import os, shutil, copy
2
+ import os
3
+ import shutil
4
+ import copy
3
5
  import logging
6
+ import multiprocessing as mp
4
7
 
5
8
  cmd_translator_modeltestng_fasttree = {
6
9
  "JC": "",
@@ -362,9 +365,9 @@ def modeltest(V, path, opt) -> dict:
362
365
  model_dict = copy.deepcopy(group_dict)
363
366
 
364
367
  # By group and by gene
365
- for group in group_dict:
366
- for gene in group_dict[group]:
367
- if opt.method.modeltest.lower() == "modeltest-ng":
368
+ if opt.method.modeltest.lower() == "modeltest-ng":
369
+ for group in group_dict:
370
+ for gene in group_dict[group]:
368
371
  # As modeltest-ng shows only top 10 results,
369
372
  # we should reduce number of models to prevent none of the model fits
370
373
  if opt.method.tree == "fasttree":
@@ -397,17 +400,41 @@ def modeltest(V, path, opt) -> dict:
397
400
  path=path,
398
401
  opt=opt,
399
402
  )
400
- elif opt.method.modeltest.lower() == "iqtree":
401
- if not (opt.method.tree == "iqtree"):
402
- # Run IQTREE ModelFinder
403
- ext.ModelFinder(
404
- fasta=f"{path.out_alignment}/{opt.runname}_trimmed_{group}_{gene}.fasta",
405
- opt=opt,
406
- path=path,
407
- thread=opt.thread,
408
- )
403
+ # In case of IQTREE ModelFinder, for optimization, run it with multithreaded
404
+ elif opt.method.modeltest.lower() == "iqtree":
405
+ if not (opt.method.tree == "iqtree"):
406
+ if opt.verbose < 3:
407
+ modelfinder_opt = []
408
+ for group in group_dict:
409
+ for gene in group_dict[group]:
410
+ modelfinder_opt.append(
411
+ (
412
+ f"{path.out_alignment}/{opt.runname}_trimmed_{group}_{gene}.fasta",
413
+ opt,
414
+ path,
415
+ 1,
416
+ )
417
+ )
418
+
419
+ p = mp.Pool(opt.thread)
420
+ _ = p.starmap(ext.ModelFinder, modelfinder_opt)
421
+ p.close()
422
+ p.join()
423
+
424
+ else: # non-multithreading mode for debugging
425
+ for group in group_dict:
426
+ for gene in group_dict[group]:
427
+ # Run IQTREE ModelFinder
428
+ ext.ModelFinder(
429
+ fasta=f"{path.out_alignment}/{opt.runname}_trimmed_{group}_{gene}.fasta",
430
+ opt=opt,
431
+ path=path,
432
+ thread=opt.thread,
433
+ )
409
434
 
410
- # Move modeltest result to appropriate location
435
+ # Move modeltest result to appropriate location
436
+ for group in group_dict:
437
+ for gene in group_dict[group]:
411
438
  try:
412
439
  shutil.move(
413
440
  f"{path.out_alignment}/{opt.runname}_trimmed_{group}_{gene}.fasta.iqtree",
@@ -424,13 +451,15 @@ def modeltest(V, path, opt) -> dict:
424
451
  path=path,
425
452
  opt=opt,
426
453
  )
427
- else:
428
- logging.info(
429
- "IQTREE will perform ModelFinder internally in tree construction step, skipping in modeltest step"
430
- )
431
- model_dict[group][gene] = "skip"
454
+ else:
455
+ logging.info(
456
+ "IQTREE will perform ModelFinder internally in tree construction step, skipping in modeltest step"
457
+ )
458
+ model_dict[group][gene] = "skip"
432
459
 
433
- else: # including opt.model_method.lower() == "none":
460
+ else: # including opt.model_method.lower() == "none":
461
+ for group in group_dict:
462
+ for gene in group_dict[group]:
434
463
  if opt.method.tree == "raxml":
435
464
  logging.info("Skipping modeltest. Using GTRGAMMA as default")
436
465
  model_dict[group][gene] = "-m GTRGAMMA"
@@ -359,8 +359,8 @@ def search_df(V, path, opt):
359
359
  )
360
360
 
361
361
  # Cutoff by outgroupcutoff
362
- print(vars(opt))
363
- print(opt.cluster.outgroupoffset)
362
+ # print(vars(opt))
363
+ # print(opt.cluster.outgroupoffset)
364
364
  df_search = df_search[
365
365
  df_search["bitscore"] > opt.cluster.outgroupoffset
366
366
  ]
@@ -172,8 +172,7 @@ def pipe_tree(V, path, opt, model_dict):
172
172
  p.close()
173
173
  p.join()
174
174
 
175
- else:
176
- # non-multithreading mode for debugging
175
+ else: # non-multithreading mode for debugging
177
176
  fasttree_result = []
178
177
  for option in fasttree_opt:
179
178
  fasttree_result.append(ext.FastTree(*option))
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "FunVIP"
3
- version = "0.3.24.4"
3
+ version = "0.3.24.6"
4
4
  description = "Fungal Validation & Identification Pipeline"
5
5
  authors = [{name = "Changwan Seo", email = "wan101010@snu.ac.kr"}]
6
6
  urls = { "Homepage" = "https://github.com/Changwanseo/FunVIP" }
File without changes
File without changes
File without changes
File without changes