eva-sub-cli 0.6.3__tar.gz → 0.6.5__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 (172) hide show
  1. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/PKG-INFO +1 -1
  2. eva_sub_cli-0.6.5/docs/common_vcf_errors.md +455 -0
  3. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/docs/how_to_submit.md +1 -1
  4. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/docs/input_file_overview.md +2 -0
  5. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/__init__.py +1 -1
  6. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/_version.py +3 -3
  7. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/call_home.py +14 -2
  8. eva_sub_cli-0.6.5/eva_sub_cli/etc/EVA_Submission_Example.xlsx +0 -0
  9. eva_sub_cli-0.6.5/eva_sub_cli/etc/EVA_Submission_template.xlsx +0 -0
  10. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/executables/cli.py +3 -2
  11. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/nextflow/validation.nf +0 -2
  12. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/submission_ws.py +3 -3
  13. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/validators/docker_validator.py +1 -1
  14. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/validators/native_validator.py +1 -2
  15. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/validators/validator.py +5 -0
  16. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli.egg-info/PKG-INFO +1 -1
  17. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli.egg-info/SOURCES.txt +3 -0
  18. eva_sub_cli-0.6.5/eva_sub_cli.egg-info/scm_file_list.json +157 -0
  19. eva_sub_cli-0.6.5/eva_sub_cli.egg-info/scm_version.json +8 -0
  20. eva_sub_cli-0.6.5/tests/resources/EVA_Submission_Docker_Test.xlsx +0 -0
  21. eva_sub_cli-0.6.5/tests/resources/EVA_Submission_test.xlsx +0 -0
  22. eva_sub_cli-0.6.5/tests/resources/EVA_Submission_test_fails.xlsx +0 -0
  23. eva_sub_cli-0.6.5/tests/resources/EVA_Submission_test_version_missing.xlsx +0 -0
  24. eva_sub_cli-0.6.5/tests/resources/EVA_Submission_test_with_links.xlsx +0 -0
  25. eva_sub_cli-0.6.5/tests/resources/EVA_Submission_test_with_non_vcf_files.xlsx +0 -0
  26. eva_sub_cli-0.6.5/tests/resources/EVA_Submission_test_with_project_accession.xlsx +0 -0
  27. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/test_auth.py +5 -5
  28. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/test_call_home.py +6 -0
  29. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/test_orchestrator.py +1 -1
  30. eva_sub_cli-0.6.3/eva_sub_cli/etc/EVA_Submission_Example.xlsx +0 -0
  31. eva_sub_cli-0.6.3/eva_sub_cli/etc/EVA_Submission_template.xlsx +0 -0
  32. eva_sub_cli-0.6.3/tests/resources/EVA_Submission_Docker_Test.xlsx +0 -0
  33. eva_sub_cli-0.6.3/tests/resources/EVA_Submission_test.xlsx +0 -0
  34. eva_sub_cli-0.6.3/tests/resources/EVA_Submission_test_fails.xlsx +0 -0
  35. eva_sub_cli-0.6.3/tests/resources/EVA_Submission_test_version_missing.xlsx +0 -0
  36. eva_sub_cli-0.6.3/tests/resources/EVA_Submission_test_with_links.xlsx +0 -0
  37. eva_sub_cli-0.6.3/tests/resources/EVA_Submission_test_with_non_vcf_files.xlsx +0 -0
  38. eva_sub_cli-0.6.3/tests/resources/EVA_Submission_test_with_project_accession.xlsx +0 -0
  39. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/.github/workflows/integration-tests.yml +0 -0
  40. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/.github/workflows/publish.yml +0 -0
  41. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/.github/workflows/publish_docs.yml +0 -0
  42. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/.github/workflows/tests.yml +0 -0
  43. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/.github/workflows/trigger-eva-sub-cli-integration-tests.yml +0 -0
  44. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/.gitignore +0 -0
  45. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/LICENSE +0 -0
  46. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/README.md +0 -0
  47. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/conda/build.sh +0 -0
  48. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/conda/meta.yaml +0 -0
  49. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/docker/Dockerfile +0 -0
  50. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/docs/README.md +0 -0
  51. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/docs/_config.yml +0 -0
  52. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/docs/installation.md +0 -0
  53. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/docs/using_nextflow.md +0 -0
  54. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/docs/validation_overview.md +0 -0
  55. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/auth.py +0 -0
  56. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/date_utils.py +0 -0
  57. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/etc/call_home_payload_schema.json +0 -0
  58. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/etc/eva-biosamples.json +0 -0
  59. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/etc/eva_logo.png +0 -0
  60. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/etc/eva_schema.json +0 -0
  61. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/etc/spreadsheet2json_conf.yaml +0 -0
  62. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/etc/spreadsheet2json_conf_V2.yaml +0 -0
  63. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/exceptions.py +0 -0
  64. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/executables/__init__.py +0 -0
  65. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/executables/check_fasta_insdc.py +0 -0
  66. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/executables/check_metadata_semantics.py +0 -0
  67. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/executables/evidence_type_checker.py +0 -0
  68. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/executables/format_metadata.py +0 -0
  69. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/executables/samples_checker.py +0 -0
  70. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/executables/trim_down.py +0 -0
  71. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/executables/xlsx2json.py +0 -0
  72. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/file_utils.py +0 -0
  73. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/jinja_templates/html/fasta_check.html +0 -0
  74. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/jinja_templates/html/file_validation.html +0 -0
  75. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/jinja_templates/html/metadata_validation.html +0 -0
  76. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/jinja_templates/html/project_details.html +0 -0
  77. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/jinja_templates/html/report.html +0 -0
  78. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/jinja_templates/html/sample_name_check.html +0 -0
  79. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/jinja_templates/html/shallow_validation.html +0 -0
  80. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/jinja_templates/text/fasta_check.txt +0 -0
  81. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/jinja_templates/text/file_validation.txt +0 -0
  82. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/jinja_templates/text/metadata_validation.txt +0 -0
  83. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/jinja_templates/text/project_details.txt +0 -0
  84. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/jinja_templates/text/report.txt +0 -0
  85. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/jinja_templates/text/sample_name_check.txt +0 -0
  86. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/jinja_templates/text/shallow_validation.txt +0 -0
  87. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/metadata.py +0 -0
  88. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/orchestrator.py +0 -0
  89. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/report.py +0 -0
  90. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/semantic_metadata.py +0 -0
  91. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/submit.py +0 -0
  92. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/utils.py +0 -0
  93. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/validators/__init__.py +0 -0
  94. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli/validators/validation_results_parsers.py +0 -0
  95. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli.egg-info/dependency_links.txt +0 -0
  96. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli.egg-info/entry_points.txt +0 -0
  97. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli.egg-info/requires.txt +0 -0
  98. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/eva_sub_cli.egg-info/top_level.txt +0 -0
  99. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/pyproject.toml +0 -0
  100. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/pytest.ini +0 -0
  101. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/requirements.txt +0 -0
  102. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/setup.cfg +0 -0
  103. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/setup.py +0 -0
  104. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/build_and_test_docker_locally.py +0 -0
  105. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/ignore_test_nextflow_validation.yml +0 -0
  106. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/EVA_Submission_test.json +0 -0
  107. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/EVA_Submission_test_V2.xlsx +0 -0
  108. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/EVA_Submission_test_with_asm_report.json +0 -0
  109. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/EVA_Submission_test_with_non_vcf_files.json +0 -0
  110. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/EVA_Submission_test_with_project_accession.json +0 -0
  111. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/assembly_check/invalid.vcf.assembly_check.log +0 -0
  112. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/assembly_check/invalid.vcf.text_assembly_report.txt +0 -0
  113. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/assembly_reports/input_passed.txt +0 -0
  114. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/fasta_files/Saccharomyces_cerevisiae_I.fa +0 -0
  115. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/fasta_files/input_passed.fa +0 -0
  116. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/fasta_files/multi_seq.fa +0 -0
  117. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/metadata_with_filename.json +0 -0
  118. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/sample_checker/evidence_type.yaml +0 -0
  119. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/sample_checker/example1.vcf.gz +0 -0
  120. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/sample_checker/example2.vcf +0 -0
  121. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/sample_checker/example3.vcf +0 -0
  122. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/sample_checker/metadata.json +0 -0
  123. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/sample_in_vcf_check/allele_freq.vcf +0 -0
  124. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/sample_in_vcf_check/fake_fasta.fa +0 -0
  125. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/sample_in_vcf_check/genotype.vcf +0 -0
  126. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/sample_in_vcf_check/metadata_af_no_sample_in_vcf.json +0 -0
  127. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/sample_in_vcf_check/metadata_af_with_sample_in_vcf.json +0 -0
  128. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/sample_in_vcf_check/metadata_genotype_no_sample_in_vcf.json +0 -0
  129. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/sample_in_vcf_check/metadata_genotype_with_sample_in_vcf.json +0 -0
  130. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/validation_reports/expected_metadata_json_report.html +0 -0
  131. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/validation_reports/expected_metadata_json_report.txt +0 -0
  132. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/validation_reports/expected_metadata_xlsx_report.html +0 -0
  133. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/validation_reports/expected_metadata_xlsx_report.txt +0 -0
  134. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/validation_reports/expected_report_metadata_json_process_not_run.html +0 -0
  135. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/validation_reports/expected_report_metadata_json_process_not_run.txt +0 -0
  136. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/validation_reports/expected_shallow_metadata_xlsx_report.html +0 -0
  137. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/validation_reports/expected_shallow_metadata_xlsx_report.txt +0 -0
  138. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/validation_reports/validation_output/assembly_check/input_passed.vcf.assembly_check.log +0 -0
  139. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/validation_reports/validation_output/assembly_check/input_passed.vcf.text_assembly_report.1680102476700.txt +0 -0
  140. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/validation_reports/validation_output/assembly_check/input_passed.vcf.valid_assembly_report.1680102476700.txt +0 -0
  141. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/validation_reports/validation_output/metadata.json +0 -0
  142. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/validation_reports/validation_output/other_validations/evidence_type_checker.yml +0 -0
  143. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/validation_reports/validation_output/other_validations/file_info.txt +0 -0
  144. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/validation_reports/validation_output/other_validations/input_passed.fa_check.yml +0 -0
  145. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/validation_reports/validation_output/other_validations/input_passed_trim_down.yml +0 -0
  146. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/validation_reports/validation_output/other_validations/metadata_conversion_errors.yml +0 -0
  147. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/validation_reports/validation_output/other_validations/metadata_semantic_check.yml +0 -0
  148. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/validation_reports/validation_output/other_validations/metadata_validation.txt +0 -0
  149. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/validation_reports/validation_output/other_validations/sample_checker.yml +0 -0
  150. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/validation_reports/validation_output/vcf_format/input_passed.vcf.errors.1680102476854.db +0 -0
  151. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/validation_reports/validation_output/vcf_format/input_passed.vcf.errors.1680102476854.txt +0 -0
  152. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/validation_reports/validation_output/vcf_format/input_passed.vcf.vcf_format.log +0 -0
  153. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/vcf_files/example2.vcf.gz +0 -0
  154. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/vcf_files/example2.vcf.gz.tbi +0 -0
  155. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/resources/vcf_files/input_passed.vcf +0 -0
  156. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/test_check_fasta_insdc.py +0 -0
  157. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/test_cli.py +0 -0
  158. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/test_docker_validator.py +0 -0
  159. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/test_evidence_type_checker.py +0 -0
  160. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/test_file_utils.py +0 -0
  161. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/test_format_metadata.py +0 -0
  162. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/test_metadata.py +0 -0
  163. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/test_native_validator_sample_in_vcf.py +0 -0
  164. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/test_report.py +0 -0
  165. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/test_samples_checker.py +0 -0
  166. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/test_semantic_metadata.py +0 -0
  167. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/test_submit.py +0 -0
  168. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/test_trim_down.py +0 -0
  169. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/test_utils.py +0 -0
  170. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/test_validaton_results_parsers.py +0 -0
  171. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/test_validator.py +0 -0
  172. {eva_sub_cli-0.6.3 → eva_sub_cli-0.6.5}/tests/test_xlsx2json.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: eva_sub_cli
