XspecT 0.2.0__tar.gz → 0.2.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. {xspect-0.2.0/src/XspecT.egg-info → xspect-0.2.3}/PKG-INFO +1 -1
  2. {xspect-0.2.0 → xspect-0.2.3}/pyproject.toml +1 -1
  3. {xspect-0.2.0 → xspect-0.2.3/src/XspecT.egg-info}/PKG-INFO +1 -1
  4. {xspect-0.2.0 → xspect-0.2.3}/src/XspecT.egg-info/SOURCES.txt +1 -0
  5. {xspect-0.2.0 → xspect-0.2.3}/src/xspect/fastapi.py +6 -2
  6. {xspect-0.2.0 → xspect-0.2.3}/src/xspect/main.py +6 -2
  7. xspect-0.2.3/tests/test_cli.py +61 -0
  8. {xspect-0.2.0 → xspect-0.2.3}/.github/workflows/black.yml +0 -0
  9. {xspect-0.2.0 → xspect-0.2.3}/.github/workflows/docs.yml +0 -0
  10. {xspect-0.2.0 → xspect-0.2.3}/.github/workflows/pylint.yml +0 -0
  11. {xspect-0.2.0 → xspect-0.2.3}/.github/workflows/pypi.yml +0 -0
  12. {xspect-0.2.0 → xspect-0.2.3}/.github/workflows/test.yml +0 -0
  13. {xspect-0.2.0 → xspect-0.2.3}/.gitignore +0 -0
  14. {xspect-0.2.0 → xspect-0.2.3}/LICENSE +0 -0
  15. {xspect-0.2.0 → xspect-0.2.3}/README.md +0 -0
  16. {xspect-0.2.0 → xspect-0.2.3}/docs/Instructions/pictures/About.png +0 -0
  17. {xspect-0.2.0 → xspect-0.2.3}/docs/Instructions/pictures/AddFilter.png +0 -0
  18. {xspect-0.2.0 → xspect-0.2.3}/docs/Instructions/pictures/AddSpecies1.png +0 -0
  19. {xspect-0.2.0 → xspect-0.2.3}/docs/Instructions/pictures/AddSpecies2.png +0 -0
  20. {xspect-0.2.0 → xspect-0.2.3}/docs/Instructions/pictures/BF.png +0 -0
  21. {xspect-0.2.0 → xspect-0.2.3}/docs/Instructions/pictures/ClAssT_Ergebnis1.png +0 -0
  22. {xspect-0.2.0 → xspect-0.2.3}/docs/Instructions/pictures/ClAssT_Ergebnis2.png +0 -0
  23. {xspect-0.2.0 → xspect-0.2.3}/docs/Instructions/pictures/ClAssT_Ergebnis3.png +0 -0
  24. {xspect-0.2.0 → xspect-0.2.3}/docs/Instructions/pictures/ClAssT_Hauptseite.png +0 -0
  25. {xspect-0.2.0 → xspect-0.2.3}/docs/Instructions/pictures/CommandLine_Input.png +0 -0
  26. {xspect-0.2.0 → xspect-0.2.3}/docs/Instructions/pictures/CommandLine_results.png +0 -0
  27. {xspect-0.2.0 → xspect-0.2.3}/docs/Instructions/pictures/CommandLine_whole.png +0 -0
  28. {xspect-0.2.0 → xspect-0.2.3}/docs/Instructions/pictures/How2Use.png +0 -0
  29. {xspect-0.2.0 → xspect-0.2.3}/docs/Instructions/pictures/HowtouseAspecT.png +0 -0
  30. {xspect-0.2.0 → xspect-0.2.3}/docs/Instructions/pictures/XspecT_Ergebnis1.png +0 -0
  31. {xspect-0.2.0 → xspect-0.2.3}/docs/Instructions/pictures/XspecT_Ergebnis2.png +0 -0
  32. {xspect-0.2.0 → xspect-0.2.3}/docs/Instructions/pictures/XspecT_Ergebnis3.png +0 -0
  33. {xspect-0.2.0 → xspect-0.2.3}/docs/Instructions/pictures/XspecT_Ergebnis4.png +0 -0
  34. {xspect-0.2.0 → xspect-0.2.3}/docs/Instructions/pictures/XspecT_Hauptseite.png +0 -0
  35. {xspect-0.2.0 → xspect-0.2.3}/docs/Instructions/pictures/XspecT_Runtime.png +0 -0
  36. {xspect-0.2.0 → xspect-0.2.3}/docs/Instructions/pictures/XspecT_Runtime_Oxa.png +0 -0
  37. {xspect-0.2.0 → xspect-0.2.3}/docs/Instructions/pictures/XspecT_Startseite.png +0 -0
  38. {xspect-0.2.0 → xspect-0.2.3}/docs/Instructions/pictures/change_pw.png +0 -0
  39. {xspect-0.2.0 → xspect-0.2.3}/docs/Instructions/pictures/modify_vecs.png +0 -0
  40. {xspect-0.2.0 → xspect-0.2.3}/docs/Instructions/pictures/secretkey.png +0 -0
  41. {xspect-0.2.0 → xspect-0.2.3}/docs/Makefile +0 -0
  42. {xspect-0.2.0 → xspect-0.2.3}/docs/cli.md +0 -0
  43. {xspect-0.2.0 → xspect-0.2.3}/docs/conf.py +0 -0
  44. {xspect-0.2.0 → xspect-0.2.3}/docs/diagrams/probabilistic_filter_models.md +0 -0
  45. {xspect-0.2.0 → xspect-0.2.3}/docs/img/logo.png +0 -0
  46. {xspect-0.2.0 → xspect-0.2.3}/docs/index.md +0 -0
  47. {xspect-0.2.0 → xspect-0.2.3}/docs/input_data.md +0 -0
  48. {xspect-0.2.0 → xspect-0.2.3}/docs/installation.md +0 -0
  49. {xspect-0.2.0 → xspect-0.2.3}/docs/make.bat +0 -0
  50. {xspect-0.2.0 → xspect-0.2.3}/docs/quickstart.md +0 -0
  51. {xspect-0.2.0 → xspect-0.2.3}/docs/web.md +0 -0
  52. {xspect-0.2.0 → xspect-0.2.3}/setup.cfg +0 -0
  53. {xspect-0.2.0 → xspect-0.2.3}/src/XspecT.egg-info/dependency_links.txt +0 -0
  54. {xspect-0.2.0 → xspect-0.2.3}/src/XspecT.egg-info/entry_points.txt +0 -0
  55. {xspect-0.2.0 → xspect-0.2.3}/src/XspecT.egg-info/requires.txt +0 -0
  56. {xspect-0.2.0 → xspect-0.2.3}/src/XspecT.egg-info/top_level.txt +0 -0
  57. {xspect-0.2.0 → xspect-0.2.3}/src/xspect/__init__.py +0 -0
  58. {xspect-0.2.0 → xspect-0.2.3}/src/xspect/definitions.py +0 -0
  59. {xspect-0.2.0 → xspect-0.2.3}/src/xspect/download_filters.py +0 -0
  60. {xspect-0.2.0 → xspect-0.2.3}/src/xspect/file_io.py +0 -0
  61. {xspect-0.2.0 → xspect-0.2.3}/src/xspect/model_management.py +0 -0
  62. {xspect-0.2.0 → xspect-0.2.3}/src/xspect/models/__init__.py +0 -0
  63. {xspect-0.2.0 → xspect-0.2.3}/src/xspect/models/probabilistic_filter_model.py +0 -0
  64. {xspect-0.2.0 → xspect-0.2.3}/src/xspect/models/probabilistic_filter_svm_model.py +0 -0
  65. {xspect-0.2.0 → xspect-0.2.3}/src/xspect/models/probabilistic_single_filter_model.py +0 -0
  66. {xspect-0.2.0 → xspect-0.2.3}/src/xspect/models/result.py +0 -0
  67. {xspect-0.2.0 → xspect-0.2.3}/src/xspect/pipeline.py +0 -0
  68. {xspect-0.2.0 → xspect-0.2.3}/src/xspect/run.py +0 -0
  69. {xspect-0.2.0 → xspect-0.2.3}/src/xspect/train.py +0 -0
  70. {xspect-0.2.0 → xspect-0.2.3}/src/xspect/train_filter/__init__.py +0 -0
  71. {xspect-0.2.0 → xspect-0.2.3}/src/xspect/train_filter/create_svm.py +0 -0
  72. {xspect-0.2.0 → xspect-0.2.3}/src/xspect/train_filter/extract_and_concatenate.py +0 -0
  73. {xspect-0.2.0 → xspect-0.2.3}/src/xspect/train_filter/html_scrap.py +0 -0
  74. {xspect-0.2.0 → xspect-0.2.3}/src/xspect/train_filter/ncbi_api/__init__.py +0 -0
  75. {xspect-0.2.0 → xspect-0.2.3}/src/xspect/train_filter/ncbi_api/download_assemblies.py +0 -0
  76. {xspect-0.2.0 → xspect-0.2.3}/src/xspect/train_filter/ncbi_api/ncbi_assembly_metadata.py +0 -0
  77. {xspect-0.2.0 → xspect-0.2.3}/src/xspect/train_filter/ncbi_api/ncbi_children_tree.py +0 -0
  78. {xspect-0.2.0 → xspect-0.2.3}/src/xspect/train_filter/ncbi_api/ncbi_taxon_metadata.py +0 -0
  79. {xspect-0.2.0 → xspect-0.2.3}/tests/__init__.py +0 -0
  80. {xspect-0.2.0 → xspect-0.2.3}/tests/conftest.py +0 -0
  81. {xspect-0.2.0 → xspect-0.2.3}/tests/test_file_io.py +0 -0
  82. {xspect-0.2.0 → xspect-0.2.3}/tests/test_model_management.py +0 -0
  83. {xspect-0.2.0 → xspect-0.2.3}/tests/test_model_result.py +0 -0
  84. {xspect-0.2.0 → xspect-0.2.3}/tests/test_pipeline.py +0 -0
  85. {xspect-0.2.0 → xspect-0.2.3}/tests/test_probabilistic_filter_model.py +0 -0
  86. {xspect-0.2.0 → xspect-0.2.3}/tests/test_probabilistic_filter_svm_model.py +0 -0
  87. {xspect-0.2.0 → xspect-0.2.3}/tests/test_probabilistic_single_filter_model.py +0 -0
  88. {xspect-0.2.0 → xspect-0.2.3}/tests/test_train.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: XspecT
