Thomas 3 жил өмнө
parent
commit
f947a542fe
2 өөрчлөгдсөн 30 нэмэгдсэн , 21 устгасан
  1. 24 19
      dist/index.js
  2. 6 2
      index.ts

+ 24 - 19
dist/index.js

@@ -159,38 +159,43 @@ runName, libName, outputDir, onData, options) {
         return __generator(this, function (_a) {
             switch (_a.label) {
                 case 0:
-                    _a.trys.push([0, 4, , 5]);
-                    return [4 /*yield*/, async_exec(bwa, __spreadArray(__spreadArray(['mem',
-                            '-t', threads,
-                            '-R', "\"@RG\\tPL:Illumina\\tID:".concat(+(new Date), "\\tSM:").concat(runName, "\\tLB:").concat(libName, "\""), refPath,
-                            readsIn], samblasterCmd, true), ['|',
-                            samtools,
-                            'view',
-                            '-Sb',
-                            '-',
-                            '>',
-                            bam], false), function (message) { return onData('[BWA-MEM] ' + message); })];
+                    _a.trys.push([0, 6, , 7]);
+                    if (!!fs_1.default.existsSync(refPath + '.amb')) return [3 /*break*/, 2];
+                    return [4 /*yield*/, async_exec(bwa, ['index', refPath], function (message) { return onData('[BWA-INDEX] ' + message); })];
                 case 1:
+                    _a.sent();
+                    _a.label = 2;
+                case 2: return [4 /*yield*/, async_exec(bwa, __spreadArray(__spreadArray(['mem',
+                        '-t', threads,
+                        '-R', "\"@RG\\tPL:Illumina\\tID:".concat(+(new Date), "\\tSM:").concat(runName, "\\tLB:").concat(libName, "\""), refPath,
+                        readsIn], samblasterCmd, true), ['|',
+                        samtools,
+                        'view',
+                        '-Sb',
+                        '-',
+                        '>',
+                        bam], false), function (message) { return onData('[BWA-MEM] ' + message); })];
+                case 3:
                     code = _a.sent();
                     onData('[BWA-MEM][EXIT CODE] ' + code);
-                    if (!retObj.bamSorted) return [3 /*break*/, 3];
+                    if (!retObj.bamSorted) return [3 /*break*/, 5];
                     return [4 /*yield*/, async_exec(sambamba, ['sort',
                             '-t', threads,
                             bam
                         ], function (message) { return onData('[SAMBAMBA-SORT] ' + message); })];
-                case 2:
+                case 4:
                     code_sort = _a.sent();
                     onData('[SAMBAMBA-SORT][EXIT CODE] ' + code_sort);
                     fs_1.default.unlinkSync(bam);
-                    _a.label = 3;
-                case 3:
+                    _a.label = 5;
+                case 5:
                     resolve(retObj);
-                    return [3 /*break*/, 5];
-                case 4:
+                    return [3 /*break*/, 7];
+                case 6:
                     err_1 = _a.sent();
                     reject(err_1);
-                    return [3 /*break*/, 5];
-                case 5: return [2 /*return*/];
+                    return [3 /*break*/, 7];
+                case 7: return [2 /*return*/];
             }
         });
     }); });

+ 6 - 2
index.ts

@@ -25,8 +25,7 @@ const asyncBwaMem = (
     outputDir : string,
     onData    : Function,
     options?  : any,
-    ) => {
-
+  ) => {
     const defaultOptions = {
       output_discordant: true,
       output_splitted: true,
@@ -120,6 +119,11 @@ const asyncBwaMem = (
   
     return new Promise<string[]>(async (resolve, reject) => {
       try {
+
+        if(!fs.existsSync(refPath+'.amb')) {
+          await async_exec(bwa, ['index', refPath], (message: string) => onData('[BWA-INDEX] ' + message))
+        }
+
         const code = await async_exec(
         bwa, ['mem',
           '-t', threads,