From 18ea53463bba49ba7446107e356509d85416853c Mon Sep 17 00:00:00 2001 From: Richard Leggett Date: Fri, 16 Jun 2023 14:33:42 +0100 Subject: [PATCH] Fixed BLAST parsing bug and better trapping of BLAST errors --- bin/MARTiEngine.jar | Bin 349226 -> 350332 bytes docs/.DS_Store | Bin 10244 -> 10244 bytes docs/source/installation.rst | 4 +- .../java/uk/ac/earlham/lcaparse/BlastHit.java | 8 +++- .../uk/ac/earlham/marti/amr/AMRResults.java | 6 ++- .../marti/blast/BlastProcessRunnable.java | 2 +- .../marti/classify/ReadClassifier.java | 36 +++++++++++++++--- .../marti/core/MARTiAnalysisRunnable.java | 4 +- .../uk/ac/earlham/marti/core/MARTiEngine.java | 4 ++ .../marti/filter/ReadFilterRunnable.java | 2 +- .../earlham/marti/schedule/JobScheduler.java | 1 + .../marti/schedule/SimpleJobScheduler.java | 11 +++++- .../marti/schedule/SlurmScheduler.java | 8 ++++ 13 files changed, 70 insertions(+), 16 deletions(-) diff --git a/bin/MARTiEngine.jar b/bin/MARTiEngine.jar index 4471de6a9686446c6c71200a03bc1f0a1005e3fc..73df11445374c83b1bb9c78cf8ed5abc85e2e53f 100644 GIT binary patch delta 56745 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 $qCAK| zK;;BLKr~54Yq$+jC+dj*93MPC{ny4f2buZ;6$nU~1_+4iKQ?Is#NbGPA}weSG_|{L zwP#r`mQ&p%**>Tff0A8kG&ZZiN@8H>&|o=|a7-5pITq7cF35OSbWGRf_W@i-bmUDn z4aG1rkDZujubSa2uZ#Ap)7&es-X4ATX|g0)l#j31yT^wLjYs`1gT;#S=eH2w&p2Q% z@yvr@Fs%T&5PYrRK=w6&b`{C55FVP$wWX78EMn_w!GpL-(vhF@sXzMzY{2EwxfP+4 z_Vv&+Yebew0_5p6krzmq0U;RCsta_Mc1s1fLUdzJ=Y7Z`TK$rp<4r;uDtuB$`Qd$29%fk#S?NJFgj8~FEOq7%Hd`<2}eKWa3U=Qqv_kj`$x9w?H! z)*>RfG<%6@I@5oo-{PA>i{X38(iO=^S=wr=8k7(6c*6gj$AP$*Ly3A3#b1O$Ajfkf z^59~|Rtfe+q@0)r*n}ovu=;54g8WP`Hf)c?PR}@ErstncCol~P+rQwnQ&}Ob)*MS@ zPF-#?Yyv&391J`)MDQbtnv6r8(N6f?(*^wduE;g$dTosF#&dQXG|cHS{|L49s$=|MI{yT6O<%>)+|N z#zIM|Q)SE$OUWgoO|@}`csA6nL)UrcO(QP^Z!hVV80r9N1oJ+4;>CnZsxQM;%1r;)dBmK_Yyx1iJvh+&tiz_=vg(mH-U zqF}{Pz23V4%$Mdv%RmK4^i+JP5nA6@ZA;^0L5X$;u$Uy#zV%T0w(6NuYA_~4&En%n zKLx4Wv~r<3QQaNROvqO-(-J|Tohh$E4C@m{XbwZj;@O#RZ<184kz~O(1XBeIA(z%{ zr`|IkUIqz*+Z~V&9_&7)X#D7Tn!GtZKOZdCiU^OS;yPFXF^UPu&g@OhXzoGMt1!l2 zx?igT0GSkrVMAtDO(^;O+Pf&^`yl9#7DF6F|+g<3r)`AY9@EhB7Dj}X$+FP=S4w!ri4U*8WjlPopVtprX zRqg#r!!V2cc_S@ zZ;fFxV)NxHw79f+X$NKf(6sIVYpG}j)$t6@)^qOD+6EgD+DnjQeT654@gqv6O2 zxRNR^cIkIOx}Njac6nOuW1D9#-)i z5|9H!pn8i$a3lt2zPqqeCWia?$V`fpM?>aTb|OajZaP9#f{9P@L)Ya(e)=U9zGYVl zJ#N>Lpi1;49YcnGHM*a_*C96XN3b_9;0CRqJktNojq+&+8+|%*C(9Q6;mr;538snr zE%FOfwUg=%9XXqRZJb8Gx8mr_Mtd9!3}gsH4=WZ6!Tf5#YuC93I?OwVi86?BF>aR! zp>vc}jykVPTlTFv(*1^ZOHO3ggNb0q_^as+MGtoI#pgEs=)5cfKC^2o;`yc<5QwPy zfzu-u)W(3vnJunW0lw!oZ_mOugvhC zz^`QQ`9*a=0@*7m(v+^`49q7F`sFJfyStrv_nlQ?p<2QhxhDbS$Kjg>Iso;QJ5H$* z_rz)E`T}Hj%3*-z&h$fNum`LJ07XhaiU9f5?{k^p5teWYwhd7GU>wy*yKvZ{Es%yj zg>CvJXoxnsUHYQVbfg`ybm3?yXnz(y)da6WEx=J)qXPR{AdEq*EQLZsE>40qv`2*7 zdxcs(Y^a10BnD%2D(PtbqjX3lv7UR)x^JHMp|GV+K{-~sd;~wA!1{Cv;Ooao zkqS-Na?Sbu#2r3uJe4GxFMSGidWn!Z(v5%D^m-oBGfNC2Vs8e};WI1T7EMy)Nk(8L z4FVsDA5rA9LC2#GKG~%K$jL=A{3L{VTc7`d&la<}N~sU;wIIy;LmD}__hS|>Q|u5% zExZU%7)wyvi5Sn|37?;oo|D^xBP^k`O)+3w$#|{+S`Kn2(2_LfG+;RV?`H|htSB=q zf&ll=_r%vt;YGatfm1%7QbnhkTX7@QIb4rxt`l#*@C4-4(*!DefOm+Mcxh!AMgl@P zI`Dn?-Tqh{-zn*WK|;HXY_v?!OB`YH=b?vF@xy-%4a_T;N1iz*2ECA_G-M)bjJH|E zo)SYgIkv-{F;5C#=3l{z2jkYLmj&@~H#b9nlX{4k8&;re1Cr>ZRM=Nhs@A3aMqt2K z<%16Lhr|Mj8BqL{c)7#nl8Y4aY zxbSu&g%+Gj5XAfPHI8SrwM%BaQoK$eEeDBcC(o}jH0X!Ts9F$8f%di2{7UDzUF^=N zh#ZzkVc7|50QnMlLb!9qc-`0YU|3uCT&5KECbHg{c=BsN++kBCuxRayMTGMTp&E~( z6dI5fKho7x+m%_QNU8fv^<>kiT*{==W)F3%O%IIinPZJRBfrE);%u?*ohpAe);v_ZUsGlja!lPh)?( z+ft;$Y-aFTXu>Ms_|k5Y%YWkq+Lv^^#tbA_v=XO9eC0KC$xgkiwi|3ntosHysA5)l z3l-t-0iv&OLOQ$$z+m{(7X}p_d%g1P)MFZx2-K;G5AHiA--RZZ7suF<;#9@EXdWYi zTICEFNgfimFO>rkFX*(bbxjXB9l|`1Y}w;n8Ax9k=1Kf!o5PzmO9W~5j#pX^vr)x7 z64rb=m*JZ{r?vV^kGgW~7Rgy9x(l$JKGo?}0jcbcSR+1J$x`B6cG2FGosv;8-agwF z?l(c#P342gdF1CG6|apV0trLh*^4b%u>+G=!stlLdFoP$G|mVFU7b6HhEn0>NuNYK zrEW6t%4{BqXiWo{h*n2NHkO$viFvFNy)#yEmy~D7eTB2Ns0lr5ts=0eWf^zu6%X=C z09Aubn%C}ywwXENw)ls9`@Pa4&9iFXkxRs^N||G(%%-VGcW}`b{In(O2@7+q!Me5f zLDOTIZU(ex&uF>lb|a0qGGR%D$0B>Nt0bT7jSKuE{uI(w9%eW(=a)+Y+O%?vg1*mr zB1e{+GVxd{C}nz`4vPGC^MTCp&#Fx?fC2+QXSUyO)1AZ*Fm)agdg3eczTb;q2*@yV z^JHX}dh(3F?xVwGcE5|4tN-|sox2I;QlZ4^F#chYCrtXJZ0UYz~ zX(x444&H2nGEQ7YHlt;d+}Tj%DWZ4&&0jNX4rzAu{U2BfESoVw_eFyi2K zM)1218lAkNDELx}>71bNSeUF!NKM*AGksGkm+>zb)m~joB`GwF+=U=PdyhDdE5BOl zB5yq>f1y!Q>)TVADN1u8-}xEh1Ik1FNbhhuW@PjYxK{9IUKRHq!&-z9Ynt&oxfz#RtAn6VIJhJdyJN=g8oA$)vGDgz zuZDWfYauh%djfl=PtXuVI;ICiq>olP`KgE3IBNzL)WM`YP|0}6iJdZgZM-=AnkCR@ z!nRkqnIrQ`+=eB-G*{9J0Eq6MK`VL`Da_6vd6gk+$pSw;<(Chs0&=bWKwOvJqrv1a zjx7_!-~0r%!{X(yhN(p*OCI-SgBo#ZA$tqRe>vNyVVPr!sBy%}jlc$gP2H`e%SaIk z_zsFvJ*=RdXpz@qZa{y;FFu?Naxr>D`^NK-Kl$0P6{FNjLsY840mzu*jQ9gC_51y& zB*?9l;&`%SL%47$_ekja7G>MuDUEn*oG5W_@zRDswhD;4hcD!MJJNE0n`7(a<`y4Y zFuqT(YKlzH!^*Bkpm-%%x?Krk;>z0K>qS?ERedD1<-?}IRrb_jVrs0~q`0+gUUWLq zBHXTQJn8F_LfLtP05~6Z&9KKAYv-Rnub=ly)Sfb+H&(;)97#s*OdofF`{b09JY-OV zjOtOwGF{bvuda4y0(<1;w9!`iOXsqmQETfl^ioNZ)->t43ZUP)J{PsEe(0SIkww{q znfI`Z$e}OFP-8@^@J(3<3>Sm)A|qWk4XN~R+29aG@X8pc<x_Q$M^*?T|)hq5P9NNS8*4 zVG|^+WJHez>VRxHdCbwS#e1V%+7GJQIBDG0Nl&p4$Q~6Y*)y_|+}WhPWX0;h3+COT zIQVe=IS$hh?{xICfIENqYP8v_yGwy;yjtx?%6`@AE8tTzZW1RLSFIATE3~Z}w}~e% zNkdQ+euO^jGu~BNJ+|w3Q8);#-JYb4>S7f*WmsZbox*qOkLZ;xR_KXljbZn)QdT9N zS4v&s8V=C?u)vFTdalyL0*^)$Dt*4AMO>i!*mnQ=aPUJ!#4e8{+$*9oSl zlwyCu2WWSq)MM?=vpd*PG#nȝC~60|ik-nDD@9kg3(?^CIbYQD_Bv@uAd6ciS` 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 or, optionally, install with `homebrew on Mac `_. On Ubuntu, using apt-get may install an older version. In which case, it may be easiest to download executables from the NCBI link above. +* **BLAST (2.12.0 or greater)** - `download from NCBI `_ or, optionally, install with `homebrew on Mac `_. On Ubuntu, using apt-get may install an older version. In which case, it may be easiest to download executables from the NCBI link above. * **BLAST databases** - what you'll need will depend on what you're trying to do. But you might want to start with the nt database, `available from the NCBI Blast FTP site `_. * **NCBI taxonomy** - you can `download this from the NCBI taxonomy FTP site `_. You need the taxdump files, specifically the nodes.dmp and names.dmp files. -* **Java Run Time Environment (OpenJDK 16.0.2 or greater)** - the simplest option is to `install OpenJDK `_. Note, on Macs, the documentation for OpenJDK isn't great. Once you download the JDK, you need to move the directory into /Library/Java/VirtualMachines (`as described here `_). +* **Java Run Time Environment (OpenJDK 16.0.2 or greater)** - the simplest option is to `install OpenJDK `_. Note, on Macs, the documentation for OpenJDK isn't great. Once you download the JDK, you need to move the directory into /Library/Java/VirtualMachines (`as described here `_). Or install with `homebrew `_ (use brew install openjdk). In order to run the MARTi GUI, you also need to install the following on the computer where it will be running: diff --git a/engine/src/main/java/uk/ac/earlham/lcaparse/BlastHit.java b/engine/src/main/java/uk/ac/earlham/lcaparse/BlastHit.java index 2c4ab8a..79b03b7 100644 --- a/engine/src/main/java/uk/ac/earlham/lcaparse/BlastHit.java +++ b/engine/src/main/java/uk/ac/earlham/lcaparse/BlastHit.java @@ -63,7 +63,7 @@ public BlastHit(Taxonomy t, AccessionTaxonConvertor atc, String line, int format cacheTaxonIdPath(); } } - + private void parseNanoOKWithStitle(String[] fields ) { // NanoOK14: "qseqid sseqid pident length mismatch gapopen qstart qend sstart send evalue bitscore stitle staxids" // NanoOK15: "qseqid sseqid pident length mismatch gapopen qstart qend sstart send evalue bitscore stitle qcovs staxids" @@ -96,7 +96,11 @@ private void parseNanoOKWithStitle(String[] fields ) { queryCoverage = Double.parseDouble(fields[13]); String taxaString = fields[14]; String[] taxa = taxaString.split(";"); - taxonId = Integer.parseInt(taxa[0]); + try { + taxonId = Integer.parseInt(taxa[0]); + } catch (NumberFormatException e) { + taxonId = -2; + } } validAlignment = true; diff --git a/engine/src/main/java/uk/ac/earlham/marti/amr/AMRResults.java b/engine/src/main/java/uk/ac/earlham/marti/amr/AMRResults.java index 790d39c..952b2c5 100644 --- a/engine/src/main/java/uk/ac/earlham/marti/amr/AMRResults.java +++ b/engine/src/main/java/uk/ac/earlham/marti/amr/AMRResults.java @@ -69,8 +69,10 @@ public void analyseChunk(AMRAnalysisTask aat) { WalkOutChunk woc = new WalkOutChunk(options, options.getReadClassifier().getTaxonomy(), aat.getOriginalChunkNumber(), aat.getProcessedChunkNumber()); woc.load(aat.getCARDBlastFilename(), aat.getNtBlastFilename()); + options.getLog().println("Chunks loaded, processing hits"); woc.processHits(wor); readCountWithAMRHits += woc.getReadCountWithAMRHits(); + options.getLog().println("Read count with AMR hits "+readCountWithAMRHits); writeJSON(aat.getProcessedChunkNumber()); @@ -89,6 +91,8 @@ public void writeJSON(int cn) { // chunkTime object JsonObjectBuilder chunkTimes = Json.createObjectBuilder(); + options.getLog().println("Writing JSON for chunk "+cn); + for (int c=1; c<=wor.getMaxChunkNumber(); c++) { chunkTimes.add(Integer.toString(c), wor.getChunkTime(c)); } @@ -213,7 +217,7 @@ public void writeJSON(int cn) { e.printStackTrace(); System.exit(1); } - + options.getLog().println("JSON written for chunk "+cn); } public CARDOntology getOntology() { diff --git a/engine/src/main/java/uk/ac/earlham/marti/blast/BlastProcessRunnable.java b/engine/src/main/java/uk/ac/earlham/marti/blast/BlastProcessRunnable.java index 5e6e7cc..404eae5 100644 --- a/engine/src/main/java/uk/ac/earlham/marti/blast/BlastProcessRunnable.java +++ b/engine/src/main/java/uk/ac/earlham/marti/blast/BlastProcessRunnable.java @@ -129,7 +129,7 @@ private void runBlast(String fastaPathname) { if (options.getStopProcessingAfter() > 0) { if (numberOfReadsProcessed > options.getStopProcessingAfter()) { - options.getLog().println("Number of FASTQ reads processed ("+numberOfReadsProcessed+") exceeeds limit ("+options.getStopProcessingAfter()+"). Sending STOP command."); + options.getLog().println("Note: Number of FASTQ reads processed ("+numberOfReadsProcessed+") exceeeds limit ("+options.getStopProcessingAfter()+"). Sending STOP command."); options.stopProcessing(); } } diff --git a/engine/src/main/java/uk/ac/earlham/marti/classify/ReadClassifier.java b/engine/src/main/java/uk/ac/earlham/marti/classify/ReadClassifier.java index fd19fa9..f896c39 100644 --- a/engine/src/main/java/uk/ac/earlham/marti/classify/ReadClassifier.java +++ b/engine/src/main/java/uk/ac/earlham/marti/classify/ReadClassifier.java @@ -76,15 +76,38 @@ public synchronized void addFile(String blastProcessName, int i, String queryFil public boolean checkBLASTCompleted(ReadClassifierItem f, int exitValue) { String blastLogFilename = f.getLogFile(); - - //options.getLog().println("Checking BLAST log for errors "+blastLogFilename); - //options.getLog().println(" Exit value was "+exitValue); - + boolean completed = true; + if (exitValue != 0) { - return false; + completed = false; + //options.getLog().println(" Exit value was "+exitValue); + } else { + options.getLog().println("Checking BLAST log for errors "+blastLogFilename); + try { + File bf = new File(blastLogFilename); + if (bf.exists()) { + BufferedReader br; + String line; + br = new BufferedReader(new FileReader(blastLogFilename)); + while ((line = br.readLine()) != null) { + if (line.toLowerCase().contains("error")) { + options.getLog().printlnLogAndScreen("Error: Stopping due to error message in "+blastLogFilename); + completed = false; + } + } + br.close(); + } else { + options.getLog().println("WARNING: Couldn't find BLAST log "+blastLogFilename); + options.getLog().println("This is usually a bad sign, but continuing to run."); + } + } catch (Exception e) { + System.out.println("checkBLASTCompleted exception"); + e.printStackTrace(); + System.exit(1); + } } - return true; + return completed; } // /** @@ -272,6 +295,7 @@ public synchronized void checkForFilesToClassify() { } else { System.out.println("Error: Failed BLAST "+f.getBlastFile() + " exit value "+ js.getExitValue(thisId)); options.getLog().println("Error: Failed BLAST "+f.getBlastFile()); + js.markJobAsFailed(thisId); } } else { options.getLog().println(MARTiLog.LOGLEVEL_NOTCOMPLETED, "Not completed " + f.blastProcessName + " - " + f.blastFile + " - " + f.getJobId()); diff --git a/engine/src/main/java/uk/ac/earlham/marti/core/MARTiAnalysisRunnable.java b/engine/src/main/java/uk/ac/earlham/marti/core/MARTiAnalysisRunnable.java index 66ec012..e7da302 100644 --- a/engine/src/main/java/uk/ac/earlham/marti/core/MARTiAnalysisRunnable.java +++ b/engine/src/main/java/uk/ac/earlham/marti/core/MARTiAnalysisRunnable.java @@ -70,11 +70,11 @@ public void run() { } } - options.getLog().println("MARTiAnalysisRunnable finalising"); - options.getLog().println("Thread exiting"); + options.getLog().println("MARTiAnalysisRunnable thread exiting"); } public void exitThread() { + options.getLog().printlnLogAndScreen("Exiting MARTiAnalsisRunnable thread"); keepRunning = false; } } diff --git a/engine/src/main/java/uk/ac/earlham/marti/core/MARTiEngine.java b/engine/src/main/java/uk/ac/earlham/marti/core/MARTiEngine.java index b1ddb8d..6321a3b 100644 --- a/engine/src/main/java/uk/ac/earlham/marti/core/MARTiEngine.java +++ b/engine/src/main/java/uk/ac/earlham/marti/core/MARTiEngine.java @@ -8,6 +8,7 @@ import java.util.*; import java.util.concurrent.ThreadPoolExecutor; import java.util.zip.*; +import uk.ac.earlham.marti.amr.WalkOutRead; import uk.ac.earlham.marti.schedule.*; /** @@ -135,6 +136,9 @@ public static void main(String[] args) throws InterruptedException { options.getReadClassifier().initialise(); + // DEBUG - Test WalkoutRead + WalkOutRead wor = new WalkOutRead("test", options, options.getReadClassifier().getTaxonomy()); + process(options); //memoryReport(); diff --git a/engine/src/main/java/uk/ac/earlham/marti/filter/ReadFilterRunnable.java b/engine/src/main/java/uk/ac/earlham/marti/filter/ReadFilterRunnable.java index 60fd640..6ea5973 100644 --- a/engine/src/main/java/uk/ac/earlham/marti/filter/ReadFilterRunnable.java +++ b/engine/src/main/java/uk/ac/earlham/marti/filter/ReadFilterRunnable.java @@ -348,7 +348,7 @@ public void run() { // endChunks(); // } - options.getLog().println("Thread exiting"); + options.getLog().println("ReadFilterRunnable thread exiting"); outputStats(); } diff --git a/engine/src/main/java/uk/ac/earlham/marti/schedule/JobScheduler.java b/engine/src/main/java/uk/ac/earlham/marti/schedule/JobScheduler.java index 2aaddc5..7197004 100644 --- a/engine/src/main/java/uk/ac/earlham/marti/schedule/JobScheduler.java +++ b/engine/src/main/java/uk/ac/earlham/marti/schedule/JobScheduler.java @@ -18,4 +18,5 @@ public interface JobScheduler { public int submitJob(String[] commands, String logFilename, boolean submitJob); public boolean checkJobCompleted(int i); public int getExitValue(int i); + public void markJobAsFailed(int i); } diff --git a/engine/src/main/java/uk/ac/earlham/marti/schedule/SimpleJobScheduler.java b/engine/src/main/java/uk/ac/earlham/marti/schedule/SimpleJobScheduler.java index 249b6ee..2ef6df3 100644 --- a/engine/src/main/java/uk/ac/earlham/marti/schedule/SimpleJobScheduler.java +++ b/engine/src/main/java/uk/ac/earlham/marti/schedule/SimpleJobScheduler.java @@ -8,6 +8,7 @@ import java.lang.management.ManagementFactory; import java.io.File; import java.util.LinkedList; +import java.util.concurrent.ConcurrentHashMap; import uk.ac.earlham.marti.core.MARTiEngineOptions; import uk.ac.earlham.marti.core.MARTiLog; @@ -18,8 +19,10 @@ */ public class SimpleJobScheduler implements JobScheduler { private static final int MAX_QUICK_JOB_ID = 100000; + private ConcurrentHashMap allJobs = new ConcurrentHashMap(); private LinkedList pendingJobs = new LinkedList(); private LinkedList runningJobs = new LinkedList(); + private LinkedList failedJobs = new LinkedList(); //private LinkedList finishedJobs = new LinkedList(); private MARTiLog schedulerLog = new MARTiLog(); private MARTiEngineOptions options; @@ -84,6 +87,7 @@ public synchronized int submitJob(String[] commands, String logFilename, boolean SimpleJobSchedulerJob j = new SimpleJobSchedulerJob(jobId, commands, logFilename, dontRunIt); pendingJobs.add(j); + allJobs.put(jobId, j); schedulerLog.println("Submitted job\t"+jobId+"\t"+j.getCommand()); return jobId++; } @@ -209,6 +213,11 @@ public synchronized int getPendingJobCount() { } public synchronized int getFailedJobCount() { - return 0; + return failedJobs.size(); + } + + public synchronized void markJobAsFailed(int i) { + SimpleJobSchedulerJob ssj = allJobs.get(i); + failedJobs.add(ssj); } } diff --git a/engine/src/main/java/uk/ac/earlham/marti/schedule/SlurmScheduler.java b/engine/src/main/java/uk/ac/earlham/marti/schedule/SlurmScheduler.java index 1057c2e..3d32c29 100644 --- a/engine/src/main/java/uk/ac/earlham/marti/schedule/SlurmScheduler.java +++ b/engine/src/main/java/uk/ac/earlham/marti/schedule/SlurmScheduler.java @@ -188,4 +188,12 @@ public synchronized void manageQueue() { public synchronized int getFailedJobCount() { return failedJobs.size(); } + + public synchronized void markJobAsFailed(int i) { + SlurmSchedulerJob ssj = allJobs.get(i); + if (runningJobs.containsKey(i)) { + runningJobs.remove(i); + } + failedJobs.put(i, ssj); + } }