3
- Version: 0.2.0
3
+ Version: 0.2.3
4
4
  Summary: Tool to monitor and characterize pathogens using Bloom filters.
5
5
  License: MIT License
6
6
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "XspecT"
3
- version = "0.2.0"
3
+ version = "0.2.3"
4
4
  description = "Tool to monitor and characterize pathogens using Bloom filters."
5
5
  readme = {file = "README.md", content-type = "text/markdown"}
6
6
  license = {file = "LICENSE"}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: XspecT
3
- Version: 0.2.0
3
+ Version: 0.2.3
4
4
  Summary: Tool to monitor and characterize pathogens using Bloom filters.
5
5
  License: MIT License
6
6
 
@@ -75,6 +75,7 @@ src/xspect/train_filter/ncbi_api/ncbi_children_tree.py
75
75
  src/xspect/train_filter/ncbi_api/ncbi_taxon_metadata.py
76
76
  tests/__init__.py
77
77
  tests/conftest.py
78
+ tests/test_cli.py
78
79
  tests/test_file_io.py
79
80
  tests/test_model_management.py
80
81
  tests/test_model_result.py
@@ -27,12 +27,16 @@ def classify(genus: str, file: str, meta: bool = False, step: int = 500):
27
27
  path = get_xspect_upload_path() / file
