|
|
@@ -161,16 +161,23 @@ const getOffsets = (indexPath, accessions) => __awaiter(void 0, void 0, void 0,
|
|
|
return res;
|
|
|
});
|
|
|
exports.getOffsets = getOffsets;
|
|
|
-const getData = (dbPath, accessionRegex, query) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
+const getData = (dbPath, accessionRegex, outPath, query) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
dbPath = Array.isArray(dbPath) ? dbPath : [dbPath];
|
|
|
- const results = [];
|
|
|
const allOffsets = yield getOffsets(dbPath.map(e => e + '.jsi'), accessionRegex);
|
|
|
- for (const offset of allOffsets) {
|
|
|
+ console.log(allOffsets.length + ' entry to parse.');
|
|
|
+ fs_1.default.promises.appendFile(outPath, '[\n');
|
|
|
+ for (let index = 0; index < allOffsets.length; index++) {
|
|
|
+ const offset = allOffsets[index];
|
|
|
const txt = yield readOffset(offset[0], Number(offset[1]), Number(offset[2]));
|
|
|
const json = (0, genbank_parser_1.default)(txt)[0];
|
|
|
- query ? results.push((0, jsonata_1.default)(query).evaluate(json)) : results.push(json);
|
|
|
+ const tmp = query ? (0, jsonata_1.default)(query).evaluate(json) : json;
|
|
|
+ const end = index + 1 === allOffsets.length ? '' : ',';
|
|
|
+ fs_1.default.promises.appendFile(outPath, JSON.stringify(tmp, null, 4) + end + '\n');
|
|
|
+ if ((index + 1) % 100 === 0)
|
|
|
+ console.log('Already ' + (index + 1) + ' sequence parsed');
|
|
|
}
|
|
|
- return results;
|
|
|
+ fs_1.default.promises.appendFile(outPath, ']');
|
|
|
+ return 0;
|
|
|
});
|
|
|
exports.getData = getData;
|
|
|
const getFromAcc = (accession, dbPath, indexPath) => __awaiter(void 0, void 0, void 0, function* () {
|