Help center

Which genotype file formats work

Which genotype file formats CacaoIQ accepts and how marker positions are read.

Check a file from your genotyping lab against this page before you upload it.

Supported formats

Format What a call looks like Missing call Layout
Two-letter genotypes AA, AC blank, --, NN, 00, ??, N, -, ., NA One sample per row or one marker per row (see below)
Separated letter genotypes A/G, A|G, A:G, A G blank, NA, ./., N/N One sample per row or one marker per row
0/1/2 allele-dose table 0, 1, 2 -1, NA, ., blank One sample per row or one marker per row
HapMap Standard HapMap As in the HapMap standard Fixed HapMap layout
VCF Standard VCF genotype field As in the VCF standard Fixed VCF layout

A 0/1/2 dose table is the usual output of DArTseq and GBS pipelines and of genomic-prediction workflows. All of these are converted automatically at upload. Sample IDs can be plain numbers, with or without leading zeros.

File types

  • Supported: CSV and tab-delimited text (.txt).
  • VCF: plain-text VCF only. Biallelic single-base SNPs are read; multi-allelic and indel records are skipped.
  • Not supported: compressed VCF (.vcf.gz) and the file formats of command-line association-analysis tools. Unzip a .vcf.gz file before you upload it, or export a VCF or a 0/1/2 table from your pipeline.

Samples in rows or in columns

A letter table or a 0/1/2 table can have one sample per row (first column the sample ID) or one marker per row (first column the marker name). CacaoIQ works out which, mainly from the names:

  1. The side whose names match the tree IDs in your phenotype file holds the samples.
  2. Otherwise, the side with marker-style names (for example chr1:9786, Tcm001s00113890, SNP_12, DArTseq CloneIDs) holds the markers.
  3. Otherwise, the first header cell decides: Marker, SNP, Locus or CloneID means one marker per row; Sample, Tree, Clone, Accession or Genotype_ID means one sample per row.
  4. If the names don’t settle it, the shape of the file decides.

The file check at upload says how the file was read and why. When only the shape decided, it starts with “Couldn’t tell the layout from the names…”. Check the sample and marker counts on that line. If they look swapped, rename the first column’s header to Sample (one sample per row) or Marker (one marker per row) and upload the file again. Every run reads the file the way the upload check showed.

Marker positions

Where CacaoIQ finds a marker’s chromosome and position depends on the format. Chromosomes 1 to 10 are recognized.

Format Position read from How to write the chromosome
VCF The CHROM and POS columns A number from 1 to 10, bare or with a chr, chrom, tcm, cacao or scaffold prefix, in any case: 1, chr01, Chr_1. Other names, such as Tc01, are not recognized
HapMap The chrom and pos columns (3rd and 4th columns) A plain number from 1 to 10. Write 1, not chr1: a marker written chr1 ends up unplaced
Letter and 0/1/2 tables The marker name Tcm001s00113890, chr1:9786, chr1:9786:SG, Chr01_9786 or 1:9786

A few details:

  • In a VCF, the ID column is not used for the position. It only names a marker that has no position.
  • In a VCF, scaffold_3 is placed on chromosome 3 only when POS fits within the length of chromosome 3 of the Matina 1-6 reference genome.
  • In a HapMap file, pos can be in base pairs or in megabases. Megabases are assumed when most values have decimals.
  • In a letter or dose table, a scaffold_3:1200 name is placed on chromosome 3 only when that scaffold’s markers span a chromosome-sized stretch.

The file check at upload shows how many markers have a chromosome position.

Positions must be on the Matina 1-6 reference

Marker positions must be on the Matina 1-6 reference genome for the candidate-gene search to be correct. CacaoIQ uses positions as given. It doesn’t detect which assembly they come from and doesn’t convert them.

Positions from another assembly can point the candidate-gene search at the wrong genes. When a gene window falls past the end of a Matina 1-6 chromosome, the results page shows a coordinate warning. Positions that fall within the chromosome lengths give no warning, so check the reference with your genotyping lab before you upload.

GWAS, the relationship matrix and the diversity analyses work with any coordinate system. The linkage map uses the marker order as given.

Markers with no position

A marker is unplaced when its chromosome isn’t recognized or it has no position. Unplaced markers are still used for the relationship matrix, the PCA and the tree, and are still tested in the GWAS. They are left off the Manhattan plot, and the results say how many: “ marker(s) with no known position were tested but aren’t plotted.” An unplaced marker can’t be a top hit for the candidate-gene search.

Which allele is counted

Every genotype becomes a 0/1/2 dose that counts copies of the marker’s more common (major) allele in your file. A 0/1/2 file is recounted the same way, so a 2 in your file may not be a 2 in CacaoIQ. In the GWAS table, effect_per_major_allele is the change in the trait per extra copy of that allele: positive means the major allele goes with higher values. The README in each results folder says this too.

Quality control applied to every file

These defaults can be changed in the run panel’s Genotype QC row (Reset to defaults restores them):

Check Default
Marker call rate Markers called in fewer than 90% of trees are dropped
Minor-allele frequency Markers with a rare allele below 5% are dropped; markers with one allele only are always dropped
Non-biallelic markers Dropped
Tree call rate Trees called at fewer than 90% of the well-called markers are dropped
Possible duplicates Listed for you to check, not removed

Sequencing-based data (GBS, DArTseq) often have more missing calls. When more than 10% of trees fail the tree call rate, the results say so and suggest trying 80%. The decision is yours.

When your genotype file carries DArTseq CloneIDs, CacaoIQ uses them to group SNPs from the same sequencing tag for the linkage map and QTL scan. GWAS and the relationship matrix still use every SNP.

No imputation is needed. Missing calls are handled by each analysis.

Common issues

Still stuck? Write to support@scilytics.ai with your system and what you see on screen. Don’t attach data files. The first reply comes within 2 business days.