28
28
 
29
29
  pipeline = Pipeline(genus + " classification", "Test Author", "test@example.com")
30
- species_execution = ModelExecution(genus + "-species", sparse_sampling_step=step)
30
+ species_execution = ModelExecution(
31
+ genus.lower() + "-species", sparse_sampling_step=step
32
+ )
31
33
  if meta:
32
34
  species_filtering_step = PipelineStep(
33
35
  StepType.FILTERING, genus, 0.7, species_execution
34
36
  )
35
- genus_execution = ModelExecution(genus + "-genus", sparse_sampling_step=step)
37
+ genus_execution = ModelExecution(
38
+ genus.lower() + "-genus", sparse_sampling_step=step
39
+ )
36
40
  genus_execution.add_pipeline_step(species_filtering_step)
37
41
  pipeline.add_pipeline_step(genus_execution)
38
42
  else:
@@ -59,12 +59,16 @@ def classify(genus, path, meta, step):
59
59
 
60
60
  # define pipeline
61
61
  pipeline = Pipeline(genus + " classification", "Test Author", "test@example.com")
62
- species_execution = ModelExecution(genus + "-species", sparse_sampling_step=step)
62
+ species_execution = ModelExecution(
63
+ genus.lower() + "-species", sparse_sampling_step=step
64
+ )
63
65
  if meta:
