FunVIP 0.3.23__tar.gz → 0.3.23.2__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 (219) hide show
  1. {funvip-0.3.23 → funvip-0.3.23.2}/FunVIP.egg-info/PKG-INFO +6 -6
  2. {funvip-0.3.23 → funvip-0.3.23.2}/FunVIP.egg-info/requires.txt +4 -4
  3. {funvip-0.3.23 → funvip-0.3.23.2}/PKG-INFO +6 -6
  4. {funvip-0.3.23 → funvip-0.3.23.2}/README.md +11 -8
  5. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/BLAST_Windows/bin/cleanup-blastdb-volumes.py +162 -162
  6. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/BLAST_Windows/bin/get_species_taxids.sh +152 -152
  7. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/BLAST_Windows/bin/legacy_blast.pl +1359 -1359
  8. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/BLAST_Windows/bin/update_blastdb.pl +1069 -1069
  9. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/cluster.py +2 -1
  10. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/command.py +5 -0
  11. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/validate_input.py +951 -951
  12. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/validate_option.py +13 -0
  13. {funvip-0.3.23 → funvip-0.3.23.2}/pyproject.toml +6 -6
  14. {funvip-0.3.23 → funvip-0.3.23.2}/FunVIP.egg-info/SOURCES.txt +0 -0
  15. {funvip-0.3.23 → funvip-0.3.23.2}/FunVIP.egg-info/dependency_links.txt +0 -0
  16. {funvip-0.3.23 → funvip-0.3.23.2}/FunVIP.egg-info/entry_points.txt +0 -0
  17. {funvip-0.3.23 → funvip-0.3.23.2}/FunVIP.egg-info/top_level.txt +0 -0
  18. {funvip-0.3.23 → funvip-0.3.23.2}/LICENSE +0 -0
  19. {funvip-0.3.23 → funvip-0.3.23.2}/MANIFEST.in +0 -0
  20. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/FunVIP_GUI.py +0 -0
  21. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/__init__.py +0 -0
  22. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/data/Option_manager.xlsx +0 -0
  23. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/data/__init__.py +0 -0
  24. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/data/genus_line.txt +0 -0
  25. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/BLAST_Windows/Uninstall-ncbi-blast-2.12.0+.exe +0 -0
  26. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/BLAST_Windows/bin/blastn.exe +0 -0
  27. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/BLAST_Windows/bin/makeblastdb.exe +0 -0
  28. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/BLAST_Windows/bin/nghttp2.dll +0 -0
  29. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/BLAST_Windows/doc/README.txt +0 -0
  30. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/FastTree_Windows/FastTree.exe +0 -0
  31. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/Gblocks_Windows_0.91b/Gblocks_0.91b/Documentation/Gblocks_documentation.html +0 -0
  32. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/Gblocks_Windows_0.91b/Gblocks_0.91b/Gblocks.exe +0 -0
  33. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/Gblocks_Windows_0.91b/Gblocks_0.91b/more_alignments/cox2.pir +0 -0
  34. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/Gblocks_Windows_0.91b/Gblocks_0.91b/more_alignments/cytb.pir +0 -0
  35. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/Gblocks_Windows_0.91b/Gblocks_0.91b/more_alignments/nad3.pir +0 -0
  36. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/Gblocks_Windows_0.91b/Gblocks_0.91b/more_alignments/nad5.pir +0 -0
  37. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/Gblocks_Windows_0.91b/Gblocks_0.91b/nad3.pir +0 -0
  38. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/Gblocks_Windows_0.91b/Gblocks_0.91b/paths +0 -0
  39. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/MAFFT_LICENSE +0 -0
  40. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/MAFFT_Windows.zip +0 -0
  41. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/RAxML_Windows/GPL-3.0.txt +0 -0
  42. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/RAxML_Windows/README +0 -0
  43. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/RAxML_Windows/raxmlHPC-PTHREADS-AVX2.exe +0 -0
  44. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/__init__.py +0 -0
  45. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/iqtree/bin/iqtree2-click.exe +0 -0
  46. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/iqtree/bin/iqtree2.exe +0 -0
  47. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/iqtree/bin/libiomp5md.dll +0 -0
  48. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/iqtree/example.cf +0 -0
  49. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/iqtree/example.nex +0 -0
  50. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/iqtree/example.phy +0 -0
  51. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/iqtree/models.nex +0 -0
  52. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/LICENSE.md +0 -0
  53. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/README.md +0 -0
  54. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/bin/busybox.exe +0 -0
  55. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/bin/cygbz2-1.dll +0 -0
  56. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/bin/cyggcc_s-seh-1.dll +0 -0
  57. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/bin/cyggomp-1.dll +0 -0
  58. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/bin/cygstdc++-6.dll +0 -0
  59. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/bin/cygwin1.dll +0 -0
  60. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/bin/cygz.dll +0 -0
  61. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/bin/mmseqs.exe +0 -0
  62. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/examples/QUERY.fasta +0 -0
  63. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/PAM10.out +0 -0
  64. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/PAM100.out +0 -0
  65. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/PAM110.out +0 -0
  66. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/PAM120.out +0 -0
  67. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/PAM130.out +0 -0
  68. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/PAM140.out +0 -0
  69. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/PAM150.out +0 -0
  70. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/PAM160.out +0 -0
  71. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/PAM170.out +0 -0
  72. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/PAM180.out +0 -0
  73. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/PAM190.out +0 -0
  74. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/PAM20.out +0 -0
  75. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/PAM30.out +0 -0
  76. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/PAM40.out +0 -0
  77. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/PAM50.out +0 -0
  78. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/PAM60.out +0 -0
  79. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/PAM70.out +0 -0
  80. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/PAM80.out +0 -0
  81. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/PAM90.out +0 -0
  82. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/VTML10.out +0 -0
  83. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/VTML120.out +0 -0
  84. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/VTML160.out +0 -0
  85. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/VTML20.out +0 -0
  86. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/VTML40.out +0 -0
  87. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/VTML80.out +0 -0
  88. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/blosum100.out +0 -0
  89. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/blosum30.out +0 -0
  90. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/blosum35.out +0 -0
  91. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/blosum40.out +0 -0
  92. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/blosum45.out +0 -0
  93. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/blosum50.out +0 -0
  94. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/blosum55.out +0 -0
  95. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/blosum60.out +0 -0
  96. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/blosum62.out +0 -0
  97. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/blosum65.out +0 -0
  98. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/blosum70.out +0 -0
  99. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/blosum75.out +0 -0
  100. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/blosum80.out +0 -0
  101. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/blosum85.out +0 -0
  102. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/blosum90.out +0 -0
  103. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/blosum95.out +0 -0
  104. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/matrices/nucleotide.out +0 -0
  105. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/mmseqs.bat +0 -0
  106. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/mmseqs_Windows/util/bash-completion.sh +0 -0
  107. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/AUTHORS +0 -0
  108. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/CHANGELOG +0 -0
  109. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/LICENSE +0 -0
  110. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/README +0 -0
  111. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/bin/libgcc_s_dw2-1.dll +0 -0
  112. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/bin/libstdc++-6.dll +0 -0
  113. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/bin/trimal.exe +0 -0
  114. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/scripts/check_codon_alignments.py +0 -0
  115. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/scripts/compare_trimmed_msas.sh +0 -0
  116. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/scripts/generateRandomAlignmentsUsingAsSeedRealAlignments.py +0 -0
  117. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/scripts/generate_trimmed_msas.sh +0 -0
  118. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/scripts/get_sequence_representative_from_alignment.py +0 -0
  119. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/scripts/get_sequences_gaps_ratio.py +0 -0
  120. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/scripts/remove_shorter_sequences.py +0 -0
  121. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/scripts/selective_trimming_for_dNdS_analyses.based_neighbours.py +0 -0
  122. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/scripts/set_manual_boundaries.py +0 -0
  123. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/alignment.cpp +0 -0
  124. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/alignment.h +0 -0
  125. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/alignment.o +0 -0
  126. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/autAlignment.cpp +0 -0
  127. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/autAlignment.o +0 -0
  128. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/compareFiles.cpp +0 -0
  129. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/compareFiles.h +0 -0
  130. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/compareFiles.o +0 -0
  131. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/defines.h +0 -0
  132. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/main.cpp +0 -0
  133. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/makefile +0 -0
  134. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/makefile.MacOS +0 -0
  135. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/readAl.cpp +0 -0
  136. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/readal.exe +0 -0
  137. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/rwAlignment.cpp +0 -0
  138. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/rwAlignment.o +0 -0
  139. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/sequencesMatrix.cpp +0 -0
  140. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/sequencesMatrix.h +0 -0
  141. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/sequencesMatrix.o +0 -0
  142. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/similarityMatrix.cpp +0 -0
  143. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/similarityMatrix.h +0 -0
  144. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/similarityMatrix.o +0 -0
  145. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/statAl.cpp +0 -0
  146. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/statal.exe +0 -0
  147. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/statisticsConservation.cpp +0 -0
  148. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/statisticsConservation.h +0 -0
  149. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/statisticsConservation.o +0 -0
  150. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/statisticsFiles.cpp +0 -0
  151. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/statisticsFiles.h +0 -0
  152. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/statisticsGaps.cpp +0 -0
  153. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/statisticsGaps.h +0 -0
  154. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/statisticsGaps.o +0 -0
  155. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/utils.cpp +0 -0
  156. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/utils.h +0 -0
  157. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/utils.o +0 -0
  158. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/external/trimal.v1.4/trimAl/source/values.h +0 -0
  159. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/main.py +0 -0
  160. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/preset/.gitignore +0 -0
  161. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/preset/accurate.yaml +0 -0
  162. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/preset/fast.yaml +0 -0
  163. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/.gitignore +0 -0
  164. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/__init__.py +0 -0
  165. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/__pycache__/CATV_pipe.cpython-310.pyc +0 -0
  166. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/__pycache__/CAT_V.cpython-310.pyc +0 -0
  167. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/__pycache__/CAT_V.cpython-39.pyc +0 -0
  168. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/__pycache__/CAT_V_pipe.cpython-39.pyc +0 -0
  169. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/__pycache__/__init__.cpython-310.pyc +0 -0
  170. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/__pycache__/__init__.cpython-39.pyc +0 -0
  171. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/__pycache__/align.cpython-310.pyc +0 -0
  172. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/__pycache__/cluster.cpython-39.pyc +0 -0
  173. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/__pycache__/dataset.cpython-39.pyc +0 -0
  174. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/__pycache__/ext.cpython-310.pyc +0 -0
  175. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/__pycache__/ext.cpython-39.pyc +0 -0
  176. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/__pycache__/hasher.cpython-39.pyc +0 -0
  177. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/__pycache__/initialize.cpython-39.pyc +0 -0
  178. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/__pycache__/io.cpython-310.pyc +0 -0
  179. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/__pycache__/io.cpython-39.pyc +0 -0
  180. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/__pycache__/logger.cpython-39.pyc +0 -0
  181. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/__pycache__/modeltest.cpython-39.pyc +0 -0
  182. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/__pycache__/multigene.cpython-39.pyc +0 -0
  183. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/__pycache__/ncbi.cpython-39.pyc +0 -0
  184. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/__pycache__/opt_generator.cpython-39.pyc +0 -0
  185. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/__pycache__/reporter.cpython-39.pyc +0 -0
  186. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/__pycache__/search.cpython-39.pyc +0 -0
  187. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/__pycache__/tool.cpython-39.pyc +0 -0
  188. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/__pycache__/validation.cpython-39.pyc +0 -0
  189. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/__pycache__/visualize.cpython-39.pyc +0 -0
  190. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/align.py +0 -0
  191. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/concatenate.py +0 -0
  192. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/dataset.py +0 -0
  193. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/ext.py +0 -0
  194. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/hasher.py +0 -0
  195. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/initialize.py +0 -0
  196. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/logger.py +0 -0
  197. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/logics.py +0 -0
  198. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/modeltest.py +0 -0
  199. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/ncbi.py +0 -0
  200. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/opt_generator.py +0 -0
  201. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/reporter.py +0 -0
  202. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/save.py +0 -0
  203. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/search.py +0 -0
  204. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/templates/template.html +0 -0
  205. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/tool.py +0 -0
  206. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/tree.py +0 -0
  207. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/tree_interpretation.py +0 -0
  208. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/tree_interpretation_pipe.py +0 -0
  209. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/trim.py +0 -0
  210. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/validation.py +0 -0
  211. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/src/version.py +0 -0
  212. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/test_dataset/penicillium/DB/DB_Penicillium.xlsx +0 -0
  213. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/test_dataset/penicillium/Options.config +0 -0
  214. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/test_dataset/penicillium/Query/Query.xlsx +0 -0
  215. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/test_dataset/penicillium/preset.yaml +0 -0
  216. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/test_dataset/terrei/DB/FunVIP_Aspergillus_db.xlsx +0 -0
  217. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/test_dataset/terrei/Query/FunVIP_Aspergillus_query.xlsx +0 -0
  218. {funvip-0.3.23 → funvip-0.3.23.2}/funvip/test_dataset/terrei/preset.yaml +0 -0
  219. {funvip-0.3.23 → funvip-0.3.23.2}/setup.cfg +0 -0
