Base Sections¶
The nomad.datamodel.metainfo.basesections
Metainfo package contains a set of
base sections. They provides shared definitions across materials science domains and schemas. Some functionality, e.g. the workflow visualisation, depend on these definitions. Inherit from these base sections when you create your own schemas to
align your definitions with those of other schemas and to make use of respective functionality.
BaseSection¶
description: A generic abstract base section that provides a few commonly used properties. If you inherit from this section, but do not need some quantities, list those
quantities in the eln.hide
annotation of your inheriting section definition.
Besides predefining some quantities, these base sections will add some metadata
to NOMAD's search. A particular example are tags
, if you define a string
or enum quantity in your sections named tags
, its values will be searchable.
inherits from: nomad.datamodel.data.ArchiveSection
links: http://purl.obolibrary.org/obo/BFO_0000001
properties:
name | type | |
---|---|---|
name | str |
A short human readable and descriptive name. |
datetime | nomad.metainfo.data_type.Datetime |
The date and time associated with this section. |
lab_id | str |
An ID string that is unique at least for the lab that produced this data. |
description | str |
Any information that cannot be captured in the other fields. |
normalization:
- If the instance is of type
EntryData
, it sets the archive's entry name based on the instance's name. - Sets the
datetime
field to the current time if it is not already set. - Manages the
lab_id
field and updates the archive'sresults.eln.lab_ids
list. - Adds the instance's
name
anddescription
to the archive'sresults.eln.names
andresults.eln.descriptions
lists, respectively. - Handles the
tags
attribute, if present, and updates the archive'sresults.eln.tags
list. - Appends the section's name to the archive's
results.eln.sections
list.
Entity¶
description: An object that persists, endures, or continues to exist through time while maintaining its identity.
inherits from: BaseSection
links: http://purl.obolibrary.org/obo/BFO_0000002
normalization:
- If the instance is of type
EntryData
, it sets the archive's entry name based on the instance's name. - Sets the
datetime
field to the current time if it is not already set. - Manages the
lab_id
field and updates the archive'sresults.eln.lab_ids
list. - Adds the instance's
name
anddescription
to the archive'sresults.eln.names
andresults.eln.descriptions
lists, respectively. - Handles the
tags
attribute, if present, and updates the archive'sresults.eln.tags
list. - Appends the section's name to the archive's
results.eln.sections
list.
ActivityStep¶
description: Any dependant step of an Activity
.
inherits from: nomad.datamodel.data.ArchiveSection
properties:
name | type | |
---|---|---|
name | str |
A short and descriptive name for this step. |
start_time | nomad.metainfo.data_type.Datetime |
Optionally, the starting time of the activity step. If omitted, it is assumed to follow directly after the previous step. |
comment | str |
Any additional information about the step not captured by the other fields. |
Activity¶
description: An action that has a temporal extension and for some time depends on some entity.
inherits from: BaseSection
links: http://purl.obolibrary.org/obo/BFO_0000015
properties:
name | type | |
---|---|---|
datetime | nomad.metainfo.data_type.Datetime |
The date and time when this activity was started. |
method | str |
A short consistent handle for the applied method. |
location | str |
location of the experiment. |
steps | ActivityStep |
An ordered list of all the dependant steps that make up this activity.sub-section, repeats |
normalization:
- Ensures the
results.eln.methods
list is initialized and appends the method or section name. - Converts each step in
self.steps
to a task, using the stepsto_task()
method, and assigns it toarchive.workflow2.tasks
.
SectionReference¶
description: A section used for referencing another section.
inherits from: nomad.datamodel.data.ArchiveSection
properties:
name | type | |
---|---|---|
name | str |
A short descriptive name for the role of this reference. |
reference | nomad.datamodel.data.ArchiveSection |
A reference to a NOMAD archive section. |
EntityReference¶
description: A section used for referencing an Entity.
inherits from: SectionReference
properties:
name | type | |
---|---|---|
reference | Entity |
A reference to a NOMAD Entity entry. |
lab_id | str |
The readable identifier for the entity. |
normalization:
Will attempt to fill the reference
from the lab_id
or vice versa.
ExperimentStep¶
description: Any dependant step of an Experiment
.
inherits from: ActivityStep
properties:
name | type | |
---|---|---|
activity | Activity |
The activity that makes up this step of the experiment. |
lab_id | str |
The readable identifier for the activity. |
normalization:
Will attempt to fill the activity
from the lab_id
or vice versa.
If the activity reference is filled but the start time is not the time will be
taken from the datetime
property of the referenced activity.
Experiment¶
description: A section for grouping activities together into an experiment.
inherits from: Activity
properties:
name | type | |
---|---|---|
steps | ExperimentStep |
An ordered list of all the dependant steps that make up this activity.sub-section, repeats |
normalization:
- Ensures the
results.eln.methods
list is initialized and appends the method or section name. - Converts each step in
self.steps
to a task, using the stepsto_task()
method, and assigns it toarchive.workflow2.tasks
.
Collection¶
description: A section for grouping entities together into a collection.
inherits from: Entity
properties:
name | type | |
---|---|---|
entities | EntityReference |
References to the entities that make up the collection.sub-section, repeats |
normalization:
- If the instance is of type
EntryData
, it sets the archive's entry name based on the instance's name. - Sets the
datetime
field to the current time if it is not already set. - Manages the
lab_id
field and updates the archive'sresults.eln.lab_ids
list. - Adds the instance's
name
anddescription
to the archive'sresults.eln.names
andresults.eln.descriptions
lists, respectively. - Handles the
tags
attribute, if present, and updates the archive'sresults.eln.tags
list. - Appends the section's name to the archive's
results.eln.sections
list.
ElementalComposition¶
description: A section for describing the elemental composition of a system, i.e. the element and its atomic fraction.
inherits from: nomad.datamodel.data.ArchiveSection
properties:
name | type | |
---|---|---|
element | ['Ac', 'Ag', 'Al', 'Am', 'Ar', 'As', 'At', 'Au', 'B', 'Ba', 'Be', 'Bh', 'Bi', 'Bk', 'Br', 'C', 'Ca', 'Cd', 'Ce', 'Cf', 'Cl', 'Cm', 'Cn', 'Co', 'Cr', 'Cs', 'Cu', 'Db', 'Ds', 'Dy', 'Er', 'Es', 'Eu', 'F', 'Fe', 'Fl', 'Fm', 'Fr', 'Ga', 'Gd', 'Ge', 'H', 'He', 'Hf', 'Hg', 'Ho', 'Hs', 'I', 'In', 'Ir', 'K', 'Kr', 'La', 'Li', 'Lr', 'Lu', 'Lv', 'Mc', 'Md', 'Mg', 'Mn', 'Mo', 'Mt', 'N', 'Na', 'Nb', 'Nd', 'Ne', 'Nh', 'Ni', 'No', 'Np', 'O', 'Og', 'Os', 'P', 'Pa', 'Pb', 'Pd', 'Pm', 'Po', 'Pr', 'Pt', 'Pu', 'Ra', 'Rb', 'Re', 'Rf', 'Rg', 'Rh', 'Rn', 'Ru', 'S', 'Sb', 'Sc', 'Se', 'Sg', 'Si', 'Sm', 'Sn', 'Sr', 'Ta', 'Tb', 'Tc', 'Te', 'Th', 'Ti', 'Tl', 'Tm', 'Ts', 'U', 'V', 'W', 'Xe', 'Y', 'Yb', 'Zn', 'Zr'] |
The symbol of the element, e.g. 'Pb'. |
atomic_fraction | float64 |
The atomic fraction of the element in the system it is contained within. Per definition a positive value less than or equal to 1. |
mass_fraction | float64 |
The mass fraction of the element in the system it is contained within. Per definition a positive value less than or equal to 1. |
normalization:
Will add a results.material subsection if none exists. Will append the element to the elements property of that subsection and a nomad.datamodel.results.ElementalComposition instances to the elemental_composition property using the element and atomic fraction from this section.
System¶
description: A base section for any system of materials which is investigated or used to construct other systems.
inherits from: Entity
properties:
name | type | |
---|---|---|
elemental_composition | ElementalComposition |
A list of all the elements found in the system together and their respective atomic fraction within the system.sub-section, repeats |
normalization:
Will attempt to fill mass fractions or atomic fractions if left blank.
Instrument¶
description: A base section that can be used for instruments.
inherits from: Entity
normalization:
Adds the name of the instrument to the results.eln.instruments
list.
InstrumentReference¶
description: A section used for referencing an Instrument.
inherits from: EntityReference
properties:
name | type | |
---|---|---|
reference | Instrument |
A reference to a NOMAD Instrument entry. |
normalization:
Will attempt to fill the reference
from the lab_id
or vice versa.
Component¶
description: A section for describing a component and its role in a composite system.
inherits from: nomad.datamodel.data.ArchiveSection
properties:
name | type | |
---|---|---|
name | str |
A short name for the component. |
mass | float64 |
The mass of the component.unit=kilogram |
mass_fraction | float64 |
The mass fraction of the component in the composite system. |
SystemComponent¶
description: A section for describing a system component and its role in a composite system.
inherits from: Component
properties:
name | type | |
---|---|---|
system | System |
A reference to the component system. |
normalization:
If none is set, the normalizer will set the name of the component to be that of the referenced system if it has one.
PureSubstanceSection¶
description: A sub section for describing any elemental, molecular or single phase pure substance.
inherits from: nomad.datamodel.data.ArchiveSection
properties:
name | type | |
---|---|---|
name | str |
A short name for the substance. |
iupac_name | str |
IUPAC name. |
molecular_formula | str |
Molecular formula. |
molecular_mass | float64 |
The mass of the most likely isotopic composition for a single molecule, corresponding to the most intense ion/molecule peak in a mass spectrum.unit=dalton |
molar_mass | float64 |
The molar mass is the sum of all atomic masses of the constituent atoms in a compound, measured in g/mol. In the absence of explicit isotope labelling, averaged natural abundance is assumed. If an atom bears an explicit isotope label, 100%% isotopic purity is assumed at this location.unit=gram / mole |
monoisotopic_mass | float64 |
The mass of a molecule, calculated using the mass of the most abundant isotope of each element.unit=dalton |
inchi | str |
Inchi. |
inchi_key | str |
Inchi key. |
smile | str |
Smile. |
canonical_smile | str |
Canonical smile. |
cas_number | str |
CAS number. |
PureSubstanceComponent¶
description: A section for describing a substance component and its role in a composite system.
inherits from: Component
properties:
name | type | |
---|---|---|
substance_name | str |
The name of the substance within the section where this component is contained. |
pure_substance | PureSubstanceSection |
Section describing the pure substance that is the component.sub-section |
normalization:
If none is set, the normalizer will set the name of the component to be the molecular formula of the substance.
CompositeSystem¶
description: A base section for a material systems composed of components. Each component of the composite system is of a (sub)type of System
.
inherits from: System
properties:
name | type | |
---|---|---|
components | Component |
A list of all the components of the composite system containing a name, reference to the system section and mass of that component.sub-section, repeats |
normalization:
If the elemental composition list is
empty, the normalizer will iterate over the components and extract all the
elements for populating the elemental composition list. If masses are provided for
all components and the elemental composition of all components contain atomic
fractions the normalizer will also calculate the atomic fractions for the
composite system. The populated elemental composition list is added to the results
by the normalizer in the System
super class.
CompositeSystemReference¶
description: A section used for referencing a CompositeSystem.
inherits from: EntityReference
properties:
name | type | |
---|---|---|
reference | CompositeSystem |
A reference to a NOMAD CompositeSystem entry. |
normalization:
Will attempt to fill the reference
from the lab_id
or vice versa.
ProcessStep¶
description: Any dependant step of a Process
.
inherits from: ActivityStep
properties:
name | type | |
---|---|---|
duration | float |
The duration time of the process step.unit=second |
Process¶
description: A planned process which results in physical changes in a specified input material. [ obi : prs obi : mc obi : fg obi : jf obi : bp ]
Synonyms: - preparative method - sample preparation - sample preparative method - material transformations
inherits from: Activity
links: http://purl.obolibrary.org/obo/OBI_0000094
properties:
name | type | |
---|---|---|
end_time | nomad.metainfo.data_type.Datetime |
The date and time when this process was finished. |
steps | ProcessStep |
An ordered list of all the dependant steps that make up this activity.sub-section, repeats |
instruments | InstrumentReference |
A list of all the instruments and their role in this process.sub-section, repeats |
samples | CompositeSystemReference |
The samples as that have undergone the process.sub-section, repeats |
normalization:
- Sets the start time for each step in
self.steps
if not already set, based on thedatetime
andduration
fields. - Sets the
end_time
field to the calculated end time if it is not already set. - Updates the
archive.workflow2.outputs
list with links to the samples processed.
ActivityResult¶
description: A section for the results of an Activity
.
inherits from: nomad.datamodel.data.ArchiveSection
properties:
name | type | |
---|---|---|
name | str |
A short and descriptive name for the result. |
AnalysisResult¶
description: A section for the results of an Analysis
process.
inherits from: ActivityResult
Analysis¶
description: A planned process that produces output data from input data. Synonyms: - data processing - data analysis
inherits from: Activity
links: http://purl.obolibrary.org/obo/OBI_0200000
properties:
name | type | |
---|---|---|
inputs | SectionReference |
The input data of the analysis.sub-section, repeats |
outputs | AnalysisResult |
The output data of the analysis.sub-section, repeats |
normalization:
- Updates the
archive.workflow2.inputs
list with links to the input data. - Updates the
archive.workflow2.outputs
list with links to the output data.
SynthesisMethod¶
description: A method used to synthesise a sample.
inherits from: Process
links: http://purl.obolibrary.org/obo/CHMO_0001301
normalization:
- Sets the start time for each step in
self.steps
if not already set, based on thedatetime
andduration
fields. - Sets the
end_time
field to the calculated end time if it is not already set. - Updates the
archive.workflow2.outputs
list with links to the samples processed.
MeasurementResult¶
description: A section for the results of an Measurement
process.
inherits from: ActivityResult
Measurement¶
description: A planned process with the objective to produce information about the material entity that is the evaluant, by physically examining it or its proxies. [ obi : pppb ]
inherits from: Activity
links: http://purl.obolibrary.org/obo/OBI_0000070
properties:
name | type | |
---|---|---|
samples | CompositeSystemReference |
A list of all the samples measured during the measurement.sub-section, repeats |
instruments | InstrumentReference |
A list of all the instruments and their role in this process.sub-section, repeats |
results | MeasurementResult |
The result of the measurement.sub-section, repeats |
normalization:
- Updates the
archive.workflow2.inputs
list with links to the input samples. - Updates the
archive.workflow2.outputs
list with links to the measurement results.
PureSubstance¶
description: A base section for any elemental, molecular, or single phase pure substance.
inherits from: System
links: http://purl.obolibrary.org/obo/CHEBI_23367
properties:
name | type | |
---|---|---|
name | str |
The name of the substance entry. |
lab_id | str |
A human human readable substance ID that is at least unique for the lab. |
description | str |
A field for adding additional information about the substance that is not captured by the other quantities and subsections. |
pure_substance | PureSubstanceSection |
Section with properties describing the substance.sub-section |
normalization:
This method will populate the results.material section and the elemental composition sub section using the molecular formula.
PubChemPureSubstanceSection¶
description: A section for pure substances existing as "compounds" in the PubChem database.
inherits from: PureSubstanceSection
properties:
name | type | |
---|---|---|
pub_chem_cid | int |
|
pub_chem_link | str |
normalization:
This method will attempt to get data on the substance instance from the PubChem PUG REST API: https://pubchem.ncbi.nlm.nih.gov/docs/pug-rest If a PubChem CID is specified the details are retrieved directly. Otherwise a search query is made for the filled attributes in the following order:
smile
canonical_smile
inchi_key
iupac_name
name
molecular_formula
cas_number
CASExperimentalProperty¶
description: A section for experimental properties retrieved from the CAS API.
inherits from: nomad.datamodel.data.ArchiveSection
properties:
name | type | |
---|---|---|
name | str |
CAS experimental property name. |
property | str |
CAS experimental property. |
sourceNumber | str |
CAS experimental property source. |
CASPropertyCitation¶
description: A section for citations of the experimental properties retrieved from the CAS API.
inherits from: nomad.datamodel.data.ArchiveSection
properties:
name | type | |
---|---|---|
docUri | str |
CAS property citation document uri. |
sourceNumber | int |
|
source | str |
CAS property citation source. |
CASPureSubstanceSection¶
description: A base section for any PureSubstance
with a CAS number.
inherits from: PureSubstanceSection
properties:
name | type | |
---|---|---|
cas_uri | str |
CAS uri |
cas_number | str |
CAS number. |
cas_name | str |
CAS name. |
image | str |
CAS image. |
cas_synonyms | str |
CAS synonyms.shape=['*'] |
cas_experimental_properties | CASExperimentalProperty |
sub-section, repeats |
cas_property_citations | CASPropertyCitation |
sub-section, repeats |
normalization:
This method will attempt to get data on the pure substance instance from the CAS API: https://commonchemistry.cas.org/api-overview If a CAS number is specified the details are retrieved directly. Otherwise a search query is made for the filled attributes in the following order:
cas_name
inchi
inchi_key
smile
canonical_smile
name
ReadableIdentifiers¶
description: A base section that can be used to generate readable IDs. If the owner
, short_name
, institute
, and datetime
quantities are provided, the lab_id will be automatically created as a combination
of these four quantities.
inherits from: nomad.datamodel.data.ArchiveSection
properties:
name | type | |
---|---|---|
institute | str |
Alias/short name of the home institute of the owner, i.e. HZB. |
owner | str |
Alias for the owner of the identified thing. This should be unique within the institute. |
datetime | nomad.metainfo.data_type.Datetime |
A datetime associated with the identified thing. In case of an Activity , this should be the starting time and, in case of an Entity , the creation time. |
short_name | str |
A short name of the the identified thing (e.g. the identifier scribed on the sample, the process number, or machine name), e.g. 4001-8, YAG-2-34. This is to be managed and decided internally by the labs, although we recommend to avoid the following characters in it: "_", "/", "\" and ".". |
lab_id | str |
Full readable id. Ideally a human readable id convention, which is simple, understandable and still have chances of becoming unique. If the owner , short_name , ìnstitute , and datetime are provided, this will be formed automatically by joining these components by an underscore (_). Spaces in any of the individual components will be replaced with hyphens (-). An example would be hzb_oah_20200602_4001-08. |
normalization:
If owner is not filled the field will be filled by the first two letters of the first name joined with the first two letters of the last name of the author. If the institute is not filled a institute abreviations will be constructed from the author's affiliation.
If no datetime is filled, the datetime will be taken from the datetime
property of the parent, if it exists, otherwise the current date and time will be
used.
If no short name is filled, the name will be taken from the parent name, if it exists, otherwise it will be taken from the archive metadata entry name, if it exists, and finally if no other options are available it will use the name of the mainfile.
PublicationReference¶
description: A base section that can be used for references.
inherits from: nomad.datamodel.data.ArchiveSection
properties:
name | type | |
---|---|---|
DOI_number | str |
The DOI number referring to the published paper or dataset where the data can be found. Examples: 10.1021/jp5126624 10.1016/j.electacta.2017.06.032 |
publication_authors | str |
The authors of the publication. If several authors, end with et al. If the DOI number is given correctly, this will be extracted automatically from www.crossref.orgshape=['*'] |
publication_date | nomad.metainfo.data_type.Datetime |
Publication date. If the DOI number is given correctly, this will be extracted automatically from www.crossref.org |
journal | str |
Name of the journal where the data is published. If the DOI number is given correctly, this will be extracted automatically from www.crossref.org |
publication_title | str |
Title of the publication. If the DOI number is given correctly, this will be extracted automatically from www.crossref.org |
normalization:
- If a DOI number is provided, retrieves publication details from the CrossRef API.
- Populates the
publication_authors
,journal
,publication_title
, andpublication_date
fields based on the CrossRef response. - Ensures the DOI number has the prefix
https://doi.org/
. - Updates the archive's metadata references with the DOI number if it is not already present.
HDF5Normalizer¶
inherits from: nomad.datamodel.data.ArchiveSection
normalization without further documentation