Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementing additions for bugfixes when parsing config and results f… #330

Open
wants to merge 1 commit into
base: apm_app
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<!--
# NeXus - Neutron and X-ray Common Data Format
#
# Copyright (C) 2014-2025 NeXus International Advisory Committee (NIAC)
# Copyright (C) 2025-2025 NeXus International Advisory Committee (NIAC)
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
Expand All @@ -29,7 +29,7 @@

This is an application definition for the common NFDI-MatWerk/FAIRmat infrastructure
use case IUC09 that explores how to improve the organization and results storage of the
CompositionSpace software using NeXus.
CompositionSpace tool by using the NeXus data model and semantics.
</doc>
<!--by default for appdefs the value of the exists keyword is required unless it is explicitly specified differently-->
<group type="NXentry" minOccurs="1" maxOccurs="1">
Expand Down
79 changes: 54 additions & 25 deletions contributed_definitions/NXapm_compositionspace_results.nxdl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<!--
# NeXus - Neutron and X-ray Common Data Format
#
# Copyright (C) 2014-2025 NeXus International Advisory Committee (NIAC)
# Copyright (C) 2025-2025 NeXus International Advisory Committee (NIAC)
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
Expand Down Expand Up @@ -81,6 +81,35 @@ for if desired all the dependencies and libraries-->
</group>
<!--results-->
<group type="NXuser" optional="true"/>
<group name="specimen" type="NXsample">
<doc>
Contextualize back to the specimen from which the
dataset was collected that was here analyzed with
CompositionSpace tool.
</doc>
<field name="type" type="NX_CHAR">
<doc>
A qualifier whether the specimen is a real one or a virtual one.
</doc>
<enumeration>
<item value="experiment"/>
<item value="simulation"/>
</enumeration>
</field>
<field name="atom_types" type="NX_CHAR">
<doc>
List of comma-separated elements from the periodic table that are
contained in the specimen. If the specimen substance has multiple
components, all elements from each component must be included in
`atom_types`.

The purpose of the field is to offer research data management systems an
opportunity to parse the relevant elements without having to interpret
these from the resources pointed to by parent_identifier or walk through
eventually deeply nested groups in data instances.
</doc>
</field>
</group>
<group name="voxelization" type="NXprocess" minOccurs="0" maxOccurs="1">
<doc>
Step during which the point cloud is discretized to compute element-specific composition fields.
Expand All @@ -89,22 +118,22 @@ for if desired all the dependencies and libraries-->

