nmdc-schema 11.15.0__tar.gz → 11.16.0__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 (129) hide show
  1. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/PKG-INFO +3 -1
  2. nmdc_schema-11.16.0/nmdc_schema/migrators/migrator_from_11_14_0_to_11_15_1.py +12 -0
  3. nmdc_schema-11.16.0/nmdc_schema/migrators/migrator_from_11_15_1_to_11_16_0.py +28 -0
  4. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/nmdc.py +12 -9
  5. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/nmdc.schema.json +12 -5
  6. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/nmdc_materialized_patterns.json +68 -53
  7. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/nmdc_materialized_patterns.schema.json +34 -28
  8. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/nmdc_materialized_patterns.yaml +60 -52
  9. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/nmdc_pydantic.py +56 -75
  10. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/pyproject.toml +6 -4
  11. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/LICENSE +0 -0
  12. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/README.md +0 -0
  13. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/README.md +0 -0
  14. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/__init__.py +0 -0
  15. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/anyuri_strings_to_iris.py +0 -0
  16. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/dump_single_modality.py +0 -0
  17. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/get_json_schema.py +0 -0
  18. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/get_nmdc_view.py +0 -0
  19. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/gold-to-mixs.sssom.tsv +0 -0
  20. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/id_helpers.py +0 -0
  21. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migration_recursion.py +0 -0
  22. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/.docker/.env.example +0 -0
  23. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/.docker/docker-compose.yaml +0 -0
  24. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/.docker/mongoKeyFile +0 -0
  25. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/.docker/mongo_init/initialize_replica_set.sh +0 -0
  26. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/.docker/wait-for-it.sh +0 -0
  27. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/README.md +0 -0
  28. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/__init__.py +0 -0
  29. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/adapters/adapter_base.py +0 -0
  30. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/adapters/dictionary_adapter.py +0 -0
  31. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/adapters/mongo_adapter.py +0 -0
  32. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/adapters/test_dictionary_adapter.py +0 -0
  33. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/adapters/test_mongo_adapter.py +0 -0
  34. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/assets/migrator_from_10_2_0_to_11_0_0_part_08/instrument_set.yaml +0 -0
  35. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/assets/migrator_from_11_7_to_11_8/data_category_map.yaml +0 -0
  36. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/assets/migrator_from_8_1_to_9_0/study_dois_changes.yaml +0 -0
  37. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/assets/migrator_from_9_1_to_9_2/websites_dois.yaml +0 -0
  38. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/cli/README.md +0 -0
  39. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/cli/__init__.py +0 -0
  40. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/cli/create_migrator.py +0 -0
  41. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/cli/migrator.py.template +0 -0
  42. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/cli/run_migrator.py +0 -0
  43. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/helpers.py +0 -0
  44. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/migration_reporter.py +0 -0
  45. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/migrator_base.py +0 -0
  46. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/migrator_from_10_0_0_to_10_1_2.py +0 -0
  47. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/migrator_from_10_2_0_to_11_0_0.py +0 -0
  48. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/migrator_from_10_3_0_to_10_4_0.py +0 -0
  49. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/migrator_from_10_4_0_to_10_5_4.py +0 -0
  50. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/migrator_from_10_5_4_to_10_5_5.py +0 -0
  51. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/migrator_from_10_5_5_to_10_5_6.py +0 -0
  52. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/migrator_from_10_5_6_to_10_6_0.py +0 -0
  53. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/migrator_from_10_6_0_to_10_7_0.py +0 -0
  54. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/migrator_from_11_0_3_to_11_1_0.py +0 -0
  55. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/migrator_from_11_10_0_to_11_11_0.py +0 -0
  56. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/migrator_from_11_11_0_to_11_13_0.py +0 -0
  57. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/migrator_from_11_13_0_to_11_14_0.py +0 -0
  58. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/migrator_from_11_1_0_to_11_2_0.py +0 -0
  59. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/migrator_from_11_3_0_to_11_4_0.py +0 -0
  60. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/migrator_from_11_4_0_to_11_5_0.py +0 -0
  61. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/migrator_from_11_5_0_to_11_5_1.py +0 -0
  62. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/migrator_from_11_5_1_to_11_6_0.py +0 -0
  63. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/migrator_from_11_6_0_to_11_6_1.py +0 -0
  64. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/migrator_from_11_6_1_to_11_7_0.py +0 -0
  65. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/migrator_from_11_7_0_to_11_8_0.py +0 -0
  66. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/migrator_from_11_8_0_to_11_9_0.py +0 -0
  67. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/migrator_from_11_9_1_to_11_10_0.py +0 -0
  68. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/migrator_from_1_0_0_to_EXAMPLE.py +0 -0
  69. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/migrator_from_7_7_2_to_7_8_0.py +0 -0
  70. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/migrator_from_7_8_0_to_8_0_0.py +0 -0
  71. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/migrator_from_8_0_to_8_1.py +0 -0
  72. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/migrator_from_8_1_to_9_0.py +0 -0
  73. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/migrator_from_9_1_to_9_2.py +0 -0
  74. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/migrator_from_9_3_to_10_0.py +0 -0
  75. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/README.md +0 -0
  76. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_10_2_0_to_11_0_0/__init__.py +0 -0
  77. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_10_2_0_to_11_0_0/migrator_from_10_2_0_to_11_0_0_part_01.py +0 -0
  78. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_10_2_0_to_11_0_0/migrator_from_10_2_0_to_11_0_0_part_02.py +0 -0
  79. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_10_2_0_to_11_0_0/migrator_from_10_2_0_to_11_0_0_part_03.py +0 -0
  80. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_10_2_0_to_11_0_0/migrator_from_10_2_0_to_11_0_0_part_04.py +0 -0
  81. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_10_2_0_to_11_0_0/migrator_from_10_2_0_to_11_0_0_part_05.py +0 -0
  82. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_10_2_0_to_11_0_0/migrator_from_10_2_0_to_11_0_0_part_06.py +0 -0
  83. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_10_2_0_to_11_0_0/migrator_from_10_2_0_to_11_0_0_part_07.py +0 -0
  84. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_10_2_0_to_11_0_0/migrator_from_10_2_0_to_11_0_0_part_08.py +0 -0
  85. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_10_2_0_to_11_0_0/migrator_from_10_2_0_to_11_0_0_part_09.py +0 -0
  86. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_10_2_0_to_11_0_0/migrator_from_10_2_0_to_11_0_0_part_10.py +0 -0
  87. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_10_2_0_to_11_0_0/migrator_from_10_2_0_to_11_0_0_part_11.py +0 -0
  88. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_10_2_0_to_11_0_0/migrator_from_10_2_0_to_11_0_0_part_12.py +0 -0
  89. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_10_2_0_to_11_0_0/migrator_from_10_2_0_to_11_0_0_part_13.py +0 -0
  90. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_10_2_0_to_11_0_0/migrator_from_10_2_0_to_11_0_0_part_14.py +0 -0
  91. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_10_2_0_to_11_0_0/migrator_from_10_2_0_to_11_0_0_part_15.py +0 -0
  92. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_10_2_0_to_11_0_0/migrator_from_10_2_0_to_11_0_0_part_16.py +0 -0
  93. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_11_0_3_to_11_1_0/__init__.py +0 -0
  94. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_11_0_3_to_11_1_0/migrator_from_11_0_3_to_11_1_0_part_1.py +0 -0
  95. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_11_0_3_to_11_1_0/migrator_from_11_0_3_to_11_1_0_part_2.py +0 -0
  96. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_11_0_3_to_11_1_0/migrator_from_11_0_3_to_11_1_0_part_3.py +0 -0
  97. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_11_10_0_to_11_11_0/__init__.py +0 -0
  98. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_11_10_0_to_11_11_0/migrator_from_11_10_0_to_11_11_0_part_1.py +0 -0
  99. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_11_10_0_to_11_11_0/migrator_from_11_10_0_to_11_11_0_part_2.py +0 -0
  100. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_11_11_0_to_11_13_0/__init__.py +0 -0
  101. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_11_11_0_to_11_13_0/migrator_from_11_11_0_to_11_13_0_part_1.py +0 -0
  102. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_11_11_0_to_11_13_0/migrator_from_11_11_0_to_11_13_0_part_2.py +0 -0
  103. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_11_11_0_to_11_13_0/migrator_from_11_11_0_to_11_13_0_part_3.py +0 -0
  104. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_11_13_0_to_11_14_0/__init__.py +0 -0
  105. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_11_13_0_to_11_14_0/migrator_from_11_13_0_to_11_14_0_part_1.py +0 -0
  106. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_11_13_0_to_11_14_0/migrator_from_11_13_0_to_11_14_0_part_2.py +0 -0
  107. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_11_1_0_to_11_2_0/__init__.py +0 -0
  108. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_11_1_0_to_11_2_0/migrator_from_11_1_0_to_11_2_0_part_1.py +0 -0
  109. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_11_1_0_to_11_2_0/migrator_from_11_1_0_to_11_2_0_part_2.py +0 -0
  110. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_11_5_1_to_11_6_0/__init__.py +0 -0
  111. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_11_5_1_to_11_6_0/migrator_from_11_5_1_to_11_6_0_part_1.py +0 -0
  112. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_11_5_1_to_11_6_0/migrator_from_11_5_1_to_11_6_0_part_2.py +0 -0
  113. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_11_7_0_to_11_8_0/__init__.py +0 -0
  114. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_11_7_0_to_11_8_0/migrator_from_11_7_0_to_11_8_0_part_1.py +0 -0
  115. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_11_7_0_to_11_8_0/migrator_from_11_7_0_to_11_8_0_part_2.py +0 -0
  116. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_11_7_0_to_11_8_0/migrator_from_11_7_0_to_11_8_0_part_3.py +0 -0
  117. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_11_7_0_to_11_8_0/migrator_from_11_7_0_to_11_8_0_part_4.py +0 -0
  118. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_11_7_0_to_11_8_0/migrator_from_11_7_0_to_11_8_0_part_5.py +0 -0
  119. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_11_8_0_to_11_9_0/__init__.py +0 -0
  120. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_11_8_0_to_11_9_0/migrator_from_11_8_0_to_11_9_0_part_1.py +0 -0
  121. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_11_8_0_to_11_9_0/migrator_from_11_8_0_to_11_9_0_part_2.py +0 -0
  122. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_11_9_1_to_11_10_0/__init__.py +0 -0
  123. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_11_9_1_to_11_10_0/migrator_from_11_9_1_to_11_10_0_part_1.py +0 -0
  124. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_11_9_1_to_11_10_0/migrator_from_11_9_1_to_11_10_0_part_2.py +0 -0
  125. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/migrators/partials/migrator_from_11_9_1_to_11_10_0/migrator_from_11_9_1_to_11_10_0_part_3.py +0 -0
  126. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/nmdc_data.py +0 -0
  127. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/nmdc_schema_validation_plugin.py +0 -0
  128. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/nmdc_version.py +0 -0
  129. {nmdc_schema-11.15.0 → nmdc_schema-11.16.0}/nmdc_schema/validate_nmdc_json.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nmdc_schema
