Thomas 3 years ago
parent
commit
c59d9b7b0c
3 changed files with 49 additions and 3 deletions
  1. 2 1
      dist/index.d.ts
  2. 32 1
      dist/index.js
  3. 15 1
      index.ts

+ 2 - 1
dist/index.d.ts

@@ -1,2 +1,3 @@
+declare const makeReference: (sequenceName: string, sequence: string, filePath: string) => Promise<number>;
 declare const asyncBwaMem: (refPath: string, reads: string | Array<string> | Array<Array<string>>, runName: string, libName: string, outputDir: string, onData: Function, options?: any) => Promise<string[]>;
-export { asyncBwaMem };
+export { asyncBwaMem, makeReference };

+ 32 - 1
dist/index.js

@@ -59,7 +59,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
     return (mod && mod.__esModule) ? mod : { "default": mod };
 };
 Object.defineProperty(exports, "__esModule", { value: true });
-exports.asyncBwaMem = void 0;
+exports.makeReference = exports.asyncBwaMem = void 0;
 var child_process_1 = require("child_process");
 var os_1 = require("os");
 var fs_1 = __importDefault(require("fs"));
@@ -73,6 +73,37 @@ var async_exec = function (prog, args, onData) {
         child.on('exit', function (code) { return resolve(code); });
     });
 };
+var makeReference = function (sequenceName, sequence, filePath) { return __awaiter(void 0, void 0, void 0, function () {
+    return __generator(this, function (_a) {
+        return [2 /*return*/, new Promise(function (resolve, reject) { return __awaiter(void 0, void 0, void 0, function () {
+                var error_1;
+                return __generator(this, function (_a) {
+                    switch (_a.label) {
+                        case 0:
+                            _a.trys.push([0, 4, , 5]);
+                            return [4 /*yield*/, fs_1.default.promises.appendFile(filePath, '>' + sequenceName)];
+                        case 1:
+                            _a.sent();
+                            return [4 /*yield*/, fs_1.default.promises.appendFile(filePath, sequence)];
+                        case 2:
+                            _a.sent();
+                            return [4 /*yield*/, async_exec('bwa', ['index', filePath], function () { return console.log; })];
+                        case 3:
+                            _a.sent();
+                            resolve(0);
+                            return [3 /*break*/, 5];
+                        case 4:
+                            error_1 = _a.sent();
+                            console.log(error_1);
+                            reject(1);
+                            return [3 /*break*/, 5];
+                        case 5: return [2 /*return*/];
+                    }
+                });
+            }); })];
+    });
+}); };
+exports.makeReference = makeReference;
 var asyncBwaMem = function (refPath, reads, 
 // R1        : string | Array<string>,
 // R2        : string | Array<string>,

+ 15 - 1
index.ts

@@ -15,6 +15,20 @@ const async_exec = (prog: string, args: string[], onData: Function) => {
     })
 }
 
+const makeReference = async (sequenceName:string, sequence:string, filePath: string) => {
+  return new Promise<number>(async(resolve, reject) => {
+    try {
+      await fs.promises.appendFile(filePath, '>'+sequenceName)
+      await fs.promises.appendFile(filePath, sequence)
+      await async_exec('bwa', ['index',filePath], () => console.log)
+      resolve(0)
+    } catch (error) {
+      console.log(error);
+      reject(1)
+    }
+  })
+}
+
 const asyncBwaMem = (
     refPath   : string,
     reads     : string | Array<string> | Array<Array<string>>,
@@ -163,4 +177,4 @@ const asyncBwaMem = (
     })
 }
 
-export { asyncBwaMem }
+export { asyncBwaMem, makeReference }