Using a discretization grid that is larger than the average distance between reconstructed ion positions
reduces computational costs. This is the key idea of the CompositionSpace tool compared to other methods
used in atom probe for characterizing microstructural features using the ion position data directly.
used in atom probe for characterizing microstructural features that use the ion position data directly.
</doc>
<field name="sequence_index" type="NX_POSINT">
<enumeration>
<item value="1"/>
</enumeration>
</field>
<group name="cg_grid" type="NXcg_grid">
<field name="dimensionality" type="NX_POSINT" units="NX_UNITLESS">
<field name="dimensionality" type="NX_POSINT">
<enumeration>
<item value="3"/>
</enumeration>
</field>
<field name="cardinality" type="NX_POSINT" units="NX_UNITLESS"/>
<field name="origin" type="NX_NUMBER" units="NX_LENGTH">
<dimensions rank="1">
<field name="cardinality" type="NX_POSINT"/>
<field name="origin" type="NX_NUMBER">
<dimensions>
<dim index="1" value="grid_dim"/>
</dimensions>
</field>
Expand All @@ -113,13 +142,13 @@ for if desired all the dependencies and libraries-->
<item value="cubic"/>
</enumeration>
</field>
<field name="cell_dimensions" type="NX_NUMBER" units="NX_LENGTH">
<dimensions rank="1">
<field name="cell_dimensions" type="NX_NUMBER">
<dimensions>
<dim index="1" value="grid_dim"/>
</dimensions>
</field>
<field name="extent" type="NX_POSINT" units="NX_UNITLESS">
<dimensions rank="1">
<field name="extent" type="NX_POSINT">
<dimensions>
<dim index="1" value="grid_dim"/>
</dimensions>
</field>
Expand All @@ -128,7 +157,7 @@ for if desired all the dependencies and libraries-->
<doc>
Position of each cell in Euclidean space.
</doc>
<dimensions rank="2">
<dimensions>
<dim index="1" value="n_voxels"/>
<dim index="2" value="grid_dim"/>
</dimensions>
Expand All @@ -137,7 +166,7 @@ for if desired all the dependencies and libraries-->
<doc>
Discrete coordinate of each voxel.
</doc>
<dimensions rank="2">
<dimensions>
<dim index="1" value="n_voxels"/>
<dim index="2" value="grid_dim"/>
</dimensions>
Expand All @@ -147,7 +176,7 @@ for if desired all the dependencies and libraries-->
<doc>
For each ion, the identifier of the voxel into which the ion binned.
</doc>
<dimensions rank="1">
<dimensions>
<dim index="1" value="n_ions"/>
</dimensions>
</field>
Expand All @@ -157,7 +186,7 @@ for if desired all the dependencies and libraries-->
Total number of weight (counts for discretization with a rectangular transfer function)
for the occupancy of each voxel with atoms.
</doc>
<dimensions rank="1">
<dimensions>
<dim index="1" value="n_voxels"/>
</dimensions>
</field>
Expand All @@ -172,7 +201,7 @@ for if desired all the dependencies and libraries-->
Element-specific weight (counts for discretization with a rectangular transfer function)
for the occupancy of each voxel with atoms of this element.
</doc>
<dimensions rank="1">
<dimensions>
<dim index="1" value="n_voxels"/>
</dimensions>
</field>
Expand All @@ -197,7 +226,7 @@ for if desired all the dependencies and libraries-->
<doc>
Element identifier stored sorted in descending order of feature importance.
</doc>
<dimensions rank="1">
<dimensions>
<dim index="1" value="i"/>
</dimensions>
<attribute name="long_name" type="NX_CHAR">
Expand All @@ -211,7 +240,7 @@ for if desired all the dependencies and libraries-->
Element relative feature importance stored sorted in descending order of feature
importance.
</doc>
<dimensions rank="1">
<dimensions>
<dim index="1" value="i"/>
</dimensions>
<attribute name="long_name" type="NX_CHAR">
Expand Down Expand Up @@ -246,7 +275,7 @@ for if desired all the dependencies and libraries-->
<doc>
Explained variance values
</doc>
<dimensions rank="1">
<dimensions>
<dim index="1" value="i"/>
</dimensions>
</field>
Expand All @@ -255,7 +284,7 @@ for if desired all the dependencies and libraries-->
Elements identifier matching those from ENTRY/voxelization/elementID as the
principal component analysis.
</doc>
<dimensions rank="1">
<dimensions>
<dim index="1" value="i"/>
</dimensions>
</field>
Expand Down Expand Up @@ -284,7 +313,7 @@ for if desired all the dependencies and libraries-->
<doc>
y_pred return values of the computation.
</doc>
<dimensions rank="1">
<dimensions>
<dim index="1" value="n_voxels"/>
</dimensions>
</field>
Expand All @@ -301,23 +330,23 @@ for if desired all the dependencies and libraries-->
<doc>
Akaike information criterion values
</doc>
<dimensions rank="1">
<dimensions>
<dim index="1" value="i"/>
</dimensions>
</field>
<field name="axis_bic" type="NX_FLOAT" units="NX_UNITLESS">
<doc>
Bayes information criterion values
</doc>
<dimensions rank="1">
<dimensions>
<dim index="1" value="i"/>
</dimensions>
</field>
<field name="axis_dimension" type="NX_UINT" units="NX_UNITLESS">
<doc>
Actual n_ic_cluster values used
</doc>
<dimensions rank="1">
<dimensions>
<dim index="1" value="i"/>
</dimensions>
</field>
Expand Down Expand Up @@ -358,7 +387,7 @@ for if desired all the dependencies and libraries-->
<doc>
Raw label return values
</doc>
<dimensions rank="1">
<dimensions>
<dim index="1" value="k"/>
</dimensions>
</field>
Expand All @@ -369,7 +398,7 @@ for if desired all the dependencies and libraries-->
Using these identifiers correlated element-wise with the values in the label array
specifies for which voxel in the grid clusters from this process were found.
</doc>
<dimensions rank="1">
<dimensions>
<dim index="1" value="n_voxels"/>
</dimensions>
</field>
Expand Down
54 changes: 43 additions & 11 deletions contributed_definitions/NXapm_paraprobe_nanochem_config.nxdl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<!--
# NeXus - Neutron and X-ray Common Data Format
#
# Copyright (C) 2014-2025 NeXus International Advisory Committee (NIAC)
# Copyright (C) 2025-2025 NeXus International Advisory Committee (NIAC)
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
Expand Down Expand Up @@ -186,6 +186,38 @@ identifier(NX_UINT):-->
<group name="evaporation_id_filter" type="NXsubsampling_filter" optional="true">
<field name="min_incr_max" type="NX_INT"/>
</group>
<group name="decomposition" type="NXmatch_filter">
<doc>
Configuration for the algorithm that defines how the multiplicity of all
those ions are computed that are considered in the delocalization.
</doc>
<field name="method" type="NX_CHAR">
<doc>
TODO
</doc>
<enumeration>
<item value="resolve_unknown"/>
<item value="resolve_point"/>
<item value="resolve_atom"/>
<item value="resolve_element"/>
<item value="resolve_element_charge"/>
<item value="resolve_isotope"/>
<item value="resolve_isotope_charge"/>
</enumeration>
</field>
<field name="nuclide_whitelist" type="NX_UINT" units="NX_UNITLESS">
<doc>
TODO
</doc>
</field>
<!--dim: ???-->
<field name="charge_state_whitelist" type="NX_INT" units="NX_DIMENSIONLESS">
<doc>
TODO
</doc>
</field>
</group>
<!--dim: ???-->
<group name="iontype_filter" type="NXmatch_filter" optional="true">
<field name="method" type="NX_CHAR"/>
<field name="match" type="NX_NUMBER"/>
Expand Down Expand Up @@ -250,7 +282,7 @@ identifier(NX_UINT):-->
Unused values in each row of the matrix are nullified.
Nuclides are identified as hashed nuclide (see :ref:`NXion`) for further details.
</doc>
<dimensions rank="2">
<dimensions>
<dim index="1" value="n_ityp_deloc_cand"/>
<dim index="2" value="n_ivec_max"/>
</dimensions>
Expand All @@ -261,7 +293,7 @@ identifier(NX_UINT):-->
on a cuboidal 3D grid (:ref:`NXcg_grid`). The tool performs as many delocalization
computations as values are specified in grid_resolution.
</doc>
<dimensions rank="1">
<dimensions>
<dim index="1" value="n_grid"/>
</dimensions>
</field>
Expand All @@ -279,7 +311,7 @@ identifier(NX_UINT):-->
The tool performs as many delocalization computations as values are specified
in kernel_variance.
</doc>
<dimensions rank="1">
<dimensions>
<dim index="1" value="n_var"/>
</dimensions>
</field>
Expand Down Expand Up @@ -707,7 +739,7 @@ identifier(NX_UINT):-->
<doc>
Array of nuclide iontypes to filter.
</doc>
<dimensions rank="2">
<dimensions>
<dim index="1" value="n_fct_filter_cand"/>
<dim index="2" value="n_ivec_max"/>
</dimensions>
Expand All @@ -724,7 +756,7 @@ identifier(NX_UINT):-->
which specify how the initial triangles of the mesh should be iteratively
refined by edge splitting and related mesh refinement operations.
</doc>
<dimensions rank="1">
<dimensions>
<dim index="1" value="n_fct_iterations"/>
</dimensions>
</field>
Expand All @@ -739,7 +771,7 @@ identifier(NX_UINT):-->
self-intersections may occur. The tool detects these and stops in a controlled
manner so that the user can repeat the analyses with using a different parameterization.
</doc>
<dimensions rank="1">
<dimensions>
<dim index="1" value="n_fct_iterations"/>
</dimensions>
</field>
Expand All @@ -752,7 +784,7 @@ identifier(NX_UINT):-->
parameter values to be used in the first DCOM iteration. The first entry of each array
those for the second DCOM iteration and so on and so forth.
</doc>
<dimensions rank="1">
<dimensions>
<dim index="1" value="n_fct_iterations"/>
</dimensions>
</field>
Expand Down Expand Up @@ -971,19 +1003,19 @@ identifier(NX_UINT):-->
cardinality(NX_POSINT):-->
<field name="identifier_offset" type="NX_INT"/>
<field name="center" type="NX_NUMBER">
<dimensions rank="2">
<dimensions>
<dim index="1" value="n_rois"/>
<dim index="2" value="3"/>
</dimensions>
</field>
<field name="height" type="NX_NUMBER">
<dimensions rank="2">
<dimensions>
<dim index="1" value="n_rois"/>
<dim index="2" value="3"/>
</dimensions>
</field>
<field name="radii" type="NX_NUMBER">
<dimensions rank="1">
<dimensions>
<dim index="1" value="n_rois"/>
</dimensions>
</field>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ doc: |

This is an application definition for the common NFDI-MatWerk/FAIRmat infrastructure
use case IUC09 that explores how to improve the organization and results storage of the
CompositionSpace software using NeXus.
CompositionSpace tool by using the NeXus data model and semantics.
type: group
NXapm_compositionspace_config(NXobject):
# by default for appdefs the value of the exists keyword is required unless it is explicitly specified differently
Expand Down
Loading