3
- Version: 11.15.0
3
+ Version: 11.16.0
4
4
  Summary: Schema resources for the National Microbiome Data Collaborative (NMDC)
5
5
  License: MIT
6
6
  License-File: LICENSE
@@ -27,6 +27,8 @@ Requires-Dist: jsonasobj2 (>=1,<2)
27
27
  Requires-Dist: jsonschema (>=4,<5)
28
28
  Requires-Dist: linkml (>=1.9.6,<2.0.0)
29
29
  Requires-Dist: linkml-runtime (>=1.9.5,<2.0.0)
30
+ Requires-Dist: pyasn1 (>=0.6.2)
31
+ Requires-Dist: pymdown-extensions (>=10.16.1)
30
32
  Requires-Dist: pymongo (>=4.7.2,<5.0.0)
31
33
  Requires-Dist: python-dotenv
32
34
  Requires-Dist: pyyaml (>=6,<7)
@@ -0,0 +1,12 @@
1
+ from nmdc_schema.migrators.migrator_base import MigratorBase
2
+
3
+
4
+ class Migrator(MigratorBase):
5
+ r"""Migrates a database between two schemas."""
6
+
7
+ _from_version = "11.14.0"
8
+ _to_version = "11.15.1"
9
+
10
+ def upgrade(self, commit_changes: bool = False) -> None:
11
+ r"""No upgrade needed."""
12
+ pass
@@ -0,0 +1,28 @@
1
+ from nmdc_schema.migrators.migrator_base import MigratorBase
2
+
3
+
4
+ class Migrator(MigratorBase):
5
+ r"""Migrates a database between two schemas."""
6
+
7
+ _from_version = "11.15.1"
8
+ _to_version = "11.16.0"
9
+
10
+ def upgrade(self, commit_changes: bool = False) -> None:
11
+ r"""Migrates the database from conforming to the original schema, to conforming to the new schema."""
12
+
13
+ self.adapter.process_each_document("workflow_execution_set", [self.make_uses_calibration_multivalued])
14
+
15
+ def make_uses_calibration_multivalued(self, workflow_execution: dict) -> dict:
16
+ r"""
17
+ If a WorkflowExecution record in the workflow_execution_set has a 'uses_calibration' field, convert it to a list containing the original value.
18
+
19
+ >>> m = Migrator()
20
+ >>> m.make_uses_calibration_multivalued({'id': 123}) # no `extraction_target` field
21
+ {'id': 123}
22
+ >>> m.make_uses_calibration_multivalued({'id': 123, 'uses_calibration': 'nmdc:calib-13-tester'}) # test: casts it as a list value
23
+ {'id': 123, 'uses_calibration': ['nmdc:calib-13-tester']}
24
+ """
25
+
26
+ if workflow_execution.get("uses_calibration") is not None:
27
+ workflow_execution["uses_calibration"] = [workflow_execution["uses_calibration"]]
28
+ return workflow_execution
@@ -1,5 +1,5 @@
1
1
  # Auto generated from nmdc.yaml by pythongen.py version: 0.0.1
