diff --git a/.sheet_documentation_template.md.jinja b/.sheet_documentation_template.md.jinja
index 6aef8e9..a2f79c0 100644
--- a/.sheet_documentation_template.md.jinja
+++ b/.sheet_documentation_template.md.jinja
@@ -7,20 +7,25 @@
## Fields
{% for slot in slots %}
-**{{ slot.name }}** : {{ slot.description }}
+### ***{{ slot.name }}***
+**description** : {{ slot.description }}
**required** : {{ slot.required }}
{% if 'Enum' in slot.data_type.range %}
**data type** : Controlled Vocabulary
{% else %}
**data type** : {{ slot.data_type.range }}
{% endif %}
-
{% if slot.data_type.enum %}
+
+
+ Permissible Values
+
| Permissible Values | Description |
| --- | --- |
{% for val in slot.data_type.enum.permissible_values%}
| `{{ val.name }}` | `{{ val.description }}` |
{% endfor %} {{ '\n' }}
-{% endif %}
+
+{% endif %}
{% endfor %}
diff --git a/docs/metadata/worksheets/Analysis.md b/docs/metadata/worksheets/Analysis.md
index afbe295..ffbf1fc 100644
--- a/docs/metadata/worksheets/Analysis.md
+++ b/docs/metadata/worksheets/Analysis.md
@@ -6,31 +6,27 @@ An Analysis is a data transformation that transforms input data to output data.
## Fields
-**title** : The title that describes an entity.
+### ***title***
+**description** : The title that describes an entity.
**required** : None
**data type** : string
-
-
+### ***description***
**description** : Describing how an Analysis was carried out. (e.g.: computational tools, settings, etc.).
**required** : False
**data type** : string
-
-
-**type** : The type of the Analysis. Either Reference Alignment (BAM) or Sequence Variation (VCF)
+### ***type***
+**description** : The type of the Analysis. Either Reference Alignment (BAM) or Sequence Variation (VCF)
**required** : False
**data type** : string
-
-
-**reference_genome** : A published genetic sequence that is used as a reference sequence against which other sequences are compared. Reference genome(s) or annotation(s) used for prior analyses (eg: GRCh38.p13).
+### ***reference_genome***
+**description** : A published genetic sequence that is used as a reference sequence against which other sequences are compared. Reference genome(s) or annotation(s) used for prior analyses (eg: GRCh38.p13).
**required** : True
**data type** : string
-
-
-**reference_chromosome** : The reference chromosome used for this Analysis.
+### ***reference_chromosome***
+**description** : The reference chromosome used for this Analysis.
**required** : True
**data type** : string
-
-
-**alias** : The alias for an entity at the time of submission.
+### ***alias***
+**description** : The alias for an entity at the time of submission.
**required** : True
**data type** : string
diff --git a/docs/metadata/worksheets/AnalysisProcess.md b/docs/metadata/worksheets/AnalysisProcess.md
index dcd4362..1b4815d 100644
--- a/docs/metadata/worksheets/AnalysisProcess.md
+++ b/docs/metadata/worksheets/AnalysisProcess.md
@@ -6,26 +6,23 @@ None
## Fields
-**analysis** : The Analysis the AnalysisProcess was part of
+### ***analysis***
+**description** : The Analysis the AnalysisProcess was part of
**required** : True
**data type** : Analysis
-
-
-**study_input_files** : The StudyFile associated used as an input for an entity.
+### ***study_input_files***
+**description** : The StudyFile associated used as an input for an entity.
**required** : False
**data type** : StudyFile
-
-
-**sample_input_files** : The SampleFile associated used as an input for an entity.
+### ***sample_input_files***
+**description** : The SampleFile associated used as an input for an entity.
**required** : False
**data type** : SampleFile
-
-
-**sequencing_process_input_files** : The SequencingProcessFile associated used as an input for an entity.
+### ***sequencing_process_input_files***
+**description** : The SequencingProcessFile associated used as an input for an entity.
**required** : False
**data type** : SequencingProcessFile
-
-
-**alias** : The alias for an entity at the time of submission.
+### ***alias***
+**description** : The alias for an entity at the time of submission.
**required** : True
**data type** : string
diff --git a/docs/metadata/worksheets/AnalysisProcessOutputFile.md b/docs/metadata/worksheets/AnalysisProcessOutputFile.md
index b84179b..4cb93b2 100644
--- a/docs/metadata/worksheets/AnalysisProcessOutputFile.md
+++ b/docs/metadata/worksheets/AnalysisProcessOutputFile.md
@@ -6,20 +6,22 @@ A AnalysisProcessOutputFile is a File that is associated as an output file with
## Fields
-**analysis_process** : The AnalysisProcess associated with an entity.
+### ***analysis_process***
+**description** : The AnalysisProcess associated with an entity.
**required** : True
**data type** : AnalysisProcess
-
-
-**name** : The given filename.
+### ***name***
+**description** : The given filename.
**required** : True
**data type** : string
-
-
-**format** : The format of the file: BAM, SAM, CRAM, BAI, etc.
+### ***format***
+**description** : The format of the file: BAM, SAM, CRAM, BAI, etc.
**required** : True
**data type** : Controlled Vocabulary
+
+ Permissible Values
+
| Permissible Values | Description |
| --- | --- |
| `AGP` | `None` |
@@ -50,38 +52,41 @@ A AnalysisProcessOutputFile is a File that is associated as an output file with
| `WIG` | `None` |
+
-**size** : The size of a file in bytes.
+### ***size***
+**description** : The size of a file in bytes.
**required** : True
**data type** : integer
-
-
-**checksum** : A computed value which depends on the contents of a block of data and which is transmitted or stored along with the data in order to detect corruption of the data. The receiving system recomputes the checksum based upon the received data and compares this value with the one sent with the data. If the two values are the same, the receiver has some confidence that the data was received correctly.
+### ***checksum***
+**description** : A computed value which depends on the contents of a block of data and which is transmitted or stored along with the data in order to detect corruption of the data. The receiving system recomputes the checksum based upon the received data and compares this value with the one sent with the data. If the two values are the same, the receiver has some confidence that the data was received correctly.
**required** : True
**data type** : string
-
-
-**forward_or_reverse** : Denotes whether a submitted FASTQ file contains forward (R1) or reverse (R2) reads for paired-end sequencing. The number that identifies each read direction in a paired-end nucleotide sequencing reaction.
+### ***forward_or_reverse***
+**description** : Denotes whether a submitted FASTQ file contains forward (R1) or reverse (R2) reads for paired-end sequencing. The number that identifies each read direction in a paired-end nucleotide sequencing reaction.
**required** : False
**data type** : Controlled Vocabulary
+
+ Permissible Values
+
| Permissible Values | Description |
| --- | --- |
| `FORWARD` | `The reads are forward (R1) reads` |
| `REVERSE` | `The reads are reverse (R2) reads` |
+
-**checksum_type** : The type of algorithm used to generate the checksum of a file.
+### ***checksum_type***
+**description** : The type of algorithm used to generate the checksum of a file.
**required** : True
**data type** : string
-
-
-**dataset** : The Dataset associated with an entity.
+### ***dataset***
+**description** : The Dataset associated with an entity.
**required** : True
**data type** : Dataset
-
-
-**alias** : The alias for an entity at the time of submission.
+### ***alias***
+**description** : The alias for an entity at the time of submission.
**required** : True
**data type** : string
diff --git a/docs/metadata/worksheets/Biospecimen.md b/docs/metadata/worksheets/Biospecimen.md
index 0d4113b..19d309d 100644
--- a/docs/metadata/worksheets/Biospecimen.md
+++ b/docs/metadata/worksheets/Biospecimen.md
@@ -6,40 +6,38 @@ A Biospecimen is any natural material taken from a biological entity (usually a
## Fields
-**name** : The name for an entity.
+### ***name***
+**description** : The name for an entity.
**required** : False
**data type** : string
-
-
-**type** : The type of Biospecimen.
+### ***type***
+**description** : The type of Biospecimen.
**required** : False
**data type** : string
-
-
+### ***description***
**description** : Description of an entity.
**required** : False
**data type** : string
-
-
-**isolation** : Method or device employed for collecting/isolating a biospecimen or a sample.
+### ***isolation***
+**description** : Method or device employed for collecting/isolating a biospecimen or a sample.
**required** : False
**data type** : string
-
-
-**storage** : Methods by which a biospecimen or a sample is stored (e.g. frozen in liquid nitrogen).
+### ***storage***
+**description** : Methods by which a biospecimen or a sample is stored (e.g. frozen in liquid nitrogen).
**required** : False
**data type** : string
-
-
-**individual** : The Individual entity from which this Biospecimen was derived.
+### ***individual***
+**description** : The Individual entity from which this Biospecimen was derived.
**required** : True
**data type** : Individual
-
-
-**age_at_sampling** : Age of an individual.
+### ***age_at_sampling***
+**description** : Age of an individual.
**required** : True
**data type** : Controlled Vocabulary
+
+ Permissible Values
+
| Permissible Values | Description |
| --- | --- |
| `0_TO_5` | `Age between 0 to 5.` |
@@ -62,11 +60,16 @@ A Biospecimen is any natural material taken from a biological entity (usually a
| `UNKNOWN` | `Age range unknown.` |
+
-**vital_status_at_sampling** : Vital Status of an Individual at the point of sampling (eg:'Alive', 'Deceased').
+### ***vital_status_at_sampling***
+**description** : Vital Status of an Individual at the point of sampling (eg:'Alive', 'Deceased').
**required** : False
**data type** : Controlled Vocabulary
+
+ Permissible Values
+
| Permissible Values | Description |
| --- | --- |
| `ALIVE` | `Showing characteristics of life; displaying signs of life.` |
@@ -74,12 +77,13 @@ A Biospecimen is any natural material taken from a biological entity (usually a
| `UNKNOWN` | `Vital status is unknown.` |
+
-**tissue** : None
+### ***tissue***
+**description** : None
**required** : True
**data type** : string
-
-
-**alias** : The alias for an entity at the time of submission.
+### ***alias***
+**description** : The alias for an entity at the time of submission.
**required** : True
**data type** : string
diff --git a/docs/metadata/worksheets/Condition.md b/docs/metadata/worksheets/Condition.md
index 32a5303..3946db5 100644
--- a/docs/metadata/worksheets/Condition.md
+++ b/docs/metadata/worksheets/Condition.md
@@ -6,25 +6,26 @@ An condition that is linked to comparable samples.
## Fields
-**title** : The title that describes an entity.
+### ***title***
+**description** : The title that describes an entity.
**required** : None
**data type** : string
-
-
+### ***description***
**description** : Description of an entity.
**required** : True
**data type** : string
-
-
-**name** : The name for an entity.
+### ***name***
+**description** : The name for an entity.
**required** : True
**data type** : string
-
-
-**disease_or_healthy** : Whether a condition corresponds to a disease or a healthy state.
+### ***disease_or_healthy***
+**description** : Whether a condition corresponds to a disease or a healthy state.
**required** : True
**data type** : Controlled Vocabulary
+
+ Permissible Values
+
| Permissible Values | Description |
| --- | --- |
| `DISEASE` | `Disease state.` |
@@ -32,11 +33,16 @@ An condition that is linked to comparable samples.
| `NOT_APPLICABLE` | `The distinction is not applicaple.` |
+
-**case_control_status** : Whether a condition corresponds to a treatment or a control.
+### ***case_control_status***
+**description** : Whether a condition corresponds to a treatment or a control.
**required** : True
**data type** : Controlled Vocabulary
+
+ Permissible Values
+
| Permissible Values | Description |
| --- | --- |
| `NEITHER_CASE_OR_CONTROL_STATUS` | `None` |
@@ -47,11 +53,16 @@ An condition that is linked to comparable samples.
| `UNABLE_TO_ASSESS_CASE_OR_CONTROL_STATUS` | `None` |
+
-**mutant_or_wildtype** : Whether a condition corresponds to a mutant or a wildtype.
+### ***mutant_or_wildtype***
+**description** : Whether a condition corresponds to a mutant or a wildtype.
**required** : True
**data type** : Controlled Vocabulary
+
+ Permissible Values
+
| Permissible Values | Description |
| --- | --- |
| `MUTANT` | `Mutant state.` |
@@ -59,17 +70,17 @@ An condition that is linked to comparable samples.
| `NOT_APPLICABLE` | `The distinction is not applicaple.` |
+
-**study** : The study associated with an entity.
+### ***study***
+**description** : The study associated with an entity.
**required** : True
**data type** : Study
-
-
-**attributes** : Key/value pairs corresponding to an entity.
+### ***attributes***
+**description** : Key/value pairs corresponding to an entity.
**required** : False
**data type** : Attribute
-
-
-**alias** : The alias for an entity at the time of submission.
+### ***alias***
+**description** : The alias for an entity at the time of submission.
**required** : True
**data type** : string
diff --git a/docs/metadata/worksheets/DataAccessCommittee.md b/docs/metadata/worksheets/DataAccessCommittee.md
index 109af58..4e2edf7 100644
--- a/docs/metadata/worksheets/DataAccessCommittee.md
+++ b/docs/metadata/worksheets/DataAccessCommittee.md
@@ -6,16 +6,15 @@ A group of members that are delegated to grant access to one or more datasets af
## Fields
-**email** : Email of a person.
+### ***email***
+**description** : Email of a person.
**required** : True
**data type** : string
-
-
-**institute** : The institute a person is affiliated with.
+### ***institute***
+**description** : The institute a person is affiliated with.
**required** : True
**data type** : string
-
-
-**alias** : The alias for an entity at the time of submission.
+### ***alias***
+**description** : The alias for an entity at the time of submission.
**required** : True
**data type** : string
diff --git a/docs/metadata/worksheets/DataAccessPolicy.md b/docs/metadata/worksheets/DataAccessPolicy.md
index 447a7b3..2b2ea21 100644
--- a/docs/metadata/worksheets/DataAccessPolicy.md
+++ b/docs/metadata/worksheets/DataAccessPolicy.md
@@ -6,35 +6,34 @@ A Data Access Policy specifies under which circumstances, legal or otherwise, a
## Fields
-**name** : A name for the Data Access Policy.
+### ***name***
+**description** : A name for the Data Access Policy.
**required** : True
**data type** : string
-
-
+### ***description***
**description** : A short description for the Data Access Policy.
**required** : True
**data type** : string
-
-
-**policy_text** : The terms of data use and policy verbiage should be captured here.
+### ***policy_text***
+**description** : The terms of data use and policy verbiage should be captured here.
**required** : True
**data type** : string
-
-
-**policy_url** : URL for the policy, if available. This is useful if the terms of the policy is made available online at a resolvable URL.
+### ***policy_url***
+**description** : URL for the policy, if available. This is useful if the terms of the policy is made available online at a resolvable URL.
**required** : False
**data type** : string
-
-
-**data_access_committee** : The Data Access Committee linked to this policy.
+### ***data_access_committee***
+**description** : The Data Access Committee linked to this policy.
**required** : True
**data type** : DataAccessCommittee
-
-
-**data_use_permission** : Data use permission associated with a policy. Typically one or more terms from DUO and should be descendants of 'DUO:0000001 data use permission'.
+### ***data_use_permission***
+**description** : Data use permission associated with a policy. Typically one or more terms from DUO and should be descendants of 'DUO:0000001 data use permission'.
**required** : True
**data type** : Controlled Vocabulary
+
+ Permissible Values
+
| Permissible Values | Description |
| --- | --- |
| `general research use` | `None` |
@@ -44,11 +43,16 @@ A Data Access Policy specifies under which circumstances, legal or otherwise, a
| `population origins or ancestry research only` | `None` |
+
-**data_use_modifiers** : Modifier for Data use permission associated with a policy. Should be descendants of 'DUO:0000017 data use modifier'
+### ***data_use_modifiers***
+**description** : Modifier for Data use permission associated with a policy. Should be descendants of 'DUO:0000017 data use modifier'
**required** : False
**data type** : Controlled Vocabulary
+
+ Permissible Values
+
| Permissible Values | Description |
| --- | --- |
| `clinical care use` | `None` |
@@ -71,7 +75,9 @@ A Data Access Policy specifies under which circumstances, legal or otherwise, a
| `population origins or ancestry research prohibited` | `None` |
+
-**alias** : The alias for an entity at the time of submission.
+### ***alias***
+**description** : The alias for an entity at the time of submission.
**required** : True
**data type** : string
diff --git a/docs/metadata/worksheets/Dataset.md b/docs/metadata/worksheets/Dataset.md
index 80b6976..35b7f3a 100644
--- a/docs/metadata/worksheets/Dataset.md
+++ b/docs/metadata/worksheets/Dataset.md
@@ -6,26 +6,23 @@ A Dataset is a collection of Files that is prepared for distribution and is tied
## Fields
-**title** : A title for the submitted Dataset.
+### ***title***
+**description** : A title for the submitted Dataset.
**required** : True
**data type** : string
-
-
+### ***description***
**description** : Description of an entity.
**required** : True
**data type** : string
-
-
-**types** : The type of a dataset.
+### ***types***
+**description** : The type of a dataset.
**required** : True
**data type** : string
-
-
-**data_access_policy** : The Data Access Policy that applies to this Dataset.
+### ***data_access_policy***
+**description** : The Data Access Policy that applies to this Dataset.
**required** : True
**data type** : DataAccessPolicy
-
-
-**alias** : The alias for an entity at the time of submission.
+### ***alias***
+**description** : The alias for an entity at the time of submission.
**required** : True
**data type** : string
diff --git a/docs/metadata/worksheets/Individual.md b/docs/metadata/worksheets/Individual.md
index 5d422b1..d8bbdc9 100644
--- a/docs/metadata/worksheets/Individual.md
+++ b/docs/metadata/worksheets/Individual.md
@@ -6,10 +6,14 @@ An Individual is a Person who is participating in a Study.
## Fields
-**sex** : The assemblage of physical properties or qualities by which male is distinguished from female; the physical difference between male and female; the distinguishing peculiarity of male or female.
+### ***sex***
+**description** : The assemblage of physical properties or qualities by which male is distinguished from female; the physical difference between male and female; the distinguishing peculiarity of male or female.
**required** : True
**data type** : Controlled Vocabulary
+
+ Permissible Values
+
| Permissible Values | Description |
| --- | --- |
| `FEMALE_SEX_FOR_CLINICAL_USE` | `None` |
@@ -19,11 +23,16 @@ An Individual is a Person who is participating in a Study.
| `UNKNOWN_SEX_FOR_CLINICAL_USE` | `None` |
+
-**karyotype** : The karyotype of an individual if defined.
+### ***karyotype***
+**description** : The karyotype of an individual if defined.
**required** : False
**data type** : Controlled Vocabulary
+
+ Permissible Values
+
| Permissible Values | Description |
| --- | --- |
| `46_XY` | `None` |
@@ -31,22 +40,21 @@ An Individual is a Person who is participating in a Study.
| `OTHER` | `None` |
+
-**geographical_region** : The geographical region where the Individual is located. Any demarcated area of the Earth; may be determined by both natural and human boundaries.
+### ***geographical_region***
+**description** : The geographical region where the Individual is located. Any demarcated area of the Earth; may be determined by both natural and human boundaries.
**required** : False
**data type** : string
-
-
-**ancestries** : A person's descent or lineage, from a person or from a population.
+### ***ancestries***
+**description** : A person's descent or lineage, from a person or from a population.
**required** : False
**data type** : string
-
-
-**phenotypic_features** : The Phenotypic Feature entity that is associated with this Biospecimen at the time of retrieval from the organism. Typically, a concept from Human Phenotype Ontology. For example, 'HP:0100244' indicates that the Individual - from_which_the_Biospecimen was extracted from - exhibits_'Fibrosarcoma'_as_one_of_its_phenotype.
+### ***phenotypic_features***
+**description** : The Phenotypic Feature entity that is associated with this Biospecimen at the time of retrieval from the organism. Typically, a concept from Human Phenotype Ontology. For example, 'HP:0100244' indicates that the Individual - from_which_the_Biospecimen was extracted from - exhibits_'Fibrosarcoma'_as_one_of_its_phenotype.
**required** : False
**data type** : string
-
-
-**alias** : The alias for an entity at the time of submission.
+### ***alias***
+**description** : The alias for an entity at the time of submission.
**required** : True
**data type** : string
diff --git a/docs/metadata/worksheets/LibraryPreparationProtocol.md b/docs/metadata/worksheets/LibraryPreparationProtocol.md
index def4c85..9b214a7 100644
--- a/docs/metadata/worksheets/LibraryPreparationProtocol.md
+++ b/docs/metadata/worksheets/LibraryPreparationProtocol.md
@@ -6,31 +6,38 @@ Information about the library_preparation of an sequencing experiment.
## Fields
+### ***description***
**description** : Description about how a sequencing library was prepared (eg: Library construction method).
**required** : True
**data type** : string
-
-
-**library_name** : A short name identifying the library to potential users. The same name may refer to multiple versions of the same continually updated library.
+### ***library_name***
+**description** : A short name identifying the library to potential users. The same name may refer to multiple versions of the same continually updated library.
**required** : True
**data type** : string
-
-
-**library_layout** : Describe whether the library was sequenced in single-end (forward or reverse) or paired-end mode
+### ***library_layout***
+**description** : Describe whether the library was sequenced in single-end (forward or reverse) or paired-end mode
**required** : True
**data type** : Controlled Vocabulary
+
+ Permissible Values
+
| Permissible Values | Description |
| --- | --- |
| `SE` | `None` |
| `PE` | `None` |
+
-**library_type** : Describe the level of omics analysis (eg: Metagenome, transcriptome, etc)
+### ***library_type***
+**description** : Describe the level of omics analysis (eg: Metagenome, transcriptome, etc)
**required** : True
**data type** : Controlled Vocabulary
+
+ Permissible Values
+
| Permissible Values | Description |
| --- | --- |
| `WGS` | `None` |
@@ -45,11 +52,16 @@ Information about the library_preparation of an sequencing experiment.
| `CHROMOSOME_CONFORMATION_CAPTURE` | `None` |
+
-**library_selection** : Whether any method was used to select for or against, enrich, or screen the material being sequenced. library_selection method (e.g. random, PCA, cDNA, etc )
+### ***library_selection***
+**description** : Whether any method was used to select for or against, enrich, or screen the material being sequenced. library_selection method (e.g. random, PCA, cDNA, etc )
**required** : True
**data type** : Controlled Vocabulary
+
+ Permissible Values
+
| Permissible Values | Description |
| --- | --- |
| `5_METHYLCYTIDINE_ANTIBODY_METHOD` | `None` |
@@ -85,16 +97,20 @@ Information about the library_preparation of an sequencing experiment.
| `OTHER` | `None` |
+
-**library_preparation** : The general method for sequencing library_preparation (e.g. KAPA PCR-free).
+### ***library_preparation***
+**description** : The general method for sequencing library_preparation (e.g. KAPA PCR-free).
**required** : True
**data type** : string
-
-
-**library_preparation_kit_retail_name** : A unique identifier for the kit used to construct a genomic library. This may include the vendor name, kit name and kit version (e.g. Agilent sure select Human Exome V8, Twist RefSeq Exome, etc.)
+### ***library_preparation_kit_retail_name***
+**description** : A unique identifier for the kit used to construct a genomic library. This may include the vendor name, kit name and kit version (e.g. Agilent sure select Human Exome V8, Twist RefSeq Exome, etc.)
**required** : False
**data type** : Controlled Vocabulary
+
+ Permissible Values
+
| Permissible Values | Description |
| --- | --- |
| `10X_GENOMICS_CHROMIUM_SINGLE_CELL_3_V2` | `None` |
@@ -172,16 +188,20 @@ Information about the library_preparation of an sequencing experiment.
| `ULTRALOW_METHYL_SEQ_WITH_TRUE_METHYL_OX_BS_MODULE` | `None` |
+
-**library_preparation_kit_manufacturer** : Manufacturer of library_preparation kit
+### ***library_preparation_kit_manufacturer***
+**description** : Manufacturer of library_preparation kit
**required** : False
**data type** : string
-
-
-**primer** : The type of primer used for reverse transcription, e.g. 'oligo-dT' or 'random' primer. This allows users to identify content of the cDNA library input e.g. enriched for mRNA.
+### ***primer***
+**description** : The type of primer used for reverse transcription, e.g. 'oligo-dT' or 'random' primer. This allows users to identify content of the cDNA library input e.g. enriched for mRNA.
**required** : False
**data type** : Controlled Vocabulary
+
+ Permissible Values
+
| Permissible Values | Description |
| --- | --- |
| `OLIGO_D_T` | `None` |
@@ -190,11 +210,16 @@ Information about the library_preparation of an sequencing experiment.
| `OTHER` | `None` |
+
-**end_bias** : The end of the cDNA molecule that is preferentially sequenced, e.g. 3/5 prime tag or end, or the full-length transcript.
+### ***end_bias***
+**description** : The end of the cDNA molecule that is preferentially sequenced, e.g. 3/5 prime tag or end, or the full-length transcript.
**required** : False
**data type** : Controlled Vocabulary
+
+ Permissible Values
+
| Permissible Values | Description |
| --- | --- |
| `3_PRIME_END` | `None` |
@@ -202,16 +227,20 @@ Information about the library_preparation of an sequencing experiment.
| `FULL_LENGTH` | `None` |
+
-**target_regions** : Subset of genes or specific regions of the genome, which are most likely to be involved in the phenotype under study.
+### ***target_regions***
+**description** : Subset of genes or specific regions of the genome, which are most likely to be involved in the phenotype under study.
**required** : False
**data type** : string
-
-
-**rnaseq_strandedness** : The strandedness of the library, whether reads come from both strands of the cDNA or only from the first (antisense) or the second (sense) strand.
+### ***rnaseq_strandedness***
+**description** : The strandedness of the library, whether reads come from both strands of the cDNA or only from the first (antisense) or the second (sense) strand.
**required** : False
**data type** : Controlled Vocabulary
+
+ Permissible Values
+
| Permissible Values | Description |
| --- | --- |
| `SENSE` | `None` |
@@ -219,12 +248,13 @@ Information about the library_preparation of an sequencing experiment.
| `BOTH` | `None` |
+
-**attributes** : One or more attributes that further characterizes this library_preparation Protocol.
+### ***attributes***
+**description** : One or more attributes that further characterizes this library_preparation Protocol.
**required** : False
**data type** : Attribute
-
-
-**alias** : The alias for an entity at the time of submission.
+### ***alias***
+**description** : The alias for an entity at the time of submission.
**required** : True
**data type** : string
diff --git a/docs/metadata/worksheets/Publication.md b/docs/metadata/worksheets/Publication.md
index d5c60a7..e79f178 100644
--- a/docs/metadata/worksheets/Publication.md
+++ b/docs/metadata/worksheets/Publication.md
@@ -6,46 +6,39 @@ The Publication entity represents a publication. While a publication can be any
## Fields
-**title** : The title for the Publication.
+### ***title***
+**description** : The title for the Publication.
**required** : False
**data type** : string
-
-
-**abstract** : The study abstract that describes the goals. Can also hold abstract from a publication related to this study.
+### ***abstract***
+**description** : The study abstract that describes the goals. Can also hold abstract from a publication related to this study.
**required** : False
**data type** : string
-
-
-**author** : The individual who is responsible for the content of a document version.
+### ***author***
+**description** : The individual who is responsible for the content of a document version.
**required** : False
**data type** : string
-
-
-**year** : Year in which the paper was published.
+### ***year***
+**description** : Year in which the paper was published.
**required** : False
**data type** : integer
-
-
-**journal** : Name of the journal.
+### ***journal***
+**description** : Name of the journal.
**required** : False
**data type** : string
-
-
-**doi** : DOI identifier of the Publication.
+### ***doi***
+**description** : DOI identifier of the Publication.
**required** : True
**data type** : string
-
-
-**study** : The Study entity associated with this Publication.
+### ***study***
+**description** : The Study entity associated with this Publication.
**required** : True
**data type** : Study
-
-
-**xref** : One or more cross-references for this Publication.
+### ***xref***
+**description** : One or more cross-references for this Publication.
**required** : False
**data type** : string
-
-
-**alias** : The alias for an entity at the time of submission.
+### ***alias***
+**description** : The alias for an entity at the time of submission.
**required** : True
**data type** : string
diff --git a/docs/metadata/worksheets/Sample.md b/docs/metadata/worksheets/Sample.md
index b6eb285..31b7fa4 100644
--- a/docs/metadata/worksheets/Sample.md
+++ b/docs/metadata/worksheets/Sample.md
@@ -6,15 +6,18 @@ A sample is a limited quantity of something to be used for testing, analysis, in
## Fields
-**name** : Name of the sample (eg:GHGAS_Blood_Sample1 or GHGAS_PBMC_RNAseq_S1).
+### ***name***
+**description** : Name of the sample (eg:GHGAS_Blood_Sample1 or GHGAS_PBMC_RNAseq_S1).
**required** : True
**data type** : string
-
-
-**type** : The type of sample.
+### ***type***
+**description** : The type of sample.
**required** : False
**data type** : Controlled Vocabulary
+
+ Permissible Values
+
| Permissible Values | Description |
| --- | --- |
| `CF_DNA` | `None` |
@@ -31,42 +34,37 @@ A sample is a limited quantity of something to be used for testing, analysis, in
| `TOTAL_RNA` | `None` |
+
+### ***description***
**description** : Short textual description of the sample (How the sample was collected, sample source, Protocol followed for processing the sample etc).
**required** : True
**data type** : string
-
-
-**isolation** : Method or device employed for collecting/isolating a biospecimen or a sample.
+### ***isolation***
+**description** : Method or device employed for collecting/isolating a biospecimen or a sample.
**required** : False
**data type** : string
-
-
-**storage** : Methods by which a biospecimen or a sample is stored (e.g. frozen in liquid nitrogen).
+### ***storage***
+**description** : Methods by which a biospecimen or a sample is stored (e.g. frozen in liquid nitrogen).
**required** : False
**data type** : string
-
-
-**biospecimen** : The Biospecimen from which this Sample was prepared from.
+### ***biospecimen***
+**description** : The Biospecimen from which this Sample was prepared from.
**required** : False
**data type** : Biospecimen
-
-
-**condition** : The condition associated with an entity.
+### ***condition***
+**description** : The condition associated with an entity.
**required** : True
**data type** : Condition
-
-
-**xref** : One or more cross-references for this Sample. For example, this Sample may have an EBI BioSamples accession or an EGA Sample accession.
+### ***xref***
+**description** : One or more cross-references for this Sample. For example, this Sample may have an EBI BioSamples accession or an EGA Sample accession.
**required** : False
**data type** : string
-
-
-**attributes** : Key/value pairs corresponding to an entity.
+### ***attributes***
+**description** : Key/value pairs corresponding to an entity.
**required** : False
**data type** : Attribute
-
-
-**alias** : The alias for an entity at the time of submission.
+### ***alias***
+**description** : The alias for an entity at the time of submission.
**required** : True
**data type** : string
diff --git a/docs/metadata/worksheets/SampleFile.md b/docs/metadata/worksheets/SampleFile.md
index d07232d..4cfdc33 100644
--- a/docs/metadata/worksheets/SampleFile.md
+++ b/docs/metadata/worksheets/SampleFile.md
@@ -6,20 +6,22 @@ A SampleFile is a File that is associated with a Sample.
## Fields
-**sample** : The sample associated with an entity.
+### ***sample***
+**description** : The sample associated with an entity.
**required** : True
**data type** : Sample
-
-
-**name** : The given filename.
+### ***name***
+**description** : The given filename.
**required** : True
**data type** : string
-
-
-**format** : The format of the file: BAM, SAM, CRAM, BAI, etc.
+### ***format***
+**description** : The format of the file: BAM, SAM, CRAM, BAI, etc.
**required** : True
**data type** : Controlled Vocabulary
+
+ Permissible Values
+
| Permissible Values | Description |
| --- | --- |
| `AGP` | `None` |
@@ -50,38 +52,41 @@ A SampleFile is a File that is associated with a Sample.
| `WIG` | `None` |
+
-**size** : The size of a file in bytes.
+### ***size***
+**description** : The size of a file in bytes.
**required** : True
**data type** : integer
-
-
-**checksum** : A computed value which depends on the contents of a block of data and which is transmitted or stored along with the data in order to detect corruption of the data. The receiving system recomputes the checksum based upon the received data and compares this value with the one sent with the data. If the two values are the same, the receiver has some confidence that the data was received correctly.
+### ***checksum***
+**description** : A computed value which depends on the contents of a block of data and which is transmitted or stored along with the data in order to detect corruption of the data. The receiving system recomputes the checksum based upon the received data and compares this value with the one sent with the data. If the two values are the same, the receiver has some confidence that the data was received correctly.
**required** : True
**data type** : string
-
-
-**forward_or_reverse** : Denotes whether a submitted FASTQ file contains forward (R1) or reverse (R2) reads for paired-end sequencing. The number that identifies each read direction in a paired-end nucleotide sequencing reaction.
+### ***forward_or_reverse***
+**description** : Denotes whether a submitted FASTQ file contains forward (R1) or reverse (R2) reads for paired-end sequencing. The number that identifies each read direction in a paired-end nucleotide sequencing reaction.
**required** : False
**data type** : Controlled Vocabulary
+
+ Permissible Values
+
| Permissible Values | Description |
| --- | --- |
| `FORWARD` | `The reads are forward (R1) reads` |
| `REVERSE` | `The reads are reverse (R2) reads` |
+
-**checksum_type** : The type of algorithm used to generate the checksum of a file.
+### ***checksum_type***
+**description** : The type of algorithm used to generate the checksum of a file.
**required** : True
**data type** : string
-
-
-**dataset** : The Dataset associated with an entity.
+### ***dataset***
+**description** : The Dataset associated with an entity.
**required** : True
**data type** : Dataset
-
-
-**alias** : The alias for an entity at the time of submission.
+### ***alias***
+**description** : The alias for an entity at the time of submission.
**required** : True
**data type** : string
diff --git a/docs/metadata/worksheets/SequencingExperiment.md b/docs/metadata/worksheets/SequencingExperiment.md
index 2871a7a..98fb3f7 100644
--- a/docs/metadata/worksheets/SequencingExperiment.md
+++ b/docs/metadata/worksheets/SequencingExperiment.md
@@ -6,36 +6,31 @@ An sequencing experiment is an investigation that consists of a coordinated set
## Fields
-**title** : Name for the experiment (eg: GHGAE_PBMC_RNAseq).
+### ***title***
+**description** : Name for the experiment (eg: GHGAE_PBMC_RNAseq).
**required** : None
**data type** : string
-
-
+### ***description***
**description** : A detailed description of the Experiment.
**required** : True
**data type** : string
-
-
-**type** : The type of sequencing experiment.
+### ***type***
+**description** : The type of sequencing experiment.
**required** : False
**data type** : string
-
-
-**sequencing_protocol** : The sequencing protocol associated with an entity.
+### ***sequencing_protocol***
+**description** : The sequencing protocol associated with an entity.
**required** : True
**data type** : SequencingProtocol
-
-
-**library_preparation_protocol** : The library_preparation Protocol associated with an entity.
+### ***library_preparation_protocol***
+**description** : The library_preparation Protocol associated with an entity.
**required** : True
**data type** : LibraryPreparationProtocol
-
-
-**attributes** : Key/value pairs corresponding to an entity.
+### ***attributes***
+**description** : Key/value pairs corresponding to an entity.
**required** : False
**data type** : Attribute
-
-
-**alias** : The alias for an entity at the time of submission.
+### ***alias***
+**description** : The alias for an entity at the time of submission.
**required** : True
**data type** : string
diff --git a/docs/metadata/worksheets/SequencingProcess.md b/docs/metadata/worksheets/SequencingProcess.md
index eaa5382..197b78f 100644
--- a/docs/metadata/worksheets/SequencingProcess.md
+++ b/docs/metadata/worksheets/SequencingProcess.md
@@ -6,61 +6,51 @@ A sequencing process linking a sample to sequencing output.
## Fields
-**title** : The title that describes an entity.
+### ***title***
+**description** : The title that describes an entity.
**required** : None
**data type** : string
-
-
+### ***description***
**description** : Description of an entity.
**required** : True
**data type** : string
-
-
-**name** : The name for an entity.
+### ***name***
+**description** : The name for an entity.
**required** : True
**data type** : string
-
-
-**sequencing_run_id** : Identifier of the sequencing run. Used for batch correction.
+### ***sequencing_run_id***
+**description** : Identifier of the sequencing run. Used for batch correction.
**required** : False
**data type** : string
-
-
-**sequencing_lane_id** : Identifier of the sequencing lane. Used for batch correction.
+### ***sequencing_lane_id***
+**description** : Identifier of the sequencing lane. Used for batch correction.
**required** : False
**data type** : string
-
-
-**sequencing_machine_id** : Identifier of the sequencing machine. Used for batch correction.
+### ***sequencing_machine_id***
+**description** : Identifier of the sequencing machine. Used for batch correction.
**required** : False
**data type** : string
-
-
-**sequencing_experiment** : The sequencing experiment associated with an entity.
+### ***sequencing_experiment***
+**description** : The sequencing experiment associated with an entity.
**required** : True
**data type** : SequencingExperiment
-
-
-**index_sequence** : A unique nucleotide sequence that is added to a sample during library_preparation to serve as a unique identifier for the sample.
+### ***index_sequence***
+**description** : A unique nucleotide sequence that is added to a sample during library_preparation to serve as a unique identifier for the sample.
**required** : False
**data type** : string
-
-
-**lane_number** : The numerical identifier for the lane or machine unit where a sample was located during nucleotide sequencing.
+### ***lane_number***
+**description** : The numerical identifier for the lane or machine unit where a sample was located during nucleotide sequencing.
**required** : False
**data type** : string
-
-
-**sample** : The sample associated with an entity.
+### ***sample***
+**description** : The sample associated with an entity.
**required** : True
**data type** : Sample
-
-
-**attributes** : Key/value pairs corresponding to an entity.
+### ***attributes***
+**description** : Key/value pairs corresponding to an entity.
**required** : False
**data type** : Attribute
-
-
-**alias** : The alias for an entity at the time of submission.
+### ***alias***
+**description** : The alias for an entity at the time of submission.
**required** : True
**data type** : string
diff --git a/docs/metadata/worksheets/SequencingProcessFile.md b/docs/metadata/worksheets/SequencingProcessFile.md
index 060bc4a..fec5548 100644
--- a/docs/metadata/worksheets/SequencingProcessFile.md
+++ b/docs/metadata/worksheets/SequencingProcessFile.md
@@ -6,20 +6,22 @@ A SequencingProcessFile is a File that is associated with a SequencingProcess.
## Fields
-**sequencing_process** : The SequencingProcess associated with an entity.
+### ***sequencing_process***
+**description** : The SequencingProcess associated with an entity.
**required** : True
**data type** : SequencingProcess
-
-
-**name** : The given filename.
+### ***name***
+**description** : The given filename.
**required** : True
**data type** : string
-
-
-**format** : The format of the file: BAM, SAM, CRAM, BAI, etc.
+### ***format***
+**description** : The format of the file: BAM, SAM, CRAM, BAI, etc.
**required** : True
**data type** : Controlled Vocabulary
+
+ Permissible Values
+
| Permissible Values | Description |
| --- | --- |
| `AGP` | `None` |
@@ -50,38 +52,41 @@ A SequencingProcessFile is a File that is associated with a SequencingProcess.
| `WIG` | `None` |
+
-**size** : The size of a file in bytes.
+### ***size***
+**description** : The size of a file in bytes.
**required** : True
**data type** : integer
-
-
-**checksum** : A computed value which depends on the contents of a block of data and which is transmitted or stored along with the data in order to detect corruption of the data. The receiving system recomputes the checksum based upon the received data and compares this value with the one sent with the data. If the two values are the same, the receiver has some confidence that the data was received correctly.
+### ***checksum***
+**description** : A computed value which depends on the contents of a block of data and which is transmitted or stored along with the data in order to detect corruption of the data. The receiving system recomputes the checksum based upon the received data and compares this value with the one sent with the data. If the two values are the same, the receiver has some confidence that the data was received correctly.
**required** : True
**data type** : string
-
-
-**forward_or_reverse** : Denotes whether a submitted FASTQ file contains forward (R1) or reverse (R2) reads for paired-end sequencing. The number that identifies each read direction in a paired-end nucleotide sequencing reaction.
+### ***forward_or_reverse***
+**description** : Denotes whether a submitted FASTQ file contains forward (R1) or reverse (R2) reads for paired-end sequencing. The number that identifies each read direction in a paired-end nucleotide sequencing reaction.
**required** : False
**data type** : Controlled Vocabulary
+
+ Permissible Values
+
| Permissible Values | Description |
| --- | --- |
| `FORWARD` | `The reads are forward (R1) reads` |
| `REVERSE` | `The reads are reverse (R2) reads` |
+
-**checksum_type** : The type of algorithm used to generate the checksum of a file.
+### ***checksum_type***
+**description** : The type of algorithm used to generate the checksum of a file.
**required** : True
**data type** : string
-
-
-**dataset** : The Dataset associated with an entity.
+### ***dataset***
+**description** : The Dataset associated with an entity.
**required** : True
**data type** : Dataset
-
-
-**alias** : The alias for an entity at the time of submission.
+### ***alias***
+**description** : The alias for an entity at the time of submission.
**required** : True
**data type** : string
diff --git a/docs/metadata/worksheets/SequencingProtocol.md b/docs/metadata/worksheets/SequencingProtocol.md
index eacb3aa..0bcbc63 100644
--- a/docs/metadata/worksheets/SequencingProtocol.md
+++ b/docs/metadata/worksheets/SequencingProtocol.md
@@ -6,20 +6,22 @@ Information about the sequencing of a sample.
## Fields
+### ***description***
**description** : Description about the sequencing Protocol (eg: mRNA-seq, Whole exome long-read sequencing etc).
**required** : True
**data type** : string
-
-
-**type** : Type of the sequencing Protocol (eg: mRNA-seq, Whole exome long-read sequencing etc).
+### ***type***
+**description** : Type of the sequencing Protocol (eg: mRNA-seq, Whole exome long-read sequencing etc).
**required** : None
**data type** : string
-
-
-**instrument_model** : The name and model of the technology platform used to perform sequencing.
+### ***instrument_model***
+**description** : The name and model of the technology platform used to perform sequencing.
**required** : True
**data type** : Controlled Vocabulary
+
+ Permissible Values
+
| Permissible Values | Description |
| --- | --- |
| `ILLUMINA_HI_SCAN` | `None` |
@@ -67,31 +69,32 @@ Information about the sequencing of a sample.
| `OTHER` | `None` |
+
-**sequencing_center** : Center where sample was sequenced.
+### ***sequencing_center***
+**description** : Center where sample was sequenced.
**required** : False
**data type** : string
-
-
-**sequencing_read_length** : Length of sequencing reads (eg: Long or short or actual number of the read length etc). The number of nucleotides successfully ordered from each side of a nucleic acid fragment obtained after the completion of a sequencing process
+### ***sequencing_read_length***
+**description** : Length of sequencing reads (eg: Long or short or actual number of the read length etc). The number of nucleotides successfully ordered from each side of a nucleic acid fragment obtained after the completion of a sequencing process
**required** : False
**data type** : string
-
-
-**target_coverage** : Mean coverage for whole genome sequencing, or mean target coverage for whole exome and targeted sequencing. The number of times a particular locus (site, nucleotide, amplicon, region) was sequenced.
+### ***target_coverage***
+**description** : Mean coverage for whole genome sequencing, or mean target coverage for whole exome and targeted sequencing. The number of times a particular locus (site, nucleotide, amplicon, region) was sequenced.
**required** : False
**data type** : string
-
-
-**flow_cell_id** : Flow Cell ID (eg: Experiment ID_Cell 1_Lane_1). The barcode assigned to a flow cell used in nucleotide sequencing.
+### ***flow_cell_id***
+**description** : Flow Cell ID (eg: Experiment ID_Cell 1_Lane_1). The barcode assigned to a flow cell used in nucleotide sequencing.
**required** : False
**data type** : string
-
-
-**flow_cell_type** : Type of flow cell used (e.g. S4, S2 for NovaSeq; PromethION, Flongle for Nanopore). Aparatus in the fluidic subsystem where the sheath and sample meet. Can be one of several types; jet-in-air, quartz cuvette, or a hybrid of the two. The sample flows through the center of a fluid column of sheath fluid in the flow cell.
+### ***flow_cell_type***
+**description** : Type of flow cell used (e.g. S4, S2 for NovaSeq; PromethION, Flongle for Nanopore). Aparatus in the fluidic subsystem where the sheath and sample meet. Can be one of several types; jet-in-air, quartz cuvette, or a hybrid of the two. The sample flows through the center of a fluid column of sheath fluid in the flow cell.
**required** : False
**data type** : Controlled Vocabulary
+
+ Permissible Values
+
| Permissible Values | Description |
| --- | --- |
| `ILLUMINA_NOVA_SEQ_S2` | `None` |
@@ -103,11 +106,16 @@ Information about the sequencing of a sample.
| `OTHER` | `None` |
+
-**umi_barcode_read** : The type of read that contains the UMI barcode (Eg: index1/index2/read1/read2).
+### ***umi_barcode_read***
+**description** : The type of read that contains the UMI barcode (Eg: index1/index2/read1/read2).
**required** : False
**data type** : Controlled Vocabulary
+
+ Permissible Values
+
| Permissible Values | Description |
| --- | --- |
| `INDEX1` | `None` |
@@ -116,21 +124,24 @@ Information about the sequencing of a sample.
| `READ2` | `None` |
+
-**umi_barcode_offset** : The offset in sequence of the UMI identifying barcode. (E.g. '16').
+### ***umi_barcode_offset***
+**description** : The offset in sequence of the UMI identifying barcode. (E.g. '16').
**required** : False
**data type** : string
-
-
-**umi_barcode_size** : The size of the UMI identifying barcode (Eg. '10').
+### ***umi_barcode_size***
+**description** : The size of the UMI identifying barcode (Eg. '10').
**required** : False
**data type** : string
-
-
-**cell_barcode_read** : The type of read that contains the cell barcode (eg: index1/index2/read1/read2).
+### ***cell_barcode_read***
+**description** : The type of read that contains the cell barcode (eg: index1/index2/read1/read2).
**required** : False
**data type** : Controlled Vocabulary
+
+ Permissible Values
+
| Permissible Values | Description |
| --- | --- |
| `INDEX1` | `None` |
@@ -139,21 +150,24 @@ Information about the sequencing of a sample.
| `READ2` | `None` |
+
-**cell_barcode_offset** : The offset in sequence of the cell identifying barcode. (Eg. '0').
+### ***cell_barcode_offset***
+**description** : The offset in sequence of the cell identifying barcode. (Eg. '0').
**required** : False
**data type** : string
-
-
-**cell_barcode_size** : The size of the cell identifying barcode (E.g. '16').
+### ***cell_barcode_size***
+**description** : The size of the cell identifying barcode (E.g. '16').
**required** : False
**data type** : string
-
-
-**sample_barcode_read** : The type of read that contains the sample barcode (eg: index1/index2/read1/read2).
+### ***sample_barcode_read***
+**description** : The type of read that contains the sample barcode (eg: index1/index2/read1/read2).
**required** : False
**data type** : Controlled Vocabulary
+
+ Permissible Values
+
| Permissible Values | Description |
| --- | --- |
| `INDEX1` | `None` |
@@ -161,12 +175,13 @@ Information about the sequencing of a sample.
| `OTHER` | `None` |
+
-**attributes** : One or more attributes that further characterizes this Sequencing Protocol.
+### ***attributes***
+**description** : One or more attributes that further characterizes this Sequencing Protocol.
**required** : False
**data type** : Attribute
-
-
-**alias** : The alias for an entity at the time of submission.
+### ***alias***
+**description** : The alias for an entity at the time of submission.
**required** : True
**data type** : string
diff --git a/docs/metadata/worksheets/Study.md b/docs/metadata/worksheets/Study.md
index 2f78a1e..0b3b1c6 100644
--- a/docs/metadata/worksheets/Study.md
+++ b/docs/metadata/worksheets/Study.md
@@ -6,20 +6,22 @@ Studies are experimental investigations of a particular phenomenon. It involves
## Fields
-**title** : A comprehensive title for the study.
+### ***title***
+**description** : A comprehensive title for the study.
**required** : True
**data type** : string
-
-
+### ***description***
**description** : A detailed description (abstract) that describes the goals of this Study.
**required** : True
**data type** : string
-
-
-**type** : The type of Study. For example, 'Cancer Genomics', 'Epigenetics', 'Exome Sequencing'.
+### ***type***
+**description** : The type of Study. For example, 'Cancer Genomics', 'Epigenetics', 'Exome Sequencing'.
**required** : True
**data type** : Controlled Vocabulary
+
+ Permissible Values
+
| Permissible Values | Description |
| --- | --- |
| `CANCER_GENOMICS` | `None` |
@@ -40,17 +42,17 @@ Studies are experimental investigations of a particular phenomenon. It involves
| `GWAS` | `None` |
+
-**affiliations** : The Institution(s) associated with an entity.
+### ***affiliations***
+**description** : The Institution(s) associated with an entity.
**required** : True
**data type** : string
-
-
-**attributes** : Custom key/value pairs that further characterizes the Study. (e.g.: approaches - single-cell,_bulk_etc)
+### ***attributes***
+**description** : Custom key/value pairs that further characterizes the Study. (e.g.: approaches - single-cell,_bulk_etc)
**required** : False
**data type** : Attribute
-
-
-**alias** : The alias for an entity at the time of submission.
+### ***alias***
+**description** : The alias for an entity at the time of submission.
**required** : True
**data type** : string
diff --git a/docs/metadata/worksheets/StudyFile.md b/docs/metadata/worksheets/StudyFile.md
index b1d83a8..789a5ce 100644
--- a/docs/metadata/worksheets/StudyFile.md
+++ b/docs/metadata/worksheets/StudyFile.md
@@ -6,20 +6,22 @@ A StudyFile is a File that is associated with a Study.
## Fields
-**study** : The study associated with an entity.
+### ***study***
+**description** : The study associated with an entity.
**required** : True
**data type** : Study
-
-
-**name** : The given filename.
+### ***name***
+**description** : The given filename.
**required** : True
**data type** : string
-
-
-**format** : The format of the file: BAM, SAM, CRAM, BAI, etc.
+### ***format***
+**description** : The format of the file: BAM, SAM, CRAM, BAI, etc.
**required** : True
**data type** : Controlled Vocabulary
+
+ Permissible Values
+
| Permissible Values | Description |
| --- | --- |
| `AGP` | `None` |
@@ -50,38 +52,41 @@ A StudyFile is a File that is associated with a Study.
| `WIG` | `None` |
+
-**size** : The size of a file in bytes.
+### ***size***
+**description** : The size of a file in bytes.
**required** : True
**data type** : integer
-
-
-**checksum** : A computed value which depends on the contents of a block of data and which is transmitted or stored along with the data in order to detect corruption of the data. The receiving system recomputes the checksum based upon the received data and compares this value with the one sent with the data. If the two values are the same, the receiver has some confidence that the data was received correctly.
+### ***checksum***
+**description** : A computed value which depends on the contents of a block of data and which is transmitted or stored along with the data in order to detect corruption of the data. The receiving system recomputes the checksum based upon the received data and compares this value with the one sent with the data. If the two values are the same, the receiver has some confidence that the data was received correctly.
**required** : True
**data type** : string
-
-
-**forward_or_reverse** : Denotes whether a submitted FASTQ file contains forward (R1) or reverse (R2) reads for paired-end sequencing. The number that identifies each read direction in a paired-end nucleotide sequencing reaction.
+### ***forward_or_reverse***
+**description** : Denotes whether a submitted FASTQ file contains forward (R1) or reverse (R2) reads for paired-end sequencing. The number that identifies each read direction in a paired-end nucleotide sequencing reaction.
**required** : False
**data type** : Controlled Vocabulary
+
+ Permissible Values
+
| Permissible Values | Description |
| --- | --- |
| `FORWARD` | `The reads are forward (R1) reads` |
| `REVERSE` | `The reads are reverse (R2) reads` |
+
-**checksum_type** : The type of algorithm used to generate the checksum of a file.
+### ***checksum_type***
+**description** : The type of algorithm used to generate the checksum of a file.
**required** : True
**data type** : string
-
-
-**dataset** : The Dataset associated with an entity.
+### ***dataset***
+**description** : The Dataset associated with an entity.
**required** : True
**data type** : Dataset
-
-
-**alias** : The alias for an entity at the time of submission.
+### ***alias***
+**description** : The alias for an entity at the time of submission.
**required** : True
**data type** : string
diff --git a/docs/metadata/worksheets/Trio.md b/docs/metadata/worksheets/Trio.md
index ed4839b..a7fc52b 100644
--- a/docs/metadata/worksheets/Trio.md
+++ b/docs/metadata/worksheets/Trio.md
@@ -6,21 +6,19 @@ A trio is defined by three individuals representing an individual and their pare
## Fields
-**mother** : The mother of an individual.
+### ***mother***
+**description** : The mother of an individual.
**required** : True
**data type** : Individual
-
-
-**father** : The father of an individual.
+### ***father***
+**description** : The father of an individual.
**required** : True
**data type** : Individual
-
-
-**child** : The child of two individuals.
+### ***child***
+**description** : The child of two individuals.
**required** : True
**data type** : Individual
-
-
-**alias** : The alias for an entity at the time of submission.
+### ***alias***
+**description** : The alias for an entity at the time of submission.
**required** : True
**data type** : string
diff --git a/scripts/update_metadata_docs.py b/scripts/update_metadata_docs.py
index c8f9e38..040086d 100644
--- a/scripts/update_metadata_docs.py
+++ b/scripts/update_metadata_docs.py
@@ -72,25 +72,39 @@ def main_workbook(self):
)
-def load_config(config_path=CONFIG_PATH) -> dict:
- """Loads config file"""
+class IOOperations:
+ """bundles input operation functions"""
- try:
- with open(config_path, "r", encoding="utf8") as config_file:
- return yaml.safe_load(config_file)
- except FileNotFoundError as exc:
- raise WorkbookConfigurationNotFound(
- f"Workbook configuration not found at: {config_path}"
- ) from exc
+ config_path: Path = CONFIG_PATH
+ schema_url: str = SCHEMA_URL
+ output_dir: Path = DOCS_DIR
+ @property
+ def load_config(self) -> dict:
+ """Loads config file"""
+
+ try:
+ with open(self.config_path, "r", encoding="utf8") as config_file:
+ return yaml.safe_load(config_file)
+ except FileNotFoundError as exc:
+ raise WorkbookConfigurationNotFound(
+ f"Workbook configuration not found at: {self.config_path}"
+ ) from exc
+
+ @property
+ def load_schema(self):
+ """Loads schema"""
+
+ schema_config = requests.get(self.schema_url, timeout=5)
+ if schema_config.status_code == 200:
+ return SchemaView(schema_config.text)
+ raise SchemaNotLoaded(f"Schema could not be loaded from {self.schema_url}")
-def load_schema(schema_url=SCHEMA_URL):
- """Loads schema"""
+ def create_doc_file(self, name: str, content: str) -> None:
+ """Creates a markdown file for a given sheet and content"""
- schema_config = requests.get(schema_url, timeout=5)
- if schema_config.status_code == 200:
- return SchemaView(schema_config.text)
- raise SchemaNotLoaded(f"Schema could not be loaded from {SCHEMA_URL}")
+ with open(self.output_dir / (name + ".md"), mode="w", encoding="utf8") as file:
+ file.write(content)
def extract_permissible_values(schema: SchemaView, slot_range: Union[str, None]):
@@ -122,7 +136,6 @@ def extract_slots_from(
return [
{
"name": slot.name,
- "alias": slot.alias,
"description": slot.description,
"data_type": {
"range": slot.range,
@@ -158,28 +171,20 @@ def generate_markdown(content: dict) -> str:
return template.render(content)
-def create_doc_file(out_dir: Path, name: str, content: str) -> None:
- """Creates a markdown file for a given sheet and content"""
-
- with open(out_dir / (name + ".md"), mode="w", encoding="utf8") as file:
- file.write(content)
-
-
def main():
"""Patches things together"""
-
- config = Config.model_validate(load_config())
+ io_ops = IOOperations()
+ config = Config.model_validate(io_ops.load_config)
if config.main_workbook is None:
raise MainSheetNotIdentified
worksheet_names = config.main_workbook.worksheets
- schema = load_schema()
- workbook = generate_workbook(schema, worksheet_names, extract_slots_from)
+ workbook = generate_workbook(
+ io_ops.load_schema, worksheet_names, extract_slots_from
+ )
for sheet in workbook:
- # print(sheet)
- # print("\n\n")
- create_doc_file(DOCS_DIR, sheet["name"], generate_markdown(sheet))
+ IOOperations.create_doc_file(io_ops, sheet["name"], generate_markdown(sheet))
if __name__ == "__main__":