Data Submission/Data Upload: Difference between revisions

From BiomarkerKB Wiki
Jump to navigation Jump to search
MariaKim (talk | contribs)
No edit summary
MariaKim (talk | contribs)
No edit summary
Line 17: Line 17:
=== Headers ===
=== Headers ===
Your file must contain the following headers:
Your file must contain the following headers:
* <code>biomarker_index</code> ('''required'''): biomarker counter - integer (1, 2, 3...)
* <code>biomarker_index</code> ('''required'''): biomarker counter - integer (1, 2, 3...).
** <code>component_index</code> ('''required'''): component counter within each biomarker (integer). In most cases, a biomarker would have only one component, unless it is a multicomponent biomarker. A multicomponent biomarker is a group of biological markers tested together to provide a comprehensive assessment of health, e.g., a lipid panel (blood test) that measures total cholesterol, LDL, HDL, and triglycerides. These four entities would occupy four rows with the <code>component_index</code> from 1 to 4 (see example table in the "Examples" section).
** <code>component_index</code> ('''required'''): sub-index within <code>biomarker_index</code>. Component counter within each biomarker (integer). To learn the difference between single and multicomponent biomarkers, see [[Single biomarker]] and [[Multicomponent biomarker]].
*** <code>entity_index</code> ('''required'''): entity counter within each component (integer). This index is used to represent complex entities such as glycoforms or protein complexes. E.g., in a biomarker where a glycoprotein is being measured, within one component entity 1 is a glycan, while entity 2 is a protein (see example in the "Examples" section).
*** <code>entity_index</code> ('''required'''): sub-index within <code>component_index</code>. Entity counter within each component (integer). This index is used to represent complex entities such as glycoforms or protein complexes. E.g., in a biomarker where a glycoprotein is being measured, within one component entity 1 is a glycan, while entity 2 is a protein. See [[Multi-entity biomarker]].
*** <code>assessed_biomarker_entity_id</code> ('''required'''): entity ID for each entity_index
*** <code>assessed_biomarker_entity_id</code> ('''required'''): entity ID for each entity_index
*** <code>assessed_biomarker_entity</code> ('''required'''): see [[Data Submission/Data Upload#assessed_biomarker_entity|assessed_biomarker_entity]]
*** <code>assessed_biomarker_entity</code> ('''required'''): see [[Data Submission/Data Upload#assessed_biomarker_entity|assessed_biomarker_entity]]
Line 33: Line 33:
* <code>evidence_source</code>: see [[Data Submission/Data Upload#evidence_source|evidence_source]]
* <code>evidence_source</code>: see [[Data Submission/Data Upload#evidence_source|evidence_source]]
* <code>evidence</code>: see [[Data Submission/Data Upload#evidence|evidence]]
* <code>evidence</code>: see [[Data Submission/Data Upload#evidence|evidence]]
==== Examples ====
===== Multicomponent single-entity biomarker =====
{| class="wikitable"
|-
! <code>biomarker_index</code> !! <code>component_index</code> !! <code>entity_index</code> !! <code>assessed_biomarker_entity</code>
|-
| 1 || 1 || 1 || total cholesterol
|-
| 1 || 2 || 1 || LDL
|-
| 1 || 3 || 1 || HDL
|-
| 1 || 4 || 1 || triglycerides
|}
===== Single-component multi-entity ("complex") biomarker =====
[[File:Data upload example table.png|660px]]
===== Multicomponent multi-entity biomarker =====
{| class="wikitable"
|-
! <code>biomarker_index</code> !! <code>component_index</code> !! <code>entity_index</code> !! <code>assessed_biomarker_entity</code>
|-
| 2 || 1 || 1 || glycan A
|-
| 2 || 1 || 2 || protein X
|-
| 2 || 2 || 1 || some DNA
|-
| 2 || 3 || 1 || some RNA
|}
In this example, component 1 is a glycoprotein, component 2 is a DNA molecule, and component 3 is an RNA molecule.


=== Biomarker representation framework ===
=== Biomarker representation framework ===

Revision as of 12:05, 27 August 2026

Instructions to submit Biomarker Data

To submit data for the BiomarkerKB Portal, the biomarker data model must be followed. Instructions on how to format the data for submission, where to send it, and creating a BCO for the data submitted are provided below.

  1. Create a TSV file with the agreed upon fields which correspond to the biomarker data model.
  2. Once your data is formatted and cleaned, please send it to mazumder_lab@gwu.edu.
  3. Concurrently with submitting data please provide metadata and description on how biomarker data was collected. This is important for adding submitted data to the Biomarker Data page as each dataset needs a BioCompute Object (BCO). Examples of BCOs are available on the biomarker data page.
  4. If there are any further questions please consult the GitHub Documentation for contributing data.

BiomarkerKB data model fields

This is the standard way to report biomarker data. This section covers how biomarkers should be reported and how other fields should be filled out.

To make reporting easier, please use these templates with color-coded fields: orange for mandatory and green for optional.

Headers

Your file must contain the following headers:

  • biomarker_index (required): biomarker counter - integer (1, 2, 3...).
    • component_index (required): sub-index within biomarker_index. Component counter within each biomarker (integer). To learn the difference between single and multicomponent biomarkers, see Single biomarker and Multicomponent biomarker.
      • entity_index (required): sub-index within component_index. Entity counter within each component (integer). This index is used to represent complex entities such as glycoforms or protein complexes. E.g., in a biomarker where a glycoprotein is being measured, within one component entity 1 is a glycan, while entity 2 is a protein. See Multi-entity biomarker.
      • assessed_biomarker_entity_id (required): entity ID for each entity_index
      • assessed_biomarker_entity (required): see assessed_biomarker_entity
      • assessed_entity_type (required): see assessed_entity_type
  • biomarker_controlled_vocab (required): this replaces the field "biomarker" (see below) to emphasize that controlled vocabulary is expected. This field is going to be broken down into three items: change, aspect, and entity.
  • taxonomy_id: taxonomy ID of the organism in which the biomarker has been measured (human, mouse, zebrafish...)
  • condition or exposure_agent (optional): see condition or exposure_agent
  • condition_id or exposure_agent_id (required): see condition_id or exposure_agent_id
  • best_biomarker_role: see best_biomarker_role
  • specimen (optional): see specimen
  • specimen_id (required): see specimen_id
  • loinc_code: see loinc_code
  • evidence_source: see evidence_source
  • evidence: see evidence

Biomarker representation framework

A biomarker is not simply a gene, protein, metabolite, or other biological entity. A biomarker must include a defined measurement or change concept — such as presence, absence, increase, or decrease — describing what is observed. For example, EGFR alone is not a biomarker, but a specific EGFR mutation used for diagnostic, prognostic, or treatment-selection purposes is. Likewise, "IL6" alone is not a biomarker, but "increased IL6 expression" in a defined clinical context may be.

The fields below fall into two groups. Core fields directly align with the biomarker definition: biomarker, assessed_biomarker_entity, assessed_biomarker_entity_id, condition, condition_id, exposure_agent, and exposure_agent_id. Contextual fields enrich the representation: specimen, best_biomarker_role, and evidence.

In the BiomarkerKB accession model, the canonical biomarker concept represents the measured change or observation (e.g. "increased IL6 expression"), and disease- or condition-specific records are represented as child records linked to that canonical biomarker.

biomarker

Follow the BiomarkerKB Controlled Vocabulary for standardized reporting. There are several distinctions here and changes are made based on the entity being reported. The text should be in lowercase except when a gene name appears then it should remain all uppercase. Examples

  • Increased level of protein SPP1/UPKB:P10451
  • Increased expression of RNA PCA3/HGNC:8637
  • Increased expression of gene B2M PCA3/NCBI:567
  • Increased methylation in gene VIM/NCBI:7431

For more examples please refer to the BiomarkerKB Data Page

assessed_biomarker_entity

assessed_biomarker_entity is the entity in which the change is assessed. Should start off with a capital letter but if it is just a gene then it should remain in all capitals (e.g Myosin-binding protein H-like or IL6). If the entity type is anything but a gene the whole name should be typed out.

assessed_biomarker_entity_id

Refer to the GitHub documentation for which standards to follow.

Assessed Entity Type Resource (in order of preference/availability)
Carbohydrate Chemical Entities of Biological Interest (ChEBI)
Cell Cell Ontology (CO) -> National Cancer Institute Thesaurus (NCIt)
Chemical Element PubChem (PCCID) -> National Cancer Institute Thesaurus (NCIt)
DNA National Cancer Institute Thesaurus (NCIt)
Gene NCBI
Gene (mutation) NCBI dbSNP
Glycan GlyTouCan Accession (GTC) -> PubChem (PCCID)
Lipoprotein Chemical Entities of Biological Interest (ChEBI)
Metabolite PubChem (PCCID) -> Chemical Entities of Biological Interest (ChEBI)
Peptide Protein Ontology (PRO)
Protein Uniprot (UPKB) -> Protein Data Bank (PDB) -> Protein Ontology (PRO) -> National Cancer Institute Thesaurus (NCIt)
Protein Complex Protein Ontology (PRO) -> Gene Ontology (GO)
RNA HUGO Gene Nomenclature Committee (HGNC) -> RNA Central (RNAC)
miRNA miRBase (MRB)

Refer to the GitHub Documentation for the correct resource.

assessed_entity_type

Report in all lowercase. Example: gene

condition

condition should be reported in all lowercase.

  • Example: colon cancer

condition_id

condition_id (from Disease Ontology, MONDO, or SNOMED or NCIt). Format as DOID:0080600. Refer to https://disease-ontology.org/do/.

  • Example: DOID:219

exposure_agent

Report in all lowercase. The exposure_agent documents any external stimulus, treatment, environmental factor, or intervention relevant to the biomarker's expression or activity. It provides context for biomarkers that respond to specific exposures rather than intrinsic disease processes (for example, response biomarkers). Leave blank if not applicable. Example: cisplatin

exposure_agent_id

The ontology identifier for the exposure_agent, provided in the following column. Leave blank if not applicable. Example: CHEBI:27899

best_biomarker_role

Report in all lowercase. Refer to the [BEST Resource](https://www.ncbi.nlm.nih.gov/books/NBK326791/) to infer the correct biomarker role. Accepted role terms are:

  • diagnostic: Detects or confirms the presence of a disease or condition, or identifies individuals with a specific disease subtype.
  • monitoring: Assesses the status of a disease, medical condition, or exposure to a medical product over time.
  • predictive: Identifies which patients are more or less likely to respond favorably or unfavorably to a specific treatment or exposure.
  • prognostic: Identifies the likelihood of a clinical event, disease recurrence, or progression in patients with an already established disease or condition.
  • response: Shows that a biological response has occurred in a patient after being exposed to a medical product or environmental agent.
  • risk: Indicates the potential for an individual to develop a disease or condition in the future.
  • safety: Measures or indicates the likelihood, nature, or severity of adverse effects, toxicity, or organ injury.

If reporting more than one, use separate rows. Example:

biomarker_index component_index entity_index biomarker ... best_biomarker_role
1 1 1 increased protein X ... diagnostic
1 1 1 increased protein X ... monitoring

specimen

Report in all lowercase. Leave blank if not applicable.

  • Example: feces

If reporting more than one, use separate rows. Example:

biomarker_index component_index entity_index biomarker ... specimen specimen_id
1 1 1 increased protein X ... blood UBERON:0000178
1 1 1 increased protein X ... urine UBERON:0001088

specimen_id

specimen_id in the following column should be from UBERON. Format as UBERON:0000178. Refer to https://www.ebi.ac.uk/ols4/ontologies/uberon. Leave blank if not applicable.

  • Example: UBERON:0001988

loinc_code

Report the Logical Observation Identifiers Names and Codes (LOINC) code corresponding to the test or measurement (e.g. 77354-9). Format as LOINC:100153-6. Refer to https://loinc.org/ (you may need to create an account to access the search functionality). Leave blank if not applicable.

  • Example: 77354-9

evidence

One or more exact citations from the evidence source (in most cases, it will be the PubMed publication).

evidence_source

Report in the format SOURCE:ID, for example PubMed:32677844.

If reporting more than one, use separate rows. Example:

biomarker_index component_index entity_index biomarker ... evidence evidence_source
1 1 1 increased protein X ... Insert a quote from the paper PubMed:26243686
1 1 1 increased protein X ... Insert a quote from the paper PubMed:25096510

annotations

Provide extra annotations from your DCC with the agreed upon standards from the Biomarker Annotation RFC. This data does not have to follow the data model and can be submitted in a separate file or can be added in the comment field. For example, relevant EHR data/LOINC data for biomarkers/biomarker entities can be included in a separate sheet.