diff --git a/plugins/spreadsheet-view/src/SpreadsheetView/components/Spreadsheet.tsx b/plugins/spreadsheet-view/src/SpreadsheetView/components/Spreadsheet.tsx
index 0be6409727..d76c5a21aa 100644
--- a/plugins/spreadsheet-view/src/SpreadsheetView/components/Spreadsheet.tsx
+++ b/plugins/spreadsheet-view/src/SpreadsheetView/components/Spreadsheet.tsx
@@ -34,6 +34,7 @@ const DataTable = observer(function ({ model }: { model: SpreadsheetModel }) {
field: m,
width: widths[i],
}))
+
return (
()
+ const rows = lines.map(l => {
+ const [CHROM, POS, ID, REF, ALT, QUAL, FILTER, INFO, FORMAT] = l.split('\t')
+ const ret = Object.fromEntries(
+ INFO?.split(';').map(e => {
+ const [key, val = true] = e.split('=')
+ keys.add(key)
+ return [key, val]
+ }) || [],
+ )
+ return { CHROM, POS, ID, REF, ALT, QUAL, FILTER, INFO, FORMAT, ...ret }
+ })
return {
vcfParser,
- rows: body.split(/\n|\r\n/).map((row, idx) => {
- const [CHROM, POS, ID, REF, ALT, QUAL, FILTER, INFO, FORMAT] =
- row.split('\t')
+ rows: rows.map((row, idx) => {
return {
- CHROM,
- POS,
- ID,
- REF,
- ALT,
- QUAL,
- FILTER,
- INFO,
- FORMAT,
+ ...row,
id: idx,
__lineData: row,
}
@@ -33,8 +37,8 @@ export function parseVcfBuffer(buffer: Buffer, options: ParseOptions = {}) {
'ALT',
'QUAL',
'FILTER',
- 'INFO',
'FORMAT',
+ ...keys,
],
assemblyName: selectedAssemblyName,
}