Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Moved outstanding exp-func-imp PR into this PR with latest reorg #215

Closed
wants to merge 21 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
8d153e7
Moved outstanding exp-func-imp PR into this PR with latest reorg of f…
larrybabb Nov 7, 2024
b5ea9f6
updates from nov.07.2024 gks-tech sync with MB/AW/LB
larrybabb Nov 7, 2024
6d65bfa
removed notes file
larrybabb Nov 7, 2024
ff1834b
Completed converting pre-existing AVE test cases with new ExpVarFuncI…
larrybabb Nov 8, 2024
85acefb
reverted premature`trial use` maturity values to `draft`
larrybabb Nov 8, 2024
19f0cdb
Rename pathogenicity-evidenceline-profile-source.yaml to pathogenicit…
mbrush Nov 8, 2024
a793e50
Update experimental-functional-impact-study-statement-profile-source.…
mbrush Nov 8, 2024
7b5072c
Update pathogenicity-evidence-line-profile-source.yaml
mbrush Nov 8, 2024
0bc8f82
rebuild rst
ahwagner Nov 9, 2024
e98bda5
resolves conflicting definition of evidence line property
ahwagner Nov 9, 2024
8a99ff4
update build with newer MSP
ahwagner Nov 9, 2024
cd79c0f
update fixtures to new mappable concept
ahwagner Nov 9, 2024
6e170b3
add support for namespaced tests
ahwagner Nov 10, 2024
44206a5
Merge branch '1.x' into func-impact-for-review
ahwagner Nov 10, 2024
e2f87ea
fix documentation refs for statement profiles
ahwagner Nov 10, 2024
c8d15c9
reorg documentation for base and community profiles
ahwagner Nov 10, 2024
89d4e5c
draft solution to ga4gh/gks-metaschema#35
ahwagner Nov 10, 2024
62a9647
Replace Stmt SPOQ attribs with Proposition.
larrybabb Nov 12, 2024
af94fe3
add back lost proposal from AHW on community docs
larrybabb Nov 12, 2024
6fcbfef
draft changes to acmg-2015 func-imp-evid-line
larrybabb Nov 12, 2024
c7a1ef1
clean schema folders
larrybabb Nov 12, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ pytest
sphinx ~= 7.2
sphinx-rtd-theme ~= 1.3
pyyaml
ga4gh.gks.metaschema==0.3.0b14
ga4gh.gks.metaschema==0.3.0b16
jsonschema
referencing
jupyterlab
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
.. _standard-profiles:
.. _base-profiles:

Standard Profiles
!!!!!!!!!!!!!!!!!
Base Profiles
!!!!!!!!!!!!!

``PREREQUISITES:`` :ref:`Introduction <introduction>`, :ref:`Core Information Model <gks-core>`

**VA Standard Profiles** are the end product of the VA Modeling Framework, providing standard models that will be used by the GA4GH community to store and exchange variant data. They are built as specializations of the :ref:`Statement<Statement>`, :ref:`Study Result<StudyResult>`, or :ref:`EvidenceLine<EvidenceLine>` classes in the Core-IM, each supporting a specific type of knowledge about genetic variation.
**VA Base Profiles** are the end product of the VA Modeling Framework for exchanging variant knowledge. They are built as specializations of the :ref:`Statement<Statement>`, :ref:`Study Result<StudyResult>`, or :ref:`EvidenceLine<EvidenceLine>` classes in the Core-IM, each supporting a specific type of knowledge about genetic variation.

* **Statement Profiles** are used to represent discrete assertions of general **knowledge** about a variant (e.g. a pathogenicity classification).

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,32 +25,27 @@ Below are the **Standard Statement Profiles** currently defined as part of the V
Variant Pathogenicity Statement
###############################

An example of data structured using this Standard Profile can be found `here <https://va-ga4gh.readthedocs.io/en/stable/examples/variant-pathogenicity-statement.html>`_.

.. include:: ../../../schema/profiles/def/VariantPathogenicityStatement.rst

.. include:: ../def/va-spec/VariantPathogenicityStatement.rst

Variant Oncogenicity Study Statement
####################################

.. include:: ../../../schema/profiles/def/VariantOncogenicityStudyStatement.rst

.. include:: ../def/va-spec/VariantOncogenicityStudyStatement.rst

Variant Therapeutic Response Study Statement
#############################################

.. include:: ../../../schema/profiles/def/VariantTherapeuticResponseStudyStatement.rst
.. include:: ../def/va-spec/VariantTherapeuticResponseStudyStatement.rst

.. _variant-diagnostic-statement-profile:

Variant Diagnostic Study Statement
##################################

.. include:: ../../../schema/profiles/def/VariantDiagnosticStudyStatement.rst

.. include:: ../def/va-spec/VariantDiagnosticStudyStatement.rst

Variant Prognostic Study Statement
##################################

.. include:: ../../../schema/profiles/def/VariantPrognosticStudyStatement.rst
.. include:: ../def/va-spec/VariantPrognosticStudyStatement.rst

13 changes: 13 additions & 0 deletions docs/source/community-profiles/acmg-2015.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
.. _acmg-2015:

ACMG/AMP 2015 Community Profiles
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Below are the **ACMG/AMP 2015 Community Profiles**.

.. _acmg-2015-statement-profile:

Variant Pathogenicity Statement (ACMG 2015)
###########################################

.. include:: ../def/va-spec.acmg-2015/VariantPathogenicityStatement.rst
16 changes: 16 additions & 0 deletions docs/source/community-profiles/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
.. _community-profiles:

Community Profiles
!!!!!!!!!!!!!!!!!!

``PREREQUISITES:`` :ref:`Introduction <introduction>`, :ref:`Core Information Model <gks-core>`

**VA Community Profiles** are constrained specializations of :ref:`base-profiles`.

* **ACMG/AMP 2015 Profiles** are used to represent data from the ACMG 2015 variant pathogenicity guidelines.

.. toctree::
:maxdepth: 4
:titlesonly:

acmg-2015
1 change: 1 addition & 0 deletions docs/source/def/cat-vrs
1 change: 1 addition & 0 deletions docs/source/def/gks-core
1 change: 1 addition & 0 deletions docs/source/def/va-spec
1 change: 1 addition & 0 deletions docs/source/def/va-spec.acmg-2015
1 change: 1 addition & 0 deletions docs/source/def/vrs
7 changes: 4 additions & 3 deletions docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ Readers may wish to review this :ref:`annotated data example <variant-pathogenic
Resources to help implementers begin working with the VA-Spec.
* :ref:`Core Information Model (Core-IM) <gks-core>`
Detailed descriptions and implementation guidance for the classes and attributes in the foundational Core-IM.
* :ref:`Standard Profiles <standard-profiles>`
Detailed descriptions and implementation guidance for Statement and Study Result Profiles provided as standards for representing variant knowledge.
* :ref:`Base Profiles <base-profiles>`
Detailed descriptions and implementation guidance for Statement and Study Result Profiles for representing variant knowledge.
* :ref:`Profiling Methodology <profiling-methodology>`
Instructions and resources for creating or expanding Statement and Study Result Profiles through the SEPIO profiling process.
* :ref:`Modeling Foundations <modeling-foundations>`
Expand All @@ -40,7 +40,8 @@ If you have questions or feedback, please reach out to the VA Team on `Slack <ht
introduction
quick-start
core-information-model/index
standard-profiles/index
base-profiles/index
community-profiles/index
profiling-methodology
modeling-foundations
reference-implementation
Expand Down
16 changes: 12 additions & 4 deletions schema/Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
all: va-base
all: base-all acmg-2015-all

va-base:
clean: base-clean acmg-2015-clean

base-all:
(cd va-spec/base; make all)

clean:
(cd va-spec/base; make clean)
acmg-2015-all:
(cd va-spec/acmg-2015; make all)

base-clean:
(cd va-spec/base; make clean)

acmg-2015-clean:
(cd va-spec/acmg-2015; make clean)
44 changes: 44 additions & 0 deletions schema/va-spec/acmg-2015/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
.SECONDARY:
.DELETE_ON_ERROR:

BUILD_DIR := build
DEF_DIR := def
JSON_DIR := json
IMPORT_DIR := import

vpath %tag $(BUILD_DIR)
vpath %.classes $(BUILD_DIR)

