Paste a gene list or drop a spreadsheet. genefix repairs symbols Excel turned into dates or numbers, updates symbols HGNC has renamed, resolves aliases when they point to one gene, and adds HGNC, Ensembl, NCBI Gene and UniProt ids. You get the same file back, plus a report of every change.
Nothing is uploaded. Your list is read and fixed inside this browser tab; only the public HGNC table is downloaded to you.
| A · gene | B · genefix | |
|---|---|---|
| 2 | 2-SepSEPTIN2 | date → SEPT2 → renamed |
| 3 | MARCH1MARCHF1 | previous symbol |
| 4 | C10orf2TWNK | previous symbol |
| 5 | 1-Mar MARCHF1 or MTARC1? | flagged, not guessed |
| 6 | p21 4 genes? | alias of 4 genes |
Each value is tried in this order; the first rule that fits decides.
tp53 → TP53).C10orf2 → TWNK, FAM46C → TENT5C).p53 → TP53). p21 belongs to four, so all four are listed and the cell is left alone.2-Sep, Sep-02, 02.09.2019, 9/2/2019, 2019-09-02, serial 43710, 02. Sep., 2 sept., 02.сент., 2.00E+04. A cell is repaired only when exactly one current or previous HGNC symbol could have become it.Why some cells stay flagged. 1-Mar is what Excel makes of both MARCH1 (now MARCHF1) and MARC1 (now MTARC1). No program can tell which one the author typed, so genefix lists both and leaves the cell for you.
m/d/yyyy dates are read both ways: 3/2/2019 could be MARCH2, MARC2 or FEB3 (SCN1A), so it is flagged. A first-of-month date with a year may be Excel's month-year reading (it stored SEP3 as 2003-09-01 in a published supplement), so 2003-09-01 is SEPT1 or SEP3.
Plain integers in a symbol column are read as Excel date serials; in a column that is mostly NCBI Gene ids, as ids. NA, #N/A, - are treated as missing values (NA is also an old symbol of XK). Confidence: high — one answer, nothing else fits; medium — one gene, but the value is also an alias elsewhere, or came from an alias or a serial; low — flagged.
Excel test: all 103,457 approved, previous and alias symbols were opened as a CSV in Microsoft Excel and saved again; the cells it changed were then rendered the ways other locales print them and fed back. In human gene lists from PLOS ONE supplements that Ziemann et al. flagged, genefix repaired 2013-09-07 → SEPTIN7, 2014-03-03 → MARCHF3, 3-Sep → SEPTIN3 and 14-Sep → SEPTIN14, and flagged 2013-09-15 (SEP15 is only an alias, of SELENOF).
Python — standard library only, the HGNC snapshot is inside the wheel (1,621 kB).
pip install https://genefix.alftech.space/dl/genefix-0.1.0-py3-none-any.whl
import genefix
for r in genefix.fix(["2-Sep", "MARCH1", "p53", "ENSG00000141510"]):
print(r.input, r.status, r.symbol, r.ensembl)
genefix.fix_file("in.tsv", column="gene", out="out.tsv", report="report.tsv")
genefix.fix_dataframe(df, "gene") # needs pandas
genefix.update() # only when you ask: newer snapshot?
genefix in.csv -c gene -o out.csv --report report.tsv genefix --list 2-Sep 1-Mar p53
JavaScript — one file, ES module (genefix.mjs) or UMD (genefix.js), 39 kB; data loads separately.
import genefix from "https://genefix.alftech.space/genefix.mjs"; const fx = await genefix.load(); // fetches data/latest.json fx.fix(["2-Sep", "1-Mar"]).forEach(r => console.log(r.input, r.status, r.symbol, r.candidates));
Data files: hgnc-2026-10-30.json.gz (1,402 kB), hcop-mouse-2026-10-30.json.gz, meta.json (download date, row counts, checksums).