@@ -1,22 +1,22 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: FunVIP
3
- Version: 0.3.23
3
+ Version: 0.3.23.2
4
4
  Summary: Fungal Validation & Identification Pipeline
5
5
  Author-email: Changwan Seo <wan101010@snu.ac.kr>
6
6
  License: GPL-3.0
7
7
  Project-URL: Homepage, https://github.com/Changwanseo/FunVIP
8
- Requires-Python: <3.13,>3.8
8
+ Requires-Python: <=3.12,>=3.9
9
9
  License-File: LICENSE
10
- Requires-Dist: biopython==1.78
10
+ Requires-Dist: biopython==1.84
11
11
  Requires-Dist: ete3==3.1.3
12
12
  Requires-Dist: Cython
13
13
  Requires-Dist: dendropy
14
14
  Requires-Dist: GenMine<1.2.0,>=1.1.0
15
15
  Requires-Dist: lxml
16
16
  Requires-Dist: matplotlib
17
- Requires-Dist: numpy
18
- Requires-Dist: openpyxl==3.0.9
19
- Requires-Dist: pandas==1.4.2
17
+ Requires-Dist: numpy<2.0.0
18
+ Requires-Dist: openpyxl==3.1.0
19
+ Requires-Dist: pandas==2.2.2
20
20
  Requires-Dist: plotly==5.9.0