2
- # Generation date: 2026-01-15T00:37:30
2
+ # Generation date: 2026-02-05T23:25:00
3
3
  # Schema: NMDC
4
4
  #
5
5
  # id: https://w3id.org/nmdc/nmdc
@@ -60,7 +60,7 @@ from linkml_runtime.linkml_model.types import Boolean, Decimal, Float, Integer,
60
60
  from linkml_runtime.utils.metamodelcore import Bool, Decimal, URIorCURIE
61
61
 
62
62
  metamodel_version = "1.7.0"
63
- version = "11.15.0"
63
+ version = "11.16.0"
64
64
 
65
65
  # Namespaces
66
66
  BFO = CurieNamespace('BFO', 'http://purl.obolibrary.org/obo/BFO_')
@@ -6231,7 +6231,7 @@ class MetabolomicsAnalysis(WorkflowExecution):
6231
6231
  processing_institution: Union[str, "ProcessingInstitutionEnum"] = None
6232
6232
  metabolomics_analysis_category: Union[str, "MetabolomicsAnalysisCategoryEnum"] = None
6233
6233
  has_metabolite_identifications: Optional[Union[Union[dict, MetaboliteIdentification], list[Union[dict, MetaboliteIdentification]]]] = empty_list()
6234
- uses_calibration: Optional[Union[str, CalibrationInformationId]] = None
6234
+ uses_calibration: Optional[Union[Union[str, CalibrationInformationId], list[Union[str, CalibrationInformationId]]]] = empty_list()
6235
6235
  was_informed_by: Optional[Union[Union[str, MassSpectrometryId], list[Union[str, MassSpectrometryId]]]] = empty_list()
6236
6236
  superseded_by: Optional[Union[str, MetabolomicsAnalysisId]] = None
6237
6237
 
@@ -6250,8 +6250,9 @@ class MetabolomicsAnalysis(WorkflowExecution):
6250
6250
  self.has_metabolite_identifications = [self.has_metabolite_identifications] if self.has_metabolite_identifications is not None else []
6251
6251
  self.has_metabolite_identifications = [v if isinstance(v, MetaboliteIdentification) else MetaboliteIdentification(**as_dict(v)) for v in self.has_metabolite_identifications]
6252
6252
 
6253
- if self.uses_calibration is not None and not isinstance(self.uses_calibration, CalibrationInformationId):
6254
- self.uses_calibration = CalibrationInformationId(self.uses_calibration)
6253
+ if not isinstance(self.uses_calibration, list):
6254
+ self.uses_calibration = [self.uses_calibration] if self.uses_calibration is not None else []
6255
+ self.uses_calibration = [v if isinstance(v, CalibrationInformationId) else CalibrationInformationId(v) for v in self.uses_calibration]
6255
6256
 
6256
6257
  if not isinstance(self.was_informed_by, list):
6257
6258
  self.was_informed_by = [self.was_informed_by] if self.was_informed_by is not None else []
@@ -6281,7 +6282,7 @@ class NomAnalysis(WorkflowExecution):
6281
6282
  started_at_time: str = None
6282
6283
  has_input: Union[Union[str, DataObjectId], list[Union[str, DataObjectId]]] = None
6283
6284
  processing_institution: Union[str, "ProcessingInstitutionEnum"] = None
6284
- uses_calibration: Optional[Union[str, CalibrationInformationId]] = None
6285
+ uses_calibration: Optional[Union[Union[str, CalibrationInformationId], list[Union[str, CalibrationInformationId]]]] = empty_list()
6285
6286
  was_informed_by: Optional[Union[Union[str, MassSpectrometryId], list[Union[str, MassSpectrometryId]]]] = empty_list()
6286
6287
  superseded_by: Optional[Union[str, NomAnalysisId]] = None
6287
6288
 
@@ -6291,8 +6292,9 @@ class NomAnalysis(WorkflowExecution):
6291
6292
  if not isinstance(self.id, NomAnalysisId):
6292
6293
  self.id = NomAnalysisId(self.id)
6293
6294
 
6294
- if self.uses_calibration is not None and not isinstance(self.uses_calibration, CalibrationInformationId):
6295
- self.uses_calibration = CalibrationInformationId(self.uses_calibration)
6295
+ if not isinstance(self.uses_calibration, list):
6296
+ self.uses_calibration = [self.uses_calibration] if self.uses_calibration is not None else []
6297
+ self.uses_calibration = [v if isinstance(v, CalibrationInformationId) else CalibrationInformationId(v) for v in self.uses_calibration]
6296
6298
 
6297
6299
  if not isinstance(self.was_informed_by, list):
6298
6300
  self.was_informed_by = [self.was_informed_by] if self.was_informed_by is not None else []
@@ -6531,6 +6533,7 @@ class CalibrationStandardEnum(EnumDefinitionImpl):
6531
6533
 
6532
6534
  fames = PermissibleValue(text="fames")
6533
6535
  alkanes = PermissibleValue(text="alkanes")
6536
+ srfa = PermissibleValue(text="srfa")
6534
6537
 
6535
6538
  _defn = EnumDefinition(
6536
6539
  name="CalibrationStandardEnum",
@@ -10450,7 +10453,7 @@ slots.generates_calibration = Slot(uri=NMDC.generates_calibration, name="generat
10450
10453
  model_uri=NMDC.generates_calibration, domain=None, range=Optional[Union[str, CalibrationInformationId]])
10451
10454
 
10452
10455
  slots.uses_calibration = Slot(uri=NMDC.uses_calibration, name="uses_calibration", curie=NMDC.curie('uses_calibration'),
10453
- model_uri=NMDC.uses_calibration, domain=None, range=Optional[Union[str, CalibrationInformationId]])
10456
+ model_uri=NMDC.uses_calibration, domain=None, range=Optional[Union[Union[str, CalibrationInformationId], list[Union[str, CalibrationInformationId]]]])
10454
10457
 
10455
10458
  slots.calibration_object = Slot(uri=NMDC.calibration_object, name="calibration_object", curie=NMDC.curie('calibration_object'),
10456
10459
  model_uri=NMDC.calibration_object, domain=None, range=Optional[Union[str, DataObjectId]])
@@ -1584,7 +1584,7 @@
1584
1584
  "type": "null"
1585
1585
  }
1586
1586
  ],
1587
- "description": "The number of times the sample location is cleaned. Frequency of cleaning might be on a Daily basis, Weekly, Monthly, Quarterly or Annually"
1587
+ "description": "The number of times the sample location is cleaned per day."
1588
1588
  },
1589
1589
  "freq_cook": {
1590
1590
  "anyOf": [
@@ -5222,7 +5222,8 @@
5222
5222
  "description": "",
5223
5223
  "enum": [
5224
5224
  "fames",
5225
- "alkanes"
5225
+ "alkanes",
5226
+ "srfa"
5226
5227
  ],
5227
5228
  "title": "CalibrationStandardEnum",
5228
5229
  "type": "string"
@@ -9787,8 +9788,11 @@
9787
9788
  },
9788
9789
  "uses_calibration": {
9789
9790
  "description": "calibration information is used by a process",
9791
+ "items": {
9792
+ "type": "string"
9793
+ },
9790
9794
  "type": [
9791
- "string",
9795
+ "array",
9792
9796
  "null"
9793
9797
  ]
9794
9798
  },
@@ -11928,8 +11932,11 @@
11928
11932
  },
11929
11933
  "uses_calibration": {
11930
11934
  "description": "calibration information is used by a process",
11935
+ "items": {
11936
+ "type": "string"
11937
+ },
11931
11938
  "type": [
11932
- "string",
11939
+ "array",
11933
11940
  "null"
11934
11941
  ]
11935
11942
  },
@@ -15466,5 +15473,5 @@
15466
15473
  },
15467
15474
  "title": "NMDC",
15468
15475
  "type": "object",
15469
- "version": "11.15.0"
15476
+ "version": "11.16.0"
15470
15477
  }
@@ -6,7 +6,7 @@
6
6
  "not importing any MIxS terms where the relationship between the name (SCN) and the id isn't 1:1"
7
7
  ],
8
8
  "id": "https://w3id.org/nmdc/nmdc",
9
- "version": "11.15.0",
9
+ "version": "11.16.0",
10
10
  "license": "https://creativecommons.org/publicdomain/zero/1.0/",
