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.
- {funvip-0.3.24.2 → funvip-0.3.24.3}/FunVIP.egg-info/PKG-INFO +1 -1
- {funvip-0.3.24.2 → funvip-0.3.24.3}/PKG-INFO +1 -1
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/hasher.py +11 -4
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/tool.py +10 -1
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/tree_interpretation.py +266 -109
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/tree_interpretation_pipe.py +135 -78
- {funvip-0.3.24.2 → funvip-0.3.24.3}/pyproject.toml +1 -1
- {funvip-0.3.24.2 → funvip-0.3.24.3}/FunVIP.egg-info/SOURCES.txt +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/FunVIP.egg-info/dependency_links.txt +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/FunVIP.egg-info/entry_points.txt +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/FunVIP.egg-info/requires.txt +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/FunVIP.egg-info/top_level.txt +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/LICENSE +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/MANIFEST.in +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/README.md +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/FunVIP_GUI.py +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/__init__.py +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/data/Option_manager.xlsx +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/data/__init__.py +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/data/genus_line.txt +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/BLAST_Windows/Uninstall-ncbi-blast-2.12.0+.exe +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/BLAST_Windows/bin/blastn.exe +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/BLAST_Windows/bin/cleanup-blastdb-volumes.py +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/BLAST_Windows/bin/get_species_taxids.sh +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/BLAST_Windows/bin/legacy_blast.pl +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/BLAST_Windows/bin/makeblastdb.exe +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/BLAST_Windows/bin/nghttp2.dll +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/BLAST_Windows/bin/update_blastdb.pl +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/BLAST_Windows/doc/README.txt +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/FastTree_Windows/FastTree.exe +0 -0
- {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
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/Gblocks_Windows_0.91b/Gblocks_0.91b/Gblocks.exe +0 -0
- {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
- {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
- {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
- {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
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/Gblocks_Windows_0.91b/Gblocks_0.91b/nad3.pir +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/Gblocks_Windows_0.91b/Gblocks_0.91b/paths +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/MAFFT_LICENSE +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/MAFFT_Windows.zip +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/RAxML_Windows/GPL-3.0.txt +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/RAxML_Windows/README +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/RAxML_Windows/raxmlHPC-PTHREADS-AVX2.exe +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/__init__.py +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/iqtree/bin/iqtree2-click.exe +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/iqtree/bin/iqtree2.exe +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/iqtree/bin/libiomp5md.dll +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/iqtree/example.cf +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/iqtree/example.nex +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/iqtree/example.phy +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/iqtree/models.nex +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/LICENSE.md +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/README.md +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/bin/busybox.exe +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/bin/cygbz2-1.dll +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/bin/cyggcc_s-seh-1.dll +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/bin/cyggomp-1.dll +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/bin/cygstdc++-6.dll +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/bin/cygwin1.dll +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/bin/cygz.dll +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/bin/mmseqs.exe +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/examples/QUERY.fasta +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM10.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM100.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM110.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM120.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM130.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM140.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM150.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM160.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM170.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM180.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM190.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM20.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM30.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM40.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM50.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM60.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM70.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM80.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/PAM90.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/VTML10.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/VTML120.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/VTML160.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/VTML20.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/VTML40.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/VTML80.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/blosum100.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/blosum30.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/blosum35.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/blosum40.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/blosum45.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/blosum50.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/blosum55.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/blosum60.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/blosum62.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/blosum65.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/blosum70.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/blosum75.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/blosum80.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/blosum85.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/blosum90.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/blosum95.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/matrices/nucleotide.out +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/mmseqs.bat +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/mmseqs_Windows/util/bash-completion.sh +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/AUTHORS +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/CHANGELOG +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/LICENSE +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/README +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/bin/libgcc_s_dw2-1.dll +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/bin/libstdc++-6.dll +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/bin/trimal.exe +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/scripts/check_codon_alignments.py +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/scripts/compare_trimmed_msas.sh +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/scripts/generateRandomAlignmentsUsingAsSeedRealAlignments.py +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/scripts/generate_trimmed_msas.sh +0 -0
- {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
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/scripts/get_sequences_gaps_ratio.py +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/scripts/remove_shorter_sequences.py +0 -0
- {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
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/scripts/set_manual_boundaries.py +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/alignment.cpp +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/alignment.h +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/alignment.o +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/autAlignment.cpp +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/autAlignment.o +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/compareFiles.cpp +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/compareFiles.h +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/compareFiles.o +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/defines.h +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/main.cpp +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/makefile +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/makefile.MacOS +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/readAl.cpp +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/readal.exe +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/rwAlignment.cpp +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/rwAlignment.o +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/sequencesMatrix.cpp +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/sequencesMatrix.h +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/sequencesMatrix.o +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/similarityMatrix.cpp +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/similarityMatrix.h +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/similarityMatrix.o +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/statAl.cpp +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/statal.exe +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/statisticsConservation.cpp +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/statisticsConservation.h +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/statisticsConservation.o +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/statisticsFiles.cpp +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/statisticsFiles.h +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/statisticsGaps.cpp +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/statisticsGaps.h +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/statisticsGaps.o +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/utils.cpp +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/utils.h +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/utils.o +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/external/trimal.v1.4/trimAl/source/values.h +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/main.py +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/preset/.gitignore +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/preset/accurate.yaml +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/preset/fast.yaml +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/.gitignore +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__init__.py +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/CATV_pipe.cpython-310.pyc +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/CAT_V.cpython-310.pyc +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/CAT_V.cpython-39.pyc +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/CAT_V_pipe.cpython-39.pyc +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/__init__.cpython-310.pyc +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/__init__.cpython-39.pyc +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/align.cpython-310.pyc +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/cluster.cpython-39.pyc +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/dataset.cpython-39.pyc +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/ext.cpython-310.pyc +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/ext.cpython-39.pyc +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/hasher.cpython-39.pyc +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/initialize.cpython-39.pyc +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/io.cpython-310.pyc +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/io.cpython-39.pyc +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/logger.cpython-39.pyc +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/modeltest.cpython-39.pyc +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/multigene.cpython-39.pyc +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/ncbi.cpython-39.pyc +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/opt_generator.cpython-39.pyc +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/reporter.cpython-39.pyc +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/search.cpython-39.pyc +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/tool.cpython-39.pyc +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/validation.cpython-39.pyc +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/__pycache__/visualize.cpython-39.pyc +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/align.py +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/cluster.py +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/command.py +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/concatenate.py +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/dataset.py +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/ext.py +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/initialize.py +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/logger.py +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/logics.py +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/modeltest.py +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/ncbi.py +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/opt_generator.py +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/reporter.py +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/save.py +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/search.py +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/templates/template.html +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/tree.py +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/trim.py +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/validate_input.py +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/validate_option.py +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/validation.py +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/version.py +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/src/visualize.py +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/test_dataset/penicillium/DB/DB_Penicillium.xlsx +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/test_dataset/penicillium/Options.config +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/test_dataset/penicillium/Query/Query.xlsx +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/test_dataset/penicillium/preset.yaml +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/test_dataset/sanghuangporus/DB/FunVIP_Sanghuangporus_db.xlsx +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/test_dataset/sanghuangporus/Query/FunVIP_Sanghuangporus_query.xlsx +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/test_dataset/sanghuangporus/preset.yaml +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/test_dataset/terrei/DB/FunVIP_Aspergillus_db.xlsx +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/test_dataset/terrei/Query/FunVIP_Aspergillus_query.xlsx +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/funvip/test_dataset/terrei/preset.yaml +0 -0
- {funvip-0.3.24.2 → funvip-0.3.24.3}/setup.cfg +0 -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(
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
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
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
694
|
-
|
|
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
|
-
|
|
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
|
-
|
|
699
|
-
|
|
700
|
-
|
|
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
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
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
|
|
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")
|