Skip to content

MIAPPE v1.1

MIAPPE (Minimum Information About Plant Phenotyping Experiments) is a metadata standard for describing plant phenotyping studies. It was developed by the plant science community to enable consistent reporting of field trials, greenhouse experiments, and growth chamber studies.

MIAPPE focuses on observation units (individual plants, plots, or samples) and the observed variables (traits) measured on them. It captures the biological materials used, environmental conditions, and experimental factors that may affect plant phenotypes.

The standard is maintained by the MIAPPE consortium and is widely used in plant research databases and breeding information systems.

flowchart TB
    subgraph core["Core"]
        INV[Investigation]
        STU[Study]
        PER[Person]
    end

    subgraph material["Plant Material"]
        BM[BiologicalMaterial]
        MS[MaterialSource]
    end

    subgraph observation["Observations"]
        OU[ObservationUnit]
        OV[ObservedVariable]
        SAM[Sample]
    end

    subgraph experiment["Experiment Context"]
        FAC[Factor]
        FV[FactorValue]
        EVT[Event]
        ENV[Environment]
        LOC[Location]
    end

    subgraph output["Output"]
        DF[DataFile]
    end

    %% Investigation relationships
    INV --> STU
    INV --> PER

    %% Study relationships
    STU --> BM
    STU --> OU
    STU --> OV
    STU --> FAC
    STU --> EVT
    STU --> ENV
    STU --> DF
    STU --> PER
    STU --> LOC

    %% BiologicalMaterial relationships
    BM --> MS

    %% Factor relationships
    FAC --> FV
    FV -.->|factor_id| FAC

    %% ObservationUnit relationships
    OU --> SAM
    OU --> FV
    OU -.->|biological_material_id| BM

    %% Event relationships
    EVT -.->|observation_unit_ids| OU

    %% Sample relationships
    SAM -.->|observation_unit_id| OU

    classDef core fill:#e8f5e9,stroke:#4caf50,stroke-width:2px
    classDef material fill:#fff3e0,stroke:#ff9800,stroke-width:2px
    classDef obs fill:#e3f2fd,stroke:#2196f3,stroke-width:2px
    classDef exp fill:#fce4ec,stroke:#e91e63,stroke-width:2px
    classDef out fill:#f3e5f5,stroke:#9c27b0,stroke-width:2px

    class INV,STU,PER core
    class BM,MS material
    class OU,OV,SAM obs
    class FAC,FV,EVT,ENV,LOC exp
    class DF out

Entities

Category Entities
Core Investigation, Study, Person
Plant Material BiologicalMaterial, MaterialSource
Observations ObservationUnit, ObservedVariable, Sample
Experiment Context Factor, FactorValue, Event, Environment, Location
Output DataFile

Entity-Relationship Diagram

The following ERD shows all 138 fields across the 14 MIAPPE entities: 123 scalar fields shown in entity boxes, 15 relationship fields shown as lines between entities. Fields marked with PK are primary keys, FK indicates foreign keys.