11
11
  "prefixes": {
12
12
  "BFO": {
@@ -752,6 +752,18 @@
752
752
  "aliases": [
753
753
  "Alkanes"
754
754
  ]
755
+ },
756
+ "srfa": {
757
+ "text": "srfa",
758
+ "comments": [
759
+ "Reference standard Suwannee River Fulvic Acid Standard II (2S101F) from International Humic Substances Society"
760
+ ],
761
+ "see_also": [
762
+ "https://humic-substances.org/source-materials-for-ihss-samples/"
763
+ ],
764
+ "aliases": [
765
+ "Suwannee River fulvic acid"
766
+ ]
755
767
  }
756
768
  }
757
769
  },
@@ -7480,7 +7492,7 @@
7480
7492
  "slot_uri": "MIXS:0000341",
7481
7493
  "range": "string",
7482
7494
  "multivalued": false,
7483
- "pattern": "^^PMID:\\d+$|^doi:10.\\d{2,9}/.*$|^https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*)$$",
7495
+ "pattern": "^PMID:\\d+|doi:10.\\d{2,9}/.*|https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*)$",
7484
7496
  "structured_pattern": {
7485
7497
  "syntax": "^{PMID}|{DOI}|{URL}$",
7486
7498
  "interpolated": true
@@ -7539,6 +7551,7 @@
7539
7551
  ],
7540
7552
  "from_schema": "https://w3id.org/nmdc/nmdc",
7541
7553
  "range": "CalibrationInformation",
7554
+ "multivalued": true,
7542
7555
  "pattern": "^(nmdc):calib-([0-9][a-z]{0,6}[0-9])-([A-Za-z0-9]{1,})$",
7543
7556
  "structured_pattern": {
7544
7557
  "syntax": "{id_nmdc_prefix}:calib-{id_shoulder}-{id_blade}$",
@@ -9957,7 +9970,7 @@
9957
9970
  "start"
9958
9971
  ],
9959
9972
  "slot_uri": "MIXS:0001009",
9960
- "pattern": "^(Water Injection|Dump Flood|Gas Injection|Wag Immiscible Injection|Polymer Addition|Surfactant Addition|Not Applicable|other);(\\d{4})(-(0[1-9]|1[0-2])(-(0[1-9]|[12]\\d|3[01])(T([01]\\d|2[0-3]):([0-5]\\d):([0-5]\\d)(\\.\\d+)?(Z|([+-][01]\\d:[0-5]\\d))?)?)?)?$$",
9973
+ "pattern": "^(Water Injection|Dump Flood|Gas Injection|Wag Immiscible Injection|Polymer Addition|Surfactant Addition|Not Applicable|other);(\\d{4})(-(0[1-9]|1[0-2])(-(0[1-9]|[12]\\d|3[01])(T([01]\\d|2[0-3]):([0-5]\\d)(:([0-5]\\d))?(\\.\\d+)?(Z|([+-][01]\\d:[0-5]\\d))?)?)?)?$",
9961
9974
  "structured_pattern": {
9962
9975
  "syntax": "^({add_recov_methods});{date_time_stamp}$",
9963
9976
  "interpolated": true,
@@ -10042,7 +10055,7 @@
10042
10055
  "range": "TextValue",
10043
10056
  "multivalued": true,
10044
10057
  "inlined_as_list": true,
10045
- "pattern": "^.*;[-+]?[0-9]*\\.?[0-9]+ ([^\\s-]{1,2}|[^\\s-]+.+[^\\s-]+);(\\d{4})(-(0[1-9]|1[0-2])(-(0[1-9]|[12]\\d|3[01])(T([01]\\d|2[0-3]):([0-5]\\d):([0-5]\\d)(\\.\\d+)?(Z|([+-][01]\\d:[0-5]\\d))?)?)?)?$$",
10058
+ "pattern": "^.*;[-+]?[0-9]*\\.?[0-9]+ ([^\\s-]{1,2}|[^\\s-]+.+[^\\s-]+);(\\d{4})(-(0[1-9]|1[0-2])(-(0[1-9]|[12]\\d|3[01])(T([01]\\d|2[0-3]):([0-5]\\d)(:([0-5]\\d))?(\\.\\d+)?(Z|([+-][01]\\d:[0-5]\\d))?)?)?)?$",
10046
10059
  "structured_pattern": {
10047
10060
  "syntax": "^{agrochemical_name};{amount} {unit};{date_time_stamp}$",
10048
10061
  "interpolated": true,
@@ -10183,9 +10196,9 @@
10183
10196
  ],
10184
10197
  "slot_uri": "MIXS:0000324",
10185
10198
  "range": "string",
10186
- "pattern": "^^PMID:\\d+$|^doi:10.\\d{2,9}/.*$|^https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*)$$",
10199
+ "pattern": "^(PMID:\\d+|doi:10.\\d{2,9}/.*|https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*))$",
10187
10200
  "structured_pattern": {
10188
- "syntax": "^{PMID}|{DOI}|{URL}$",
10201
+ "syntax": "^({PMID}|{DOI}|{URL})$",
10189
10202
  "interpolated": true,
10190
10203
  "partial_match": true
10191
10204
  }
@@ -11833,9 +11846,9 @@
11833
11846
  ],
11834
11847
  "slot_uri": "MIXS:0001041",
11835
11848
  "range": "TextValue",
11836
- "pattern": "^.*|^PMID:\\d+$|^doi:10.\\d{2,9}/.*$|^https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*)$$",
11849
+ "pattern": "^(.*|PMID:\\d+|doi:10.\\d{2,9}/.*|https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*))$",
11837
11850
  "structured_pattern": {
11838
- "syntax": "^{text}|{PMID}|{DOI}|{URL}$",
11851
+ "syntax": "^({text}|{PMID}|{DOI}|{URL})$",
11839
11852
  "interpolated": true
11840
11853
  }
11841
11854
  },
@@ -11890,9 +11903,9 @@
11890
11903
  ],
11891
11904
  "slot_uri": "MIXS:0000314",
11892
11905
  "range": "string",
11893
- "pattern": "^^PMID:\\d+$|^doi:10.\\d{2,9}/.*$|^https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*)$$",
11906
+ "pattern": "^(PMID:\\d+|doi:10.\\d{2,9}/.*|https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*))$",
11894
11907
  "structured_pattern": {
11895
- "syntax": "^{PMID}|{DOI}|{URL}$",
11908
+ "syntax": "^({PMID}|{DOI}|{URL})$",
11896
11909
  "interpolated": true,
11897
11910
  "partial_match": true
11898
11911
  }
@@ -13303,11 +13316,11 @@
13303
13316
  "value": "1/d"
13304
13317
  }
13305
13318
  },
13306
- "description": "The number of times the sample location is cleaned. Frequency of cleaning might be on a Daily basis, Weekly, Monthly, Quarterly or Annually",
13319
+ "description": "The number of times the sample location is cleaned per day.",
13307
13320
  "title": "frequency of cleaning",
13308
13321
  "examples": [
13309
13322
  {
13310
- "value": "Daily"
13323
+ "value": "2 1/d"
13311
13324
  }
13312
13325
  ],
13313
13326
  "from_schema": "https://w3id.org/nmdc/nmdc",
@@ -13446,9 +13459,9 @@
13446
13459
  ],
13447
13460
  "from_schema": "https://w3id.org/nmdc/nmdc",
13448
13461
  "slot_uri": "MIXS:0000859",
13449
- "pattern": "^^PMID:\\d+$|^doi:10.\\d{2,9}/.*$|^https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*)$$",
13462
+ "pattern": "^(PMID:\\d+|doi:10.\\d{2,9}/.*|https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*))$",
13450
13463
  "structured_pattern": {
13451
- "syntax": "^{PMID}|{DOI}|{URL}$",
13464
+ "syntax": "^({PMID}|{DOI}|{URL})$",
13452
13465
  "interpolated": true
13453
13466
  }
13454
13467
  },
@@ -13886,9 +13899,9 @@
13886
13899
  "slot_uri": "MIXS:0000343",
13887
13900
  "range": "string",
13888
13901
  "inlined_as_list": true,
13889
- "pattern": "^^PMID:\\d+$|^doi:10.\\d{2,9}/.*$|^https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*)$$",
13902
+ "pattern": "^(PMID:\\d+|doi:10.\\d{2,9}/.*|https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*))$",
13890
13903
  "structured_pattern": {
13891
- "syntax": "^{PMID}|{DOI}|{URL}$",
13904
+ "syntax": "^({PMID}|{DOI}|{URL})$",
13892
13905
  "interpolated": true,
13893
13906
  "partial_match": true
13894
13907
  }
@@ -13955,9 +13968,9 @@
13955
13968
  ],
13956
13969
  "slot_uri": "MIXS:0000321",
13957
13970
  "range": "string",
13958
- "pattern": "^^PMID:\\d+$|^doi:10.\\d{2,9}/.*$|^https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*)$$",
13971
+ "pattern": "^(PMID:\\d+|doi:10.\\d{2,9}/.*|https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*))$",
13959
13972
  "structured_pattern": {
13960
- "syntax": "^{PMID}|{DOI}|{URL}$",
13973
+ "syntax": "^({PMID}|{DOI}|{URL})$",
13961
13974
  "interpolated": true,
13962
13975
  "partial_match": true
13963
13976
  }
@@ -14221,9 +14234,9 @@
14221
14234
  ],
14222
14235
  "slot_uri": "MIXS:0000871",
14223
14236
  "range": "TextValue",
14224
- "pattern": "^^PMID:\\d+$|^doi:10.\\d{2,9}/.*$|^https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*)$|.*$",
14237
+ "pattern": "^(PMID:\\d+|doi:10.\\d{2,9}/.*|https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*)|.*)$",
14225
14238
  "structured_pattern": {
14226
- "syntax": "^{PMID}|{DOI}|{URL}|{text}$",
14239
+ "syntax": "^({PMID}|{DOI}|{URL}|{text})$",
14227
14240
  "interpolated": true,
14228
14241
  "partial_match": true
14229
14242
  }
@@ -14931,9 +14944,9 @@
14931
14944
  ],
14932
14945
  "slot_uri": "MIXS:0000340",
14933
14946
  "range": "TextValue",
14934
- "pattern": "^^PMID:\\d+$|^doi:10.\\d{2,9}/.*$|^https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*)$$",
14947
+ "pattern": "^(PMID:\\d+|doi:10.\\d{2,9}/.*|https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*))$",
14935
14948
  "structured_pattern": {
14936
- "syntax": "^{PMID}|{DOI}|{URL}$",
14949
+ "syntax": "^({PMID}|{DOI}|{URL})$",
14937
14950
  "interpolated": true,
14938
14951
  "partial_match": true
14939
14952
  }
@@ -14968,9 +14981,9 @@
14968
14981
  ],
14969
14982
  "slot_uri": "MIXS:0000328",
14970
14983
  "range": "TextValue",
14971
- "pattern": "^^PMID:\\d+$|^doi:10.\\d{2,9}/.*$|^https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*)$$",
14984
+ "pattern": "^(PMID:\\d+|doi:10.\\d{2,9}/.*|https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*))$",
14972
14985
  "structured_pattern": {
14973
- "syntax": "^{PMID}|{DOI}|{URL}$",
14986
+ "syntax": "^({PMID}|{DOI}|{URL})$",
14974
14987
  "interpolated": true,
14975
14988
  "partial_match": true
14976
14989
  }