21
21
  Requires-Dist: psutil
22
22
  Requires-Dist: pyyaml
@@ -1,13 +1,13 @@
1
- biopython==1.78
1
+ biopython==1.84
2
2
  ete3==3.1.3
3
3
  Cython
4
4
  dendropy
5
5
  GenMine<1.2.0,>=1.1.0
6
6
  lxml
7
7
  matplotlib
8
- numpy
9
- openpyxl==3.0.9
10
- pandas==1.4.2
8
+ numpy<2.0.0
9
+ openpyxl==3.1.0
10
+ pandas==2.2.2
11
11
  plotly==5.9.0
12
12
  psutil
13
13
  pyyaml
@@ -1,22 +1,22 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: FunVIP
3
- Version: 0.3.23
3
+ Version: 0.3.23.2
4
4
  Summary: Fungal Validation & Identification Pipeline
5
5
  Author-email: Changwan Seo <wan101010@snu.ac.kr>
6
6
  License: GPL-3.0
7
7
  Project-URL: Homepage, https://github.com/Changwanseo/FunVIP
8
- Requires-Python: <3.13,>3.8
8
+ Requires-Python: <=3.12,>=3.9
9
9
  License-File: LICENSE
10
- Requires-Dist: biopython==1.78
10
+ Requires-Dist: biopython==1.84
11
11
  Requires-Dist: ete3==3.1.3
