Skip to content

Class: SampleComponent

One constituent of one sample: a protein, a nucleic acid, a small molecule, a virus particle, an organelle, a cell, a membrane mimetic. The inventory of what a sample contains, one row per kind of thing in it, so that a sample can hold any mixture and each thing in it can be named, given a role, counted and pointed at. SampleComponentInteraction rows say which components are expected or observed to act on which. Sample.sample_type remains the one-word summary; this table is the detail behind it.

URI: lambda:SampleComponent

classDiagram class SampleComponent click SampleComponent href "../SampleComponent/" NamedThing <|-- SampleComponent click NamedThing href "../NamedThing/" SampleComponent : component_type SampleComponent --> "1" SampleComponentTypeEnum : component_type click SampleComponentTypeEnum href "../SampleComponentTypeEnum/" SampleComponent : concentration SampleComponent --> "0..1" QuantityValue : concentration click QuantityValue href "../QuantityValue/" SampleComponent : copy_number SampleComponent : description SampleComponent : id SampleComponent : nucleic_acid_id SampleComponent --> "0..1" NucleicAcid : nucleic_acid_id click NucleicAcid href "../NucleicAcid/" SampleComponent : ontology_term SampleComponent --> "0..1" OntologyTerm : ontology_term click OntologyTerm href "../OntologyTerm/" SampleComponent : protein_id SampleComponent --> "0..1" Protein : protein_id click Protein href "../Protein/" SampleComponent : role SampleComponent --> "0..1" SampleComponentRoleEnum : role click SampleComponentRoleEnum href "../SampleComponentRoleEnum/" SampleComponent : sample_id SampleComponent --> "1" Sample : sample_id click Sample href "../Sample/" SampleComponent : small_molecule_id SampleComponent --> "0..1" SmallMolecule : small_molecule_id click SmallMolecule href "../SmallMolecule/" SampleComponent : title

Inheritance

Slots

