> For the complete documentation index, see [llms.txt](https://help.connected.illumina.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.connected.illumina.com/emedgene/emedgene-curate-manual/curate_variants/adding-variants-to-curate/adding-or-updating-multiple-variants-in-curate/csv-format-requirements-for-variant-upload.md).

# CSV format requirements for variant upload

Use a CSV file to batch upload variants into **Curate**. Batch upload has long supported adding new variants; starting with v100.40.0, batch upload also supports updating existing variants using the **`Update`** field.

Batch upload supports SNV, indel, mtDNA, and CNV variants. Each row in the CSV represents a single variant and is validated during upload to ensure required fields, formats, and permissions are met before the variant is added or updated.

Starting with v100.40.0, batch upload also supports importing ACMG evidence for SNV, indel, and mtDNA variants using the **`ACMG applied`** and **`ACMG not met`** fields.

## General CSV format requirements

A CSV[^1] file used to add or update variants in **Curate** must meet the following requirements:

* File extension: .csv.
* The first row contains column headers.
* Each column represents a data field.
* Column headers are case-sensitive and exactly match this specification or a template.
* Each row after the header represents a variant.
* There are no empty rows between the header row and variant rows and between variant rows.
* Maximum file size: 10 MB.
* Maximum number of variants: 5000.
* Supported variant types:
  * SNV (SNV, indel)
  * mtDNA
  * CNV (DEL, DUP)
* SNV and CNV rows may be included in the same file if all mandatory fields are present (see [Field summary](#field-summary)).

## CSV file templates

You can use the templates below as a starting point.

{% columns %}
{% column %}
{% file src="/files/U3pHX2OvyZ5t62dqxi6Y" %}
{% endcolumn %}

{% column %}
{% file src="/files/n7BAgk8f2aXui96NozFE" %}
{% endcolumn %}
{% endcolumns %}

## Field summary

The table below summarizes which fields are supported for each variant type and whether they are mandatory or optional.

* **Mandatory** fields are required to add or update a variant.
* **Optional** fields may be included if applicable.

| Field (column name)             | SNV       | CNV       |
| ------------------------------- | --------- | --------- |
| **`Vartype`**                   | Mandatory | Mandatory |
| **`Chromosome`**                | Mandatory | Mandatory |
| **`Position`**                  | Mandatory | Mandatory |
| **`REF`**                       | Mandatory | Mandatory |
| **`ALT`**                       | Mandatory | N/A       |
| **`End`**                       | N/A       | Mandatory |
| **`Overlap`**                   | N/A       | Optional  |
| **`Pathogenicity`**             | Optional  | Optional  |
| **`Disease`**                   | Optional  | Optional  |
| **`Interpretation`**            | Optional  | Optional  |
| **`Notes`**                     | Optional  | Optional  |
| **`Transcript`**                | Optional  | N/A       |
| **`ACMG applied`** (v100.40.0+) | Optional  | N/A       |
| **`ACMG not met`** (v100.40.0+) | Optional  | N/A       |
| **`Update`** (v100.40.0+)       | Optional  | Optional  |

## Access-controlled fields

Some optional fields require specific [user permissions](/emedgene/emedgene-analyze-manual/settings/user_roles/iam-scopes-emedgene-roles.md) to update.

**Access-controlled fields include:**

* **`Pathogenicity`**
* **`Disease`**
* **`Interpretation`**
* **`Notes`**
* **`Transcript`**
* **`ACMG applied`**
* **`ACMG not met`**
* **`Update`**

If you do not have permission to update a field:

* **Curate** ignores the field.
* The variant is still added or updated where possible.
* The upload summary in the last step of [multiple variant upload](/emedgene/emedgene-curate-manual/curate_variants/adding-variants-to-curate/adding-or-updating-multiple-variants-in-curate.md) marks the variant as **Partial Success** and lists the ignored fields.

## Batch variant CSV file validation rules

**Curate** validates each CSV file before upload, and the validation rules vary by variant type. The tables below list the supported fields for each variant type, including mandatory fields (in <mark style="color:red;">red font</mark>) and optional fields for both new variants and updates.

### Single nucleotide variants

The fields for an SNV, indel, or mtDNA variant should be filled in according to the rules in the table.

Table 1. Validation rules for SNV fields

<table data-header-hidden="false" data-header-sticky data-full-width="false"><thead><tr><th>Field (column) name</th><th>Field details</th><th width="187">Expected input</th><th>Example</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong><code>Vartype</code></strong></mark></td><td>Mandatory.</td><td><code>SNV</code>.<br>Applicable for both SNV and indel.</td><td><code>SNV</code></td></tr><tr><td><mark style="color:red;"><strong><code>Chromosome</code></strong></mark></td><td>Mandatory.</td><td><code>1</code> - <code>22</code>, <code>X</code>, <code>Y</code>, <code>M</code></td><td><code>3</code></td></tr><tr><td><mark style="color:red;"><strong><code>Position</code></strong></mark></td><td>Mandatory.</td><td>Integer</td><td><code>123000</code></td></tr><tr><td><mark style="color:red;"><strong><code>REF</code></strong></mark></td><td>Mandatory.</td><td><code>A</code>, <code>T</code>, <code>G</code>, <code>C</code>, or a string of these letters</td><td><code>G</code></td></tr><tr><td><mark style="color:red;"><strong><code>ALT</code></strong></mark></td><td>Mandatory.</td><td><code>A</code>, <code>T</code>, <code>G</code>, <code>C</code>, or a string of these letters</td><td><code>GACT</code></td></tr><tr><td><strong><code>Pathogenicity</code></strong></td><td>Optional.<br>Access-controlled.</td><td><code>Pathogenic</code>, <code>Likely pathogenic</code>, <code>VUS</code>, <code>Likely benign</code>, <code>Benign</code></td><td><code>Likely pathogenic</code></td></tr><tr><td><strong><code>Disease</code></strong></td><td>Optional.<br><br>OMIM ID.</td><td>Integer</td><td><code>113705</code></td></tr><tr><td><strong><code>Interpretation</code></strong></td><td>Optional.<br>Access-controlled.</td><td>Free text under 65000 characters</td><td>Free text</td></tr><tr><td><strong><code>Notes</code></strong></td><td>Optional.<br>Access-controlled.</td><td>Free text under 65000 characters</td><td>Free text</td></tr><tr><td><strong><code>Transcript</code></strong></td><td>Optional.<br>Access-controlled.<br><br>NCBI RefSeq transcript ID.</td><td>NCBI RefSeq transcript ID</td><td><code>NM_000183.3</code></td></tr><tr><td><strong><code>ACMG applied</code></strong> (v100.40.0+)</td><td>Optional.<br>Access-controlled.<br><br><i class="fa-square-check">:square-check:</i> ACMG tags applied to the variant.<br><br>If a tag is not listed under <strong><code>ACMG applied</code></strong> or <strong><code>ACMG not met</code></strong>, it remains inactive for the variant.</td><td><p>Comma-separated list of <code>&#x3C;tag></code> or <code>&#x3C;tag>_&#x3C;strength></code> entries.<br></p><p>Recognized <code>&#x3C;strength></code> values: <code>Supporting</code>, <code>Moderate</code>, <code>Strong</code>, <code>Very_Strong</code>, <code>Stand_Alone</code>.<br><br>If a <code>&#x3C;tag></code> is provided without an explicit <code>&#x3C;strength></code>, the system applies the <a href="/pages/lbuQkFaEYOrR4HY8wksw">default ACMG strength</a>.</p></td><td><code>PVS1</code>, <code>PM2_Supporting</code></td></tr><tr><td><strong><code>ACMG not met</code></strong> (v100.40.0+)</td><td>Optional.<br>Access-controlled.<br><br><i class="fa-square-xmark">:square-xmark:</i> ACMG tags explicitly excluded for the variant.<br><br>If a tag is not listed under <strong><code>ACMG applied</code></strong> or <strong><code>ACMG not met</code></strong>, it remains inactive for the variant.</td><td>Comma-separated list of <code>&#x3C;tag></code> entries.</td><td><code>BS1</code>, <code>BP4</code></td></tr><tr><td><strong><code>Update</code></strong><br>(v100.40.0+)</td><td><p>Optional.<br>Access-controlled.<br><br>When set to <code>true</code>, triggers variant information update.</p><p><br>Default value is <code>false</code>.</p></td><td><code>true</code>, <code>false</code></td><td><code>true</code></td></tr></tbody></table>

### Copy number variants

Fill the fields for a CNV variant according to the rules defined in the validation table.

Table 2. Validation rules for CNV fields

<table data-full-width="false"><thead><tr><th>Field (column) name</th><th width="186.20001220703125">Field details</th><th>Expected input</th><th>Example</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong><code>Vartype</code></strong></mark></td><td>Mandatory.</td><td><code>DEL</code>, <code>DUP</code></td><td><code>DEL</code></td></tr><tr><td><mark style="color:red;"><strong><code>Chromosome</code></strong></mark></td><td>Mandatory.</td><td>Integer</td><td><code>3</code></td></tr><tr><td><mark style="color:red;"><strong><code>Position</code></strong></mark></td><td>Mandatory.</td><td>Integer</td><td><code>123000</code></td></tr><tr><td><mark style="color:red;"><strong><code>End</code></strong></mark></td><td>Mandatory.</td><td>Integer greater than <code>Position</code></td><td><code>124000</code></td></tr><tr><td><mark style="color:red;"><strong><code>REF</code></strong></mark></td><td>Mandatory.</td><td><code>A</code>, <code>T</code>, <code>G</code>, <code>C</code></td><td><code>G</code></td></tr><tr><td><strong><code>Overlap</code></strong></td><td>Optional: if absent or empty, the fallback value <code>70</code> is assigned.</td><td>Integer 0-100</td><td><code>80</code></td></tr><tr><td><strong><code>Pathogenicity</code></strong></td><td>Optional.<br>Access-controlled.</td><td><code>Pathogenic</code>, <code>Likely pathogenic</code>, <code>VUS</code>, <code>Likely benign</code>, <code>Benign</code></td><td><code>Likely pathogenic</code></td></tr><tr><td><strong><code>Disease</code></strong></td><td>Optional.<br>Access-controlled.<br><br>OMIM ID.</td><td>Integer</td><td><code>113705</code></td></tr><tr><td><strong><code>Interpretation</code></strong></td><td>Optional.<br>Access-controlled.</td><td>Free text under 65000 characters</td><td>Free text</td></tr><tr><td><strong><code>Notes</code></strong></td><td>Optional.<br>Access-controlled.</td><td>Free text under 65000 characters</td><td>Free text</td></tr><tr><td><p><strong><code>Update</code></strong></p><p>(v100.40.0+)</p></td><td><p>Optional.<br>Access-controlled.<br></p><p>When set to <code>true</code>, triggers variant information update.<br>Default value is <code>false</code>.</p></td><td><code>true</code>, <code>false</code></td><td><code>true</code></td></tr></tbody></table>

[^1]: Comma-Separated Values


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.connected.illumina.com/emedgene/emedgene-curate-manual/curate_variants/adding-variants-to-curate/adding-or-updating-multiple-variants-in-curate/csv-format-requirements-for-variant-upload.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
