init public release

This commit is contained in:
2026-09-08 10:59:05 +02:00
commit 9cdf012717
133 changed files with 2950635 additions and 0 deletions
+215
View File
@@ -0,0 +1,215 @@
# BioCypher ODM Import Schema Configuration with BioLink Model Integration
# Node types extracted from ODM generators mapped to BioLink classes
study:
represented_as: node
preferred_id: oid
label_in_input: Study
is_a: biolink:ClinicalTrial
properties:
OID: str
Name: str
Description: str
Protocol: str
ModelID: str
studyevent:
represented_as: node
preferred_id: oid
label_in_input: StudyEvent
is_a: biolink:ClinicalEntity
properties:
OID: str
Name: str
Type: str
StudyOID: str
ModelID: str
form:
represented_as: node
preferred_id: oid
label_in_input: Form
is_a: biolink:InformationContentEntity
properties:
OID: str
Name: str
StudyOID: str
ModelID: str
itemgroup:
represented_as: node
preferred_id: oid
label_in_input: ItemGroup
is_a: biolink:InformationContentEntity
properties:
OID: str
Name: str
StudyOID: str
ModelID: str
item:
represented_as: node
preferred_id: oid
label_in_input: Item
is_a: biolink:ClinicalFinding
properties:
OID: str
Name: str
DataType: str
Question: str
StudyOID: str
ModelID: str
alias:
represented_as: node
preferred_id: [context, name]
label_in_input: Alias
is_a: biolink:InformationContentEntity
properties:
Context: str
Name: str
ItemOID: str
StudyOID: str
ModelID: str
measurementunit:
represented_as: node
preferred_id: oid
label_in_input: MeasurementUnit
is_a: biolink:Unit
properties:
OID: str
Name: str
Symbol: str
basicdefinitions:
represented_as: node
preferred_id: [studyoid, modelid]
label_in_input: BasicDefinitions
is_a: biolink:InformationContentEntity
properties:
StudyOID: str
ModelID: str
rangecheck:
represented_as: node
preferred_id: [comparator, constraint, checkvalue]
label_in_input: RangeCheck
is_a: biolink:ClinicalFinding
properties:
Comparator: str
Constraint: str
CheckValue: str
codelist:
represented_as: node
preferred_id: oid
label_in_input: CodeList
is_a: biolink:InformationContentEntity
properties:
OID: str
Name: str
DataType: str
StudyOID: str
ModelID: str
codelistitem:
represented_as: node
preferred_id: codedvalue
label_in_input: CodeListItem
is_a: biolink:ConceptualEntity
properties:
CodedValue: str
Decode: str
# Edge types extracted from ODM generators mapped to BioLink predicates
study_has_studyevent:
represented_as: edge
label_in_input: STUDY_HAS_STUDYEVENT
source: study
target: studyevent
is_a: biolink:related_to
itemgroup_has_item:
represented_as: edge
label_in_input: ITEMGROUP_HAS_ITEM
source: itemgroup
target: item
is_a: biolink:has_part
form_has_itemgroup:
represented_as: edge
label_in_input: FORM_HAS_ITEMGROUP
source: form
target: itemgroup
is_a: biolink:has_part
studyevent_has_form:
represented_as: edge
label_in_input: STUDYEVENT_HAS_FORM
source: studyevent
target: form
is_a: biolink:has_part
item_has_alias:
represented_as: edge
label_in_input: ITEM_HAS_ALIAS
source: item
target: alias
is_a: biolink:same_as
itemgroup_has_alias:
represented_as: edge
label_in_input: ITEMGROUP_HAS_ALIAS
source: itemgroup
target: alias
is_a: biolink:same_as
item_has_measurementunit:
represented_as: edge
label_in_input: ITEM_HAS_MEASUREMENTUNIT
source: item
target: measurementunit
is_a: biolink:has_attribute
has_basedef:
represented_as: edge
label_in_input: HAS_BASEDEF
source: study
target: basicdefinitions
is_a: biolink:has_part
basedef_has_measurementunit:
represented_as: edge
label_in_input: BASEDEF_HAS_MEASUREMENTUNIT
source: basicdefinitions
target: measurementunit
is_a: biolink:has_part
item_has_rangecheck:
represented_as: edge
label_in_input: ITEM_HAS_RANGECHECK
source: item
target: rangecheck
is_a: biolink:has_attribute
item_has_codelist:
represented_as: edge
label_in_input: ITEM_HAS_CODELIST
source: item
target: codelist
is_a: biolink:has_attribute
codelist_has_codelistitem:
represented_as: edge
label_in_input: CODELIST_HAS_CODELISTITEM
source: codelist
target: codelistitem
is_a: biolink:has_part
composite:
represented_as: edge
label_in_input: COMPOSITE
source: alias
target: alias
is_a: biolink:related_to
+18
View File
@@ -0,0 +1,18 @@
# add your settings here (overriding the defaults)
biocypher:
dbms: neo4j
offline: true
#debug: true
output_directory: /neo4j_import #comment if you want to debug, so that bc creates a new folder for each run in /biocypher-out
schema_config_path: config/automated_schema.yaml #config/automated_schema.yaml
head_ontology:
url: config/head_ontology/biolink-model.owl.ttl
root_node: entity
neo4j:
delimiter: '\t'
array_delimiter: '|'
skip_duplicate_nodes: true
skip_bad_relationships: true
File diff suppressed because it is too large Load Diff
+283
View File
@@ -0,0 +1,283 @@
Title: BioCypher graph schema configuration file
# This configuration file establishes the hierarchy and connectivity in a newly
# set-up BioCypher property graph database. Naming should adhere to Biolink
# nomenclature (available at https://biolink.github.io/biolink-model/ or via
# the python module 'biolink-model-toolkit').
# The BioCypher YAML file specifies only the leaves of the hierarchy tree of
# the desired graph; the hierarchical structure of entities will be derived
# from the Biolink model + BRO model. Thus, only the immediate constituents
# of the graph need to be specified in the schema config.
# ---
# "Named Things"
# ---
# The implementation of named things is fairly straightforward, since they are
# usually represented in node form, which is also the Biolink recommendation.
# The same is not true for associations.
#
# A little more complex is the representation of aggregates of named things.
clinicalStatus:
is_a: ClinicalEntity
represented_as: node
preferred_id: fhir_id
label_in_input: clinicalStatus
properties:
coding_system: str
label: str
coding_code: str
Condition:
is_a: ClinicalEntity
represented_as: node
preferred_id: fhir_id
label_in_input: Condition
properties:
input_format: HL7 FHIR
data_specification: Medical Informatics Initiative Germany Core Data Set, Basic Modules
diagnosis:
is_a: ClinicalEntity
represented_as: node
preferred_id: fhir_id
label_in_input: diagnosis
properties:
type.coding_code: str
sequence: str
label: str
type.coding_system: str
DiagnosticReport:
is_a: ClinicalEntity
represented_as: node
preferred_id: fhir_id
label_in_input: DiagnosticReport
properties:
resourceType: str
label: str
status: str
id: str
Encounter:
is_a: ClinicalEntity
represented_as: node
preferred_id: fhir_id
label_in_input: Encounter
properties:
resourceType: str
label: str
status: str
id: str
identifier:
is_a: Attribute
represented_as: node
preferred_id: fhir_id
label_in_input: identifier
properties:
label: str
value: str
system: str
interpretation: #
is_a: named thing
represented_as: node
preferred_id: fhir_id
label_in_input: interpretation
properties:
extension.valueCoding_system: str
extension_url: str
extension.valueCoding_display: str
coding_code: str
coding_system: str
label: str
extension.valueCoding_code: str
maritalStatus:
is_a: OrganismAttribute
represented_as: node
preferred_id: fhir_id
label_in_input: maritalStatus
properties:
label: str
coding_system: str
coding_code: str
Observation:
is_a: ClinicalEntity
represented_as: node
preferred_id: fhir_id
label_in_input: Observation
properties:
resourceType: str
label: str
effectiveDateTime: str
status: str
id: str
Organization:
is_a: AdministrativeEntity
represented_as: node
preferred_id: fhir_id
label_in_input: Organization
properties:
label: str
id: str
name: str
resourceType: str
Patient:
is_a: Human
represented_as: node
preferred_id: fhir_id
label_in_input: Patient
properties:
resourceType: str
label: str
gender: str
id: str
birthDate: str
procedure:
is_a: named thing
represented_as: node
preferred_id: fhir_id
label_in_input: Procedure
properties:
label: str
performedDateTime: str
resourceType: str
status: str
id: str
referenceRange: #
is_a: named thing
represented_as: node
preferred_id: fhir_id
label_in_input: referenceRange
properties:
high_system: str
high_value: str
high_code: str
label: str
high_unit: str
search: #
is_a: named thing
represented_as: node
preferred_id: fhir_id
label_in_input: search
properties:
label: str
mode: str
type:
is_a: Attribute
represented_as: node
preferred_id: fhir_id
label_in_input: type
properties:
coding_system: str
label: str
coding_code: str
coding_display: str
verificationStatus:
is_a: Attribute
represented_as: node
preferred_id: fhir_id
label_in_input: verificationStatus
properties:
coding_system: str
label: str
coding_code: str
coding_display: str
# ---
# Associations
# ---
# Associations are not supposed to be represented in node form as per the
# specifications of Biolink. However, in an analytic context, it often makes
# sense to represent interactions as nodes in Neo4j, because it enables, for
# instance, the annotation of a relationship with a publication as source of
# evidence (also known as reification in the knowledge graph world).
# The Biolink specifications for these types of relationships do
# not go into depth; for example, the hierarchy for molecular interactions
# (ie, "associations") ends at "PairwiseMolecularInteraction", there are no
# explicit terms for protein-protein-interaction, phosphorylation, miRNA-
# targeting, etc. Biolink proposes to use interaction identifiers from
# ontologies, such as https://www.ebi.ac.uk/ols/ontologies/mi/.
# association to connect anything to an identifier node
# if functional, includes:
# IDENTIFIED_BY_Condition_Identifier,
# IDENTIFIED_BY_DiagnosticReport_Identifier,
# IDENTIFIED_BY_Encounter_Identifier,
# IDENTIFIED_BY_Observation_Identifier,
# IDENTIFIED_BY_Organization_Identifier
# IDENTIFIED_BY_Patient_Identifier,
# IDENTIFIED_BY_Procedure_Identifier
condition to identifier association:
is_a: association
represented_as: edge
label_in_input: IDENTIFIED_BY_Condition_Identifier
diagnostic report to identifier association:
is_a: association
represented_as: edge
label_in_input: IDENTIFIED_BY_DiagnosticReport_Identifier
observation to identifier association:
is_a: association
represented_as: edge
label_in_input: IDENTIFIED_BY_Observation_Identifier
observation derived from observation association:
is_a: association
represented_as: edge
label_in_input: DERIVED_FROM_Observation_Observation
observation has member observation association:
is_a: association
represented_as: edge
label_in_input: HAS_MEMBER_Observation_Observation
procedure to identifier association:
is_a: association
represented_as: edge
label_in_input: IDENTIFIED_BY_Procedure_Identifier
procedure to diagnostic report association:
is_a: association
represented_as: edge
label_in_input: IDENTIFIED_BY_Procedure_Identifier
procedure reasoned by observation association:
is_a: association
represented_as: edge
label_in_input: HAS_REASON_REFERENCE_Procedure_Observation
procedure performer is practitioner association:
is_a: association
represented_as: edge
label_in_input: HAS_ACTOR_ProcedurePerformer_Practitioner
#represented_as: edge
#label_in_input: DERIVED_FROM_Observation_Observation:
#represented_as: edge
#label_in_input: DERIVED_FROM_Observation_Observation
#protein interaction:
# is_a: Pairwise molecular interaction
# represented_as: edge
# label_in_input: protein_protein_interaction
#protein to disease association:
# is_a: Association
# represented_as: edge
# label_in_input: protein_disease_association