64
66
  species_filtering_step = PipelineStep(
65
67
  StepType.FILTERING, genus, 0.7, species_execution
66
68
  )
67
- genus_execution = ModelExecution(genus + "-genus", sparse_sampling_step=step)
69
+ genus_execution = ModelExecution(
70
+ genus.lower() + "-genus", sparse_sampling_step=step
71
+ )
68
72
  genus_execution.add_pipeline_step(species_filtering_step)
69
73
  pipeline.add_pipeline_step(genus_execution)
70
74
  else:
@@ -0,0 +1,61 @@
1
+ """Test XspecT CLI"""
2
+
3
+ import json
4
+ import pytest
5
+ from click.testing import CliRunner
6
+ from src.xspect.main import cli
7
+
8
+
9
+ @pytest.mark.parametrize(
10
+ ["assembly_file_path", "genus", "species"],
11
+ [
12
+ (
13
+ "GCF_000069245.1_ASM6924v1_genomic.fna",
14
+ "Acinetobacter",
15
+ "470",
16
+ ),
17
+ (
18
+ "GCF_000018445.1_ASM1844v1_genomic.fna",
19
+ "Acinetobacter",
20
+ "470",
21
+ ),
22
+ ("GCF_000006945.2_ASM694v2_genomic.fna", "Salmonella", "28901"),
23
+ ],
24
+ indirect=["assembly_file_path"],
25
+ )
26
+ def test_species_assignment(assembly_file_path, genus, species):
27
+ """Test the species assignment"""
28
+ runner = CliRunner()
29
+ result = runner.invoke(cli, ["classify", genus, assembly_file_path])
30
+
31
+ run_path = result.output.strip().split("'")[1]
32
+ with open(run_path, encoding="utf-8") as f:
33
+ result_content = json.load(f)
34
+ assert result_content["results"][0]["prediction"] == species
35
+
36
+
37
+ @pytest.mark.parametrize(
38
+ ["assembly_file_path", "genus", "species"],
39
+ [
40
+ (
41
+ "GCF_000069245.1_ASM6924v1_genomic.fna",
42
+ "Acinetobacter",
43
+ "470",
44
+ ),
45
+ ],
46
+ indirect=["assembly_file_path"],
47
+ )
48
+ def test_metagenome_mode(assembly_file_path, genus, species):
49
+ """Test the metagenome mode"""
50
+ runner = CliRunner()
51
+ result = runner.invoke(cli, ["classify", "-m", genus, assembly_file_path])
52
+
53
+ run_path = result.output.strip().split("'")[1]
54
+ with open(run_path, encoding="utf-8") as f:
55
+ result_content = json.load(f)
56
+ assert (
57
+ result_content["results"][0]["subprocessing_steps"][0]["result"][
58
+ "prediction"
59
+ ]
60
+ == species
61
+ )
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes