import CSVParse from './csv.mjs'; let ignoreLines = 0; let sequenceNames = []; function process(threshold, row) { const name = row[0]; if (name === undefined || /^\s*$/.test(name)) { return; } if (ignoreLines > 0) { ignoreLines--; return; } sequenceNames.push(name); let i = 0; for (const col of row) { const val = Number(col); if (isNaN(val)) { continue; } if (val >= threshold && name !== sequenceNames[i]) { postMessage([name, sequenceNames[i], val]); } i++; } } onmessage = e => { console.debug('got message', e); console.debug('reading file'); console.debug('e.data', e.data); const { ignoreHeader, threshold, file } = e.data; console.debug('threshold', threshold, 'file', file); const reader = new FileReader(); reader.onload = e => { const parser = new CSVParse(); for (const c of e.target.result) { parser.push(c); } if (ignoreHeader) { ignoreLines = 1; } parser.results.forEach(row => process(threshold, row)); } reader.progress = e => { console.debug('reader.progress', e); } reader.readAsText(file); }