Name Cardinality and Range Description Inheritance
sample_id 1
Sample
The sample this component is part of direct
component_type 1
SampleComponentTypeEnum
What kind of thing this component is direct
protein_id 0..1
Protein
The Protein record, where component_type is protein direct
nucleic_acid_id 0..1
NucleicAcid
The NucleicAcid record, where component_type is nucleic_acid direct
small_molecule_id 0..1
SmallMolecule
The SmallMolecule record, where component_type is small_molecule direct
ontology_term 0..1
OntologyTerm
Ontology term naming a component that has no entity table: the NCBI Taxonomy ... direct
role 0..1
SampleComponentRoleEnum
Part this component plays in the sample direct
copy_number 0..1
Integer
Copies of this component per assembly in the sample (4 for the subunits of a ... direct
concentration 0..1
QuantityValue
Concentration of this component in the sample as prepared (1 mM ATP, 0 direct
id 1
Uriorcurie
Globally unique identifier as an IRI or CURIE for machine processing and exte... NamedThing
title 0..1
String
A human-readable name or title for this entity NamedThing
description 0..1
String
A detailed textual description of this entity NamedThing

Usages

used by used in type used
Dataset sample_components range SampleComponent
SampleComponentInteraction subject_id range SampleComponent
SampleComponentInteraction object_id range SampleComponent

Rules

Rule Applied Preconditions Postconditions Elseconditions
slot_conditions {'component_type': {'equals_string': 'protein'}} {'protein_id': {'required': True}}

Rule Applied Preconditions Postconditions Elseconditions
slot_conditions {'component_type': {'equals_string': 'nucleic_acid'}} {'nucleic_acid_id': {'required': True}}

Rule Applied Preconditions Postconditions Elseconditions
slot_conditions {'component_type': {'equals_string': 'small_molecule'}} {'small_molecule_id': {'required': True}}

Rule Applied Preconditions Postconditions Elseconditions
slot_conditions {'protein_id': {'value_presence': 'PRESENT'}} {'component_type': {'equals_string': 'protein'}}

Rule Applied Preconditions Postconditions Elseconditions
slot_conditions {'nucleic_acid_id': {'value_presence': 'PRESENT'}} {'component_type': {'equals_string': 'nucleic_acid'}}

Rule Applied Preconditions Postconditions Elseconditions
slot_conditions {'small_molecule_id': {'value_presence': 'PRESENT'}} {'component_type': {'equals_string': 'small_molecule'}}

Comments

  • A component that has an entity record points at it: protein_id for a protein, nucleic_acid_id for a strand, small_molecule_id for a ligand, ion, lipid or detergent. Exactly one of the three is set, and it matches component_type. A component with no entity table - a virus particle, an organelle, a cell, a nanodisc - is named in title and, where an ontology has a term for it, in ontology_term: NCBITaxon for a virus, GO cellular component for an organelle, CL for a cell type, UBERON for a tissue.
  • For a protein or nucleic acid the component row is the entry in the inventory and the handle an interaction points at. SampleProteinAssociation and SampleNucleicAcidAssociation, keyed on the same sample and entity, carry the per-preparation detail of the biopolymer: residue range, chain ids, modifications, measured mass, construct. A dataset that records no interactions may carry the associations alone. Where role or copy_number is set on both the component and the association, the two must agree.

Identifier and Mapping Information

Schema Source

  • from schema: http://w3id.org/lambda/

Mappings

Mapping Type Mapped Value
self lambda:SampleComponent
native lambda:SampleComponent
related IHMCIF:_ihm_struct_assembly_details, mmCIF:_entity

LinkML Source

Direct

name: SampleComponent
description: 'One constituent of one sample: a protein, a nucleic acid, a small molecule,
  a virus particle, an organelle, a cell, a membrane mimetic. The inventory of what
  a sample contains, one row per kind of thing in it, so that a sample can hold any
  mixture and each thing in it can be named, given a role, counted and pointed at.
  SampleComponentInteraction rows say which components are expected or observed to
  act on which. Sample.sample_type remains the one-word summary; this table is the
  detail behind it.'
comments:
- 'A component that has an entity record points at it: protein_id for a protein, nucleic_acid_id
  for a strand, small_molecule_id for a ligand, ion, lipid or detergent. Exactly one
  of the three is set, and it matches component_type. A component with no entity table
  - a virus particle, an organelle, a cell, a nanodisc - is named in title and, where
  an ontology has a term for it, in ontology_term: NCBITaxon for a virus, GO cellular
  component for an organelle, CL for a cell type, UBERON for a tissue.'
- 'For a protein or nucleic acid the component row is the entry in the inventory and
  the handle an interaction points at. SampleProteinAssociation and SampleNucleicAcidAssociation,
  keyed on the same sample and entity, carry the per-preparation detail of the biopolymer:
  residue range, chain ids, modifications, measured mass, construct. A dataset that
  records no interactions may carry the associations alone. Where role or copy_number
  is set on both the component and the association, the two must agree.'
from_schema: http://w3id.org/lambda/
related_mappings:
- IHMCIF:_ihm_struct_assembly_details
- mmCIF:_entity
is_a: NamedThing
attributes:
  sample_id:
    name: sample_id
    description: The sample this component is part of
    from_schema: http://w3id.org/lambda/
    rank: 1000
    domain_of:
    - SampleComponent
    - SamplePreparation
    - StudySampleAssociation
    - ExperimentSampleAssociation
    - SampleProteinAssociation
    - SampleNucleicAcidAssociation
    - SampleComponentInteraction
    range: Sample
    required: true
  component_type:
    name: component_type
    description: What kind of thing this component is
    from_schema: http://w3id.org/lambda/
    rank: 1000
    domain_of:
    - SampleComponent
    range: SampleComponentTypeEnum
    required: true
  protein_id:
    name: protein_id
    description: The Protein record, where component_type is protein
    from_schema: http://w3id.org/lambda/
    domain_of:
    - ProteinConstruct
    - SampleComponent
    - SampleProteinAssociation
    - ProteinAnnotation
    - ConformationalEnsemble
    range: Protein
  nucleic_acid_id:
    name: nucleic_acid_id
    description: The NucleicAcid record, where component_type is nucleic_acid
    from_schema: http://w3id.org/lambda/
    rank: 1000
    domain_of:
    - SampleComponent
    - SampleNucleicAcidAssociation
    range: NucleicAcid
  small_molecule_id:
    name: small_molecule_id
    description: The SmallMolecule record, where component_type is small_molecule
    from_schema: http://w3id.org/lambda/
    rank: 1000
    domain_of:
    - SampleComponent
    range: SmallMolecule
  ontology_term:
    name: ontology_term
    description: 'Ontology term naming a component that has no entity table: the NCBI
      Taxonomy term for a virus particle (NCBITaxon:11676), the GO cellular component
      for an organelle (GO:0005840 for ribosome), the Cell Ontology term for a cell,
      the UBERON term for a tissue.'
    from_schema: http://w3id.org/lambda/
    rank: 1000
    domain_of:
    - SampleComponent
    range: OntologyTerm
  role:
    name: role
    description: Part this component plays in the sample
    from_schema: http://w3id.org/lambda/
    rank: 1000
    domain_of:
    - SampleComponent
    - StudySampleAssociation
    - ExperimentSampleAssociation
    - SampleProteinAssociation
    - SampleNucleicAcidAssociation
    - ExperimentInstrumentAssociation
    - StudyPersonAssociation
    - ExperimentPersonAssociation
    - WorkflowPersonAssociation
    - StudyOrganizationAssociation
    - PersonOrganizationAssociation
    range: SampleComponentRoleEnum
  copy_number:
    name: copy_number
    description: Copies of this component per assembly in the sample (4 for the subunits
      of a homotetramer, 2 for two zinc ions per monomer). Omit when unknown rather
      than assuming 1.
    from_schema: http://w3id.org/lambda/
    exact_mappings:
    - mmCIF:_entity.pdbx_number_of_molecules
    rank: 1000
    domain_of:
    - SampleComponent
    - SampleProteinAssociation
    - SampleNucleicAcidAssociation
    range: integer
  concentration:
    name: concentration
    description: Concentration of this component in the sample as prepared (1 mM ATP,
      0.02 % DDM, 5 mM MgCl2). Sample.concentration is the concentration of the sample
      as a whole, usually of its target.
    from_schema: http://w3id.org/lambda/
    domain_of:
    - Sample
    - SampleComponent
    range: QuantityValue
    inlined: true
rules:
- preconditions:
    slot_conditions:
      component_type:
        name: component_type
        equals_string: protein
  postconditions:
    slot_conditions:
      protein_id:
        name: protein_id
        required: true
  description: A protein component points at its Protein record
- preconditions:
    slot_conditions:
      component_type:
        name: component_type
        equals_string: nucleic_acid
  postconditions:
    slot_conditions:
      nucleic_acid_id:
        name: nucleic_acid_id
        required: true
  description: A nucleic acid component points at its NucleicAcid record
- preconditions:
    slot_conditions:
      component_type:
        name: component_type
        equals_string: small_molecule
  postconditions:
    slot_conditions:
      small_molecule_id:
        name: small_molecule_id
        required: true
  description: A small molecule component points at its SmallMolecule record
- preconditions:
    slot_conditions:
      protein_id:
        name: protein_id
        value_presence: PRESENT
  postconditions:
    slot_conditions:
      component_type:
        name: component_type
        equals_string: protein
  description: Only a protein component points at a protein record
- preconditions:
    slot_conditions:
      nucleic_acid_id:
        name: nucleic_acid_id
        value_presence: PRESENT
  postconditions:
    slot_conditions:
      component_type:
        name: component_type
        equals_string: nucleic_acid
  description: Only a nucleic acid component points at a nucleic acid record
- preconditions:
    slot_conditions:
      small_molecule_id:
        name: small_molecule_id
        value_presence: PRESENT
  postconditions:
    slot_conditions:
      component_type:
        name: component_type
        equals_string: small_molecule
  description: Only a small molecule component points at a small molecule record

Induced

name: SampleComponent
description: 'One constituent of one sample: a protein, a nucleic acid, a small molecule,
  a virus particle, an organelle, a cell, a membrane mimetic. The inventory of what
  a sample contains, one row per kind of thing in it, so that a sample can hold any
  mixture and each thing in it can be named, given a role, counted and pointed at.
  SampleComponentInteraction rows say which components are expected or observed to
  act on which. Sample.sample_type remains the one-word summary; this table is the
  detail behind it.'
comments:
- 'A component that has an entity record points at it: protein_id for a protein, nucleic_acid_id
  for a strand, small_molecule_id for a ligand, ion, lipid or detergent. Exactly one
  of the three is set, and it matches component_type. A component with no entity table
  - a virus particle, an organelle, a cell, a nanodisc - is named in title and, where
  an ontology has a term for it, in ontology_term: NCBITaxon for a virus, GO cellular
  component for an organelle, CL for a cell type, UBERON for a tissue.'
- 'For a protein or nucleic acid the component row is the entry in the inventory and
  the handle an interaction points at. SampleProteinAssociation and SampleNucleicAcidAssociation,
  keyed on the same sample and entity, carry the per-preparation detail of the biopolymer:
  residue range, chain ids, modifications, measured mass, construct. A dataset that
  records no interactions may carry the associations alone. Where role or copy_number
  is set on both the component and the association, the two must agree.'
from_schema: http://w3id.org/lambda/
related_mappings:
- IHMCIF:_ihm_struct_assembly_details
- mmCIF:_entity
is_a: NamedThing
attributes:
  sample_id:
    name: sample_id
    description: The sample this component is part of
    from_schema: http://w3id.org/lambda/
    rank: 1000
    alias: sample_id
    owner: SampleComponent
    domain_of:
    - SampleComponent
    - SamplePreparation
    - StudySampleAssociation
    - ExperimentSampleAssociation
    - SampleProteinAssociation
    - SampleNucleicAcidAssociation
    - SampleComponentInteraction
    range: Sample
    required: true
  component_type:
    name: component_type
    description: What kind of thing this component is
    from_schema: http://w3id.org/lambda/
    rank: 1000
    alias: component_type
    owner: SampleComponent
    domain_of:
    - SampleComponent
    range: SampleComponentTypeEnum
    required: true
  protein_id:
    name: protein_id
    description: The Protein record, where component_type is protein
    from_schema: http://w3id.org/lambda/
    alias: protein_id
    owner: SampleComponent
    domain_of:
    - ProteinConstruct
    - SampleComponent
    - SampleProteinAssociation
    - ProteinAnnotation
    - ConformationalEnsemble
    range: Protein
  nucleic_acid_id:
    name: nucleic_acid_id
    description: The NucleicAcid record, where component_type is nucleic_acid
    from_schema: http://w3id.org/lambda/
    rank: 1000
    alias: nucleic_acid_id
    owner: SampleComponent
    domain_of:
    - SampleComponent
    - SampleNucleicAcidAssociation
    range: NucleicAcid
  small_molecule_id:
    name: small_molecule_id
    description: The SmallMolecule record, where component_type is small_molecule
    from_schema: http://w3id.org/lambda/
    rank: 1000
    alias: small_molecule_id
    owner: SampleComponent
    domain_of:
    - SampleComponent
    range: SmallMolecule
  ontology_term:
    name: ontology_term
    description: 'Ontology term naming a component that has no entity table: the NCBI
      Taxonomy term for a virus particle (NCBITaxon:11676), the GO cellular component
      for an organelle (GO:0005840 for ribosome), the Cell Ontology term for a cell,
      the UBERON term for a tissue.'
    from_schema: http://w3id.org/lambda/
    rank: 1000
    alias: ontology_term
    owner: SampleComponent
    domain_of:
    - SampleComponent
    range: OntologyTerm
  role:
    name: role
    description: Part this component plays in the sample
    from_schema: http://w3id.org/lambda/
    rank: 1000
    alias: role
    owner: SampleComponent
    domain_of:
    - SampleComponent
    - StudySampleAssociation
    - ExperimentSampleAssociation
    - SampleProteinAssociation
    - SampleNucleicAcidAssociation
    - ExperimentInstrumentAssociation
    - StudyPersonAssociation
    - ExperimentPersonAssociation
    - WorkflowPersonAssociation
    - StudyOrganizationAssociation
    - PersonOrganizationAssociation
    range: SampleComponentRoleEnum
  copy_number:
    name: copy_number
    description: Copies of this component per assembly in the sample (4 for the subunits
      of a homotetramer, 2 for two zinc ions per monomer). Omit when unknown rather
      than assuming 1.
    from_schema: http://w3id.org/lambda/
    exact_mappings:
    - mmCIF:_entity.pdbx_number_of_molecules
    rank: 1000
    alias: copy_number
    owner: SampleComponent
    domain_of:
    - SampleComponent
    - SampleProteinAssociation
    - SampleNucleicAcidAssociation
    range: integer
  concentration:
    name: concentration
    description: Concentration of this component in the sample as prepared (1 mM ATP,
      0.02 % DDM, 5 mM MgCl2). Sample.concentration is the concentration of the sample
      as a whole, usually of its target.
    from_schema: http://w3id.org/lambda/
    alias: concentration
    owner: SampleComponent
    domain_of:
    - Sample
    - SampleComponent
    range: QuantityValue
    inlined: true
  id:
    name: id
    description: Globally unique identifier as an IRI or CURIE for machine processing
      and external references. Used for linking data across systems and semantic web
      integration.
    from_schema: http://w3id.org/lambda/
    rank: 1000
    identifier: true
    alias: id
    owner: SampleComponent
    domain_of:
    - NamedThing
    - Attribute
    range: uriorcurie
    required: true
  title:
    name: title
    description: A human-readable name or title for this entity
    from_schema: http://w3id.org/lambda/
    rank: 1000
    slot_uri: dcterms:title
    alias: title
    owner: SampleComponent
    domain_of:
    - NamedThing
    range: string
  description:
    name: description
    description: A detailed textual description of this entity
    from_schema: http://w3id.org/lambda/
    rank: 1000
    alias: description
    owner: SampleComponent
    domain_of:
    - NamedThing
    - AttributeGroup
    - SampleComponentInteraction
    range: string
rules:
- preconditions:
    slot_conditions:
      component_type:
        name: component_type
        equals_string: protein
  postconditions:
    slot_conditions:
      protein_id:
        name: protein_id
        required: true
  description: A protein component points at its Protein record
- preconditions:
    slot_conditions:
      component_type:
        name: component_type
        equals_string: nucleic_acid
  postconditions:
    slot_conditions:
      nucleic_acid_id:
        name: nucleic_acid_id
        required: true
  description: A nucleic acid component points at its NucleicAcid record
- preconditions:
    slot_conditions:
      component_type:
        name: component_type
        equals_string: small_molecule
  postconditions:
    slot_conditions:
      small_molecule_id:
        name: small_molecule_id
        required: true
  description: A small molecule component points at its SmallMolecule record
- preconditions:
    slot_conditions:
      protein_id:
        name: protein_id
        value_presence: PRESENT
  postconditions:
    slot_conditions:
      component_type:
        name: component_type
        equals_string: protein
  description: Only a protein component points at a protein record
- preconditions:
    slot_conditions:
      nucleic_acid_id:
        name: nucleic_acid_id
        value_presence: PRESENT
  postconditions:
    slot_conditions:
      component_type:
        name: component_type
        equals_string: nucleic_acid
  description: Only a nucleic acid component points at a nucleic acid record
- preconditions:
    slot_conditions:
      small_molecule_id:
        name: small_molecule_id
        value_presence: PRESENT
  postconditions:
    slot_conditions:
      component_type:
        name: component_type
        equals_string: small_molecule
  description: Only a small molecule component points at a small molecule record