Skip to content

Labeled Property Graph Model

Brunovski edited this page Jan 29, 2020 · 32 revisions

Graph Model


Domain description

Taxon

  • Properties:
    • id (Unique, Mandatory, String) - Taxonomic unit identifier.
    • description (String) - Taxonomic unit description.
  • Relations:
    • CONTAINS (To: Locus) - Expresses which loci compose this taxonomic unit.

Locus

  • Properties:
    • id (Unique, Mandatory, String) - Locus identifier.
    • description (String) - Locus description.
  • Relations:
    • CONTAINS (To: Allele) - Expresses which alleles compose this taxonomic unit.

Allele

  • Properties:
    • id (Unique, Mandatory, String) - Allele identifier.
    • description (String) - Allele description.

Schema

  • Properties:
    • id (Unique, Mandatory, String) - Schema identifier.
    • description (String) - Schema description.
    • tag (String) - Schema version.
  • Relations:
    • HAS (To: Locus) - Expresses which loci compose this schema.
      • Properties:
        • part (Mandatory, Integer) - Expresses the order of the locus in the schema
  • Restrictions:
    • A schema must contain only loci of the same taxonomic unit.

Dataset

  • Properties:
    • id (Unique, Mandatory, UUID) - Dataset identifier.
    • name (String) - Dataset name.
  • Relations:
    • HAS (To: Schema) - Expresses which schema this dataset follows.
    • CONTAINS (To: Profile) - Expresses which allelic profiles exist in this dataset.
    • CONTAINS (To: Isolate) - Expresses which isolates exist in this dataset.
  • Restrictions:
    • A dataset must follow one schema.

Profile

  • Properties:
    • id (Unique, Mandatory, UUID) - Allelic profile identifier.
    • aka (String) - Allelic profile name.
  • Relations:
    • HAS (To: Allele) - Expresses which alleles define this profile.
    • HAS (To: Coordinate) - Expresses which coordinate this profile has for a given visualization graph.
    • DISTANCES (To: Profile) - Expresses the distance, inferred by an analysis, to another profile within a graph.
      • Properties:
        • project_id (Mandatory, UUID) - Project which this analysis was conducted (only mandatory if the analysis was made in a public dataset).
        • analysis (Mandatory, String) - Analysis identifier.
        • weight (Mandatory, Integer) - Weight value.
        • consistent (Mandatory, Boolean) - State of the analysis (only mandatory if the analysis was made in a public dataset).
  • Restrictions:
    • A profile can only have relationships with the alleles that belongs to the loci which composes the dataset that this profile belongs.
    • A profile can only have relationships with the alleles that are public or belong to the same project.
    • The consistent property must be updated when an admin tempers with the data related to the public dataset.

Isolate

  • Properties:
    • id (Unique, Mandatory, String) - Isolate identifier.
    • description (String) - Isolate description.
  • Relations:
    • HAS (To: Ancillary) - Expresses which ancillary details this isolate has.
    • HAS (To: Profile) - Expresses which allelic profiles this isolate has.
  • Restrictions:
    • An isolate can only have one profile.

Ancillary

  • Properties:
    • key (Mandatory, String) - Ancillary detail key.
    • value (Mandatory, String) - Ancillary detail value.
  • Restrictions:
    • The key and value attribute must be unique as a set.

Coordinate

  • Properties:
    • visualization (Mandatory, String) - Visualization identifier.
    • analysis (Mandatory, String) - Analysis identifier.
    • x (Mandatory, String) - X axis value.
    • y (Mandatory, String) - Y axis value.

Project

  • Properties:
    • id (Unique, Mandatory, UUID) - Project identifier.
    • description (String) - Project description.
    • name (Mandatory, String) - Project name.
  • Relations:
    • CONTAINS (To: Allele) - Expresses which alleles this project has.
    • CONTAINS (To: Dataset) - Expresses which datasets this project has.
    • HAS (To: Dataset) - Expresses which public datasets have analysis related to this project.

User

  • Properties:
    • id (Unique, Mandatory, UUID) - User identifier.
    • Provider (Mandatory, String) - User identity provider.
    • Type (Mandatory, String) - User type.
  • Restrictions:
    • Type must be either user or admin.