12
12
  Requires-Dist: Cython
13
13
  Requires-Dist: dendropy
14
14
  Requires-Dist: GenMine<1.2.0,>=1.1.0
15
15
  Requires-Dist: lxml
16
16
  Requires-Dist: matplotlib
17
- Requires-Dist: numpy
18
- Requires-Dist: openpyxl==3.0.9
19
- Requires-Dist: pandas==1.4.2
17
+ Requires-Dist: numpy<2.0.0
18
+ Requires-Dist: openpyxl==3.1.0
19
+ Requires-Dist: pandas==2.2.2
20
20
  Requires-Dist: plotly==5.9.0
21
21
  Requires-Dist: psutil
22
22
  Requires-Dist: pyyaml
@@ -22,11 +22,12 @@ An automatic tree-based sequence identification and validation pipeline for fung
22
22
  - Data validation algorithm implemented
23
23
 
24
24
 
25
- # See [tutorial](https://github.com/Changwanseo/FunVIP/blob/main/tutorial/tutorial.md) for detailed usage
25
+ ## See [tutorial](https://github.com/Changwanseo/FunVIP/blob/main/tutorial/tutorial.md) for step by step tutorial
26
+ ## See [documentation](https://github.com/Changwanseo/FunVIP/blob/main/Documentation.md) for advanced usage
26
27
 