SOURCES := $(wildcard *-source.yaml)
TAGS := $(SOURCES:-source.yaml=.tag)
IMPORTS := $(wildcard $(IMPORT_DIR)/*-source.yaml)

all: build-ordered ${TAGS} prune-tag

build-ordered: | $(BUILD_DIR)

$(BUILD_DIR):
mkdir $(BUILD_DIR)

%.tag: %.classes %.json-tag %.defs-tag
touch $(BUILD_DIR)/$@

%.classes: %-source.yaml
source2classes $< >${BUILD_DIR}/$@

%.json-tag: %-source.yaml ${IMPORTS}
source2splitjs $<
touch $(BUILD_DIR)/$@

%.defs-tag: %-source.yaml ${IMPORTS}
y2t $<
touch $(BUILD_DIR)/$@

prune-tag: ${TAGS}
$(MAKE) -f prune.mk
touch $(BUILD_DIR)/$@

clean:
rm $(BUILD_DIR)/*
rm $(DEF_DIR)/*
rm $(JSON_DIR)/*
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
.. warning:: This data class is at a **draft** maturity level and may change
significantly in future releases. Maturity levels are described in
the :ref:`maturity-model`.

**Computational Definition**

A Statement describing the role of a variant in causing an inherited condition.

**Profile Conditions**

This class adds the following conditions to the :ref:`variant-pathogenicity-evidence-line-profile`:

- `VariantPathogenicityStatement.classification` is additionally defined as
*The ACMG 2015 classification of the variant's pathogenicity*.
- `.classification.label` is constrained to values `pathogenic`, `likely pathogenic`,
`uncertain significance`, `likely benign`, and `benign`.
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
$schema: "https://json-schema.org/draft/2020-12/schema"
$id: "https://w3id.org/ga4gh/schema/va-spec/1.x/acmg-2015/pathogenicity-statement-profile-source.yaml"
title: ACMG 2015 Variant Pathogenicity Statement Standard Profile
strict: true

imports:
va-spec: ../base/pathogenicity-evidence-line-profile-source.yaml
cat-vrs: ../../cat-vrs/cat-vrs-source.yaml
vrs: ../../vrs/vrs-source.yaml
gks-core: ../../gks-core/gks-core-source.yaml

$defs:
VariantPathogenicityFunctionalImpactEvidenceLine:
maturity: draft
description: >-
An Evidence Line providing information about the functional impact of a variant on a gene or gene product.
allOf:
- $ref: "/ga4gh/schema/va-spec/1.x/base/VariantPathogenicityEvidenceLine"
- properties:
strengthOfEvidenceProvided: # TO DO: Ensure that the enum below covers terms needed for initial adopters. Merge https://github.com/ga4gh/gks-core/pull/78 which updates the core IM to allow this property to take a string so we can define the enum here. Think about if we need the 'PS'/'BS' parts of enum value labels - as this bakes in direction, and is duplicative as the 'specifiedBy' attribute reports the ACMG criterion applied.
extends: strengthOfEvidenceProvided
type: string # Note that in the core model, the data type for this attribute was changed to be a MappableConcept. How then can we define a set of allowable values? Do we even want to do this in the base profile at all (maybe this constraint goes in a Community Profile)?
enum:
- PS3_Strong
- PS3_Moderate
- PS3_Supporting
- BS3_Strong
- BS3_Moderate
- BS3_Supporting
description: >-
The strength of support that an Evidence Line is determined to provide for or against
the pathogenicity of the assessed variant. Strength is evaluated relative to the direction
indicated by the directionOfEvidenceProvided attribute.
11 changes: 11 additions & 0 deletions schema/va-spec/acmg-2015/prune.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
BUILD_DIR := build
SOURCES := $(wildcard *-source.yaml)
CLASS_FILTER_FILES = $(SOURCES:%-source.yaml=${BUILD_DIR}/%.classes)
FILTER_CLASSES := $(shell cat ${CLASS_FILTER_FILES})
FILTER_JSONS = $(FILTER_CLASSES:%=json/%)
FILTER_DEFS = $(FILTER_CLASSES:%=def/%.rst)

.DEFAULT: prune

prune: $(filter-out ${FILTER_JSONS} ${FILTER_DEFS},$(wildcard def/* json/*))
$(if $^,rm $^)
Loading
Loading