From 1fcefb797b8587beda6ee65c0aff3cf19e69e538 Mon Sep 17 00:00:00 2001 From: Torsten Giess Date: Tue, 26 Sep 2023 01:38:07 +0200 Subject: [PATCH] Minor bug fix --- nmrpy/datamodel/core/__init__.py | 12 -- nmrpy/datamodel/core/citation.py | 8 +- nmrpy/datamodel/core/experiment.py | 15 ++- nmrpy/datamodel/core/fid.py | 15 +-- nmrpy/datamodel/core/identity.py | 14 +-- nmrpy/datamodel/core/nmrpy.py | 2 +- nmrpy/datamodel/core/publication.py | 2 +- nmrpy/datamodel/schemes/datamodel_schema.md | 127 +------------------- specifications/nmrpy.md | 4 +- 9 files changed, 33 insertions(+), 166 deletions(-) diff --git a/nmrpy/datamodel/core/__init__.py b/nmrpy/datamodel/core/__init__.py index 8479b41..e3b9f18 100644 --- a/nmrpy/datamodel/core/__init__.py +++ b/nmrpy/datamodel/core/__init__.py @@ -10,16 +10,10 @@ from .publication import Publication from .cv import CV from .term import Term -from .vessel import Vessel -from .abstractspecies import AbstractSpecies -from .protein import Protein -from .reactant import Reactant from .fileformats import FileFormats from .subjects import Subjects from .publicationtypes import PublicationTypes from .identifiertypes import IdentifierTypes -from .sboterm import SBOTerm -from .datatypes import DataTypes __doc__ = "" @@ -36,14 +30,8 @@ "Publication", "CV", "Term", - "Vessel", - "AbstractSpecies", - "Protein", - "Reactant", "FileFormats", "Subjects", "PublicationTypes", "IdentifierTypes", - "SBOTerm", - "DataTypes", ] diff --git a/nmrpy/datamodel/core/citation.py b/nmrpy/datamodel/core/citation.py index c574cf3..bfeb06a 100644 --- a/nmrpy/datamodel/core/citation.py +++ b/nmrpy/datamodel/core/citation.py @@ -5,15 +5,15 @@ from sdRDM.base.listplus import ListPlus from sdRDM.base.utils import forge_signature, IDGenerator -from typing import Any from pydantic import AnyUrl +from typing import Any -from .publication import Publication from .term import Term -from .publicationtypes import PublicationTypes +from .identifiertypes import IdentifierTypes +from .publication import Publication from .subjects import Subjects +from .publicationtypes import PublicationTypes from .person import Person -from .identifiertypes import IdentifierTypes @forge_signature diff --git a/nmrpy/datamodel/core/experiment.py b/nmrpy/datamodel/core/experiment.py index 793de75..e52a0a3 100644 --- a/nmrpy/datamodel/core/experiment.py +++ b/nmrpy/datamodel/core/experiment.py @@ -6,17 +6,18 @@ from sdRDM.base.utils import forge_signature, IDGenerator +from .fidarray import FIDArray +from .fid import FID +from .parameters import Parameters from .processingsteps import ProcessingSteps from .identity import Identity -from .parameters import Parameters -from .fid import FID -from .fidarray import FIDArray @forge_signature class Experiment(sdRDM.DataModel): """Rohdaten -> Zwischenschritte nur nennen + interessante Parameter -> Endergebnis; Peaklist + Rangelist; rapidly pulsed (if then +calibration factor) vs fully relaxed - Also preparation of EnzymeML doc""" + Also preparation of EnzymeML doc https://github.com/EnzymeML/enzymeml-specifications/@AbstractSpecies, https://github.com/EnzymeML/enzymeml-specifications/@Protein, https://github.com/EnzymeML/enzymeml-specifications/@Reactant + """ id: Optional[str] = Field( description="Unique identifier of the given object.", @@ -29,6 +30,12 @@ class Experiment(sdRDM.DataModel): description="A descriptive name for the overarching experiment.", ) + enzymeml_species: List[str] = Field( + description="A species object from an EnzymeML document.", + default_factory=ListPlus, + multiple=True, + ) + fid: List[FID] = Field( description="A single NMR spectrum.", default_factory=ListPlus, diff --git a/nmrpy/datamodel/core/fid.py b/nmrpy/datamodel/core/fid.py index c92eb0b..42f07bf 100644 --- a/nmrpy/datamodel/core/fid.py +++ b/nmrpy/datamodel/core/fid.py @@ -7,12 +7,9 @@ from pydantic.types import FrozenSet +from .parameters import Parameters from .processingsteps import ProcessingSteps -from .abstractspecies import AbstractSpecies -from .protein import Protein from .identity import Identity -from .parameters import Parameters -from .reactant import Reactant @forge_signature @@ -64,8 +61,8 @@ class FID(sdRDM.DataModel): def add_to_peak_identities( self, - name: str, - enzymeml_species: Union[AbstractSpecies, Protein, Reactant, None] = None, + name: Optional[str] = None, + species_id: Optional[str] = None, associated_peaks: List[float] = ListPlus(), associated_ranges: List[FrozenSet] = ListPlus(), associated_integrals: List[float] = ListPlus(), @@ -76,8 +73,8 @@ def add_to_peak_identities( Args: id (str): Unique identifier of the 'Identity' object. Defaults to 'None'. - name (): Descriptive name for the species. - enzymeml_species (): A species object from an EnzymeML document.. Defaults to None + name (): Descriptive name for the species. Defaults to None + species_id (): ID of an EnzymeML species. Defaults to None associated_peaks (): Peaks belonging to the given species. Defaults to ListPlus() associated_ranges (): Sets of ranges belonging to the given peaks. Defaults to ListPlus() associated_integrals (): Integrals resulting from the given peaks and ranges of a species. Defaults to ListPlus() @@ -85,7 +82,7 @@ def add_to_peak_identities( params = { "name": name, - "enzymeml_species": enzymeml_species, + "species_id": species_id, "associated_peaks": associated_peaks, "associated_ranges": associated_ranges, "associated_integrals": associated_integrals, diff --git a/nmrpy/datamodel/core/identity.py b/nmrpy/datamodel/core/identity.py index a3860a9..91df6fc 100644 --- a/nmrpy/datamodel/core/identity.py +++ b/nmrpy/datamodel/core/identity.py @@ -1,16 +1,12 @@ import sdRDM -from typing import Optional, Union, List +from typing import List, Optional from pydantic import Field from sdRDM.base.listplus import ListPlus from sdRDM.base.utils import forge_signature, IDGenerator from pydantic.types import FrozenSet -from .abstractspecies import AbstractSpecies -from .protein import Protein -from .reactant import Reactant - @forge_signature class Identity(sdRDM.DataModel): @@ -22,14 +18,14 @@ class Identity(sdRDM.DataModel): xml="@id", ) - name: str = Field( - ..., + name: Optional[str] = Field( + default=None, description="Descriptive name for the species", ) - enzymeml_species: Union[AbstractSpecies, Protein, Reactant, None] = Field( + species_id: Optional[str] = Field( default=None, - description="A species object from an EnzymeML document.", + description="ID of an EnzymeML species", ) associated_peaks: List[float] = Field( diff --git a/nmrpy/datamodel/core/nmrpy.py b/nmrpy/datamodel/core/nmrpy.py index 0971fef..fe123a6 100644 --- a/nmrpy/datamodel/core/nmrpy.py +++ b/nmrpy/datamodel/core/nmrpy.py @@ -6,8 +6,8 @@ from datetime import datetime as Datetime -from .citation import Citation from .experiment import Experiment +from .citation import Citation @forge_signature diff --git a/nmrpy/datamodel/core/publication.py b/nmrpy/datamodel/core/publication.py index 4c41d8c..75be413 100644 --- a/nmrpy/datamodel/core/publication.py +++ b/nmrpy/datamodel/core/publication.py @@ -7,9 +7,9 @@ from pydantic import AnyUrl +from .identifiertypes import IdentifierTypes from .publicationtypes import PublicationTypes from .person import Person -from .identifiertypes import IdentifierTypes @forge_signature diff --git a/nmrpy/datamodel/schemes/datamodel_schema.md b/nmrpy/datamodel/schemes/datamodel_schema.md index abbf56d..b916c7a 100644 --- a/nmrpy/datamodel/schemes/datamodel_schema.md +++ b/nmrpy/datamodel/schemes/datamodel_schema.md @@ -1,36 +1,5 @@ ```mermaid classDiagram - AbstractSpecies <-- Protein - AbstractSpecies <-- Complex - AbstractSpecies <-- Reactant - AbstractSpecies <-- Protein - AbstractSpecies <-- Reactant - EnzymeMLDocument *-- Creator - EnzymeMLDocument *-- Vessel - EnzymeMLDocument *-- Protein - EnzymeMLDocument *-- Complex - EnzymeMLDocument *-- Reactant - EnzymeMLDocument *-- Reaction - EnzymeMLDocument *-- KineticParameter - EnzymeMLDocument *-- Measurement - EnzymeMLDocument *-- File - AbstractSpecies *-- Vessel - Protein *-- SBOTerm - Complex *-- SBOTerm - Reactant *-- SBOTerm - Reaction *-- SBOTerm - Reaction *-- ReactionElement - Reaction *-- KineticModel - ReactionElement *-- SBOTerm - ReactionElement *-- AbstractSpecies - KineticModel *-- SBOTerm - KineticModel *-- KineticParameter - KineticParameter *-- SBOTerm - Measurement *-- MeasurementData - MeasurementData *-- AbstractSpecies - MeasurementData *-- Replicate - Replicate *-- DataTypes - Replicate *-- AbstractSpecies NMRpy *-- Experiment NMRpy *-- Citation Experiment *-- FID @@ -38,9 +7,6 @@ classDiagram FID *-- Parameters FID *-- ProcessingSteps FID *-- Identity - Identity *-- AbstractSpecies - Identity *-- Protein - Identity *-- Reactant Citation *-- Subjects Citation *-- Person Citation *-- Publication @@ -48,9 +14,6 @@ classDiagram Person *-- IdentifierTypes Publication *-- PublicationTypes Publication *-- Person - AbstractSpecies *-- Vessel - Protein *-- SBOTerm - Reactant *-- SBOTerm class NMRpy { +datetime datetime_created* @@ -61,6 +24,7 @@ classDiagram class Experiment { +string name* + +string[0..*] enzymeml_species +FID[0..*] fid +FIDArray fid_array } @@ -103,8 +67,8 @@ classDiagram } class Identity { - +string name* - +AbstractSpecies, Protein, Reactant enzymeml_species + +string name + +string species_id +float[0..*] associated_peaks +frozenset[0..*] associated_ranges +float[0..*] associated_integrals @@ -159,41 +123,6 @@ classDiagram +any value } - class Vessel { - +string name* - +posfloat volume* - +string unit* - +StrictBool constant* - +string uri - +string creator_id - } - - class AbstractSpecies { - +string name* - +Vessel vessel_id* - +float init_conc - +StrictBool constant* - +string unit - +string uri - +string creator_id - } - - class Protein { - +string sequence* - +string ecnumber - +string organism - +string organism_tax_id - +string uniprotid - +SBOTerm ontology* - } - - class Reactant { - +string smiles - +string inchi - +string chebi_id - +SBOTerm ontology* - } - class FileFormats { << Enumeration >> +VARIAN @@ -219,54 +148,4 @@ classDiagram +ORCID } - class SBOTerm { - << Enumeration >> - +BIOCHEMICAL_REACTION - +ACID_BASE_REACTION - +CONFORMATIONAL_TRANSITION - +CONVERSION - +DEGRADATION - +DISSOCIATION - +IONISATION - +ISOMERISATION - +NON_COVALENT_BINDING - +REDOX_REACTION - +SPONTANEOUS_REACTION - +PROTEIN - +GENE - +SMALL_MOLECULE - +ION - +RADICAL - +INTERACTOR - +SUBSTRATE - +PRODUCT - +CATALYST - +INHIBITOR - +ESSENTIAL_ACTIVATOR - +NON_ESSENTIAL_ACTIVATOR - +POTENTIATOR - +MACROMOLECULAR_COMPLEX - +PROTEIN_COMPLEX - +DIMER - +MICHAELIS_MENTEN - +K_CAT - +K_M - +V_MAX - } - - class DataTypes { - << Enumeration >> - +CONCENTRATION - +ABSORPTION - +FEED - +BIOMASS - +CONVERSION - +PEAK_AREA - } - - class https://github.com/EnzymeML/enzymeml-specifications/ { - << External Object >> - +Repository - } - ``` \ No newline at end of file diff --git a/specifications/nmrpy.md b/specifications/nmrpy.md index 9e64e47..79011fa 100644 --- a/specifications/nmrpy.md +++ b/specifications/nmrpy.md @@ -27,13 +27,13 @@ Root element of the NMRpy data model. ### Experiment Rohdaten -> Zwischenschritte nur nennen + interessante Parameter -> Endergebnis; Peaklist + Rangelist; rapidly pulsed (if then +calibration factor) vs fully relaxed -Also preparation of EnzymeML doc +Also preparation of EnzymeML doc https://github.com/EnzymeML/enzymeml-specifications/@AbstractSpecies, https://github.com/EnzymeML/enzymeml-specifications/@Protein, https://github.com/EnzymeML/enzymeml-specifications/@Reactant - __name__ - Type: string - Description: A descriptive name for the overarching experiment. - enzymeml_species - - Type: https://github.com/EnzymeML/enzymeml-specifications/@AbstractSpecies, https://github.com/EnzymeML/enzymeml-specifications/@Protein, https://github.com/EnzymeML/enzymeml-specifications/@Reactant + - Type: string - Description: A species object from an EnzymeML document. - Multiple: True - fid