Versioned templates and validation rules for SDRF-Proteomics.
{template-name}/
{version}/
{template-name}.yaml # Validation rules and column definitions
{template-name}.sdrf.tsv # Example template file
The templates.yaml manifest is auto-generated on merge to master. It contains:
- All available templates
- Latest version for each template
- Version history
- Inheritance relationships (
extends)
import yaml
with open('templates.yaml') as f:
manifest = yaml.safe_load(f)
# Get latest human template version
latest = manifest['templates']['human']['latest'] # e.g., "1.1.0"from pathlib import Path
import yaml
def load_template(name: str, version: str = None) -> dict:
if version is None:
with open('templates.yaml') as f:
manifest = yaml.safe_load(f)
version = manifest['templates'][name]['latest']
template_path = Path(name) / version / f'{name}.yaml'
with open(template_path) as f:
return yaml.safe_load(f)Templates use an extends field to inherit columns from parent templates:
base- Core columns shared by all templatesms-proteomicsextendsbase- Mass spectrometry columnsaffinity-proteomicsextendsbase- Affinity assay columnshumanextendsbase- Human sample columnsdda-acquisitionextendsms-proteomics- DDA-specific columns
- Create a new version directory:
{template-name}/{new-version}/ - Add
{template-name}.yamlwith updatedversionfield - Add
{template-name}.sdrf.tsvexample file - Submit PR to master
- Manifest will auto-update on merge
- proteomics-metadata-standard - Specification
- sdrf-pipelines - Validator