From 8b40b9be603515b25d945e82dc0825033e65729d Mon Sep 17 00:00:00 2001 From: NielsGeudens Date: Wed, 23 Jul 2025 11:40:19 +0200 Subject: [PATCH 01/34] User Documentation to include permissions on Sample Types and ISA Samples. User documentation to include editing of Assays, Studies and Sample types, including what can and cannot be edited. --- _data/sidebars/user_guide.yml | 21 ++++- help/user-guide/create-sample-type.md | 67 +++++-------- help/user-guide/edit-assays.md | 93 ++++++++++++++++++ help/user-guide/edit-sample-type.md | 105 +++++++++++++++++++++ help/user-guide/edit-studies.md | 93 ++++++++++++++++++ help/user-guide/isa-sample-permissions.md | 60 ++++++++++++ help/user-guide/sample-type-permissions.md | 62 ++++++++++++ 7 files changed, 456 insertions(+), 45 deletions(-) create mode 100644 help/user-guide/edit-assays.md create mode 100644 help/user-guide/edit-sample-type.md create mode 100644 help/user-guide/edit-studies.md create mode 100644 help/user-guide/isa-sample-permissions.md create mode 100644 help/user-guide/sample-type-permissions.md diff --git a/_data/sidebars/user_guide.yml b/_data/sidebars/user_guide.yml index f2fa76719..936de959d 100644 --- a/_data/sidebars/user_guide.yml +++ b/_data/sidebars/user_guide.yml @@ -85,10 +85,14 @@ subitems: subitems: - title: Creating an ISA-JSON compliant study url: /help/user-guide/studies + - title: Editing an ISA-JSON compliant study + url: /help/user-guide/edit-studies - title: Assays subitems: - title: Creating an ISA-JSON compliant assay url: /help/user-guide/assays + - title: Editing an ISA-JSON compliant assay + url: /help/user-guide/edit-assays - title: Experiment Sample Templates subitems: - title: Creating Experiment Sample Templates @@ -147,16 +151,25 @@ subitems: - title: Sample types description: Creating and browsing samples, and samples in ISA-JSON compliant experiments. subitems: - - title: Create a Sample Type + - title: Creating a Sample Type url: /help/user-guide/create-sample-type + - title: Editing a Sample Type + url: /help/user-guide/edit-sample-type + - title: Sample Type permissions + url: /help/user-guide/sample-type-permissions - title: Samples subitems: - - title: Create a Sample + - title: Creating a Sample url: /help/user-guide/create-sample - - title: Working with samples in ISA-JSON compliant Experiments - url: /help/user-guide/create-sample-isajson-compliant - title: Legacy Biosamples url: /help/user-guide/legacy-biosamples + - title: ISA-JSON compliant Samples + subitems: + - title: Creating ISA-JSON compliant Samples + url: /help/user-guide/create-sample-isajson-compliant + - title: Managing ISA-JSON compliant Samples + url: /help/user-guide/isa-sample-permissions + - #hr: true title: General attributes and links diff --git a/help/user-guide/create-sample-type.md b/help/user-guide/create-sample-type.md index bab4b1a4c..e4a02ab41 100644 --- a/help/user-guide/create-sample-type.md +++ b/help/user-guide/create-sample-type.md @@ -4,25 +4,20 @@ title: Create a Sample Type Sample Types are templates that detail the key information that needs to be included to describe a given sample correctly. -By default, any member of a Project may create a Sample Type and associate with that Project. By default the Sample Type will only be visible to members of that - project until it has publicly accessible Samples associated with it. See [Sample Type Visibility](#sample-type-visibility) . +By default, any member of a Project may create a Sample Type and associate with that Project. By default the Sample Type will only be visible to members of that project until it has publicly accessible Samples associated with it. See [Sample Type Visibility](#sample-type-visibility) . A SEEK Administrator can change the configuration such that Sample Types can only be created by the Project Administrator. - To create a new sample type, select create from the drop down menu, and then select Sample Type from the list ![menu create sample type]({{ "/images/user-guide/samples/menu-create-sample-type.png" | relative_url }}){:.screenshot} A Sample Type can be made in two ways -* By manually defining the attributes using a form +* By manually defining the attributes using a form; * Uploading a spreadsheet that contains a Sample Template. - - - -## Creating a Sample Type manually using a Form +## Creating a Sample Type manually using a form First we will show generating a Sample type through manually creating a sample type. To begin with ensure that the Form is selected. @@ -30,38 +25,35 @@ First we will show generating a Sample type through manually creating a sample t Sample Type allows you to include: -* [Title](general-attributes#title) -* [Description](general-attributes#description) -* [Projects](general-attributes#projects) -* [Tags](general-attributes#tags) +* [Title](general-attributes#title); +* [Description](general-attributes#description); +* [Projects](general-attributes#projects); +* [Tags](general-attributes#tags). You can define your own attributes for the Sample Type. We would recommend using Minimum Information Checklists to assist in deciding the attributes you will need to include in your Sample Type. -## Defining Attributes +## Defining attributes All attributes must have a Name, and a selected Type. - You can define the different types of data that the attributes should be: - -* **String**: a sequence of characters (e.g Blue) -* **Text**: A longer alphanumerical entry (e.g. The 4th experiment in the batch, it was sampled late, so may not be as accurate). -* **Integer**: a whole number; not a fraction (e.g. 1, 2, 3, 4) -* **Date**: A selected date (e.g. 2nd December 2016) -* **Date time**: a selected date and time (e.g. 2nd December 2016 at 14:00 GMT) -* **Real number**: A number that can be a fraction and include a decimal place, e.g 1.25 -* **Web link**: a link to a specific web page (e.g. https://fair-dom.org) -* **Email address**: e.g. support@fair-dom.org -* **CHEBI ID**: An identification for a specific chemical structure registered in the ChEBI database (https://www.ebi.ac.uk/chebi/) (e.g. CHEBI:17234) -* **Boolean**: a true/false declaration, 1 or 0 can also be accepted. -* **SEEK strain**: an internal link to a strain registered within SEEK. -* **SEEK sample**: an internal link to a sample registered within SEEK. -* **URI**: A Uniform Resource Identifier, which for example may relate to an ontology term -* **Controlled Vocabulary**: An attribute can be a set of predefined terms you have to select from, and any other term is invalid. You can either create a new -controlled vocabulary or reuse and existing one. In the future we will be adding ontology support the the controlled vocabularies. +* **String**: a sequence of characters (e.g Blue); +* **Text**: A longer alphanumerical entry (e.g. The 4th experiment in the batch, it was sampled late, so may not be as accurate); +* **Integer**: a whole number; not a fraction (e.g. 1, 2, 3, 4); +* **Date**: A selected date (e.g. 2nd December 2016); +* **Date time**: a selected date and time (e.g. 2nd December 2016 at 14:00 GMT); +* **Real number**: A number that can be a fraction and include a decimal place, e.g 1.25; +* **Web link**: a link to a specific web page (e.g. https://fair-dom.org); +* **Email address**: e.g. support@fair-dom.org; +* **CHEBI ID**: An identification for a specific chemical structure registered in the ChEBI database (https://www.ebi.ac.uk/chebi/) (e.g. CHEBI:17234); +* **Boolean**: a true/false declaration, 1 or 0 can also be accepted; +* **SEEK strain**: an internal link to a strain registered within SEEK; +* **SEEK sample**: an internal link to a sample registered within SEEK; +* **URI**: A Uniform Resource Identifier, which for example may relate to an ontology term; +* **Controlled Vocabulary**: An attribute can be a set of predefined terms you have to select from, and any other term is invalid. You can either create a new controlled vocabulary or reuse and existing one. In the future we will be adding ontology support the the controlled vocabularies. ![sample type attributes]({{ "/images/user-guide/samples/sample-type-attributes.png" | relative_url }}){:.screenshot} @@ -86,10 +78,10 @@ When creating the sample type, first choose the tab _Use spreadsheet template_ On the initial Sample Template page you can include the following metadata: -* [Title](general-attributes#title) -* [Description](general-attributes#description) -* [Projects](general-attributes#projects) -* [Tags](general-attributes#tags) +* [Title](general-attributes#title); +* [Description](general-attributes#description); +* [Projects](general-attributes#projects); +* [Tags](general-attributes#tags); and then also select Choose File to select a sample template to upload: @@ -117,11 +109,4 @@ When a Sample is shared outside of a Project, but is still not accessible public when accessed via a link. For example if a Sample is shared with another Project, a member of that other Project may view the Sample Type when clicking the link the link from the Sample description. However, in this case, the Sample Type won't appear in lists or search results. -## Editing Sample Types - -The Sample Type may be edited by the original creator, or somebody that can administer the related projects. - -If no samples have yet been created, you can freely edit the Sample Type and its attributes. Once Samples have been created for a Sample Type, it is no longer possible to modify the attributes - however other details about the Sample Type can be changed. - -For details on how to create a Sample please go to [Creating a Sample](create-sample) diff --git a/help/user-guide/edit-assays.md b/help/user-guide/edit-assays.md new file mode 100644 index 000000000..c64b363ed --- /dev/null +++ b/help/user-guide/edit-assays.md @@ -0,0 +1,93 @@ +--- +title: Edit an Existing Assay +--- + + +To edit an existing Assay, the user must have Edit or Manage permissions (i.e. policy ≥ Edit). + +### Steps to edit + +1. Navigate to the Assay; +2. Click Actions → Edit ISA Assay in the top-right corner. + +> {% include callout.html type="note" content="Users are not notified of changes made to the Assay — inform collaborators as needed." %} + +## Modifying Assay properties + +Users with appropriate permissions may update the following properties: + +- Title: The name used to identify the Assay; +- Description: A summary describing the purpose or scope; +- Associated Assets: Including [SOPs](sops), [Publications](publications), and Documents. + +Changes are applied immediately upon saving and do not affect existing samples or their metadata. + +## Modifying Assay attributes + +Each Assay contains a list of metadata attributes used to describe its samples. Attributes may be: + +- Inherited from an [Experiment Sample Template](isajson-templates); +- Defined locally within the Assay. + +The 'Overview' tab of the Assay displays the associated Experiment Sample Template and and allows to identify which attributes are inherited. + +### Adding an attribute +1. Click the green 'Add new attribute' button at the bottom of the attributes table; +2. Provide the following: + - Name (must be unique); + - Required (toggle on/off); + - Title (toggle on/off); + - Attribute Type (e.g., Text, Number, Date, Controlled Vocabulary); + - Description, PID, Unit (optional); +3. Click 'Update' to apply changes. + +> Note: If the Assay already contains samples, new attributes must be created as optional. Once all samples have non-empty values for the attribute, it can be marked as mandatory. + +### Removing an attribute + +An attribute can be removed only if: + +- No samples contain a value for the attribute; +- The attribute is **not inherited** from an Experiment Sample Template. + +If these conditions are not met, the 'Remove' button will not be displayed. To proceed, check the Experiment Sample Template and/or delete the metadata values from all associated samples first. + +### Editing an attribute + +The following rules apply when modifying attributes: + +- Name, Description, and Unit can be changed at any time; +- Title status can be toggled only if all samples contain a value for the attribute; +- Attribute type can be changed only if: + - No samples contain a value for the attribute; + - The attribute is not inherited from an Experiment Sample Template; +- Required flag: + - Changing from **mandatory to optional** is always allowed; + - Changing from **optional to mandatory** is allowed only if all samples contain a non-empty value; +- ISA Tag*: + - Cannot be changed for inherited attributes; + - Can be freely changed for non-inherited attributes if no samples exist; + - If samples exist, the ISA tag can only be changed if no sample contains a value for the attribute. + +> *Note: The ISA tag determines how SEEK labels the attribute when [exporting to ISA‑JSON](exporting-experiments-as-isajson). Setting the correct ISA tag ensures compatibility with downstream ISA-aware tools. + +## Validation & best practices + +- Each Assay must have exactly one attribute marked as the title; +- Attribute titles must be unique within the Assay; +- The title attribute cannot be of type 'Registered Sample Multi'; +- The Assay must not be locked. + +## Troubleshooting & Tips + +- Missing “Remove” button next to an attribute? + → Check the attributes of the associated Experiment Sample Template and ensure no samples contain a value for that attribute. + +- Cannot rename or change type/unit of an attribute? + → Check the attributes of the associated Experiment Sample Template and verify that no samples have populated values for that field. + +- Toggling “Title” status is disabled? + → All samples must have a non-empty value for the new title attribute. + +- Toggling “Required?” status is disabled? + → You can only switch to mandatory if all samples already contain a value for the attribute. diff --git a/help/user-guide/edit-sample-type.md b/help/user-guide/edit-sample-type.md new file mode 100644 index 000000000..58074d1d6 --- /dev/null +++ b/help/user-guide/edit-sample-type.md @@ -0,0 +1,105 @@ +--- +title: Edit an existing Sample Type +--- + +To edit a Sample Type, the user must have Edit or Manage permissions (i.e. ST-policy ≥ Edit). For details on assigning permissions, see the [Sample Type Permissions](sample-type-permissions) page. + +Steps to edit: + +1. Navigate to Browse → Sample Types; +2. Select the Sample Type to edit; +3. Click Actions → Edit Sample Type in the top-right corner. + +> {% include callout.html type="note" content="Users are not notified of changes made to the Sample Type — inform collaborators as needed." %} + + +## Changing Sample Type properties + +Users with appropriate permissions may modify the following properties: + +- Title: The name used to identify the Sample Type; +- Description: A summary describing the purpose or scope; +- Associated Projects: Determines visibility and access for project members; +- Tags: Labels used for categorization and filtering. + +Changes are applied immediately upon saving and do not affect existing samples or their (meta)data. + +## Changing Sample Type attributes + +Each Sample Type consists of a list of attributes that define the metadata fields for its samples. + +### Adding an attribute +1. Click the green 'Add new attribute' button at the bottom of the attributes table; +2. Provide the following: + - Name (must be unique); + - Required (toggle on/off); + - Title (toggle on/off); + - Attribute Type (e.g., Text, Number, Date, Controlled Vocabulary); + - Description, PID, Unit (optional); +3. Click 'Update' to apply changes. + +Attributes can be added even after samples exist, except when the Sample Type was created via file-upload import. Any Sample Type that was populated via a file‐upload import carries an association back to the Data File, and that import record prevents further attribute additions. The idea is to preserve the 1:1 mapping between the columns in the Data File and the attributes on the Sample Type. Consequently, attributes cannot be added. + +It is not possible to create a new mandatory attribute from scratch if the Sample Type already has associated samples. In that case, the existing samples would have empty values for the mandatory attribute. Instead, create the new attribute as optional and add the relevant metadata to the associated Samples. Once all Samples have non-empty values for the attribute, it is possible to make the attribute mandatory. + +### Removing an attribute + +An attribute can be deleted only if no existing samples contain a value for it. If values exist, the 'Remove' button will not be shown. To proceed, delete the metadata values from all associated samples first. + +### Modifying an attribute + +The following rules apply when modifying attributes: + +- Name, Description, and Unit can be changed at any time; +- Title status can be toggled only if all samples contain a value for that attribute; +- Attribute type can be changed only if no samples have a value for that attribute; +- 'Required?' flag: + - Changing from mandatory to optional is always allowed; + - Changing from optional to mandatory is allowed only if all samples already contain a non-empty value. + +## Validation & best practices + +- Each Sample Type must have exactly one attribute marked as the title; +- Attribute titles must be unique within the Sample Type; +- The title attribute cannot be of type 'Registered Sample Multi'; +- The Sample Type must not be locked. + +## Deleting a Sample Type + +To delete a Sample Type: + +1. Navigate to Browse → Sample Types; +2. Select the Sample Type; +3. Click Actions → Delete Sample Type in the top-right corner. + +Deletion is only permitted if: + +- The user has Manage permissions; +- The Sample Type has no associated samples; +- The Sample Type is not referenced by another Sample Type, Study or Assay. + +If these conditions are not met, the 'Delete Sample Type' option will not be available. + + +## Troubleshooting & tips + +- Missing “Remove” button next to an attribute? + → Ensure no samples contain a value for that attribute. + +- “Add new attribute” button is missing + → Check whether the Sample Type was populated via file‑upload import. SEEK locks the schema to preserve column‑to‑attribute mappings. + +- Cannot rename or change type/unit of an attribute + → Verify that no samples have populated values for that field. + +- Toggling “Title” status is greyed out** + → You can only switch the title flag if **every** existing sample has a non‑empty value for the new title attribute. + +- Toggling “Required?” status is greyed out** + → You can only switch the required flag if **no** existing sample has a non‑empty value for the attribute. + +- “Delete Sample Type” action missing** + → Confirm that: + 1. You have 'Manage' permissions; + 2. No samples exist for that type; + 3. It isn’t referenced by any other Sample Type, Study or Assay. \ No newline at end of file diff --git a/help/user-guide/edit-studies.md b/help/user-guide/edit-studies.md new file mode 100644 index 000000000..70e283cb6 --- /dev/null +++ b/help/user-guide/edit-studies.md @@ -0,0 +1,93 @@ +--- +title: Edit an Existing Study +--- + + +To edit an existing Study, the user must have Edit or Manage permissions (i.e. policy ≥ Edit). + +### Steps to edit + +1. Navigate to the Study; +2. Click Actions → Edit ISA Study in the top-right corner. + +> {% include callout.html type="note" content="Users are not notified of changes made to the Study — inform collaborators as needed." %} + +## Modifying Study properties + +Users with appropriate permissions may update the following properties: + +- **Title**: The name used to identify the Study; +- **Description**: A summary describing the purpose or scope; +- **Associated Assets**: Including [SOPs](sops), [Publications](publications), and Documents. + +Changes are applied immediately upon saving and do not affect existing samples or their metadata. + +## Modifying Study attributes + +Each Study contains two 'Sample Types', namely a Study Source and a Study Sample. Both consist of a list of metadata attributes used to describe its samples. Attributes may be: + +- Inherited from an [Experiment Sample Template](isajson-templates); +- Defined locally within the Study. + +The 'Overview' tab of the Study displays the associated Experiment Sample Templates and indicates which attributes are inherited. + +### Adding an attribute +1. Click the green 'Add new attribute' button at the bottom of the attributes table; +2. Provide the following: + - Name (must be unique); + - Required (toggle on/off); + - Title (toggle on/off); + - Attribute Type (e.g., Text, Number, Date, Controlled Vocabulary); + - Description, PID, Unit (optional); +3. Click 'Update' to apply changes. + +> Note: If the Study Source or Study Sample already contains samples, new attributes must be created as optional. Once all samples have non-empty values for the attribute, it can be marked as mandatory. + +### Removing an attribute + +An attribute can be removed only if: + +- No samples contain a value for the attribute; +- The attribute is **not inherited** from an Experiment Sample Template. + +If these conditions are not met, the 'Remove' button will not be displayed. To proceed, check the Experiment Sample Template and/or delete the metadata values from all associated samples first. + +### Editing an attribute + +The following rules apply when modifying attributes: + +- Name, Description, and Unit can be changed at any time; +- Title status can be toggled only if all samples contain a value for the attribute; +- Attribute type can be changed only if: + - No samples contain a value for the attribute; + - The attribute is not inherited from an Experiment Sample Template; +- Required flag: + - Changing from **mandatory to optional** is always allowed; + - Changing from **optional to mandatory** is allowed only if all samples contain a non-empty value; +- ISA Tag*: + - Cannot be changed for inherited attributes; + - Can be freely changed for non-inherited attributes if no samples exist; + - If samples exist, the ISA tag can only be changed if no sample contains a value for the attribute. + +> *Note: The ISA tag determines how SEEK labels the attribute when [exporting to ISA‑JSON](exporting-experiments-as-isajson). Setting the correct ISA tag ensures compatibility with downstream ISA-aware tools. + +## Validation & best practices + +- Each Study Study/Sample must have exactly one attribute marked as the title; +- Attribute titles must be unique within the Study Source/Sample; +- The title attribute cannot be of type Registered Sample Multi; +- The Study must not be locked. + +## Troubleshooting & Tips + +- Missing “Remove” button next to an attribute? + → Check the attributes of the associated Experiment Sample Template and ensure no samples contain a value for that attribute. + +- Cannot rename or change type/unit of an attribute? + → Check the attributes of the associated Experiment Sample Template and verify that no samples have populated values for that field. + +- Toggling “Title” status is disabled? + → All samples must have a non-empty value for the new title attribute. + +- Toggling “Required?” status is disabled? + → You can only switch to mandatory if all samples already contain a value for the attribute. diff --git a/help/user-guide/isa-sample-permissions.md b/help/user-guide/isa-sample-permissions.md new file mode 100644 index 000000000..0f748bd49 --- /dev/null +++ b/help/user-guide/isa-sample-permissions.md @@ -0,0 +1,60 @@ +--- +title: ISA-JSON Compliant Sample Permissions +--- + +ISA-JSON compliant Samples (referred to as *ISA-JSON Samples*) are created within an [Assay](assays) or [Study](studies) using an [Experiment Sample Template](isajson-templates). These samples are defined by metadata attributes, units, and validation rules specified in the template. + + + +## Permission levels + +| **Permission level** | **View** | **Edit** | **Manage** | **Description** | +|----------------------|:--------:|:--------:|:----------:|------------------| +| **No access** | ❌ | ❌ | ❌ | The sample is completely hidden. | +| **View** | ✅ | ❌ | ❌ | The sample is visible but cannot be modified. | +| **Edit** | ✅ | ✅ | ❌ | The sample metadata can be updated. | +| **Manage** | ✅ | ✅ | ✅ | Full control: edit, delete, and change permissions. | + +Each permission level defines what actions a user can perform on an ISA-JSON Sample: + +- No access: The sample is entirely hidden from the user; +- View: The user can view the sample and its metadata but cannot make changes; +- Edit: The user can update metadata fields but cannot delete the sample or modify its sharing policy; +- Manage: The user has full control, including editing, deleting, and changing permissions. + +## Inheritance and sharing behavior +Each ISA-JSON has an associated sharing policy that determines which users or groups can view, edit, or manage it. Though alligned by default, these permissions can be set independently of those assigned to the parent Assay or Study, which may have their own sharing settings. + +> {% include callout.html type="note" content="When both an Assay/Study and its ISA‑JSON Samples have policies, SEEK enforces the most restrictive. Even if you can view an Assay, an individual Sample with 'No access' will remain hidden." %} + +## Who can create ISA-JSON Samples? + +> {% include callout.html type="note" content="Upgrading from a lower to higher policy at the level of the Assay or Study does **not** automatically grant ISA-JSON Sample‑creation rights." %} + +To create ISA-JSON Samples, a user must: + +- Be a member of **at least one** project (not necessarily the one linked to the Assay or Study). +- Have at least 'View' access to the parent Assay or Study. + +For instructions on creating ISA-JSON Samples, refer to the [Samples in ISA-JSON Compliant Experiments](create-sample-isajson-compliant#create-assay-samples) page. + +## Setting ISA-JSON Sample permissions +### Via the Sample browser + +- Navigate to Browse → Samples; +- Use the filters to locate the desired ISA-JSON Sample; +- Click Actions → Manage Sample to update its permissions. + +### From the Assay or Study experiment view + +- Open the [experiment view](viewing-project-in-single-page) of the relevant Assay or Study; +- Select one or more ISA-JSON Samples using the checkboxes; +- Click Batch sharing permissions at the bottom of the Dynamic Table. + +### From the User profile + +- Go to 'My profile'; +- Use the [batch permission tools](bulk-change-sharing-permission) to manage access across multiple assets, including ISA-JSON Samples; +- Tip: Click **Sort by ISA** to group assets by Investigation → Study → Assay → Sample. + +> {% include callout.html type="note" content="Batch sharing will **overwrite** all existing custom sharing policies for the selected Samples. Use with caution." %} diff --git a/help/user-guide/sample-type-permissions.md b/help/user-guide/sample-type-permissions.md new file mode 100644 index 000000000..2ef0d41ca --- /dev/null +++ b/help/user-guide/sample-type-permissions.md @@ -0,0 +1,62 @@ +--- +title: Sample Type Permissions +--- + +In FAIRDOM-SEEK, a Sample Type defines the structure and metadata schema for a group of related samples. It specifies the attributes, units, and validation rules that apply to samples created under it. + +Each Sample Type has an associated sharing policy that determines which users or groups can view, edit, or manage it. These permissions are distinct from those of the individual samples, which have their own independent sharing settings. + + +## What can users do at each permission level? + +| **Permission level** | **View ST** | **Edit ST** | **Manage ST** | **What this means** | +|----------------------|:-----------:|:-----------:|:-------------:|----------------------| +| No access | ❌ | ❌ | ❌ | The Sample Type is completely hidden. | +| View | ✅ | ❌ | ❌ | Users can see the Sample Type, but not change it. | +| Edit | ✅ | ✅ | ❌ | Users can update fields, attributes, and units. | +| Manage | ✅ | ✅ | ✅ | Full control: delete, change policy, etc. | + + +In other words: +- No access: The Sample Type is completely hidden, the user won’t even know it exists; +- View: The user can look at the Sample Type and its details, but can’t make any changes; +- Edit: The user can make changes to the Sample Type (like updating fields or units), but can’t delete it or change who else can see it; +- Manage: The user has full control — they can edit, delete, and change sharing settings. + +> {% include callout.html type="note" content="Samples have their own, independent sharing policies that do not default to those of their Sample Type." %} + +Permissions assigned to a Sample Type do not automatically apply to the individual samples created under it. Each sample is governed by its own sharing policy, which is configured independently of the Sample Type. +By default, newly created samples are private. + +Note: Samples created within the context of a Study or Assay **do** inherit the permissions of that Study or Assay by default. + +## Who can create Samples? + +> {% include callout.html type="note" content="Upgrading from a lower to higher policy at the level of the Sample Type does **not** automatically grant sample‑creation rights." %} + +To create samples, a user must: + +- Be a member of **any** project (not necessarily the one linked to the Sample Type); +- Have at least View access to the Sample Type. + +## How to set Sample Type permissions + +1. Go to 'Browse → Sample Types'; +2. Click the Sample Type you want to configure; +3. Click 'Actions → Manage Sample Type' in the top right corner; +5. Choose a level: No access, View, Edit, or Manage; +6. *(Optional)* Use custom sharing to add specific users or groups; +7. Click 'Update' — your changes apply immediately. + + +## Troubleshooting & Tips + +- Can't see the “Create Sample” button? + → Make sure you have View access and belong to a project. + +- Can't edit a Sample Type? + → You need Edit or Manage rights and must be in a project. + +- Want to hide old Sample Types? + → Set their policy to No access. + From acf62efaa72ef2b779fbfbd2b7d0a72643687ff4 Mon Sep 17 00:00:00 2001 From: floradanna <51486716+floradanna@users.noreply.github.com> Date: Wed, 20 Aug 2025 09:55:08 +0000 Subject: [PATCH 02/34] review PR --- _data/sidebars/user_guide.yml | 34 ++++++++++------------ help/user-guide/create-sample-type.md | 12 +------- help/user-guide/edit-assays.md | 6 ++-- help/user-guide/edit-sample-type.md | 2 +- help/user-guide/edit-studies.md | 8 ++--- help/user-guide/sample-type-permissions.md | 2 +- 6 files changed, 26 insertions(+), 38 deletions(-) diff --git a/_data/sidebars/user_guide.yml b/_data/sidebars/user_guide.yml index 936de959d..3c36a1132 100644 --- a/_data/sidebars/user_guide.yml +++ b/_data/sidebars/user_guide.yml @@ -36,9 +36,7 @@ subitems: url: /help/user-guide/bulk-change-sharing-permission - title: Making an Investigation, Study or Assay citable url: /help/user-guide/investigation-snapshots - - - #hr: true - title: Yellow Pages/Directory + - title: Yellow Pages/Directory description: Directory of common project tasks. subitems: - title: "Programme" @@ -61,9 +59,7 @@ subitems: # url: "" # - title: "[People]" # url: "" - - - #hr: true - title: Experiments + - title: Experiments description: Generating the ISA structure, designing an ISA-JSON compliant experiment, making items citable. subitems: - title: Introduction to the ISA structure @@ -72,9 +68,8 @@ subitems: url: /help/user-guide/isa-overview - title: Generating the ISA structure url: /help/user-guide/generating-the-isa-structure - - title: ISA-JSON compliant experiments - url: /help/user-guide/isa-json-compliant-experiment - - hr: true + - title: ISA-JSON compliant experiments + url: /help/user-guide/isa-json-compliant-experiment - title: Investigations subitems: - title: Creating an ISA-JSON compliant investigation @@ -141,6 +136,17 @@ subitems: # url: "" # - title: Events # url: /help/user-guide/general-attributes#events + - + #hr: true + title: Samples type + description: Creating and browsing samples, and samples in ISA-JSON compliant experiments. + subitems: + - title: Creating a Sample Type + url: /help/user-guide/create-sample-type + - title: Editing a Sample Type + url: /help/user-guide/edit-sample-type + - title: Sample Type permissions + url: /help/user-guide/sample-type-permissions - #hr: true title: Samples @@ -148,15 +154,7 @@ subitems: subitems: - title: Introduction to samples url: /help/user-guide/samples - - title: Sample types - description: Creating and browsing samples, and samples in ISA-JSON compliant experiments. - subitems: - - title: Creating a Sample Type - url: /help/user-guide/create-sample-type - - title: Editing a Sample Type - url: /help/user-guide/edit-sample-type - - title: Sample Type permissions - url: /help/user-guide/sample-type-permissions + - title: Samples subitems: - title: Creating a Sample diff --git a/help/user-guide/create-sample-type.md b/help/user-guide/create-sample-type.md index e4a02ab41..b764d2fd7 100644 --- a/help/user-guide/create-sample-type.md +++ b/help/user-guide/create-sample-type.md @@ -4,7 +4,7 @@ title: Create a Sample Type Sample Types are templates that detail the key information that needs to be included to describe a given sample correctly. -By default, any member of a Project may create a Sample Type and associate with that Project. By default the Sample Type will only be visible to members of that project until it has publicly accessible Samples associated with it. See [Sample Type Visibility](#sample-type-visibility) . +By default, any member of a Project may create a Sample Type and associate with that Project. See [Sample Type Permissions](#sample-type-permissions). A SEEK Administrator can change the configuration such that Sample Types can only be created by the Project Administrator. @@ -98,15 +98,5 @@ At least one attribute must be required and set to the title, and other attribut Once completed click update. Your Sample Type can now be used to generate Samples. -## Sample Type Visibility - -Initially, a Sample Type is only visible and accessible to members of the Project it is associated with. - -However, once a Sample Type has instances of Samples associated with them, and those Samples are shared publically (i.e. to logged out members), the Sample Type -also becomes visible. - -When a Sample is shared outside of a Project, but is still not accessible publicly, then the Sample Type will adopt the visibility of the referring Sample -when accessed via a link. For example if a Sample is shared with another Project, a member of that other Project may view the Sample Type when clicking the link -the link from the Sample description. However, in this case, the Sample Type won't appear in lists or search results. diff --git a/help/user-guide/edit-assays.md b/help/user-guide/edit-assays.md index c64b363ed..e92c6b391 100644 --- a/help/user-guide/edit-assays.md +++ b/help/user-guide/edit-assays.md @@ -1,5 +1,5 @@ --- -title: Edit an Existing Assay +title: Edit an Existing ISA-JSON compliant Assay --- @@ -22,9 +22,9 @@ Users with appropriate permissions may update the following properties: Changes are applied immediately upon saving and do not affect existing samples or their metadata. -## Modifying Assay attributes +## Modifying Assay Sample Type's attributes -Each Assay contains a list of metadata attributes used to describe its samples. Attributes may be: +Each ISA-JSON compliant Assay contains one Sample Type consiting of a list of metadata attributes used to describe its samples. Attributes may be: - Inherited from an [Experiment Sample Template](isajson-templates); - Defined locally within the Assay. diff --git a/help/user-guide/edit-sample-type.md b/help/user-guide/edit-sample-type.md index 58074d1d6..701b0e96b 100644 --- a/help/user-guide/edit-sample-type.md +++ b/help/user-guide/edit-sample-type.md @@ -2,7 +2,7 @@ title: Edit an existing Sample Type --- -To edit a Sample Type, the user must have Edit or Manage permissions (i.e. ST-policy ≥ Edit). For details on assigning permissions, see the [Sample Type Permissions](sample-type-permissions) page. +To edit a Sample Type, the user must have Edit or Manage permissions. For details on assigning permissions, see the [Sample Type Permissions](sample-type-permissions) page. Steps to edit: diff --git a/help/user-guide/edit-studies.md b/help/user-guide/edit-studies.md index 70e283cb6..51dc3d5eb 100644 --- a/help/user-guide/edit-studies.md +++ b/help/user-guide/edit-studies.md @@ -1,9 +1,9 @@ --- -title: Edit an Existing Study +title: Edit an Existing ISA-JSON compliant Study --- -To edit an existing Study, the user must have Edit or Manage permissions (i.e. policy ≥ Edit). +To edit an existing ISA-JSON compliant Study, the user must have Edit or Manage permissions (i.e. policy ≥ Edit). ### Steps to edit @@ -22,9 +22,9 @@ Users with appropriate permissions may update the following properties: Changes are applied immediately upon saving and do not affect existing samples or their metadata. -## Modifying Study attributes +## Modifying Study Sample Types' attributes -Each Study contains two 'Sample Types', namely a Study Source and a Study Sample. Both consist of a list of metadata attributes used to describe its samples. Attributes may be: +Each ISA-JSON compliant Study contains two 'Sample Types', namely a Study Source and a Study Sample. Both consist of a list of metadata attributes used to describe its samples. Attributes may be: - Inherited from an [Experiment Sample Template](isajson-templates); - Defined locally within the Study. diff --git a/help/user-guide/sample-type-permissions.md b/help/user-guide/sample-type-permissions.md index 2ef0d41ca..b780e381f 100644 --- a/help/user-guide/sample-type-permissions.md +++ b/help/user-guide/sample-type-permissions.md @@ -2,7 +2,7 @@ title: Sample Type Permissions --- -In FAIRDOM-SEEK, a Sample Type defines the structure and metadata schema for a group of related samples. It specifies the attributes, units, and validation rules that apply to samples created under it. +In FAIRDOM-SEEK, a Sample Type (ST) defines the structure and metadata schema for a group of related samples. It specifies the attributes, units, and validation rules that apply to samples created under it. Each Sample Type has an associated sharing policy that determines which users or groups can view, edit, or manage it. These permissions are distinct from those of the individual samples, which have their own independent sharing settings. From 911e60fa27aa04ece77379d2a0364d25f60adabb Mon Sep 17 00:00:00 2001 From: NielsGeudens Date: Mon, 8 Sep 2025 13:45:17 +0200 Subject: [PATCH 03/34] Update user guide with ISA-JSON compliant editing instructions and permissions; modified semicolons in bullet point lists --- _data/sidebars/user_guide.yml | 5 +- help/user-guide/create-sample-type.md | 34 ++++++------- .../{edit-assays.md => edit-ISA-assays.md} | 42 ++++++++-------- .../{edit-studies.md => edit-ISA-studies.md} | 42 ++++++++-------- help/user-guide/edit-sample-type.md | 48 +++++++++---------- help/user-guide/isa-sample-permissions.md | 16 +++---- help/user-guide/sample-type-permissions.md | 20 ++++---- 7 files changed, 103 insertions(+), 104 deletions(-) rename help/user-guide/{edit-assays.md => edit-ISA-assays.md} (83%) rename help/user-guide/{edit-studies.md => edit-ISA-studies.md} (83%) diff --git a/_data/sidebars/user_guide.yml b/_data/sidebars/user_guide.yml index 3c36a1132..122896966 100644 --- a/_data/sidebars/user_guide.yml +++ b/_data/sidebars/user_guide.yml @@ -81,13 +81,13 @@ subitems: - title: Creating an ISA-JSON compliant study url: /help/user-guide/studies - title: Editing an ISA-JSON compliant study - url: /help/user-guide/edit-studies + url: /help/user-guide/edit-ISA-studies - title: Assays subitems: - title: Creating an ISA-JSON compliant assay url: /help/user-guide/assays - title: Editing an ISA-JSON compliant assay - url: /help/user-guide/edit-assays + url: /help/user-guide/edit-ISA-assays - title: Experiment Sample Templates subitems: - title: Creating Experiment Sample Templates @@ -154,7 +154,6 @@ subitems: subitems: - title: Introduction to samples url: /help/user-guide/samples - - title: Samples subitems: - title: Creating a Sample diff --git a/help/user-guide/create-sample-type.md b/help/user-guide/create-sample-type.md index b764d2fd7..df2592ed8 100644 --- a/help/user-guide/create-sample-type.md +++ b/help/user-guide/create-sample-type.md @@ -40,19 +40,19 @@ All attributes must have a Name, and a selected Type. You can define the different types of data that the attributes should be: -* **String**: a sequence of characters (e.g Blue); -* **Text**: A longer alphanumerical entry (e.g. The 4th experiment in the batch, it was sampled late, so may not be as accurate); -* **Integer**: a whole number; not a fraction (e.g. 1, 2, 3, 4); -* **Date**: A selected date (e.g. 2nd December 2016); -* **Date time**: a selected date and time (e.g. 2nd December 2016 at 14:00 GMT); -* **Real number**: A number that can be a fraction and include a decimal place, e.g 1.25; -* **Web link**: a link to a specific web page (e.g. https://fair-dom.org); -* **Email address**: e.g. support@fair-dom.org; -* **CHEBI ID**: An identification for a specific chemical structure registered in the ChEBI database (https://www.ebi.ac.uk/chebi/) (e.g. CHEBI:17234); -* **Boolean**: a true/false declaration, 1 or 0 can also be accepted; -* **SEEK strain**: an internal link to a strain registered within SEEK; -* **SEEK sample**: an internal link to a sample registered within SEEK; -* **URI**: A Uniform Resource Identifier, which for example may relate to an ontology term; +* **String**: a sequence of characters (e.g Blue) +* **Text**: A longer alphanumerical entry (e.g. The 4th experiment in the batch, it was sampled late, so may not be as accurate) +* **Integer**: a whole number; not a fraction (e.g. 1, 2, 3, 4) +* **Date**: A selected date (e.g. 2nd December 2016) +* **Date time**: a selected date and time (e.g. 2nd December 2016 at 14:00 GMT) +* **Real number**: A number that can be a fraction and include a decimal place, e.g 1.25 +* **Web link**: a link to a specific web page (e.g. https://fair-dom.org) +* **Email address**: e.g. support@fair-dom.org +* **CHEBI ID**: An identification for a specific chemical structure registered in the ChEBI database (https://www.ebi.ac.uk/chebi/) (e.g. CHEBI:17234) +* **Boolean**: a true/false declaration, 1 or 0 can also be accepted +* **SEEK strain**: an internal link to a strain registered within SEEK +* **SEEK sample**: an internal link to a sample registered within SEEK +* **URI**: A Uniform Resource Identifier, which for example may relate to an ontology term * **Controlled Vocabulary**: An attribute can be a set of predefined terms you have to select from, and any other term is invalid. You can either create a new controlled vocabulary or reuse and existing one. In the future we will be adding ontology support the the controlled vocabularies. ![sample type attributes]({{ "/images/user-guide/samples/sample-type-attributes.png" | relative_url }}){:.screenshot} @@ -78,10 +78,10 @@ When creating the sample type, first choose the tab _Use spreadsheet template_ On the initial Sample Template page you can include the following metadata: -* [Title](general-attributes#title); -* [Description](general-attributes#description); -* [Projects](general-attributes#projects); -* [Tags](general-attributes#tags); +* [Title](general-attributes#title) +* [Description](general-attributes#description) +* [Projects](general-attributes#projects) +* [Tags](general-attributes#tags). and then also select Choose File to select a sample template to upload: diff --git a/help/user-guide/edit-assays.md b/help/user-guide/edit-ISA-assays.md similarity index 83% rename from help/user-guide/edit-assays.md rename to help/user-guide/edit-ISA-assays.md index e92c6b391..f66767dc8 100644 --- a/help/user-guide/edit-assays.md +++ b/help/user-guide/edit-ISA-assays.md @@ -16,8 +16,8 @@ To edit an existing Assay, the user must have Edit or Manage permissions (i.e. p Users with appropriate permissions may update the following properties: -- Title: The name used to identify the Assay; -- Description: A summary describing the purpose or scope; +- Title: The name used to identify the Assay +- Description: A summary describing the purpose or scope - Associated Assets: Including [SOPs](sops), [Publications](publications), and Documents. Changes are applied immediately upon saving and do not affect existing samples or their metadata. @@ -26,19 +26,19 @@ Changes are applied immediately upon saving and do not affect existing samples o Each ISA-JSON compliant Assay contains one Sample Type consiting of a list of metadata attributes used to describe its samples. Attributes may be: -- Inherited from an [Experiment Sample Template](isajson-templates); +- Inherited from an [Experiment Sample Template](isajson-templates) - Defined locally within the Assay. The 'Overview' tab of the Assay displays the associated Experiment Sample Template and and allows to identify which attributes are inherited. ### Adding an attribute -1. Click the green 'Add new attribute' button at the bottom of the attributes table; +1. Click the green 'Add new attribute' button at the bottom of the attributes table 2. Provide the following: - - Name (must be unique); - - Required (toggle on/off); - - Title (toggle on/off); - - Attribute Type (e.g., Text, Number, Date, Controlled Vocabulary); - - Description, PID, Unit (optional); + - Name (must be unique) + - Required (toggle on/off) + - Title (toggle on/off) + - Attribute Type (e.g., Text, Number, Date, Controlled Vocabulary) + - Description, PID, Unit (optional) 3. Click 'Update' to apply changes. > Note: If the Assay already contains samples, new attributes must be created as optional. Once all samples have non-empty values for the attribute, it can be marked as mandatory. @@ -47,7 +47,7 @@ The 'Overview' tab of the Assay displays the associated Experiment Sample Templa An attribute can be removed only if: -- No samples contain a value for the attribute; +- No samples contain a value for the attribute - The attribute is **not inherited** from an Experiment Sample Template. If these conditions are not met, the 'Remove' button will not be displayed. To proceed, check the Experiment Sample Template and/or delete the metadata values from all associated samples first. @@ -56,26 +56,26 @@ If these conditions are not met, the 'Remove' button will not be displayed. To p The following rules apply when modifying attributes: -- Name, Description, and Unit can be changed at any time; -- Title status can be toggled only if all samples contain a value for the attribute; +- Name, Description, and Unit can be changed at any time +- Title status can be toggled only if all samples contain a value for the attribute - Attribute type can be changed only if: - - No samples contain a value for the attribute; - - The attribute is not inherited from an Experiment Sample Template; + - No samples contain a value for the attribute + - The attribute is not inherited from an Experiment Sample Template - Required flag: - - Changing from **mandatory to optional** is always allowed; - - Changing from **optional to mandatory** is allowed only if all samples contain a non-empty value; + - Changing from **mandatory to optional** is always allowed + - Changing from **optional to mandatory** is allowed only if all samples contain a non-empty value - ISA Tag*: - - Cannot be changed for inherited attributes; - - Can be freely changed for non-inherited attributes if no samples exist; + - Cannot be changed for inherited attributes + - Can be freely changed for non-inherited attributes if no samples exist - If samples exist, the ISA tag can only be changed if no sample contains a value for the attribute. > *Note: The ISA tag determines how SEEK labels the attribute when [exporting to ISA‑JSON](exporting-experiments-as-isajson). Setting the correct ISA tag ensures compatibility with downstream ISA-aware tools. ## Validation & best practices -- Each Assay must have exactly one attribute marked as the title; -- Attribute titles must be unique within the Assay; -- The title attribute cannot be of type 'Registered Sample Multi'; +- Each Assay must have exactly one attribute marked as the title +- Attribute titles must be unique within the Assay +- The title attribute cannot be of type 'Registered Sample Multi' - The Assay must not be locked. ## Troubleshooting & Tips diff --git a/help/user-guide/edit-studies.md b/help/user-guide/edit-ISA-studies.md similarity index 83% rename from help/user-guide/edit-studies.md rename to help/user-guide/edit-ISA-studies.md index 51dc3d5eb..babe9e54b 100644 --- a/help/user-guide/edit-studies.md +++ b/help/user-guide/edit-ISA-studies.md @@ -16,8 +16,8 @@ To edit an existing ISA-JSON compliant Study, the user must have Edit or Manage Users with appropriate permissions may update the following properties: -- **Title**: The name used to identify the Study; -- **Description**: A summary describing the purpose or scope; +- **Title**: The name used to identify the Study +- **Description**: A summary describing the purpose or scope - **Associated Assets**: Including [SOPs](sops), [Publications](publications), and Documents. Changes are applied immediately upon saving and do not affect existing samples or their metadata. @@ -26,19 +26,19 @@ Changes are applied immediately upon saving and do not affect existing samples o Each ISA-JSON compliant Study contains two 'Sample Types', namely a Study Source and a Study Sample. Both consist of a list of metadata attributes used to describe its samples. Attributes may be: -- Inherited from an [Experiment Sample Template](isajson-templates); +- Inherited from an [Experiment Sample Template](isajson-templates) - Defined locally within the Study. The 'Overview' tab of the Study displays the associated Experiment Sample Templates and indicates which attributes are inherited. ### Adding an attribute -1. Click the green 'Add new attribute' button at the bottom of the attributes table; +1. Click the green 'Add new attribute' button at the bottom of the attributes table 2. Provide the following: - - Name (must be unique); - - Required (toggle on/off); - - Title (toggle on/off); - - Attribute Type (e.g., Text, Number, Date, Controlled Vocabulary); - - Description, PID, Unit (optional); + - Name (must be unique) + - Required (toggle on/off) + - Title (toggle on/off) + - Attribute Type (e.g., Text, Number, Date, Controlled Vocabulary) + - Description, PID, Unit (optional) 3. Click 'Update' to apply changes. > Note: If the Study Source or Study Sample already contains samples, new attributes must be created as optional. Once all samples have non-empty values for the attribute, it can be marked as mandatory. @@ -47,7 +47,7 @@ The 'Overview' tab of the Study displays the associated Experiment Sample Templa An attribute can be removed only if: -- No samples contain a value for the attribute; +- No samples contain a value for the attribute - The attribute is **not inherited** from an Experiment Sample Template. If these conditions are not met, the 'Remove' button will not be displayed. To proceed, check the Experiment Sample Template and/or delete the metadata values from all associated samples first. @@ -56,26 +56,26 @@ If these conditions are not met, the 'Remove' button will not be displayed. To p The following rules apply when modifying attributes: -- Name, Description, and Unit can be changed at any time; -- Title status can be toggled only if all samples contain a value for the attribute; +- Name, Description, and Unit can be changed at any time +- Title status can be toggled only if all samples contain a value for the attribute - Attribute type can be changed only if: - - No samples contain a value for the attribute; - - The attribute is not inherited from an Experiment Sample Template; + - No samples contain a value for the attribute + - The attribute is not inherited from an Experiment Sample Template - Required flag: - - Changing from **mandatory to optional** is always allowed; - - Changing from **optional to mandatory** is allowed only if all samples contain a non-empty value; + - Changing from **mandatory to optional** is always allowed + - Changing from **optional to mandatory** is allowed only if all samples contain a non-empty value - ISA Tag*: - - Cannot be changed for inherited attributes; - - Can be freely changed for non-inherited attributes if no samples exist; + - Cannot be changed for inherited attributes + - Can be freely changed for non-inherited attributes if no samples exist - If samples exist, the ISA tag can only be changed if no sample contains a value for the attribute. > *Note: The ISA tag determines how SEEK labels the attribute when [exporting to ISA‑JSON](exporting-experiments-as-isajson). Setting the correct ISA tag ensures compatibility with downstream ISA-aware tools. ## Validation & best practices -- Each Study Study/Sample must have exactly one attribute marked as the title; -- Attribute titles must be unique within the Study Source/Sample; -- The title attribute cannot be of type Registered Sample Multi; +- Each Study Study/Sample must have exactly one attribute marked as the title +- Attribute titles must be unique within the Study Source/Sample +- The title attribute cannot be of type Registered Sample Multi - The Study must not be locked. ## Troubleshooting & Tips diff --git a/help/user-guide/edit-sample-type.md b/help/user-guide/edit-sample-type.md index 701b0e96b..f82929320 100644 --- a/help/user-guide/edit-sample-type.md +++ b/help/user-guide/edit-sample-type.md @@ -6,8 +6,8 @@ To edit a Sample Type, the user must have Edit or Manage permissions. For detail Steps to edit: -1. Navigate to Browse → Sample Types; -2. Select the Sample Type to edit; +1. Navigate to Browse → Sample Types +2. Select the Sample Type to edit 3. Click Actions → Edit Sample Type in the top-right corner. > {% include callout.html type="note" content="Users are not notified of changes made to the Sample Type — inform collaborators as needed." %} @@ -17,9 +17,9 @@ Steps to edit: Users with appropriate permissions may modify the following properties: -- Title: The name used to identify the Sample Type; -- Description: A summary describing the purpose or scope; -- Associated Projects: Determines visibility and access for project members; +- Title: The name used to identify the Sample Type +- Description: A summary describing the purpose or scope +- Associated Projects: Determines visibility and access for project members - Tags: Labels used for categorization and filtering. Changes are applied immediately upon saving and do not affect existing samples or their (meta)data. @@ -29,13 +29,13 @@ Changes are applied immediately upon saving and do not affect existing samples o Each Sample Type consists of a list of attributes that define the metadata fields for its samples. ### Adding an attribute -1. Click the green 'Add new attribute' button at the bottom of the attributes table; +1. Click the green 'Add new attribute' button at the bottom of the attributes table 2. Provide the following: - - Name (must be unique); - - Required (toggle on/off); - - Title (toggle on/off); - - Attribute Type (e.g., Text, Number, Date, Controlled Vocabulary); - - Description, PID, Unit (optional); + - Name (must be unique) + - Required (toggle on/off) + - Title (toggle on/off) + - Attribute Type (e.g., Text, Number, Date, Controlled Vocabulary) + - Description, PID, Unit (optional) 3. Click 'Update' to apply changes. Attributes can be added even after samples exist, except when the Sample Type was created via file-upload import. Any Sample Type that was populated via a file‐upload import carries an association back to the Data File, and that import record prevents further attribute additions. The idea is to preserve the 1:1 mapping between the columns in the Data File and the attributes on the Sample Type. Consequently, attributes cannot be added. @@ -50,32 +50,32 @@ An attribute can be deleted only if no existing samples contain a value for it. The following rules apply when modifying attributes: -- Name, Description, and Unit can be changed at any time; -- Title status can be toggled only if all samples contain a value for that attribute; -- Attribute type can be changed only if no samples have a value for that attribute; +- Name, Description, and Unit can be changed at any time +- Title status can be toggled only if all samples contain a value for that attribute +- Attribute type can be changed only if no samples have a value for that attribute - 'Required?' flag: - - Changing from mandatory to optional is always allowed; + - Changing from mandatory to optional is always allowed - Changing from optional to mandatory is allowed only if all samples already contain a non-empty value. ## Validation & best practices -- Each Sample Type must have exactly one attribute marked as the title; -- Attribute titles must be unique within the Sample Type; -- The title attribute cannot be of type 'Registered Sample Multi'; +- Each Sample Type must have exactly one attribute marked as the title +- Attribute titles must be unique within the Sample Type +- The title attribute cannot be of type 'Registered Sample Multi' - The Sample Type must not be locked. ## Deleting a Sample Type To delete a Sample Type: -1. Navigate to Browse → Sample Types; -2. Select the Sample Type; +1. Navigate to Browse → Sample Types +2. Select the Sample Type 3. Click Actions → Delete Sample Type in the top-right corner. Deletion is only permitted if: -- The user has Manage permissions; -- The Sample Type has no associated samples; +- The user has Manage permissions +- The Sample Type has no associated samples - The Sample Type is not referenced by another Sample Type, Study or Assay. If these conditions are not met, the 'Delete Sample Type' option will not be available. @@ -100,6 +100,6 @@ If these conditions are not met, the 'Delete Sample Type' option will not be ava - “Delete Sample Type” action missing** → Confirm that: - 1. You have 'Manage' permissions; - 2. No samples exist for that type; + 1. You have 'Manage' permissions + 2. No samples exist for that type 3. It isn’t referenced by any other Sample Type, Study or Assay. \ No newline at end of file diff --git a/help/user-guide/isa-sample-permissions.md b/help/user-guide/isa-sample-permissions.md index 0f748bd49..cfadfeae4 100644 --- a/help/user-guide/isa-sample-permissions.md +++ b/help/user-guide/isa-sample-permissions.md @@ -17,9 +17,9 @@ ISA-JSON compliant Samples (referred to as *ISA-JSON Samples*) are created withi Each permission level defines what actions a user can perform on an ISA-JSON Sample: -- No access: The sample is entirely hidden from the user; -- View: The user can view the sample and its metadata but cannot make changes; -- Edit: The user can update metadata fields but cannot delete the sample or modify its sharing policy; +- No access: The sample is entirely hidden from the user +- View: The user can view the sample and its metadata but cannot make changes +- Edit: The user can update metadata fields but cannot delete the sample or modify its sharing policy - Manage: The user has full control, including editing, deleting, and changing permissions. ## Inheritance and sharing behavior @@ -33,7 +33,7 @@ Each ISA-JSON has an associated sharing policy that determines which users or gr To create ISA-JSON Samples, a user must: -- Be a member of **at least one** project (not necessarily the one linked to the Assay or Study). +- Be a member of **at least one** project (not necessarily the one linked to the Assay or Study) - Have at least 'View' access to the parent Assay or Study. For instructions on creating ISA-JSON Samples, refer to the [Samples in ISA-JSON Compliant Experiments](create-sample-isajson-compliant#create-assay-samples) page. @@ -41,14 +41,14 @@ For instructions on creating ISA-JSON Samples, refer to the [Samples in ISA-JSON ## Setting ISA-JSON Sample permissions ### Via the Sample browser -- Navigate to Browse → Samples; -- Use the filters to locate the desired ISA-JSON Sample; +- Navigate to Browse → Samples +- Use the filters to locate the desired ISA-JSON Sample - Click Actions → Manage Sample to update its permissions. ### From the Assay or Study experiment view -- Open the [experiment view](viewing-project-in-single-page) of the relevant Assay or Study; -- Select one or more ISA-JSON Samples using the checkboxes; +- Open the [experiment view](viewing-project-in-single-page) of the relevant Assay or Study +- Select one or more ISA-JSON Samples using the checkboxes - Click Batch sharing permissions at the bottom of the Dynamic Table. ### From the User profile diff --git a/help/user-guide/sample-type-permissions.md b/help/user-guide/sample-type-permissions.md index b780e381f..9b48117e4 100644 --- a/help/user-guide/sample-type-permissions.md +++ b/help/user-guide/sample-type-permissions.md @@ -18,9 +18,9 @@ Each Sample Type has an associated sharing policy that determines which users or In other words: -- No access: The Sample Type is completely hidden, the user won’t even know it exists; -- View: The user can look at the Sample Type and its details, but can’t make any changes; -- Edit: The user can make changes to the Sample Type (like updating fields or units), but can’t delete it or change who else can see it; +- No access: The Sample Type is completely hidden, the user won’t even know it exists +- View: The user can look at the Sample Type and its details, but can’t make any changes +- Edit: The user can make changes to the Sample Type (like updating fields or units), but can’t delete it or change who else can see it - Manage: The user has full control — they can edit, delete, and change sharing settings. > {% include callout.html type="note" content="Samples have their own, independent sharing policies that do not default to those of their Sample Type." %} @@ -28,7 +28,7 @@ In other words: Permissions assigned to a Sample Type do not automatically apply to the individual samples created under it. Each sample is governed by its own sharing policy, which is configured independently of the Sample Type. By default, newly created samples are private. -Note: Samples created within the context of a Study or Assay **do** inherit the permissions of that Study or Assay by default. +Note: Samples created within the context of an ISA-compliant Study or Assay **do** inherit the permissions of that ISA Study or Assay by default. ## Who can create Samples? @@ -36,16 +36,16 @@ Note: Samples created within the context of a Study or Assay **do** inherit the To create samples, a user must: -- Be a member of **any** project (not necessarily the one linked to the Sample Type); +- Be a member of **any** project (not necessarily the one linked to the Sample Type) - Have at least View access to the Sample Type. ## How to set Sample Type permissions -1. Go to 'Browse → Sample Types'; -2. Click the Sample Type you want to configure; -3. Click 'Actions → Manage Sample Type' in the top right corner; -5. Choose a level: No access, View, Edit, or Manage; -6. *(Optional)* Use custom sharing to add specific users or groups; +1. Go to 'Browse → Sample Types' +2. Click the Sample Type you want to configure +3. Click 'Actions → Manage Sample Type' in the top right corner +5. Choose a level: No access, View, Edit, or Manage +6. *(Optional)* Use custom sharing to add specific users or groups 7. Click 'Update' — your changes apply immediately. From 090126156bb05a2d3875d8d6c1663d889dddef68 Mon Sep 17 00:00:00 2001 From: Phil Reed Date: Wed, 24 Sep 2025 08:36:42 +0100 Subject: [PATCH 04/34] Update _data/sidebars/user_guide.yml --- _data/sidebars/user_guide.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_data/sidebars/user_guide.yml b/_data/sidebars/user_guide.yml index 122896966..d9d852710 100644 --- a/_data/sidebars/user_guide.yml +++ b/_data/sidebars/user_guide.yml @@ -138,7 +138,7 @@ subitems: # url: /help/user-guide/general-attributes#events - #hr: true - title: Samples type + title: Sample Types description: Creating and browsing samples, and samples in ISA-JSON compliant experiments. subitems: - title: Creating a Sample Type From c8b5f24e5c1df07e218281cecc7b37d47af6401c Mon Sep 17 00:00:00 2001 From: Phil Reed Date: Wed, 24 Sep 2025 08:36:56 +0100 Subject: [PATCH 05/34] Update _data/sidebars/user_guide.yml --- _data/sidebars/user_guide.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_data/sidebars/user_guide.yml b/_data/sidebars/user_guide.yml index d9d852710..c5d9ff618 100644 --- a/_data/sidebars/user_guide.yml +++ b/_data/sidebars/user_guide.yml @@ -139,7 +139,7 @@ subitems: - #hr: true title: Sample Types - description: Creating and browsing samples, and samples in ISA-JSON compliant experiments. + description: Creating and editing sample types, and modifying sample type permissions. subitems: - title: Creating a Sample Type url: /help/user-guide/create-sample-type From e4a83ab96f5e89b28b4f7cad389dd182bf217d0a Mon Sep 17 00:00:00 2001 From: Phil Reed Date: Wed, 24 Sep 2025 08:37:09 +0100 Subject: [PATCH 06/34] Update help/user-guide/create-sample-type.md --- help/user-guide/create-sample-type.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/help/user-guide/create-sample-type.md b/help/user-guide/create-sample-type.md index df2592ed8..2549ddcdc 100644 --- a/help/user-guide/create-sample-type.md +++ b/help/user-guide/create-sample-type.md @@ -4,7 +4,7 @@ title: Create a Sample Type Sample Types are templates that detail the key information that needs to be included to describe a given sample correctly. -By default, any member of a Project may create a Sample Type and associate with that Project. See [Sample Type Permissions](#sample-type-permissions). +By default, any member of a Project may create a Sample Type and associate with that Project. See [Sample Type Permissions](sample-type-permissions). A SEEK Administrator can change the configuration such that Sample Types can only be created by the Project Administrator. From 403e8b6dc7c6e46d960ae9adf1b48fb4359636f2 Mon Sep 17 00:00:00 2001 From: Phil Reed Date: Wed, 24 Sep 2025 08:37:30 +0100 Subject: [PATCH 07/34] Update help/user-guide/edit-ISA-assays.md --- help/user-guide/edit-ISA-assays.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/help/user-guide/edit-ISA-assays.md b/help/user-guide/edit-ISA-assays.md index f66767dc8..9c40de344 100644 --- a/help/user-guide/edit-ISA-assays.md +++ b/help/user-guide/edit-ISA-assays.md @@ -41,7 +41,7 @@ The 'Overview' tab of the Assay displays the associated Experiment Sample Templa - Description, PID, Unit (optional) 3. Click 'Update' to apply changes. -> Note: If the Assay already contains samples, new attributes must be created as optional. Once all samples have non-empty values for the attribute, it can be marked as mandatory. +{% include callout.html type="note" content="If the Assay already contains samples, new attributes must be created as optional. Once all samples have non-empty values for the attribute, it can be marked as mandatory." %} ### Removing an attribute From 8999cff3fd1adf82598806b4ef53bad67dd7109f Mon Sep 17 00:00:00 2001 From: Phil Reed Date: Wed, 24 Sep 2025 08:37:44 +0100 Subject: [PATCH 08/34] Update help/user-guide/edit-ISA-assays.md --- help/user-guide/edit-ISA-assays.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/help/user-guide/edit-ISA-assays.md b/help/user-guide/edit-ISA-assays.md index 9c40de344..9624666eb 100644 --- a/help/user-guide/edit-ISA-assays.md +++ b/help/user-guide/edit-ISA-assays.md @@ -10,7 +10,7 @@ To edit an existing Assay, the user must have Edit or Manage permissions (i.e. p 1. Navigate to the Assay; 2. Click Actions → Edit ISA Assay in the top-right corner. -> {% include callout.html type="note" content="Users are not notified of changes made to the Assay — inform collaborators as needed." %} +{% include callout.html type="note" content="Users are not notified of changes made to the Assay — inform collaborators as needed." %} ## Modifying Assay properties From 56c8fcb32481e3746ff7d7849994e1b28b4ae64e Mon Sep 17 00:00:00 2001 From: Phil Reed Date: Wed, 24 Sep 2025 08:38:08 +0100 Subject: [PATCH 09/34] Update help/user-guide/edit-ISA-assays.md --- help/user-guide/edit-ISA-assays.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/help/user-guide/edit-ISA-assays.md b/help/user-guide/edit-ISA-assays.md index 9624666eb..26e5c9b8f 100644 --- a/help/user-guide/edit-ISA-assays.md +++ b/help/user-guide/edit-ISA-assays.md @@ -69,7 +69,7 @@ The following rules apply when modifying attributes: - Can be freely changed for non-inherited attributes if no samples exist - If samples exist, the ISA tag can only be changed if no sample contains a value for the attribute. -> *Note: The ISA tag determines how SEEK labels the attribute when [exporting to ISA‑JSON](exporting-experiments-as-isajson). Setting the correct ISA tag ensures compatibility with downstream ISA-aware tools. +{% include callout.html type="note" content="The ISA tag determines how SEEK labels the attribute when [exporting to ISA‑JSON](exporting-experiments-as-isajson). Setting the correct ISA tag ensures compatibility with downstream ISA-aware tools." %} ## Validation & best practices From da68c3675889e9e76a65ea7fde2ad54dddb42d62 Mon Sep 17 00:00:00 2001 From: Phil Reed Date: Wed, 24 Sep 2025 08:38:29 +0100 Subject: [PATCH 10/34] Update help/user-guide/edit-ISA-studies.md --- help/user-guide/edit-ISA-studies.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/help/user-guide/edit-ISA-studies.md b/help/user-guide/edit-ISA-studies.md index babe9e54b..72f2ee604 100644 --- a/help/user-guide/edit-ISA-studies.md +++ b/help/user-guide/edit-ISA-studies.md @@ -10,7 +10,7 @@ To edit an existing ISA-JSON compliant Study, the user must have Edit or Manage 1. Navigate to the Study; 2. Click Actions → Edit ISA Study in the top-right corner. -> {% include callout.html type="note" content="Users are not notified of changes made to the Study — inform collaborators as needed." %} +{% include callout.html type="note" content="Users are not notified of changes made to the Study — inform collaborators as needed." %} ## Modifying Study properties From 8a308fdb29482f96eb531dea938652598b6c8832 Mon Sep 17 00:00:00 2001 From: Phil Reed Date: Wed, 24 Sep 2025 08:38:50 +0100 Subject: [PATCH 11/34] Update help/user-guide/edit-ISA-studies.md --- help/user-guide/edit-ISA-studies.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/help/user-guide/edit-ISA-studies.md b/help/user-guide/edit-ISA-studies.md index 72f2ee604..4776322fb 100644 --- a/help/user-guide/edit-ISA-studies.md +++ b/help/user-guide/edit-ISA-studies.md @@ -41,7 +41,7 @@ The 'Overview' tab of the Study displays the associated Experiment Sample Templa - Description, PID, Unit (optional) 3. Click 'Update' to apply changes. -> Note: If the Study Source or Study Sample already contains samples, new attributes must be created as optional. Once all samples have non-empty values for the attribute, it can be marked as mandatory. +{% include callout.html type="note" content="If the Study Source or Study Sample already contains samples, new attributes must be created as optional. Once all samples have non-empty values for the attribute, it can be marked as mandatory." %} ### Removing an attribute From 38a7f195d4b34da40beddd227d679ab9451195db Mon Sep 17 00:00:00 2001 From: Phil Reed Date: Wed, 24 Sep 2025 08:39:05 +0100 Subject: [PATCH 12/34] Update help/user-guide/edit-ISA-studies.md --- help/user-guide/edit-ISA-studies.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/help/user-guide/edit-ISA-studies.md b/help/user-guide/edit-ISA-studies.md index 4776322fb..064ae0980 100644 --- a/help/user-guide/edit-ISA-studies.md +++ b/help/user-guide/edit-ISA-studies.md @@ -69,7 +69,7 @@ The following rules apply when modifying attributes: - Can be freely changed for non-inherited attributes if no samples exist - If samples exist, the ISA tag can only be changed if no sample contains a value for the attribute. -> *Note: The ISA tag determines how SEEK labels the attribute when [exporting to ISA‑JSON](exporting-experiments-as-isajson). Setting the correct ISA tag ensures compatibility with downstream ISA-aware tools. +{% include callout.html type="note" content="The ISA tag determines how SEEK labels the attribute when [exporting to ISA‑JSON](exporting-experiments-as-isajson). Setting the correct ISA tag ensures compatibility with downstream ISA-aware tools." %} ## Validation & best practices From 75db341bf1cc8b73c13b137688347acc3466551c Mon Sep 17 00:00:00 2001 From: Phil Reed Date: Wed, 24 Sep 2025 08:39:35 +0100 Subject: [PATCH 13/34] Update help/user-guide/isa-sample-permissions.md --- help/user-guide/isa-sample-permissions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/help/user-guide/isa-sample-permissions.md b/help/user-guide/isa-sample-permissions.md index cfadfeae4..55be2b9e2 100644 --- a/help/user-guide/isa-sample-permissions.md +++ b/help/user-guide/isa-sample-permissions.md @@ -17,7 +17,7 @@ ISA-JSON compliant Samples (referred to as *ISA-JSON Samples*) are created withi Each permission level defines what actions a user can perform on an ISA-JSON Sample: -- No access: The sample is entirely hidden from the user +- **No access**: The sample is entirely hidden from the user - View: The user can view the sample and its metadata but cannot make changes - Edit: The user can update metadata fields but cannot delete the sample or modify its sharing policy - Manage: The user has full control, including editing, deleting, and changing permissions. From 1ae1724391497054981279feed993163ca766d10 Mon Sep 17 00:00:00 2001 From: Phil Reed Date: Wed, 24 Sep 2025 08:39:56 +0100 Subject: [PATCH 14/34] Update help/user-guide/isa-sample-permissions.md --- help/user-guide/isa-sample-permissions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/help/user-guide/isa-sample-permissions.md b/help/user-guide/isa-sample-permissions.md index 55be2b9e2..f51a5b0d9 100644 --- a/help/user-guide/isa-sample-permissions.md +++ b/help/user-guide/isa-sample-permissions.md @@ -18,7 +18,7 @@ ISA-JSON compliant Samples (referred to as *ISA-JSON Samples*) are created withi Each permission level defines what actions a user can perform on an ISA-JSON Sample: - **No access**: The sample is entirely hidden from the user -- View: The user can view the sample and its metadata but cannot make changes +- **View**: The user can view the sample and its metadata but cannot make changes - Edit: The user can update metadata fields but cannot delete the sample or modify its sharing policy - Manage: The user has full control, including editing, deleting, and changing permissions. From 377da89ed7936b9c3cb5d28be224ad2c51a9e781 Mon Sep 17 00:00:00 2001 From: Phil Reed Date: Wed, 24 Sep 2025 08:40:17 +0100 Subject: [PATCH 15/34] Update help/user-guide/isa-sample-permissions.md --- help/user-guide/isa-sample-permissions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/help/user-guide/isa-sample-permissions.md b/help/user-guide/isa-sample-permissions.md index f51a5b0d9..096be673b 100644 --- a/help/user-guide/isa-sample-permissions.md +++ b/help/user-guide/isa-sample-permissions.md @@ -19,7 +19,7 @@ Each permission level defines what actions a user can perform on an ISA-JSON Sam - **No access**: The sample is entirely hidden from the user - **View**: The user can view the sample and its metadata but cannot make changes -- Edit: The user can update metadata fields but cannot delete the sample or modify its sharing policy +- **Edit**: The user can update metadata fields but cannot delete the sample or modify its sharing policy - Manage: The user has full control, including editing, deleting, and changing permissions. ## Inheritance and sharing behavior From 5e85bc38e741d63789e27e2d15b2a6a8ba6106d0 Mon Sep 17 00:00:00 2001 From: Phil Reed Date: Wed, 24 Sep 2025 08:40:34 +0100 Subject: [PATCH 16/34] Update help/user-guide/isa-sample-permissions.md --- help/user-guide/isa-sample-permissions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/help/user-guide/isa-sample-permissions.md b/help/user-guide/isa-sample-permissions.md index 096be673b..7408cd7dc 100644 --- a/help/user-guide/isa-sample-permissions.md +++ b/help/user-guide/isa-sample-permissions.md @@ -20,7 +20,7 @@ Each permission level defines what actions a user can perform on an ISA-JSON Sam - **No access**: The sample is entirely hidden from the user - **View**: The user can view the sample and its metadata but cannot make changes - **Edit**: The user can update metadata fields but cannot delete the sample or modify its sharing policy -- Manage: The user has full control, including editing, deleting, and changing permissions. +- **Manage**: The user has full control, including editing, deleting, and changing permissions. ## Inheritance and sharing behavior Each ISA-JSON has an associated sharing policy that determines which users or groups can view, edit, or manage it. Though alligned by default, these permissions can be set independently of those assigned to the parent Assay or Study, which may have their own sharing settings. From 4e61b4890c1e70ac84055635a82380dbe971dbe6 Mon Sep 17 00:00:00 2001 From: Phil Reed Date: Wed, 24 Sep 2025 08:41:04 +0100 Subject: [PATCH 17/34] Update help/user-guide/sample-type-permissions.md --- help/user-guide/sample-type-permissions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/help/user-guide/sample-type-permissions.md b/help/user-guide/sample-type-permissions.md index 9b48117e4..bad44dd25 100644 --- a/help/user-guide/sample-type-permissions.md +++ b/help/user-guide/sample-type-permissions.md @@ -11,7 +11,7 @@ Each Sample Type has an associated sharing policy that determines which users or | **Permission level** | **View ST** | **Edit ST** | **Manage ST** | **What this means** | |----------------------|:-----------:|:-----------:|:-------------:|----------------------| -| No access | ❌ | ❌ | ❌ | The Sample Type is completely hidden. | +| **No access** | ❌ | ❌ | ❌ | The Sample Type is completely hidden. | | View | ✅ | ❌ | ❌ | Users can see the Sample Type, but not change it. | | Edit | ✅ | ✅ | ❌ | Users can update fields, attributes, and units. | | Manage | ✅ | ✅ | ✅ | Full control: delete, change policy, etc. | From f547dfe6763db0bf66e6325e8c1370ef554df52f Mon Sep 17 00:00:00 2001 From: Phil Reed Date: Wed, 24 Sep 2025 08:41:24 +0100 Subject: [PATCH 18/34] Update help/user-guide/sample-type-permissions.md --- help/user-guide/sample-type-permissions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/help/user-guide/sample-type-permissions.md b/help/user-guide/sample-type-permissions.md index bad44dd25..e4b3f656b 100644 --- a/help/user-guide/sample-type-permissions.md +++ b/help/user-guide/sample-type-permissions.md @@ -12,7 +12,7 @@ Each Sample Type has an associated sharing policy that determines which users or | **Permission level** | **View ST** | **Edit ST** | **Manage ST** | **What this means** | |----------------------|:-----------:|:-----------:|:-------------:|----------------------| | **No access** | ❌ | ❌ | ❌ | The Sample Type is completely hidden. | -| View | ✅ | ❌ | ❌ | Users can see the Sample Type, but not change it. | +| **View** | ✅ | ❌ | ❌ | Users can see the Sample Type, but not change it. | | Edit | ✅ | ✅ | ❌ | Users can update fields, attributes, and units. | | Manage | ✅ | ✅ | ✅ | Full control: delete, change policy, etc. | From 0b38559566389f487ae1a31ada240864f50d8cb7 Mon Sep 17 00:00:00 2001 From: Phil Reed Date: Wed, 24 Sep 2025 08:41:48 +0100 Subject: [PATCH 19/34] Update help/user-guide/sample-type-permissions.md --- help/user-guide/sample-type-permissions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/help/user-guide/sample-type-permissions.md b/help/user-guide/sample-type-permissions.md index e4b3f656b..c70982002 100644 --- a/help/user-guide/sample-type-permissions.md +++ b/help/user-guide/sample-type-permissions.md @@ -13,7 +13,7 @@ Each Sample Type has an associated sharing policy that determines which users or |----------------------|:-----------:|:-----------:|:-------------:|----------------------| | **No access** | ❌ | ❌ | ❌ | The Sample Type is completely hidden. | | **View** | ✅ | ❌ | ❌ | Users can see the Sample Type, but not change it. | -| Edit | ✅ | ✅ | ❌ | Users can update fields, attributes, and units. | +| **Edit** | ✅ | ✅ | ❌ | Users can update fields, attributes, and units. | | Manage | ✅ | ✅ | ✅ | Full control: delete, change policy, etc. | From d43ba1c9e65bb1dfabade0734329f4f3b56813ed Mon Sep 17 00:00:00 2001 From: Phil Reed Date: Wed, 24 Sep 2025 08:42:12 +0100 Subject: [PATCH 20/34] Update help/user-guide/sample-type-permissions.md --- help/user-guide/sample-type-permissions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/help/user-guide/sample-type-permissions.md b/help/user-guide/sample-type-permissions.md index c70982002..f8e76e748 100644 --- a/help/user-guide/sample-type-permissions.md +++ b/help/user-guide/sample-type-permissions.md @@ -14,7 +14,7 @@ Each Sample Type has an associated sharing policy that determines which users or | **No access** | ❌ | ❌ | ❌ | The Sample Type is completely hidden. | | **View** | ✅ | ❌ | ❌ | Users can see the Sample Type, but not change it. | | **Edit** | ✅ | ✅ | ❌ | Users can update fields, attributes, and units. | -| Manage | ✅ | ✅ | ✅ | Full control: delete, change policy, etc. | +| **Manage** | ✅ | ✅ | ✅ | Full control: delete, change policy, etc. | In other words: From d1e22dcb4f1534eee5fa7586bd72343de314e548 Mon Sep 17 00:00:00 2001 From: Phil Reed Date: Wed, 24 Sep 2025 08:42:36 +0100 Subject: [PATCH 21/34] Update help/user-guide/sample-type-permissions.md --- help/user-guide/sample-type-permissions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/help/user-guide/sample-type-permissions.md b/help/user-guide/sample-type-permissions.md index f8e76e748..bc1422e0e 100644 --- a/help/user-guide/sample-type-permissions.md +++ b/help/user-guide/sample-type-permissions.md @@ -18,7 +18,7 @@ Each Sample Type has an associated sharing policy that determines which users or In other words: -- No access: The Sample Type is completely hidden, the user won’t even know it exists +- **No access**: The Sample Type is completely hidden, the user won’t even know it exists - View: The user can look at the Sample Type and its details, but can’t make any changes - Edit: The user can make changes to the Sample Type (like updating fields or units), but can’t delete it or change who else can see it - Manage: The user has full control — they can edit, delete, and change sharing settings. From 4df11cb8559a18c3b6a222bfa28468318c2d2e4c Mon Sep 17 00:00:00 2001 From: Phil Reed Date: Wed, 24 Sep 2025 08:42:54 +0100 Subject: [PATCH 22/34] Update help/user-guide/sample-type-permissions.md --- help/user-guide/sample-type-permissions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/help/user-guide/sample-type-permissions.md b/help/user-guide/sample-type-permissions.md index bc1422e0e..38daa7f81 100644 --- a/help/user-guide/sample-type-permissions.md +++ b/help/user-guide/sample-type-permissions.md @@ -19,7 +19,7 @@ Each Sample Type has an associated sharing policy that determines which users or In other words: - **No access**: The Sample Type is completely hidden, the user won’t even know it exists -- View: The user can look at the Sample Type and its details, but can’t make any changes +- **View**: The user can look at the Sample Type and its details, but can’t make any changes - Edit: The user can make changes to the Sample Type (like updating fields or units), but can’t delete it or change who else can see it - Manage: The user has full control — they can edit, delete, and change sharing settings. From 59a0c1063ec7b8f7a7c1bdd330ec4278abd2de38 Mon Sep 17 00:00:00 2001 From: Phil Reed Date: Wed, 24 Sep 2025 08:43:13 +0100 Subject: [PATCH 23/34] Update help/user-guide/sample-type-permissions.md --- help/user-guide/sample-type-permissions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/help/user-guide/sample-type-permissions.md b/help/user-guide/sample-type-permissions.md index 38daa7f81..8aef7d2af 100644 --- a/help/user-guide/sample-type-permissions.md +++ b/help/user-guide/sample-type-permissions.md @@ -20,7 +20,7 @@ Each Sample Type has an associated sharing policy that determines which users or In other words: - **No access**: The Sample Type is completely hidden, the user won’t even know it exists - **View**: The user can look at the Sample Type and its details, but can’t make any changes -- Edit: The user can make changes to the Sample Type (like updating fields or units), but can’t delete it or change who else can see it +- **Edit**: The user can make changes to the Sample Type (like updating fields or units), but can’t delete it or change who else can see it - Manage: The user has full control — they can edit, delete, and change sharing settings. > {% include callout.html type="note" content="Samples have their own, independent sharing policies that do not default to those of their Sample Type." %} From 4fd228f0e5f8f72e1e4067bf968b96556eb263ed Mon Sep 17 00:00:00 2001 From: Phil Reed Date: Wed, 24 Sep 2025 08:43:33 +0100 Subject: [PATCH 24/34] Update help/user-guide/sample-type-permissions.md --- help/user-guide/sample-type-permissions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/help/user-guide/sample-type-permissions.md b/help/user-guide/sample-type-permissions.md index 8aef7d2af..5832e2309 100644 --- a/help/user-guide/sample-type-permissions.md +++ b/help/user-guide/sample-type-permissions.md @@ -21,7 +21,7 @@ In other words: - **No access**: The Sample Type is completely hidden, the user won’t even know it exists - **View**: The user can look at the Sample Type and its details, but can’t make any changes - **Edit**: The user can make changes to the Sample Type (like updating fields or units), but can’t delete it or change who else can see it -- Manage: The user has full control — they can edit, delete, and change sharing settings. +- **Manage**: The user has full control — they can edit, delete, and change sharing settings. > {% include callout.html type="note" content="Samples have their own, independent sharing policies that do not default to those of their Sample Type." %} From 55037fb27449706132903eaa0fa163c5b907d677 Mon Sep 17 00:00:00 2001 From: Phil Reed Date: Wed, 24 Sep 2025 08:43:44 +0100 Subject: [PATCH 25/34] Update help/user-guide/sample-type-permissions.md --- help/user-guide/sample-type-permissions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/help/user-guide/sample-type-permissions.md b/help/user-guide/sample-type-permissions.md index 5832e2309..ca0332238 100644 --- a/help/user-guide/sample-type-permissions.md +++ b/help/user-guide/sample-type-permissions.md @@ -23,7 +23,7 @@ In other words: - **Edit**: The user can make changes to the Sample Type (like updating fields or units), but can’t delete it or change who else can see it - **Manage**: The user has full control — they can edit, delete, and change sharing settings. -> {% include callout.html type="note" content="Samples have their own, independent sharing policies that do not default to those of their Sample Type." %} +{% include callout.html type="note" content="Samples have their own, independent sharing policies that do not default to those of their Sample Type." %} Permissions assigned to a Sample Type do not automatically apply to the individual samples created under it. Each sample is governed by its own sharing policy, which is configured independently of the Sample Type. By default, newly created samples are private. From db85353e6e607788766846991a9a0766dfb9f514 Mon Sep 17 00:00:00 2001 From: Phil Reed Date: Wed, 24 Sep 2025 08:43:53 +0100 Subject: [PATCH 26/34] Update help/user-guide/sample-type-permissions.md --- help/user-guide/sample-type-permissions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/help/user-guide/sample-type-permissions.md b/help/user-guide/sample-type-permissions.md index ca0332238..fea212ce7 100644 --- a/help/user-guide/sample-type-permissions.md +++ b/help/user-guide/sample-type-permissions.md @@ -28,7 +28,7 @@ In other words: Permissions assigned to a Sample Type do not automatically apply to the individual samples created under it. Each sample is governed by its own sharing policy, which is configured independently of the Sample Type. By default, newly created samples are private. -Note: Samples created within the context of an ISA-compliant Study or Assay **do** inherit the permissions of that ISA Study or Assay by default. +{% include callout.html type="note" content="Samples created within the context of an ISA-compliant Study or Assay **do** inherit the permissions of that ISA Study or Assay by default." %} ## Who can create Samples? From 80c5a649ce384f3c461faaebb24b78114cb1aeda Mon Sep 17 00:00:00 2001 From: Phil Reed Date: Wed, 24 Sep 2025 08:44:00 +0100 Subject: [PATCH 27/34] Update help/user-guide/sample-type-permissions.md --- help/user-guide/sample-type-permissions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/help/user-guide/sample-type-permissions.md b/help/user-guide/sample-type-permissions.md index fea212ce7..57eeb1ace 100644 --- a/help/user-guide/sample-type-permissions.md +++ b/help/user-guide/sample-type-permissions.md @@ -32,7 +32,7 @@ By default, newly created samples are private. ## Who can create Samples? -> {% include callout.html type="note" content="Upgrading from a lower to higher policy at the level of the Sample Type does **not** automatically grant sample‑creation rights." %} +{% include callout.html type="note" content="Upgrading from a lower to higher policy at the level of the Sample Type does **not** automatically grant sample‑creation rights." %} To create samples, a user must: From 0a19869d4185deddfa125016a5a968bc6362b82c Mon Sep 17 00:00:00 2001 From: Phil Reed Date: Thu, 25 Sep 2025 13:39:28 +0100 Subject: [PATCH 28/34] Rename the new files to all lowercase names `edit-isa-assays.md` and `edit-isa=studies.md` and links to them. --- _data/sidebars/user_guide.yml | 4 ++-- help/user-guide/{edit-ISA-assays.md => edit-isa-assays.md} | 0 help/user-guide/{edit-ISA-studies.md => edit-isa-studies.md} | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename help/user-guide/{edit-ISA-assays.md => edit-isa-assays.md} (100%) rename help/user-guide/{edit-ISA-studies.md => edit-isa-studies.md} (100%) diff --git a/_data/sidebars/user_guide.yml b/_data/sidebars/user_guide.yml index c5d9ff618..fb1237ee2 100644 --- a/_data/sidebars/user_guide.yml +++ b/_data/sidebars/user_guide.yml @@ -81,13 +81,13 @@ subitems: - title: Creating an ISA-JSON compliant study url: /help/user-guide/studies - title: Editing an ISA-JSON compliant study - url: /help/user-guide/edit-ISA-studies + url: /help/user-guide/edit-isa-studies - title: Assays subitems: - title: Creating an ISA-JSON compliant assay url: /help/user-guide/assays - title: Editing an ISA-JSON compliant assay - url: /help/user-guide/edit-ISA-assays + url: /help/user-guide/edit-isa-assays - title: Experiment Sample Templates subitems: - title: Creating Experiment Sample Templates diff --git a/help/user-guide/edit-ISA-assays.md b/help/user-guide/edit-isa-assays.md similarity index 100% rename from help/user-guide/edit-ISA-assays.md rename to help/user-guide/edit-isa-assays.md diff --git a/help/user-guide/edit-ISA-studies.md b/help/user-guide/edit-isa-studies.md similarity index 100% rename from help/user-guide/edit-ISA-studies.md rename to help/user-guide/edit-isa-studies.md From 2d5243aac74a0dd9b6b278fc0c9dfeaf0f3618d8 Mon Sep 17 00:00:00 2001 From: Phil Reed Date: Thu, 25 Sep 2025 13:49:00 +0100 Subject: [PATCH 29/34] Update help/user-guide/sample-type-permissions.md --- help/user-guide/sample-type-permissions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/help/user-guide/sample-type-permissions.md b/help/user-guide/sample-type-permissions.md index 57eeb1ace..85bccaa95 100644 --- a/help/user-guide/sample-type-permissions.md +++ b/help/user-guide/sample-type-permissions.md @@ -2,7 +2,7 @@ title: Sample Type Permissions --- -In FAIRDOM-SEEK, a Sample Type (ST) defines the structure and metadata schema for a group of related samples. It specifies the attributes, units, and validation rules that apply to samples created under it. +In {{ site.seek_instance.name | default: "FAIRDOM-SEEK" }}, a Sample Type defines the structure and metadata schema for a group of related samples. It specifies the attributes, units, and validation rules that apply to samples created under it. Each Sample Type has an associated sharing policy that determines which users or groups can view, edit, or manage it. These permissions are distinct from those of the individual samples, which have their own independent sharing settings. From cec0eaa392bc8f226088bbf23ba9ef263f7e6dc3 Mon Sep 17 00:00:00 2001 From: Phil Reed Date: Thu, 25 Sep 2025 13:49:10 +0100 Subject: [PATCH 30/34] Update help/user-guide/edit-isa-assays.md --- help/user-guide/edit-isa-assays.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/help/user-guide/edit-isa-assays.md b/help/user-guide/edit-isa-assays.md index 26e5c9b8f..89949720d 100644 --- a/help/user-guide/edit-isa-assays.md +++ b/help/user-guide/edit-isa-assays.md @@ -3,7 +3,7 @@ title: Edit an Existing ISA-JSON compliant Assay --- -To edit an existing Assay, the user must have Edit or Manage permissions (i.e. policy ≥ Edit). +To edit an existing Assay, the user must have Edit or Manage permissions. ### Steps to edit From 1c4512794e823907d5a24b38bd64630588629ae2 Mon Sep 17 00:00:00 2001 From: Phil Reed Date: Thu, 25 Sep 2025 13:49:24 +0100 Subject: [PATCH 31/34] Update help/user-guide/edit-isa-studies.md --- help/user-guide/edit-isa-studies.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/help/user-guide/edit-isa-studies.md b/help/user-guide/edit-isa-studies.md index 064ae0980..8c9a08356 100644 --- a/help/user-guide/edit-isa-studies.md +++ b/help/user-guide/edit-isa-studies.md @@ -3,7 +3,7 @@ title: Edit an Existing ISA-JSON compliant Study --- -To edit an existing ISA-JSON compliant Study, the user must have Edit or Manage permissions (i.e. policy ≥ Edit). +To edit an existing ISA-JSON compliant Study, the user must have Edit or Manage permissions. ### Steps to edit From 812778524e0d46cdd383902e7ce5b8dd1c59099f Mon Sep 17 00:00:00 2001 From: Phil Reed Date: Thu, 25 Sep 2025 13:50:58 +0100 Subject: [PATCH 32/34] Remove rogue asterisks (likely closing bold tags that no longer make sense) --- help/user-guide/edit-sample-type.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/help/user-guide/edit-sample-type.md b/help/user-guide/edit-sample-type.md index f82929320..8184e766f 100644 --- a/help/user-guide/edit-sample-type.md +++ b/help/user-guide/edit-sample-type.md @@ -10,7 +10,7 @@ Steps to edit: 2. Select the Sample Type to edit 3. Click Actions → Edit Sample Type in the top-right corner. -> {% include callout.html type="note" content="Users are not notified of changes made to the Sample Type — inform collaborators as needed." %} +{% include callout.html type="note" content="Users are not notified of changes made to the Sample Type — inform collaborators as needed." %} ## Changing Sample Type properties @@ -92,13 +92,13 @@ If these conditions are not met, the 'Delete Sample Type' option will not be ava - Cannot rename or change type/unit of an attribute → Verify that no samples have populated values for that field. -- Toggling “Title” status is greyed out** +- Toggling “Title” status is greyed out → You can only switch the title flag if **every** existing sample has a non‑empty value for the new title attribute. -- Toggling “Required?” status is greyed out** +- Toggling “Required?” status is greyed out → You can only switch the required flag if **no** existing sample has a non‑empty value for the attribute. -- “Delete Sample Type” action missing** +- “Delete Sample Type” action missing → Confirm that: 1. You have 'Manage' permissions 2. No samples exist for that type From aaf214db977e9e2bdee6f751c17e1d20596fb815 Mon Sep 17 00:00:00 2001 From: Phil Reed Date: Tue, 30 Sep 2025 13:51:46 +0100 Subject: [PATCH 33/34] Update to ETT 5.0.0, use its native external link icon --- _config.yml | 2 +- _sass/_custom_classes.scss | 22 ---------------------- assets/js/main.js | 13 ------------- 3 files changed, 1 insertion(+), 36 deletions(-) diff --git a/_config.yml b/_config.yml index 10f50a701..95c524b91 100644 --- a/_config.yml +++ b/_config.yml @@ -1,6 +1,6 @@ #baseurl: /seek -remote_theme: ELIXIR-Belgium/elixir-toolkit-theme@4.2.0 +remote_theme: ELIXIR-Belgium/elixir-toolkit-theme@5.0.0 current_seek_version: "1.17.0" current_docker_tag: "1.17" diff --git a/_sass/_custom_classes.scss b/_sass/_custom_classes.scss index 31edf1658..0cb1feb56 100644 --- a/_sass/_custom_classes.scss +++ b/_sass/_custom_classes.scss @@ -101,25 +101,3 @@ main .navigation-tiles p { } } - -/*-----Show external links with icon------*/ -//.external::after { -// content: "↗️"; -//} -/* Add an indicator after external links that'll open in a new window. */ -#content .external::after, -footer ul .external::after { - /* ↗, but nicer. SVG adapted from Inter's rendition of "↗". */ - content: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8' standalone='no'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' version='1.1' id='svg1' width='12' height='12'%3E%3Cpath d='M 7.6490176,0 C 7.2259314,0 6.8841158,0.33671562 6.8841158,0.75348946 c 0,0.41677384 0.3418156,0.75348944 0.7649018,0.75348944 H 9.6258104 L 4.8141006,6.2492535 c -0.2987899,0.2943316 -0.2987899,0.7723267 0,1.0666587 0.2987896,0.2943318 0.7840244,0.2943318 1.0828141,0 L 10.708625,2.5736375 v 1.9472993 c 0,0.416774 0.341816,0.7534895 0.764901,0.7534895 0.423086,0 0.764902,-0.3367155 0.764902,-0.7534895 V 0.75348946 C 12.238428,0.33671562 11.896612,0 11.473526,0 Z M 1.9122544,0.75348946 C 0.85573386,0.75348946 0,1.5964559 0,2.6372133 v 7.5348947 c 0,1.040757 0.85573386,1.883724 1.9122544,1.883724 H 9.561272 c 1.05652,0 1.912254,-0.842967 1.912254,-1.883724 V 7.5348946 c 0,-0.4167736 -0.341816,-0.7534893 -0.764901,-0.7534893 -0.423086,0 -0.7649021,0.3367157 -0.7649021,0.7534893 v 2.6372134 c 0,0.207209 -0.1721028,0.376745 -0.3824509,0.376745 H 1.9122544 c -0.2103479,0 -0.3824509,-0.169536 -0.3824509,-0.376745 V 2.6372133 c 0,-0.2072096 0.172103,-0.3767448 0.3824509,-0.3767448 h 2.6771561 c 0.4230865,0 0.7649017,-0.3367156 0.7649017,-0.7534896 0,-0.4167738 -0.3418152,-0.75348944 -0.7649017,-0.75348944 z' id='path1' style='fill:%23999999;fill-opacity:1;stroke-width:0.0237243' /%3E%3C/svg%3E%0A"); - /* inline => inline-block, so that we can give it a height */ - display: inline-block; - height: 0.5em; - padding-inline: 0.2em; - aspect-ratio: 1; - line-height: 1; - vertical-align: text-top; - - @media (prefers-color-scheme: dark) { - filter: invert(100%); - } -} diff --git a/assets/js/main.js b/assets/js/main.js index 60126d470..f74430aaf 100644 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -13,19 +13,6 @@ $(document).ready(function () { anchors.add('h2:not(.no-anchor)'); }) -/** - * Function to open external links in separate tab - */ -$(document).ready(function () { - for (var c = document.getElementsByTagName("a"), a = 0; a < c.length; a++) { - var b = c[a]; - if (b.getAttribute("href") && b.hostname !== location.hostname) { - b.target = "_blank"; - b.rel = "noopener"; - b.classList.add("external"); - } - } -}); /** * Settings for side navigation From 8c28752ffb15b3efc562fa2aabc63822ae0197cc Mon Sep 17 00:00:00 2001 From: Kevin De Pelseneer Date: Tue, 30 Sep 2025 10:48:40 +0200 Subject: [PATCH 34/34] convert to usable code snippets --- help/user-guide/create-sample-isajson-compliant.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/help/user-guide/create-sample-isajson-compliant.md b/help/user-guide/create-sample-isajson-compliant.md index 845a7f54d..1a8d67c53 100644 --- a/help/user-guide/create-sample-isajson-compliant.md +++ b/help/user-guide/create-sample-isajson-compliant.md @@ -67,11 +67,15 @@ Open the downloaded excel file and fill in the "Input" column by providing the * One input value: -[{"id"=>343, "type"=>"Sample", "title"=>"yeast_wgs_02"}]. +```ruby +[{"id"=>343, "type"=>"Sample", "title"=>"yeast_wgs_02"}] +``` Two input values: +```ruby [{"id"=>343, "type"=>"Sample", "title"=>"yeast_wgs_02"}, {"id"=>342, "type"=>"Sample", "title"=>"yeast_wgs_01"}] +``` ![create study samples 6]({{ "/images/user-guide/isajson-compliance/create_samples_isastudy_samples_6.png" | relative_url }}){:.screenshot}