27
28
 
28
29
  ## Requirements
29
- - Conda environment (See [https://www.anaconda.com/products/individual](https://conda.io/projects/conda/en/latest/user-guide/install/index.html) to how to install conda environment)
30
+ - Conda environment (See [https://www.anaconda.com/products/individual](https://conda.io/projects/conda/en/latest/user-guide/install/index.html) for how to install conda environment)
30
31
 
31
32
  <!--
32
33
  ## Installation with conda (May not work with Linux or Mac)
@@ -37,7 +38,8 @@ An automatic tree-based sequence identification and validation pipeline for fung
37
38
  If this one fails, use next one
38
39
  -->
39
40
 
40
- ## Windows
41
+ ## Installation
42
+ ### Windows
41
43
  1. Install visual c++ [here](https://visualstudio.microsoft.com/visual-cpp-build-tools/)
42
44
  2. ```conda create -n FunVIP python>=3.8```
43
45
  3. ```conda activate FunVIP```
@@ -47,17 +49,18 @@ If this one fails, use next one
47
49
  * For upgrade use this command
48
50
  ``` pip install FunVIP --upgrade ```
49
51
 
50
- ## Linux
52
+ ### Linux
51
53
  1. ```conda create -n FunVIP python>=3.8```
52
54
  2. ```conda activate FunVIP```
53
55
  3. ```pip install FunVIP```
54
- 4. ```conda install -c bioconda raxml iqtree modeltest-ng mmseqs2 "blast>=2.12" mafft trimal gblocks fasttree```
55
- 5. run ```FunVIP --test Terrei --email [your email] ``` to check installation
56
+ 4. ```conda config --add channels conda-forge```
57
+ 5. ```conda install -c bioconda raxml iqtree "modeltest-ng>=0.1.7" mmseqs2 "blast>=2.12" mafft trimal gblocks fasttree```
58
+ 6. run ```FunVIP --test Terrei --email [your email] ``` to check installation
56
59
 
57
60
 
58
61
  * For intel mac system, this method probably work, but we couldn't test it because we don't have any intel mac device. We're looking for feedbacks in intel mac
59
62
 
60
- ## Apple Silicon Mac
63
+ ### Apple Silicon Mac
61
64
  1. ```CONDA_SUBDIR=osx-64 conda create -n FunVIP python>=3.8```
62
65
  2. ```conda activate FunVIP```
63
66
  3. ```conda config --env --set subdir osx-64```
@@ -66,7 +69,7 @@ If this one fails, use next one
66
69
  6. ```conda install -c bioconda raxml iqtree mmseqs2 "blast>=2.12" mafft trimal gblocks fasttree```
67
70
  7. run ```FunVIP --test Terrei --email [your email] ``` to check installation
68
71
 
69
- ## Installation from source (For developers and core users)
72
+ ### Installation from source (For developers and core users)
70
73
  * this is for developmental steps
71
74
  1. ```git clone https://github.com/Changwanseo/FunVIP.git```
72
75
  2. Move to ```~/FunVIP```
@@ -1,162 +1,162 @@
1
- #!/usr/bin/env python3
2
- """
3
- # $Id: cleanup-blastdb-volumes.py 590894 2019-08-07 14:59:53Z camacho $
4
- # ===========================================================================
5
- #
6
- # PUBLIC DOMAIN NOTICE
7
- # National Center for Biotechnology Information
8
- #
9
- # This software/database is a "United States Government Work" under the
10
- # terms of the United States Copyright Act. It was written as part of
11
- # the author's official duties as a United States Government employee and
12
- # thus cannot be copyrighted. This software/database is freely available
13
- # to the public for use. The National Library of Medicine and the U.S.
14
- # Government have not placed any restriction on its use or reproduction.
15
- #
16
- # Although all reasonable efforts have been taken to ensure the accuracy
17
- # and reliability of the software and data, the NLM and the U.S.
18
- # Government do not and cannot warrant the performance or results that
19
- # may be obtained by using this software or data. The NLM and the U.S.
20
- # Government disclaim all warranties, express or implied, including
21
- # warranties of performance, merchantability or fitness for any particular
22
- # purpose.
23
- #
24
- # Please cite the author in any work or product based on this material.
25
- #
26
- # ===========================================================================
27
- #
28
- # Author: Christiam Camacho
29
- #
30
- # File Description:
31
- # Script to remove needless BLAST database files.
32
- #
33
- # ===========================================================================
34
- """
35
- import argparse, os, configparser
36
- import unittest, tempfile
37
- from pathlib import Path
38
- from glob import glob
39
-
40
- VERSION = '1.0'
41
- DESC = r""" Remove needless BLAST database volumes. """
42
-
43
-
44
- class Tester(unittest.TestCase):
45
- """ Testing class for this script. """
46
-
47
- def test_blastdb_config_invalid(self):
48
- rv = get_blastdb_from_ncbi_config("/dev/null")
49
- self.assertIsNone(rv)
50
-
51
- def test_blastdb_config(self):
52
- config = configparser.ConfigParser()
53
- expected = "/blast/db/blast"
54
- config['BLAST'] = {'BLASTDB': expected}
55
- tf = tempfile.NamedTemporaryFile(mode="wt")
56
- config.write(tf)
57
- tf.flush()
58
- rv = get_blastdb_from_ncbi_config(tf.name)
59
- self.assertEqual(expected, rv)
60
-
61
- def test_blastdb_finder(self):
62
- tal = tempfile.NamedTemporaryFile(suffix=".pin")
63
- dbname = find_blastdb(tal.name[:-4], True)
64
- self.assertEqual(dbname, tal.name[:-4])
65
-
66
-
67
- def find_blastdb(name: str, is_prot: bool) -> str:
68
- """ Returns full path to BLAST database or None. """
69
- alias_file = "{}.{}al".format(name, "p" if is_prot else "n")
70
- index_file = "{}.{}in".format(name, "p" if is_prot else "n")
71
- if os.path.exists(alias_file) or os.path.exists(index_file):
72
- return name
73
-
74
- if "BLASTDB" in os.environ:
75
- alf = os.path.join(os.environ["BLASTDB"], alias_file)
76
- idxf = os.path.join(os.environ["BLASTDB"], index_file)
77
- if os.path.exists(alf) or os.path.exists(idxf):
78
- return os.path.join(os.environ["BLASTDB"], name)
79
-
80
- paths = [ os.getcwd(), str(Path.home()) ]
81
- if "NCBI" in os.environ:
82
- paths.append(os.path.join(os.environ["NCBI"]))
83
-
84
- for path in paths:
85
- for fname in [ ".ncbirc", "ncbi.ini" ]:
86
- ncbirc = os.path.join(path, fname)
87
- if os.path.exists(ncbirc):
88
- blastdb = get_blastdb_from_ncbi_config(ncbirc)
89
- if blastdb is not None:
90
- alf = os.path.join(blastdb, alias_file)
91
- idxf = os.path.join(blastdb, index_file)
92
- if os.path.exists(alf) or os.path.exists(idxf):
93
- return os.path.join(blastdb, name)
94
-
95
-
96
- def get_blastdb_from_ncbi_config(config_file: str) -> str:
97
- """ Return the BLASTDB setting from the NCBI configuration file or None. """
98
- config = configparser.ConfigParser()
99
- config.read(config_file)
100
- if 'BLAST' in config and 'BLASTDB' in config['BLAST']:
101
- return config['BLAST']['BLASTDB']
102
-
103
-
104
- def main():
105
- """ Entry point into this program. """
106
- parser = create_arg_parser()
107
- args = parser.parse_args()
108
-
109
- ext = args.dbtype[0]
110
- db = find_blastdb(args.db, ext == 'p')
111
- if db == None:
112
- print("Cannot find {} {} BLAST database".
113
- format("protein" if ext == 'p' else "nucleotide", args.db),
114
- file=sys.stderr)
115
- return 1
116
-
117
- alias_file = "{}.{}al".format(db, ext)
118
- if not os.path.exists(alias_file):
119
- return 1
120
-
121
- with open(alias_file, "rt") as al:
122
- for line in al:
123
- if not line.startswith("DBLIST"):
124
- continue
125
- vols = list(map(lambda x: x.replace('"', ''), line.split()[1:]))
126
- for existing_vols in sorted(glob("{}.*.{}in".format(db, ext))):
127
- vol_name = os.path.basename(existing_vols)[:-4]
128
- if vol_name in vols:
129
- continue
130
- if args.dry_run:
131
- print("Will remove extra volume {}".format(existing_vols[:-4]))
132
- to_rm = glob("{}??".format(existing_vols[:-2]))
133
- to_rm += glob("{}.tar.gz.md5".format(existing_vols[:-4]))
134
- for f in to_rm:
135
- if not args.dry_run:
136
- os.unlink(f)
137
- print("Removed {}".format(f))
138
- elif args.verbose > 0:
139
- print("Will remove {}".format(f))
140
-
141
- return 0
142
-
143
-
144
- def create_arg_parser():
145
- """ Create the command line options parser object for this script. """
146
- parser = argparse.ArgumentParser(description=DESC)
147
- parser.add_argument("-db", required=True, help="BLAST database name")
148
- parser.add_argument("-dbtype", help="Molecule type", required=True,
149
- choices=["prot", "nucl"])
150
- parser.add_argument("-dry-run", action='store_true',
151
- help="Do not delete any files, just list them")
152
- parser.add_argument('-version', action='version',
153
- version='%(prog)s ' + VERSION)
154
- parser.add_argument("-verbose", action="count", default=0,
155
- help="Increase output verbosity")
156
- return parser
157
-
158
-
159
- if __name__ == "__main__":
160
- import sys
161
- sys.exit(main())
162
-
1
+ #!/usr/bin/env python3
2
+ """
3
+ # $Id: cleanup-blastdb-volumes.py 590894 2019-08-07 14:59:53Z camacho $
4
+ # ===========================================================================
5
+ #
6
+ # PUBLIC DOMAIN NOTICE
7
+ # National Center for Biotechnology Information
8
+ #
9
+ # This software/database is a "United States Government Work" under the
10
+ # terms of the United States Copyright Act. It was written as part of
11
+ # the author's official duties as a United States Government employee and
12
+ # thus cannot be copyrighted. This software/database is freely available
13
+ # to the public for use. The National Library of Medicine and the U.S.
14
+ # Government have not placed any restriction on its use or reproduction.
15
+ #
16
+ # Although all reasonable efforts have been taken to ensure the accuracy
17
+ # and reliability of the software and data, the NLM and the U.S.
18
+ # Government do not and cannot warrant the performance or results that
19
+ # may be obtained by using this software or data. The NLM and the U.S.
20
+ # Government disclaim all warranties, express or implied, including
21
+ # warranties of performance, merchantability or fitness for any particular
22
+ # purpose.
23
+ #
24
+ # Please cite the author in any work or product based on this material.
25
+ #
26
+ # ===========================================================================
27
+ #
28
+ # Author: Christiam Camacho
29
+ #
30
+ # File Description:
31
+ # Script to remove needless BLAST database files.
32
+ #
33
+ # ===========================================================================
34
+ """
35
+ import argparse, os, configparser
36
+ import unittest, tempfile
37
+ from pathlib import Path
38
+ from glob import glob
39
+
40
+ VERSION = '1.0'
41
+ DESC = r""" Remove needless BLAST database volumes. """
42
+
43
+
44
+ class Tester(unittest.TestCase):
45
+ """ Testing class for this script. """
46
+
47
+ def test_blastdb_config_invalid(self):
48
+ rv = get_blastdb_from_ncbi_config("/dev/null")
49
+ self.assertIsNone(rv)
50
+
51
+ def test_blastdb_config(self):
52
+ config = configparser.ConfigParser()
53
+ expected = "/blast/db/blast"
54
+ config['BLAST'] = {'BLASTDB': expected}
55
+ tf = tempfile.NamedTemporaryFile(mode="wt")
56
+ config.write(tf)
57
+ tf.flush()
58
+ rv = get_blastdb_from_ncbi_config(tf.name)
59
+ self.assertEqual(expected, rv)
60
+
61
+ def test_blastdb_finder(self):
62
+ tal = tempfile.NamedTemporaryFile(suffix=".pin")
63
+ dbname = find_blastdb(tal.name[:-4], True)
64
+ self.assertEqual(dbname, tal.name[:-4])
65
+
66
+
67
+ def find_blastdb(name: str, is_prot: bool) -> str:
68
+ """ Returns full path to BLAST database or None. """
69
+ alias_file = "{}.{}al".format(name, "p" if is_prot else "n")
70
+ index_file = "{}.{}in".format(name, "p" if is_prot else "n")
71
+ if os.path.exists(alias_file) or os.path.exists(index_file):
72
+ return name
73
+
74
+ if "BLASTDB" in os.environ:
75
+ alf = os.path.join(os.environ["BLASTDB"], alias_file)
76
+ idxf = os.path.join(os.environ["BLASTDB"], index_file)
77
+ if os.path.exists(alf) or os.path.exists(idxf):
78
+ return os.path.join(os.environ["BLASTDB"], name)
79
+
80
+ paths = [ os.getcwd(), str(Path.home()) ]
81
+ if "NCBI" in os.environ:
82
+ paths.append(os.path.join(os.environ["NCBI"]))
83
+
84
+ for path in paths:
85
+ for fname in [ ".ncbirc", "ncbi.ini" ]:
86
+ ncbirc = os.path.join(path, fname)
87
+ if os.path.exists(ncbirc):
88
+ blastdb = get_blastdb_from_ncbi_config(ncbirc)
89
+ if blastdb is not None:
90
+ alf = os.path.join(blastdb, alias_file)
91
+ idxf = os.path.join(blastdb, index_file)
92
+ if os.path.exists(alf) or os.path.exists(idxf):
93
+ return os.path.join(blastdb, name)
94
+
95
+
96
+ def get_blastdb_from_ncbi_config(config_file: str) -> str:
97
+ """ Return the BLASTDB setting from the NCBI configuration file or None. """
98
+ config = configparser.ConfigParser()
99
+ config.read(config_file)
100
+ if 'BLAST' in config and 'BLASTDB' in config['BLAST']:
101
+ return config['BLAST']['BLASTDB']
102
+
103
+
104
+ def main():
105
+ """ Entry point into this program. """
106
+ parser = create_arg_parser()
107
+ args = parser.parse_args()
108
+
109
+ ext = args.dbtype[0]
110
+ db = find_blastdb(args.db, ext == 'p')
111
+ if db == None:
112
+ print("Cannot find {} {} BLAST database".
113
+ format("protein" if ext == 'p' else "nucleotide", args.db),
114
+ file=sys.stderr)
115
+ return 1
116
+
117
+ alias_file = "{}.{}al".format(db, ext)
118
+ if not os.path.exists(alias_file):
119
+ return 1
120
+
121
+ with open(alias_file, "rt") as al:
122
+ for line in al:
123
+ if not line.startswith("DBLIST"):
124
+ continue
125
+ vols = list(map(lambda x: x.replace('"', ''), line.split()[1:]))
126
+ for existing_vols in sorted(glob("{}.*.{}in".format(db, ext))):
127
+ vol_name = os.path.basename(existing_vols)[:-4]
128
+ if vol_name in vols:
129
+ continue
130
+ if args.dry_run:
131
+ print("Will remove extra volume {}".format(existing_vols[:-4]))
132
+ to_rm = glob("{}??".format(existing_vols[:-2]))
133
+ to_rm += glob("{}.tar.gz.md5".format(existing_vols[:-4]))
134
+ for f in to_rm:
135
+ if not args.dry_run:
136
+ os.unlink(f)
137
+ print("Removed {}".format(f))
138
+ elif args.verbose > 0:
139
+ print("Will remove {}".format(f))
140
+
141
+ return 0
142
+
143
+
144
+ def create_arg_parser():
145
+ """ Create the command line options parser object for this script. """
146
+ parser = argparse.ArgumentParser(description=DESC)
147
+ parser.add_argument("-db", required=True, help="BLAST database name")
148
+ parser.add_argument("-dbtype", help="Molecule type", required=True,
149
+ choices=["prot", "nucl"])
150
+ parser.add_argument("-dry-run", action='store_true',
151
+ help="Do not delete any files, just list them")
152
+ parser.add_argument('-version', action='version',
153
+ version='%(prog)s ' + VERSION)
154
+ parser.add_argument("-verbose", action="count", default=0,
155
+ help="Increase output verbosity")
156
+ return parser
157
+
158
+
159
+ if __name__ == "__main__":
160
+ import sys
161
+ sys.exit(main())
162
+