Skip to content
Merged
Changes from 68 commits
Commits
Show all changes
98 commits
Select commit Hold shift + click to select a range
f49193d
Added specification for the trajectories endpoint
JPBergsma Jul 20, 2021
95092cd
Made corrections to the indentation levels
JPBergsma Jul 20, 2021
a291b59
Multiple small corrections for the trajectories entry
JPBergsma Jul 20, 2021
66556cc
Changed layout JSON code blocks under Examples of a returned trajectory.
JPBergsma Jul 22, 2021
2b841b3
Changed indentation level relationships field and no longer discuss r…
JPBergsma Jul 22, 2021
f4c8e0f
Processed remarks Gian-Marco + minor changes
JPBergsma Jul 26, 2021
05ddb3d
Removed the next_part_trajectory field from the definition as it is a…
JPBergsma Jul 27, 2021
ee8f3dc
Replaced \_ with _ where pandoc did not interpreted \ correctly as es…
JPBergsma Jul 28, 2021
94d2e63
Merge branch 'develop' into JPBergsma_add_Trajectories
JPBergsma Aug 3, 2021
b05bf39
Merge branch 'Materials-Consortia:develop' into JPBergsma_add_Traject…
JPBergsma Aug 23, 2021
fc869a8
added a few more internal links
JPBergsma Aug 30, 2021
5012aed
Merge branch 'Materials-Consortia:develop' into JPBergsma_add_Traject…
JPBergsma Sep 9, 2021
03a194c
Merge branch 'JPBergsma_add_Trajectories' of https://github.com/JPBer…
JPBergsma Sep 9, 2021
0ae7af8
Apply suggestions from code review Giovanni
JPBergsma Sep 9, 2021
7182828
Merge branch 'JPBergsma_add_Trajectories' of https://github.com/JPBer…
JPBergsma Sep 9, 2021
d523efb
added comments Giovani
JPBergsma Sep 13, 2021
84f007c
processed remarks Giovanni
JPBergsma Sep 15, 2021
4dd22d3
Updated examples; specified that the values field is a list; and e fe…
JPBergsma Sep 15, 2021
1ec442d
Placed each sentecnce on a separate line.
JPBergsma Dec 15, 2021
ff99f2e
Merge branch 'develop' into JPBergsma_add_Trajectories
JPBergsma Dec 15, 2021
5ae4993
removed excess tilde
JPBergsma Dec 16, 2021
b52d5a7
Merge branch 'JPBergsma_add_Trajectories' of https://github.com/JPBer…
JPBergsma Dec 16, 2021
e2c7f2c
replaced reference to section 7.3.1-4 with links to the subsections
JPBergsma Dec 16, 2021
18f54c8
added link to "Retrieving trajectory data" from the introduction sect…
JPBergsma Dec 16, 2021
5058ce7
changed the formatting of properties in trajectories section.
JPBergsma Dec 16, 2021
1769178
Corrected spelling mistake
JPBergsma Dec 17, 2021
df284d8
Changed "fields" to "properties at the start of the "Retrieving the t…
JPBergsma Dec 17, 2021
57b801d
Readded uneccesary escape backslashes for underscores so the differen…
JPBergsma Dec 17, 2021
5bbef72
Added example query to show how fields within the reference structure…
JPBergsma Dec 17, 2021
e8af14d
Added that the query parameters first_frame, last_frame and frame_ste…
JPBergsma Dec 17, 2021
e69f8f6
changed frame serialization to frame_serialization_format under in th…
JPBergsma Dec 17, 2021
aed3e17
removed sentence about only returning trajectory data when the proper…
JPBergsma Dec 17, 2021
875f6cc
Removed undetected trailing white space.
JPBergsma Dec 17, 2021
c8d8769
Added missing comma in example available_properties.
JPBergsma Mar 4, 2022
9aadfca
Made the frame index start from 1.
JPBergsma Jun 2, 2022
beaea22
Merge branch 'develop' into JPBergsma_add_Trajectories
JPBergsma Sep 23, 2022
c817004
Processed comments Merkys.
JPBergsma Sep 28, 2022
b51758d
Removed frame and trajectory from Definition of Terms.
JPBergsma Sep 28, 2022
bb6acaa
Further improvements to JSON examples.
JPBergsma Sep 28, 2022
fe6f0d7
Capitalized Structures Entries when referring to section 8.2.
JPBergsma Sep 28, 2022
3789943
removed commas from JSON comment lines.
JPBergsma Sep 29, 2022
5ba755f
Removed lines which stated queries must be performed on the propertie…
JPBergsma Sep 29, 2022
e8c5577
Apply suggestions from code review rartino
JPBergsma Sep 29, 2022
bd3bbd8
processed remark rartino and removed trailing whitespace.
JPBergsma Sep 29, 2022
c32c477
removed trailing white space
JPBergsma Sep 29, 2022
952ef2a
Apply suggestions from code review ml-evs
JPBergsma Oct 4, 2022
4958296
Added extra explanation to field nframes.
JPBergsma Oct 4, 2022
a6cd494
Add remark rartino
JPBergsma Oct 6, 2022
d210a97
Changed MUST to SHOULD for the support level of theg first_frame, las…
JPBergsma Oct 15, 2022
bded2a9
Merge branch 'JPBergsma_add_Trajectories' of https://github.com/JPBer…
JPBergsma Nov 29, 2022
6e82a48
Merge branch 'develop' into JPBergsma_add_Trajectories
JPBergsma Nov 29, 2022
9d0df98
Removed Available properties field.
JPBergsma Dec 7, 2022
c0beb50
Merge branch 'develop' into JPBergsma_add_Trajectories
JPBergsma Dec 7, 2022
a73f5c1
removed last reference to solely using the reference structure for qu…
JPBergsma Dec 7, 2022
a65f586
Removed reference to using the response_field parameter to trigger re…
JPBergsma Dec 8, 2022
7975f03
Merge branch 'develop' into JPBergsma_add_Trajectories
JPBergsma Mar 16, 2023
9b75254
Updated description trajectory endpoint for new ranged property defin…
JPBergsma Mar 20, 2023
68b074e
Updated examples for the changes in the metadata and ranged propertie…
JPBergsma Jun 2, 2023
b5a72e7
Added returned_range_field to example.
JPBergsma Jun 2, 2023
3a0b503
some small changes.
JPBergsma Jun 2, 2023
399c6d7
corrected indexes field in example.
JPBergsma Jun 2, 2023
64714f8
Merge branch 'develop' into JPBergsma_add_Trajectories
JPBergsma Jun 29, 2023
75a97ba
Apply suggestions from code review
JPBergsma Jun 29, 2023
5cd0f98
intermediate state updating trajectory proposal for new developments.
JPBergsma Jun 29, 2023
92d0300
Updated example.
JPBergsma Jun 30, 2023
bea17d9
Small corrections
JPBergsma Jul 4, 2023
b351d46
Apated PR for moving range_ids to property definitions.
JPBergsma Jul 6, 2023
af26757
Changed reference_frame to reference_frames as it is now a list which…
JPBergsma Sep 13, 2023
2023e7f
Update optimade.rst
merkys Jan 18, 2024
68648d0
Update optimade.rst
giovannipizzi Jul 4, 2024
f7b5991
Merge branch 'develop' into JPBergsma_add_Trajectories
giovannipizzi Sep 18, 2025
161098f
Merge remote-tracking branch 'upstream/develop' into JPBergsma_add_Tr…
giovannipizzi Sep 18, 2025
1a28330
Fix during discussion
giovannipizzi Sep 18, 2025
d3be7b6
Adding first version of compact-list representation
giovannipizzi Sep 18, 2025
9388d6d
Rephrasing of an example
giovannipizzi Sep 18, 2025
b54a783
First rephrasing of the trajectory entry
giovannipizzi Sep 18, 2025
43b791d
Reformulated compactable definition after discussion on backward comp…
giovannipizzi Sep 18, 2025
6c7a0f5
Better section reorganization
giovannipizzi Sep 18, 2025
ca80ec7
Update optimade.rst
gmrigna Sep 18, 2025
1617fbb
Update optimade.rst
gmrigna Sep 18, 2025
6102cb1
Update optimade.rst
gmrigna Sep 18, 2025
e8f2c23
Update optimade.rst
gmrigna Sep 18, 2025
f6471b5
Update optimade.rst
gmrigna Sep 18, 2025
e72d94c
Update optimade.rst
gmrigna Sep 18, 2025
76d85ce
Update optimade.rst
gmrigna Sep 18, 2025
52f1caf
Update optimade.rst
gmrigna Sep 18, 2025
8f2999a
Clarifying compactable flag for first dimension in most trajectory pr…
giovannipizzi Sep 18, 2025
ea0052b
Fixing the remaining part of the trajectory endpoint specification
giovannipizzi Sep 18, 2025
a91ca00
Update optimade.rst
gmrigna Sep 19, 2025
c43c83c
Update optimade.rst
gmrigna Sep 19, 2025
b97f52c
Update optimade.rst
gmrigna Sep 19, 2025
7b85318
Update optimade.rst
gmrigna Sep 19, 2025
7d2c99f
Update optimade.rst
gmrigna Sep 19, 2025
6fefbf0
Merge branch 'develop' into JPBergsma_add_Trajectories
rartino Sep 19, 2025
fb9f9e8
Merge branch 'develop' of github.com:Materials-Consortia/OPTIMADE int…
giovannipizzi Sep 19, 2025
f0faac0
Update optimade.rst
giovannipizzi Sep 19, 2025
9db5082
Update optimade.rst
giovannipizzi Sep 19, 2025
5dfa9f7
Merge branch 'develop' into JPBergsma_add_Trajectories
rartino Sep 19, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
200 changes: 197 additions & 3 deletions optimade.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1088,7 +1088,7 @@ Examples:

- :query-url:`http://example.com/optimade/v1/structures?_exmpl_key=A3242DSFJFEJE`
- :query-url:`http://example.com/optimade/v1/structures?_exmpl_warning_verbosity=10`
- :query-url:`http://example.com/optimade/v1/structures?\_exmpl\_filter="elements all in [Al, Si, Ga]"`
- :query-url:`http://example.com/optimade/v1/structures?_exmpl_filter="elements all in [Al, Si, Ga]"`

**Note**: the specification presently makes no attempt to standardize access control mechanisms.
There are security concerns with access control based on URL tokens, and the above example is not to be taken as a recommendation for such a mechanism.
Expand Down Expand Up @@ -1303,6 +1303,7 @@ Example:
"entry_types_by_format": {
"json": [
"structures",
"trajectories",
"calculations"
],
"xml": [
Expand All @@ -1311,6 +1312,7 @@ Example:
},
"available_endpoints": [
"structures",
"trajectories",
"calculations",
"info",
"links"
Expand Down Expand Up @@ -1746,7 +1748,6 @@ The following tokens are used in the filter query component:
- :property:`_exmpl_formula_sum` (a property specific to that database)
- :property:`_exmpl_band_gap`
- :property:`_exmpl_supercell`
- :property:`_exmpl_trajectory`
- :property:`_exmpl_workflow_id`

- **Nested property names** A nested property name is composed of at least two identifiers separated by periods (``.``).
Expand Down Expand Up @@ -2466,6 +2467,7 @@ type
- **Examples**:

- :val:`"structures"`
- :val:`"trajectories"`

immutable\_id
~~~~~~~~~~~~~
Expand Down Expand Up @@ -2522,7 +2524,6 @@ database-provider-specific properties
- :property:`_exmpl_formula_sum`
- :property:`_exmpl_band_gap`
- :property:`_exmpl_supercell`
- :property:`_exmpl_trajectory`
- :property:`_exmpl_workflow_id`

Structures Entries
Expand Down Expand Up @@ -3068,6 +3069,199 @@ structure\_features

- A structure having implicit atoms and using assemblies: :val:`["assemblies", "implicit_atoms"]`

Trajectories Entries
--------------------

- **Description**: The :entry:`trajectories` entry is used to share data belonging to sequences of structures, for example, from molecular dynamics or Monte Carlo simulations.

The individual steps of the trajectories are called frames.
Comment thread
gmrigna marked this conversation as resolved.
Outdated
Some examples of the data that can be shared are the particle positions, the pressure and the energies.
:entry:`trajectories` entries have the properties described in the section `Properties Used by Multiple Entry Types`_ as well as the property `nframes`_ and `reference_frames`_.
Comment thread
giovannipizzi marked this conversation as resolved.
Outdated
Furthermore, :entry:`trajectories` can optionally have relationships and database-specific fields.
The properties defined for the structures endpoint can also be used for trajectories.
In this case the values of these properties are however lists of whatever type has been defined for the original structures property.
This allows these properties to change during the trajectory.
The dimension that corresponds to the steps of the trajectory MUST have :field:`range_id` = :val:`"frames"` for that dimension in its property definition, See `Property Definition keys from JSON Schema`_.

nframes
~~~~~~~

- **Description**: The number of frames in the trajectory as exposed by the API.
Comment thread
gmrigna marked this conversation as resolved.
Outdated
This value may deviate from the number of steps used to calculate the trajectory.
E.g., for a 10 ps simulation with calculation steps of 1 fs where data is stored once every 50 fs, nframes = 200.
Comment thread
gmrigna marked this conversation as resolved.
Outdated
- **Type**: integer
- **Requirements/Conventions**:

- **Support**: MUST be supported by all implementations, i.e., MUST NOT be :val:`null`.
- **Query**: MUST be a queryable property with support for all mandatory filter features.
- The integer value MUST be equal to the length of the trajectory, that is, the number of frames.
- The integer MUST be a positive non-zero value.

- **Querying**:

- A filter that matches trajectories that have exactly 100 frames:
- :filter:`nframes=100`
- A filter that matches trajectories that have between 100 and 1000 frames:
- :filter:`nframes>=100 AND nframes<=1000`

- **Examples**:

- :val:`42`

reference_frames
~~~~~~~~~~~~~~~
Comment thread
merkys marked this conversation as resolved.
Outdated

- **Description**: The indexes of a set of frames that give a good but very brief overview of the trajectory.
Comment thread
gmrigna marked this conversation as resolved.
Outdated
The first frame could for example be a starting configuration, the second a transition state and the third the final state.
Comment thread
gmrigna marked this conversation as resolved.
Outdated
- **Type**: list of integers
- **Requirements/Conventions**: The values MUST be larger than or equal to 0 and less than nframes.

Comment thread
JPBergsma marked this conversation as resolved.
- **Support**: OPTIONAL support in implementations, i.e., MAY be :val:`null`.
- **Query**: Support for queries on this property is OPTIONAL.
If supported, filters MAY support only a subset of comparison operators.

- **Examples**:

- :val:`[0, 397, 1000]`


Examples of a returned trajectory
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This is an example of the data field of a JSON object that could be returned after the following query:
:query-url:`http://example.com/optimade/v1/trajectories/traj00000001`

.. code:: jsonc

{
"data":{
"id": "traj00000001",
"type": "trajectories",
"attributes": {
"last_modified":"2021-07-16T18:02:03Z",
"elements": [["H","O"]],
"nelements": [2],
"elements_ratios": [[0.666667,0.333333]],
"chemical_formula_descriptive": ["H2O"],
"chemical_formula_reduced": ["H2O"],
"chemical_formula_anonymous": ["A2B"],
"dimension_types":[[0,0,0]],
"nperiodic_dimensions": [0],
"lattice_vectors" : [[[4.0,0.0,0.0],[0.0,4.0,0.0],[0.0,0.0,4.0]]],
"cartesian_site_positions" : null,
"nsites":[3],
"species_at_sites":[["O1","H1","H2"]],
"species":[[
{
"name":"O1",
"chemical_symbols":["O"],
"concentration":[1.0]
},
{
"name":"H1",
"chemical_symbols":["H"],
"concentration":[1.0]
},
{
"name":"H2",
"chemical_symbols":["H"],
"concentration":[1.0]
}
]],
"reference_frames": [1],
"nframes": [360],
Comment thread
giovannipizzi marked this conversation as resolved.
Outdated
"_exmpl_temperature": null,
"_exmpl_ekin": null
},
"meta":{
"property_metadata":{
"cartesian_site_positions":{
"range":{
"indexable_dim": ["frames"],
"data_range": [{
"start": 1,
"step": 1,
"stop": 360,
},{
"start": 1,
"step": 1,
"stop": 3,
},{
"start": 1,
"step": 1,
"stop": 3,
}],
"layout":"dense",
"nvalues": 3240
},
},
"_exmpl_temperature":{
"range": {
"nvalues": 144,
"indexable_dim": ["frames"],
"data_range": [
{
"start": 1,
"stop": 360,
"step": null
}
],
"layout": "sparse"
}
},
"_exmpl_ekin":{
"range": {
"nvalues": 180,
"indexable_dim": ["frames"],
"data_range": [
{
"start": 1,
"stop": 360,
"step": 2
}
],
"layout":"dense",
}
}
},
"partial_data_links": {
"cartesian_site_positions": [
{
"format": "jsonlines",
"link": "https://example.org/optimade/v1.2/extensions/partial_data/trajectories/traj00000001/cartesian_site_positions/jsonlines"
},{
"format": "_exmpl_xyz",
"link": "https://example.org/optimade/v1.2/extensions/partial_data/trajectories/traj00000001/cartesian_site_positions/xyz"
},
],
"_exmpl_temperature": [
{
"format": "jsonlines",
"link": "https://example.org/optimade/v1.2/extensions/partial_data/trajectories/traj00000001/temperature/jsonlines"
},
],
"_exmpl_ekin": [
{
"format": "jsonlines",
"link": "https://example.org/optimade/v1.2/extensions/partial_data/trajectories/traj00000001/ekin/jsonlines"
},
]
}
},
"relationships": {
"references": {
"data": [
{
"type": "references",
"id": "dummy/2019"
}
]
}
}
}
//...
}
Comment thread
giovannipizzi marked this conversation as resolved.

Calculations Entries
--------------------

Expand Down