3
- Version: 0.6.3
3
+ Version: 0.6.5
4
4
  Summary: EBI EVA - validation and submission command line tool
5
5
  Classifier: Development Status :: 5 - Production/Stable
6
6
  Classifier: Environment :: Console
@@ -0,0 +1,455 @@
1
+ # **Frequently encountered VCF validation issues**
2
+
3
+ This section provides a curated overview of some of the common VCF validation errors. Each error is illustrated with a real validation output example, followed by a brief description about the error and the expected resolution for EVA submissions.
4
+
5
+ ## 1. Duplicated Variants
6
+
7
+ **Example Validation Error**
8
+
9
+ ```text
10
+ Line 31165: Duplicated variant 10:51781012:A>a found.
11
+ Line 31166: Duplicated variant 10:51781012:A>a found. It occurs in lines 31165 and 31166.
12
+ ```
13
+
14
+ **Description**
15
+
16
+ This error indicates that the same variant appears more than once in the VCF file. A duplicated variant is defined as multiple records with identical:
17
+
18
+ * Chromosome
19
+ * Position
20
+ * Reference allele
21
+ * Alternate allele
22
+
23
+ **Additional context**
24
+
25
+ When you receive a validation error like Duplicated variant found, it means two lines in your VCF file are describing the exact same genetic change. Let's explore this further with a real-world VCF example.
26
+
27
+ ```text
28
+ #CHROM POS ID REF ALT QUAL FILTER ...
29
+ 4 15112781 . TGGCCAG T 7.71 PASS ...
30
+ 4 15112782 . GGCCAGG G 13.18 PASS ...
31
+ ```
32
+
33
+ At first glance, these look like two distinct variants because their positions and allele sequences are different. However, both vcf lines are trying to describe a 6-base pair deletion as shown below:
34
+
35
+ ```text
36
+ 15112781
37
+ |
38
+ TGGCCAGG
39
+ T------G
40
+
41
+ 15112782
42
+ |
43
+ TGGCCAGG
44
+ TG------
45
+ ```
46
+
47
+ **Resolution**
48
+
49
+ Duplicate variants are not permitted in EVA submissions. Please ensure all duplicate records are identified and removed prior to submission. One tools that can help in removing duplicate is [bcftools norm](https://samtools.github.io/bcftools/bcftools.html#norm)
50
+
51
+ ```bash
52
+ bcftools norm -multiallelics -both --rm-dup all input.vcf > output.vcf
53
+ ```
54
+
55
+
56
+ ## 2. Variants not sorted by Genomic Position
57
+
58
+ **Example Validation Error**
59
+
60
+ ```text
61
+ Line 54: Contig is not sorted by position. Contig chr1 position 666974 found after 1083338.
62
+ Line 98: Contig is not sorted by position. Contig chr1 position 16620664 found after 16624328.
63
+ ```
64
+
65
+ **Description**
66
+
67
+ VCF files must be sorted by chromosome/contig and genomic position in ascending order, otherwise validation error will be raised.
68
+
69
+ **Resolution**
70
+
71
+ Ensure the VCF file is sorted by chromosome/contig and genomic position in ascending order prior to submission. Possible ways to achieve this are shown below:
72
+
73
+ Option 1: Using bcftools
74
+
75
+ ```bash
76
+ bcftools sort input.vcf > output.vcf
77
+ ```
78
+ Option 2: Using awk and sort
79
+
80
+ ```bash
81
+ awk '/^#/ {print; next} {print | "sort -k1,1 -k2,2n"}' input.vcf > output.vcf
82
+ ```
83
+
84
+
85
+
86
+ ## 3. Values Outside Allowed Range
87
+
88
+ **Example Validation Error**
89
+
90
+ ```text
91
+ Line 4709805: INFO AF value does not lie in the interval [0,1]. AF=1.0005.
92
+
93
+ Line 39098: Sample #1, GP=164.33,0 value does not lie in the interval [0,1].
94
+
95
+ ```
96
+
97
+ **Description**
98
+
99
+ This error indicates that one or more numeric values fall outside their permitted range. Certain VCF fields are expected to contain values within a defined interval (commonly \[0,1\]).
100
+
101
+ **Resolution**
102
+
103
+ Ensure that all values in the affected fields fall within their expected range. Any values outside the permitted interval should be corrected or recalculated prior to submission.
104
+
105
+ ```bash
106
+ Example 1: Invalid AF value
107
+
108
+ AF represents allele frequency and must not exceed 1.
109
+
110
+ Problematic record:
111
+ 1 10583 . G A . PASS AF=1.0005
112
+
113
+ Corrected record:
114
+ 1 10583 . G A . PASS AF=1.0
115
+ ```
116
+
117
+ ```bash
118
+ Example 2: Invalid GP value
119
+
120
+ GP values represent genotype probabilities and must fall within the range [0,1]
121
+
122
+ Problematic record:
123
+
124
+ 1 250321 . C T . PASS . GT:GP 0/1:1.24,0.15,0.03
125
+
126
+ Corrected record:
127
+
128
+ 1 250321 . C T . PASS . GT:GP 0/1:0.82,0.15,0.03
129
+ ```
130
+
131
+
132
+
133
+ ## 4. Invalid Reference Allele
134
+
135
+ **Example Validation Error**
136
+
137
+ ```text
138
+ Line 91987: Reference is not a string of bases.
139
+ ```
140
+
141
+ **Description**
142
+
143
+ This error indicates that the reference allele contains invalid characters. The REF field in a VCF file must consist only of valid nucleotide bases (A, C, G, T). Any other characters or formats are not permitted and violate VCF specification requirements.
144
+
145
+ **Resolution**
146
+
147
+ Please check the following before submission:
148
+
149
+ - Check that the REF allele contains valid bases
150
+ - Ensure that the VCF was generated against the same reference genome assembly declared in the submission metadata.
151
+ - If the VCF was generated using PLINK, check that the correct reference allele settings were used. When exporting VCF files using PLINK 2.0, use the appropriate reference FASTA option so that REF alleles are taken from the correct reference genome:
152
+
153
+ ```bash
154
+ plink2 --vcf input.vcf --ref-from-fa reference.fa --export vcf --out output
155
+ ```
156
+
157
+ ## 5. Invalid Fileformat Declaration
158
+
159
+ **Example Validation Error**
160
+
161
+ ```text
162
+ The fileformat declaration is not valid (the line must start with ##fileformat= and the value must be one of 'VCFv4.1', 'VCFv4.2', 'VCFv4.3' or 'VCFv4.4').
163
+ ```
164
+
165
+ **Description**
166
+
167
+ This error indicates that the VCF header does not contain a valid file format declaration. The fileformat line is a mandatory header field and must follow the required structure and accepted version values.
168
+
169
+ **Resolution**
170
+
171
+ Ensure that the fileformat declaration is correctly defined in the VCF header using a supported version and the required format before submission.
172
+
173
+
174
+ Problematic header:
175
+
176
+ ```text
177
+ ##fileformat=VCFv4.5
178
+ ```
179
+
180
+ Example of a supported header:
181
+
182
+ ```text
183
+ ##fileformat=VCFv4.2
184
+ ```
185
+
186
+
187
+ ## 6. Missing Contig Definition (warning)
188
+
189
+ **Example Validation Error**
190
+
191
+ ```text
192
+ Chromosome/contig '13' is not described in a 'contig' meta description. (warning)
193
+ ```
194
+
195
+ **Description**
196
+
197
+ This warning indicates that a chromosome or contig referenced in the VCF records is not defined in the header. Each contig used in the VCF file should have a corresponding entry in the header describing it as without this there would be errors further down in our submission pipeline.
198
+
199
+ **Resolution**
200
+
201
+ Ensure that all contigs referenced in the VCF file are properly defined in the header using contig meta-information lines before submission.
202
+
203
+ Problematic header:
204
+
205
+ ```text
206
+ ##fileformat=VCFv4.2
207
+ #CHROM POS ID REF ALT QUAL FILTER INFO
208
+ 13 32936732 . G A . PASS .
209
+ ```
210
+ Header with contig definition added:
211
+
212
+ ```text
213
+ ##fileformat=VCFv4.2
214
+ ##contig=<ID=13,length=114364328>
215
+ #CHROM POS ID REF ALT QUAL FILTER INFO
216
+ 13 32936732 . G A . PASS .
217
+ ```
218
+
219
+ ## 7. Invalid Genotype Format
220
+
221
+ **Example Validation Error**
222
+
223
+ ```text
224
+ Critical error: Line 23: Sample #77 does not start with a valid genotype.
225
+ ```
226
+
227
+ **Description**
228
+
229
+ This error indicates that the genotype (GT) field for a sample is not in a valid format. The GT field must follow the standard VCF genotype representation, typically consisting of allele values separated by either / or |
230
+
231
+ **Resolution**
232
+
233
+ Ensure that all genotype values are correctly formatted according to VCF specifications before submission. Example command to inspect genotype fields
234
+
235
+ ```bash
236
+ bcftools query -f '%CHROM\t%POS[\t%GT]\n' input.vcf
237
+ ```
238
+
239
+ ## 8. Invalid INFO Field Format and Cardinality
240
+
241
+ **Example Validation Errors**
242
+
243
+ ```text
244
+ Critical error: Line 119: Info field value is not a comma-separated list of valid strings (maybe it contains whitespaces?).
245
+
246
+ Critical error: Line 186: Info key is not a sequence of alphanumeric and/or punctuation characters
247
+
248
+ ​​Critical error: Line 115: INFO ConfidenceInterval does not match the meta specification Number=A (expected 1 value(s)). ConfidenceInterval=0.1554,0.3237.
249
+
250
+ Line 2805: INFO TYPE does not match the meta specification Number=A (expected 2 value(s)). TYPE=snp.
251
+ ```
252
+
253
+ **Description**
254
+
255
+ These errors indicate that the INFO field is not correctly defined or does not match its expected format. INFO field keys must use valid characters, values must be provided as scalar values or simple comma-separated lists, and the number of values must match the corresponding header definition.
256
+
257
+ **Resolution**
258
+
259
+ Ensure that INFO field keys use valid characters, values are formatted as scalar values or simple comma-separated lists, and the number of values matches the corresponding header definition before submission.
260
+
261
+ Example command to inspect INFO header definitions
262
+
263
+ ```bash
264
+ bcftools view -h input.vcf | grep "^##INFO"
265
+ ```
266
+
267
+ Example command to inspect INFO fields in variant records
268
+
269
+ ```bash
270
+ bcftools query -f '%CHROM\t%POS\t%INFO\n' input.vcf
271
+ ```
272
+
273
+
274
+ ## 9. Identical Reference and Alternate Alleles
275
+
276
+ **Example Validation Error**
277
+
278
+ ```text
279
+ Line 25551: Reference and alternate alleles must not be the same.
280
+ ```
281
+
282
+ **Description**
283
+
284
+ This error indicates that the reference (REF) and alternate (ALT) alleles are identical. In a valid VCF record, the REF and ALT fields must represent different alleles.
285
+
286
+ **Resolution**
287
+
288
+ Ensure that the REF and ALT fields contain different allele values before submission.
289
+
290
+ Example command to identify records where REF and ALT are identical
291
+
292
+ ```bash
293
+ awk '!/^#/ && $4 == $5' input.vcf
294
+ ```
295
+
296
+
297
+ ## 10. Invalid Quality Value
298
+
299
+ **Example Validation Error**
300
+
301
+ ```text
302
+ Line 29: Quality is not a single dot or a positive number.
303
+ ```
304
+
305
+ **Description**
306
+
307
+ This error indicates that the QUAL field is not correctly formatted.The QUAL field must contain either a positive numeric value or a single dot (.) to indicate a missing value.
308
+
309
+ **Resolution**
310
+
311
+ Ensure that the QUAL field contains either a valid positive number or a dot (.) where the value is missing before submission.
312
+
313
+ Example command to inspect QUAL values
314
+
315
+ ```bash
316
+ bcftools query -f '%CHROM\t%POS\t%QUAL\n' input.vcf
317
+ ```
318
+
319
+
320
+ ## 11. Incorrect SVLEN Value
321
+
322
+ **Example Validation Error**
323
+
324
+ ```text
325
+ Line 54: INFO SVLEN must be equal to "length of ALT - length of REF" for non-symbolic alternate alleles. SVLEN=6, expected value=-6.
326
+ ```
327
+ **Description**
328
+
329
+ This error indicates that the SVLEN value in the INFO field does not match the expected value based on the REF and ALT alleles. For non-symbolic alternate alleles, SVLEN must correspond to the difference in length between the ALT and REF sequences.
330
+
331
+ **Resolution**
332
+
333
+ Ensure that the SVLEN value correctly reflects the difference in length between the ALT and REF alleles before submission.
334
+
335
+ Example command to inspect structural variant annotations
336
+
337
+ ```bash
338
+ bcftools query -f '%CHROM\t%POS\t%INFO/SVTYPE\t%INFO/SVLEN\n' input.vcf
339
+ ```
340
+
341
+
342
+ ## 12 Major allele used as REF allele (Data consistency issue)
343
+
344
+
345
+ **Example**
346
+
347
+ ```text
348
+ ##INFO=<ID=PR,Number=0,Type=Flag,Description="Provisional reference allele, may not be based on real reference genome">
349
+
350
+ Line 51: Chromosome NC_040252.1, position 303453, reference allele 'G' does not match the reference sequence, expected 'T'
351
+ ```
352
+
353
+ **Description**
354
+
355
+ This is a known behaviour of PLINK, which by default may assign the major allele as the reference allele if not explicitly instructed otherwise. As a result, the REF field in the VCF may not correspond to the actual reference genome used for submission.
356
+
357
+ **Resolution**
358
+
359
+ When generating VCF files using PLINK 2.0, use the `--ref-from-fa` option to ensure that reference alleles are derived from the correct FASTA reference genome file.
360
+
361
+ Example command when exporting VCFs with PLINK 2.0
362
+
363
+ ```bash
364
+ plink2 --vcf input.vcf --ref-from-fa reference.fa --export vcf --out output
365
+ ```
366
+
367
+ ## 13. Sample Count Mismatch
368
+
369
+ **Example Validation Error**
370
+
371
+ ```text
372
+ Line 124: The number of samples must match those listed in the header line.
373
+ ```
374
+
375
+ **Description**
376
+
377
+ This error indicates that the number of sample columns in the VCF data does not match the number of samples defined in the header. The header line specifies the sample identifiers, and each record must contain the same number of sample entries.
378
+
379
+ **Resolution**
380
+
381
+ Ensure that the number of sample columns in all records matches the number of samples defined in the header before submission.
382
+
383
+ Example command to detect records with inconsistent sample column counts
384
+
385
+
386
+ ```bash
387
+ awk '!/^#/ {print NF}' input.vcf | sort -u
388
+ ```
389
+
390
+ This command reports the total number of columns present across variant records in the VCF file. In a correctly formatted VCF, all variant records should contain the same number of columns.
391
+
392
+
393
+ ## 14. Missing Newline at End of File
394
+
395
+ **Example Validation Error**
396
+
397
+ ```text
398
+ Critical error: Line 15: There is no newline at the end of the file.
399
+ ```
400
+
401
+ **Description**
402
+
403
+ This error indicates that the VCF file does not end with a newline character. VCF files must end with a newline to ensure proper parsing and compliance with file formatting requirements.
404
+
405
+ **Resolution**
406
+
407
+ Ensure that the VCF file ends with a newline character before submission. One way to achieve this is shown below:
408
+
409
+ Example command to add a newline character to the end of the file
410
+
411
+ ```bash
412
+ sed -i -e '$a\' input.vcf
413
+ ```
414
+
415
+ ## 15. INFO and FORMAT Fields not defined in header (warnings)
416
+
417
+ **Example Validation Errors**
418
+
419
+ ```text
420
+ INFO 'SVTYPE' is not defined in the header, assuming Type=String
421
+
422
+ INFO 'END' is not defined in the header, assuming Type=String
423
+
424
+ INFO 'SVLEN' is not defined in the header, assuming Type=String
425
+
426
+ INFO 'AF' is not defined in the header, assuming Type=String
427
+
428
+ INFO 'DP' is not defined in the header, assuming Type=String
429
+
430
+ FORMAT 'CN' is not defined in the header, assuming Type=String
431
+
432
+ FORMAT 'GT' is not defined in the header, assuming Type=String
433
+
434
+ FORMAT 'DP' is not defined in the header, assuming Type=String
435
+ ```
436
+
437
+ **Description**
438
+
439
+ These warnings indicate that one or more INFO or FORMAT fields are present in the VCF records but are not defined in the header.
440
+
441
+ **Resolution**
442
+
443
+ All INFO and FORMAT fields used in the VCF must be explicitly defined in the header using \#\#INFO and \#\#FORMAT lines.
444
+
445
+ Example command to inspect INFO field definitions
446
+
447
+ ```bash
448
+ bcftools view -h input.vcf | grep "^##INFO"
449
+ ```
450
+
451
+ Example command to inspect FORMAT field definitions
452
+
453
+ ```bash
454
+ bcftools view -h input.vcf | grep "^##FORMAT"
455
+ ```
@@ -28,7 +28,7 @@ The basic command to run validation and submission is as follows:
28
28
  eva-sub-cli.py --metadata_xlsx <metadata file> --submission_dir <submission directory> --username <webin username> --password <webin password>
29
29
  ```
30
30
  This will run validation and generate a report with the results. The report can be viewed as HTML or plain text. More
31
- description of the validation checks being performed can be found in the [validation overview](validation_overview.md).
31
+ description of the validation checks being performed can be found in the [validation overview](validation_overview.md). For guidance on frequently encountered VCF validation issues and their resolutions, please see [Common VCF errors](common_vcf_errors.md)
32
32
 
33
33
  **NOTE:** If the validation is successful, this command will automatically submit your data and metadata to EVA. If you
34
34
  don't want this, see [below](#running-only-validation-or-only-submission).
@@ -42,6 +42,8 @@ And here is how allele frequencies would look:
42
42
 
43
43
  When using the eva-sub-cli tool, VCF files can be either uncompressed or compressed using bgzip or gzip.
44
44
 
45
+ For guidance on frequently encountered VCF validation issues and their resolutions, please see [Common VCF errors](common_vcf_errors.md)
46
+
45
47
  ## FASTA File
46
48
 
47
49
  This is the reference genome that your variants were called against, in uncompressed FASTA format. The EVA uses this to
@@ -11,7 +11,7 @@ MINIMUM_METADATA_XLSX_TEMPLATE_VERSION = '2.0.0'
11
11
  SUB_CLI_CONFIG_FILE = ".eva_sub_cli_config.yml"
12
12
 
13
13
  # Environment variable
14
- SUBMISSION_WS_VAR = 'SUBMISSION_WS_URL'
14
+ SUBMISSION_WS_URL_VAR = 'SUBMISSION_WS_URL'
15
15
  ENA_WEBIN_ACCOUNT_VAR = 'ENA_WEBIN_ACCOUNT'
16
16
  ENA_WEBIN_PASSWORD_VAR = 'ENA_WEBIN_PASSWORD'
17
17
 
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '0.6.3'
22
- __version_tuple__ = version_tuple = (0, 6, 3)
21
+ __version__ = version = '0.6.5'
22
+ __version_tuple__ = version_tuple = (0, 6, 5)
23
23
 
24
- __commit_id__ = commit_id = 'g1c826d931'
24
+ __commit_id__ = commit_id = 'ge5181ff56'
@@ -1,4 +1,5 @@
1
1
  import os
2
+ import threading
2
3
  import traceback
3
4
  import uuid
4
5
  from datetime import datetime, timezone
@@ -67,6 +68,7 @@ class CallHomeClient:
67
68
  self.run_id = _get_or_create_run_id(submission_dir)
68
69
  self.executor = executor
69
70
  self.tasks = tasks
71
+ self._threads = []
70
72
 
71
73
  def _build_payload(self, event_type, **kwargs):
72
74
  now = datetime.now(timezone.utc)
@@ -90,12 +92,22 @@ class CallHomeClient:
90
92
  return payload
91
93
 
92
94
  def _send_event(self, event_type, **kwargs):
95
+ payload = self._build_payload(event_type, **kwargs)
96
+ thread = threading.Thread(target=self._post_event, args=(event_type, payload))
97
+ thread.start()
98
+ self._threads.append(thread)
99
+
100
+ def _post_event(self, event_type, payload):
93
101
  try:
94
- payload = self._build_payload(event_type, **kwargs)
95
- requests.post(_get_call_home_url(), json=payload, timeout=5)
102
+ requests.post(_get_call_home_url(), json=payload, timeout=60)
96
103
  except Exception:
97
104
  logger.debug('Failed to send %s call-home event', event_type)
98
105
 
106
+ def wait_for_pending_events(self, timeout=None):
107
+ for thread in self._threads:
108
+ thread.join(timeout)
109
+ self._threads = []
110
+
99
111
  def send_start(self):
100
112
  self._send_event(EVENT_START)
101
113
 
@@ -12,6 +12,7 @@ from argparse import ArgumentParser
12
12
  from ebi_eva_common_pyutils.logger import logging_config
13
13
 
14
14
  import eva_sub_cli
15
+ from eva_sub_cli import ENA_WEBIN_ACCOUNT_VAR, ENA_WEBIN_PASSWORD_VAR
15
16
  from eva_sub_cli import orchestrator
16
17
  from eva_sub_cli.exceptions import MetadataTemplateVersionException, MetadataTemplateVersionNotFoundException, \
17
18
  SubmissionStatusException, SubmissionNotFoundException, SubmissionUploadException, NoVcfsFoundException
@@ -36,8 +37,8 @@ def validate_command_line_arguments(args, argparser):
36
37
  fail = True
37
38
 
38
39
  if SUBMIT in args.tasks and (
39
- not (args.username or os.environ.get('ENAWEBINACCOUNT')) or
40
- not (args.password or os.environ.get('ENAWEBINPASSWORD'))):
40
+ not (args.username or os.environ.get(ENA_WEBIN_ACCOUNT_VAR)) or
41
+ not (args.password or os.environ.get(ENA_WEBIN_PASSWORD_VAR))):
41
42
  print("To submit your data, you need to provide a Webin username and password")
42
43
  fail = True
43
44
 
@@ -180,7 +180,6 @@ process check_vcf_valid {
180
180
  """
181
181
  trap 'if [[ \$? == 1 ]]; then exit 0; fi' EXIT
182
182
 
183
- rm -rf ${output_dir}/vcf_format
184
183
  mkdir -p vcf_format
185
184
  $params.executable.vcf_validator -i $vcf -r text -o vcf_format --require-evidence > vcf_format/${vcf}.vcf_format.log 2>&1
186
185
  """
@@ -210,7 +209,6 @@ process check_vcf_reference {
210
209
  """
211
210
  trap 'if [[ \$? == 1 || \$? == 139 ]]; then exit 0; fi' EXIT
212
211
 
213
- rm -rf ${output_dir}/assembly_check
214
212
  mkdir -p assembly_check
215
213
  $params.executable.vcf_assembly_checker -i $vcf -f $fasta $report_opt -r summary,text -o assembly_check --require-genbank > assembly_check/${vcf}.assembly_check.log 2>&1
216
214
  """
@@ -5,7 +5,7 @@ from ebi_eva_common_pyutils.logger import AppLogger
5
5
  from requests import HTTPError
6
6
  from retry import retry
7
7
 
8
- from eva_sub_cli import SUBMISSION_WS_VAR
8
+ from eva_sub_cli import SUBMISSION_WS_URL_VAR
9
9
  from eva_sub_cli.auth import get_auth
10
10
  from eva_sub_cli.exceptions import SubmissionUploadException
11
11
 
@@ -15,8 +15,8 @@ DEFAULT_SUBMISSION_WS_URL = 'https://www.ebi.ac.uk/eva/webservices/submission-ws
15
15
  def _submission_ws_base_url():
16
16
  """Retrieve the base URL for the submission web services.
17
17
  In order of preference from the environment variable or the hardcoded value."""
18
- if os.environ.get(SUBMISSION_WS_VAR):
19
- return os.environ.get(SUBMISSION_WS_VAR)
18
+ if os.environ.get(SUBMISSION_WS_URL_VAR):
19
+ return os.environ.get(SUBMISSION_WS_URL_VAR)
20
20
  else:
21
21
  return DEFAULT_SUBMISSION_WS_URL
22
22
 
@@ -39,7 +39,7 @@ class DockerValidator(Validator):
39
39
 
40
40
  def get_docker_validation_cmd(self):
41
41
  docker_cmd = ''.join([
42
- f"{self.docker_path} exec {self.container_name} nextflow run eva_sub_cli/nextflow/validation.nf ",
42
+ f"{self.docker_path} exec -e NXF_SYNTAX_PARSER=v1 {self.container_name} nextflow run eva_sub_cli/nextflow/validation.nf ",
43
43
  f"--base_dir {container_validation_dir} ",
44
44
  f"--tasks {','.join(self.tasks)} "
45
45
  f"--vcf_files_mapping {self.mapping_file} ",
@@ -1,8 +1,6 @@
1
1
  import os
2
2
  import subprocess
3
3
 
4
- from ebi_eva_common_pyutils.logger import logging_config
5
-
6
4
  from eva_sub_cli.validators.validator import Validator, ALL_VALIDATION_TASKS
7
5
 
8
6
 
@@ -29,6 +27,7 @@ class NativeValidator(Validator):
29
27
  self.verify_executables_installed()
30
28
  curr_wd = os.getcwd()
31
29
  try:
30
+ os.environ['NXF_SYNTAX_PARSER'] = 'v1'
32
31
  command = self.get_validation_cmd()
33
32
  os.chdir(self.submission_dir)
34
33
  self._run_quiet_command("Run Validation using Nextflow", command)
@@ -134,6 +134,11 @@ class Validator(AppLogger):
134
134
  def set_up_output_dir(self):
135
135
  if not os.path.exists(self.output_dir):
136
136
  os.makedirs(self.output_dir, exist_ok=True)
137
+ # Clean up VCF check and assembly check output from previous runs
138
+ if VCF_CHECK in self.tasks:
139
+ shutil.rmtree(os.path.join(self.output_dir, 'vcf_format'), ignore_errors=True)
140
+ if ASSEMBLY_CHECK in self.tasks:
141
+ shutil.rmtree(os.path.join(self.output_dir, 'assembly_check'), ignore_errors=True)
137
142
 
138
143
  def clean_up_output_dir(self):
139
144
  # Move intermediate validation outputs into a subdir except metadata.json
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: eva_sub_cli
3
- Version: 0.6.3
3
+ Version: 0.6.5
4
4
  Summary: EBI EVA - validation and submission command line tool
5
5
  Classifier: Development Status :: 5 - Production/Stable
6
6
  Classifier: Environment :: Console
@@ -16,6 +16,7 @@ conda/meta.yaml
16
16
  docker/Dockerfile
17
17
  docs/README.md
18
18
  docs/_config.yml
19
+ docs/common_vcf_errors.md
19
20
  docs/how_to_submit.md
20
21
  docs/input_file_overview.md
21
22
  docs/installation.md
@@ -40,6 +41,8 @@ eva_sub_cli.egg-info/SOURCES.txt
40
41
  eva_sub_cli.egg-info/dependency_links.txt
41
42
  eva_sub_cli.egg-info/entry_points.txt
42
43
  eva_sub_cli.egg-info/requires.txt
44
+ eva_sub_cli.egg-info/scm_file_list.json
45
+ eva_sub_cli.egg-info/scm_version.json
43
46
  eva_sub_cli.egg-info/top_level.txt
44
47
  eva_sub_cli/etc/EVA_Submission_Example.xlsx
45
48
  eva_sub_cli/etc/EVA_Submission_template.xlsx