@@ -15020,9 +15033,9 @@
15020
15033
  ],
15021
15034
  "slot_uri": "MIXS:0000331",
15022
15035
  "range": "string",
15023
- "pattern": "^^PMID:\\d+$|^doi:10.\\d{2,9}/.*$|^https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*)$$",
15036
+ "pattern": "^(PMID:\\d+|doi:10.\\d{2,9}/.*|https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*))$",
15024
15037
  "structured_pattern": {
15025
- "syntax": "^{PMID}|{DOI}|{URL}$",
15038
+ "syntax": "^({PMID}|{DOI}|{URL})$",
15026
15039
  "interpolated": true,
15027
15040
  "partial_match": true
15028
15041
  }
@@ -15472,9 +15485,9 @@
15472
15485
  "from_schema": "https://w3id.org/nmdc/nmdc",
15473
15486
  "slot_uri": "MIXS:0000038",
15474
15487
  "range": "TextValue",
15475
- "pattern": "^^PMID:\\d+$|^doi:10.\\d{2,9}/.*$|^https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*)$$",
15488
+ "pattern": "^(PMID:\\d+|doi:10.\\d{2,9}/.*|https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*))$",
15476
15489
  "structured_pattern": {
15477
- "syntax": "^{PMID}|{DOI}|{URL}$",
15490
+ "syntax": "^({PMID}|{DOI}|{URL})$",
15478
15491
  "interpolated": true,
15479
15492
  "partial_match": true
15480
15493
  }
@@ -15491,9 +15504,9 @@
15491
15504
  "from_schema": "https://w3id.org/nmdc/nmdc",
15492
15505
  "slot_uri": "MIXS:0000037",
15493
15506
  "range": "TextValue",
15494
- "pattern": "^^PMID:\\d+$|^doi:10.\\d{2,9}/.*$|^https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*)$$",
15507
+ "pattern": "^(PMID:\\d+|doi:10.\\d{2,9}/.*|https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*))$",
15495
15508
  "structured_pattern": {
15496
- "syntax": "^{PMID}|{DOI}|{URL}$",
15509
+ "syntax": "^({PMID}|{DOI}|{URL})$",
15497
15510
  "interpolated": true,
15498
15511
  "partial_match": true
15499
15512
  }
@@ -16562,9 +16575,9 @@
16562
16575
  ],
16563
16576
  "slot_uri": "MIXS:0000316",
16564
16577
  "range": "string",
16565
- "pattern": "^^PMID:\\d+$|^doi:10.\\d{2,9}/.*$|^https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*)$$",
16578
+ "pattern": "^(PMID:\\d+|doi:10.\\d{2,9}/.*|https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*))$",
16566
16579
  "structured_pattern": {
16567
- "syntax": "^{PMID}|{DOI}|{URL}$",
16580
+ "syntax": "^({PMID}|{DOI}|{URL})$",
16568
16581
  "interpolated": true,
16569
16582
  "partial_match": true
16570
16583
  }
@@ -16581,7 +16594,7 @@
16581
16594
  "title": "history/previous land use",
16582
16595
  "examples": [
16583
16596
  {
16584
- "value": "fallow; 2018-05-11:T14:30Z"
16597
+ "value": "fallow;2018-05-11T14:30Z"
16585
16598
  }
16586
16599
  ],
16587
16600
  "from_schema": "https://w3id.org/nmdc/nmdc",
@@ -17301,9 +17314,9 @@
17301
17314
  ],
17302
17315
  "slot_uri": "MIXS:0001061",
17303
17316
  "range": "TextValue",
17304
- "pattern": "^^PMID:\\d+$|^doi:10.\\d{2,9}/.*$|^https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*)$|.*$",
17317
+ "pattern": "^(PMID:\\d+|doi:10.\\d{2,9}/.*|https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*)|.*)$",
17305
17318
  "structured_pattern": {
17306
- "syntax": "^{PMID}|{DOI}|{URL}|{text}$",
17319
+ "syntax": "^({PMID}|{DOI}|{URL}|{text})$",
17307
17320
  "interpolated": true,
17308
17321
  "partial_match": true
17309
17322
  }
@@ -19012,11 +19025,7 @@
19012
19025
  "storage"
19013
19026
  ],
19014
19027
  "slot_uri": "MIXS:0000327",
19015
- "range": "TextValue",
19016
- "pattern": "^([^\\s-]{1,2}|[^\\s-]+.+[^\\s-]+);P(?:(?:\\d+D|\\d+M(?:\\d+D)?|\\d+Y(?:\\d+M(?:\\d+D)?)?)(?:T(?:\\d+H(?:\\d+M(?:\\d+S)?)?|\\d+M(?:\\d+S)?|\\d+S))?|T(?:\\d+H(?:\\d+M(?:\\d+S)?)?|\\d+M(?:\\d+S)?|\\d+S)|\\d+W)$",
19017
- "structured_pattern": {
19018
- "syntax": "^{storage_condition_type};{duration}$"
19019
- }
19028
+ "range": "TextValue"
19020
19029
  },
19021
19030
  "substructure_type": {
19022
19031
  "name": "substructure_type",
@@ -19531,9 +19540,9 @@
19531
19540
  ],
19532
19541
  "slot_uri": "MIXS:0001070",
19533
19542
  "range": "TextValue",