erDiagram
    Investigation {
        string unique_id PK
        string title
        string description
        date submission_date
        date public_release_date
        uri license
        string miappe_version
        list associated_publications
    }

    Study {
        string unique_id PK
        string investigation_id FK
        string title
        string description
        datetime start_date
        datetime end_date
        string contact_institution
        string experimental_site_name
        float latitude
        float longitude
        float altitude
        string experimental_design_type
        string experimental_design_description
        list observation_unit_level_hierarchy
        string observation_unit_description
        string growth_facility_type
        string cultural_practices
        uri map_of_experimental_design
    }

    Person {
        string investigation_id FK
        string study_id FK
        string name PK
        string email
        string institution
        string role
        string orcid
    }

    BiologicalMaterial {
        string unique_id PK
        string study_id FK
        string organism
        string genus
        string species
        string infraspecific_name
        string accession_number
        string biological_material_description
        float biological_material_latitude
        float biological_material_longitude
        float biological_material_altitude
        string biological_material_coordinates_uncertainty
        string biological_material_preprocessing
        list external_references
    }

    ObservationUnit {
        string unique_id PK
        string study_id FK
        string observation_unit_type
        string biological_material_id FK
        string spatial_distribution_type
        string spatial_distribution
        string observation_unit_x_ref
        string observation_unit_y_ref
        string observation_unit_block
        string observation_unit_replicate
        string entry_type
        string observation_level
        string observation_level_code
        list external_references
    }

    ObservedVariable {
        string unique_id PK
        string study_id FK
        string name
        string trait
        string trait_accession_number
        string trait_description
        string method
        string method_accession_number
        string method_description
        string scale
        string scale_accession_number
        string scale_description
        string time_scale
        uri reference
    }

    Factor {
        string unique_id PK
        string study_id FK
        string name
        string description
        string factor_type
    }

    FactorValue {
        string unique_id PK
        string factor_id FK
        string value
        string description
    }

    Event {
        string unique_id PK
        string study_id FK
        string event_type
        datetime date
        datetime end_date
        string description
        list observation_unit_ids
        string event_accession_number
    }

    Environment {
        string unique_id PK
        string study_id FK
        string parameter
        string parameter_accession_number
        string value
        string unit
        datetime date
        string description
    }

    Sample {
        string unique_id PK
        string observation_unit_id FK
        string plant_structural_development_stage
        string plant_anatomical_entity
        datetime collection_date
        string description
        list external_references
    }

    DataFile {
        string unique_id PK
        string study_id FK
        string name
        uri link
        string description
        string version
        string file_type
    }

    Location {
        string unique_id PK
        string study_id FK
        string name
        string abbreviation
        string country
        string country_code
        float latitude
        float longitude
        float altitude
        string description
        string address
        string location_type
    }

    MaterialSource {
        string unique_id PK
        string name
        string description
        string institute_code
        string country
        string address
        float latitude
        float longitude
    }

    Investigation ||--o{ Study : contains
    Investigation ||--o{ Person : contacts
    Study ||--o{ Person : persons
    Study ||--o| Location : geographic_location
    Study ||--o{ DataFile : data_files
    Study ||--o{ BiologicalMaterial : biological_materials
    Study ||--o{ ObservationUnit : observation_units
    Study ||--o{ ObservedVariable : observed_variables
    Study ||--o{ Factor : factors
    Study ||--o{ Event : events
    Study ||--o{ Environment : environments
    BiologicalMaterial ||--o| MaterialSource : material_source
    ObservationUnit ||--o{ Sample : samples
    ObservationUnit ||--o{ FactorValue : factor_values
    ObservationUnit }o--|| BiologicalMaterial : biological_material_id
    Factor ||--o{ FactorValue : values
    FactorValue }o--|| Factor : factor_id
    Event }o--o{ ObservationUnit : observation_unit_ids
    Sample }o--|| ObservationUnit : observation_unit_id

Key Concepts

Observation-centric: Unlike ISA's process workflows, MIAPPE centers on ObservationUnits - the things being measured. An observation unit can be a single plant, a pot, a plot, or any grouping of plants that receives the same treatment and is measured together.

Biological material: Plants are described through BiologicalMaterial entities that capture species, accession, and origin information. MaterialSource tracks where the genetic material came from (seed bank, collection site, etc.).

Observed variables: Measurements are defined by ObservedVariable entities using a trait/method/scale triplet. The trait describes what is measured (e.g., "plant height"), the method describes how (e.g., "ruler measurement"), and the scale describes the units and range (e.g., "centimeters, 0-300").

Environmental context: Event entities track things that happen during the experiment (planting, irrigation, harvest). Environment entities describe growth conditions (temperature, humidity, light).

Entity Linking

Every nested entity includes a parent reference field that links it to its container. This enables:

  • Round-trip Excel export/import without losing relationships
  • Flat tabular representation for spreadsheet workflows
  • Cross-entity validation and referential integrity
Entity Parent Field Description
Study investigation_id Links to parent Investigation
Person investigation_id or study_id Links to Investigation (as contact) or Study (as personnel)
BiologicalMaterial study_id Links to parent Study
ObservationUnit study_id Links to parent Study
ObservedVariable study_id Links to parent Study
Factor study_id Links to parent Study
FactorValue factor_id Links to parent Factor
Event study_id Links to parent Study
Environment study_id Links to parent Study
DataFile study_id Links to parent Study
Location study_id Links to parent Study
Sample observation_unit_id Links to parent ObservationUnit

References

Official MIAPPE specifications and resources:

Resource URL
MIAPPE Specification https://www.miappe.org/
MIAPPE v1.1 Checklist https://github.com/MIAPPE/MIAPPE/tree/master/MIAPPE_Checklist-Data-Model-v1.1
MIAPPE GitHub https://github.com/MIAPPE/MIAPPE
BrAPI (implements MIAPPE) https://brapi.org/
Plant Phenotyping Network https://emphasis.plant-phenotyping.eu/

Usage

from metaseed import miappe

m = miappe()

# Create Investigation
inv = m.Investigation(unique_id="INV001", title="Drought study")

# Create Study linked to Investigation
study = m.Study(
    unique_id="STU001",
    investigation_id="INV001",
    title="Field trial 2024"
)

# Create BiologicalMaterial linked to Study
material = m.BiologicalMaterial(
    unique_id="BM001",
    study_id="STU001",
    organism="Zea mays"
)

# Create ObservationUnit linked to Study
obs_unit = m.ObservationUnit(
    unique_id="OU001",
    study_id="STU001",
    observation_unit_type="plant"
)