19534
- "pattern": "^^PMID:\\d+$|^doi:10.\\d{2,9}/.*$|^https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*)$|.*$",
19543
+ "pattern": "^(PMID:\\d+|doi:10.\\d{2,9}/.*|https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*)|.*)$",
19535
19544
  "structured_pattern": {
19536
- "syntax": "^{PMID}|{DOI}|{URL}|{text}$",
19545
+ "syntax": "^({PMID}|{DOI}|{URL}|{text})$",
19537
19546
  "interpolated": true,
19538
19547
  "partial_match": true
19539
19548
  }
@@ -19769,9 +19778,9 @@
19769
19778
  ],
19770
19779
  "slot_uri": "MIXS:0000338",
19771
19780
  "range": "string",
19772
- "pattern": "^^PMID:\\d+$|^doi:10.\\d{2,9}/.*$|^https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*)$$",
19781
+ "pattern": "^(PMID:\\d+|doi:10.\\d{2,9}/.*|https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*))$",
19773
19782
  "structured_pattern": {
19774
- "syntax": "^{PMID}|{DOI}|{URL}$",
19783
+ "syntax": "^({PMID}|{DOI}|{URL})$",
19775
19784
  "interpolated": true,
19776
19785
  "partial_match": true
19777
19786
  }
@@ -19824,9 +19833,9 @@
19824
19833
  ],
19825
19834
  "slot_uri": "MIXS:0000337",
19826
19835
  "range": "string",
19827
- "pattern": "^^PMID:\\d+$|^doi:10.\\d{2,9}/.*$|^https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*)$$",
19836
+ "pattern": "^(PMID:\\d+|doi:10.\\d{2,9}/.*|https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*))$",
19828
19837
  "structured_pattern": {
19829
- "syntax": "^{PMID}|{DOI}|{URL}$",
19838
+ "syntax": "^({PMID}|{DOI}|{URL})$",
19830
19839
  "interpolated": true,
19831
19840
  "partial_match": true
19832
19841
  }
@@ -25762,15 +25771,17 @@
25762
25771
  "name": "heavy_metals_meth",
25763
25772
  "title": "heavy metals method/ extreme unusual properties",
25764
25773
  "comments": [
25765
- "Required when heavy metals are provided",
25766
- "If different methods are used for multiple metals, indicate the metal and method. Separate metals by ;"
25774
+ "Required when heavy metals are provided"
25767
25775
  ],
25768
25776
  "examples": [
25769
25777
  {
25770
25778
  "value": "https://doi.org/10.3390/ijms9040434"
25771
25779
  },
25772
25780
  {
25773
- "value": "mercury https://doi.org/10.1007/BF01056090; chromium https://doi.org/10.1007/s00216-006-0322-8"
25781
+ "value": "doi:10.1007/BF01056090"
25782
+ },
25783
+ {
25784
+ "value": "https://doi.org/10.1007/s00216-006-0322-8"
25774
25785
  }
25775
25786
  ],
25776
25787
  "multivalued": true
@@ -26688,7 +26699,7 @@
26688
26699
  },
26689
26700
  "date_time_stamp": {
26690
26701
  "setting_key": "date_time_stamp",
26691
- "setting_value": "(\\d{4})(-(0[1-9]|1[0-2])(-(0[1-9]|[12]\\d|3[01])(T([01]\\d|2[0-3]):([0-5]\\d):([0-5]\\d)(\\.\\d+)?(Z|([+-][01]\\d:[0-5]\\d))?)?)?)?$"
26702
+ "setting_value": "(\\d{4})(-(0[1-9]|1[0-2])(-(0[1-9]|[12]\\d|3[01])(T([01]\\d|2[0-3]):([0-5]\\d)(:([0-5]\\d))?(\\.\\d+)?(Z|([+-][01]\\d:[0-5]\\d))?)?)?)?"
26692
26703
  },
26693
26704
  "dna_bases": {
26694
26705
  "setting_key": "dna_bases",
@@ -26696,7 +26707,7 @@
26696
26707
  },
26697
26708
  "DOI": {
26698
26709
  "setting_key": "DOI",
26699
- "setting_value": "^doi:10.\\d{2,9}/.*$"
26710
+ "setting_value": "doi:10.\\d{2,9}/.*"
26700
26711
  },
26701
26712
  "duration": {
26702
26713
  "setting_key": "duration",
@@ -26736,7 +26747,7 @@
26736
26747
  },
26737
26748
  "PMID": {
26738
26749
  "setting_key": "PMID",
26739
- "setting_value": "^PMID:\\d+$"
26750
+ "setting_value": "PMID:\\d+"
26740
26751
  },
26741
26752
  "primer_adapter_codes": {
26742
26753
  "setting_key": "primer_adapter_codes",
@@ -26782,13 +26793,17 @@
26782
26793
  "setting_key": "text",
26783
26794
  "setting_value": ".*"
26784
26795
  },
26796
+ "timestamp": {
26797
+ "setting_key": "timestamp",
26798
+ "setting_value": "(\\d{4})(-(0[1-9]|1[0-2])(-(0[1-9]|[12]\\d|3[01])(T([01]\\d|2[0-3]):([0-5]\\d)(:([0-5]\\d))?(\\.\\d+)?(Z|([+-][01]\\d:[0-5]\\d))?)?)?)?"
26799
+ },
26785
26800
  "unit": {
26786
26801
  "setting_key": "unit",
26787
26802
  "setting_value": "([^\\s-]{1,2}|[^\\s-]+.+[^\\s-]+)"
26788
26803
  },
26789
26804
  "URL": {
26790
26805
  "setting_key": "URL",
26791
- "setting_value": "^https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*)$"
26806
+ "setting_value": "https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*)"
26792
26807
  },
26793
26808
  "version": {
26794
26809
  "setting_key": "version",