EzAAI is a suite of workflows for improved AAI calculation performance along with the novel module that provides hierarchical clustering analysis and dendrogram representation.
Hi EzAAI team,
I am trying to run EzAAI but I keep getting this error.
[MAY 03 19:29:36] EzAAI |: EzAAI - v1.0 [Mar. 2021]
getEngineName() called
java.io.FileNotFoundException: mm.label (No such file or directory)
at java.base/java.io.FileInputStream.open0(Native Method)
at java.base/java.io.FileInputStream.open(FileInputStream.java:212)
at java.base/java.io.FileInputStream.(FileInputStream.java:154)
at java.base/java.io.FileInputStream.(FileInputStream.java:109)
at java.base/java.io.FileReader.(FileReader.java:60)
at leb.main.EzAAI.runCalculate(EzAAI.java:284)
at leb.main.EzAAI.run(EzAAI.java:445)
at leb.main.EzAAI.main(EzAAI.java:480)
[MAY 03 19:29:39] ERROR |: Program terminated with error.
I have tried in two different linux systems and I get the same error. Could you help me?
I'm trying to use a snakemake workflow to run a number of EzAAI jobs. However, I'm getting an error during extract that makes me a bit worried about whether or not the files will always be right.
For extract, I'm generating a temporary gunzipped file, since I have all references available as .fna.gz. Here's an example command.
The error I'm (sometimes!) getting is the following:
java.io.FileNotFoundException: /tmp/prodigal.faa (No such file or directory)
at java.base/java.io.FileInputStream.open0(Native Method)
at java.base/java.io.FileInputStream.open(FileInputStream.java:219)
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
at java.base/java.io.FileReader.<init>(FileReader.java:75)
at leb.process.ProcCDSPredictionByProdigal.execute(ProcCDSPredictionByProdigal.java:147)
at leb.main.EzAAI.runExtract(EzAAI.java:224)
at leb.main.EzAAI.run(EzAAI.java:482)
at leb.main.EzAAI.main(EzAAI.java:518)
If I'm running more than one EzAAI job on the same node, how would that affect the /tmp/prodigal.faa file for each extraction? Will the later job always fail without overwriting the first /tmp/prodigal.faa file? Running failed jobs a second time usually resolves the issue.
Note, I am running EzAAI in the following conda environment:
I've changed the identity percentage cutoff (-id) to 0, 0.2, 0.3, 0.4 while keeping the coverage fixed at 0.5, but the number of matched counts and AAI remains the same. Is it possible for the number of Matched counts to always stay the same?
I also tried using 0 as coverage and varying the identity percentage (0.2, 0.4), but also in this case, the value of matched counts remains identical.
In detail, for my experiments, I would like to see what difference there is between 0.2 and 0.4 as identity cutoffs, and I would expect at least a slight variation in the AAI.
I am wondering whehter it is possible to provide an options when computing many pairs, like in fastANI, a list of query database, and a list of reference database then compare each of the query with each of the reference. This can be extremely useful for large number of pairs and also testing benchmarking speed. Same suggestions for orthoANIu (usearch is open source!) but no idea where to request the features.
In your publication you talk about how speed execution is increased when using 30 CPU cores, what would be the option to implement that CPU usage?
PS: Great work with the pipeline, it is amazing!
Best regards,
Ana
Hi developers, I ran the program but got this error.
[MAR 15 12:15:10] EzAAI |: EzAAI - v1.2.3 [Feb. 2024]
[MAR 15 12:15:20] EzAAI |: Calculating AAI... [Task 1/484]
org.apache.commons.io.IOExceptionList: /tmp/ezaai/78e2b9bcc9dd8cf6_tmp
at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:331)
at org.apache.commons.io.FileUtils.deleteDirectory(FileUtils.java:1192)
at leb.process.ProcCalcPairwiseAAI.pairwiseMmseqs(ProcCalcPairwiseAAI.java:399)
at leb.process.ProcCalcPairwiseAAI.calculateProteomePairWithDetails(ProcCalcPairwiseAAI.java:67)
at leb.main.EzAAI.runCalculate(EzAAI.java:511)
at leb.main.EzAAI.run(EzAAI.java:689)
at leb.main.EzAAI.main(EzAAI.java:725)
Caused by: java.io.IOException: Cannot delete file: /tmp/ezaai/78e2b9bcc9dd8cf6_tmp/8191412700641163904
at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:1344)
at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:324)
... 6 more
Caused by: java.nio.file.AccessDeniedException: /tmp/ezaai/78e2b9bcc9dd8cf6_tmp/8191412700641163904/pref_0.dbtype
at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:90)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
at java.base/sun.nio.fs.UnixFileSystemProvider.implDelete(UnixFileSystemProvider.java:291)
at java.base/sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(AbstractFileSystemProvider.java:109)
at java.base/java.nio.file.Files.deleteIfExists(Files.java:1191)
at org.apache.commons.io.file.DeletingPathVisitor.visitFile(DeletingPathVisitor.java:161)
at org.apache.commons.io.file.DeletingPathVisitor.visitFile(DeletingPathVisitor.java:37)
at java.base/java.nio.file.Files.walkFileTree(Files.java:2786)
at java.base/java.nio.file.Files.walkFileTree(Files.java:2857)
at org.apache.commons.io.file.PathUtils.visitFileTree(PathUtils.java:971)
at org.apache.commons.io.file.PathUtils.deleteDirectory(PathUtils.java:434)
at org.apache.commons.io.file.PathUtils.delete(PathUtils.java:391)
at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:1341)
... 7 more
[MAR 15 12:15:24] ERROR |: Program terminated with error.
I've been trying to run this software on a test dataset. I can convert my protein sequence files to ezaai databases, no trouble. But when I try to actually calculate the AAI : java -jar ~/Downloads/EzAAI.jar calculate -t 64 -i EzAAI_dbs/CP040925.1_NCHU2014.db -j EzAAI_dbs/CP097207.1_PR08.db -o EzAAI_test_output
I get: [MAR 07 14:42:18] EzAAI |: EzAAI - v1.2.3 [Feb. 2024] [MAR 07 14:42:18] EzAAI |: Calculating AAI... [Task 1/1] org.apache.commons.io.IOExceptionList: /tmp/ezaai/b72f86d85f7e7f28_tmp at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:331) at org.apache.commons.io.FileUtils.deleteDirectory(FileUtils.java:1192) at leb.process.ProcCalcPairwiseAAI.pairwiseMmseqs(ProcCalcPairwiseAAI.java:399) at leb.process.ProcCalcPairwiseAAI.calculateProteomePairWithDetails(ProcCalcPairwiseAAI.java:67) at leb.main.EzAAI.runCalculate(EzAAI.java:511) at leb.main.EzAAI.run(EzAAI.java:689) at leb.main.EzAAI.main(EzAAI.java:725) Caused by: java.io.IOException: Cannot delete file: /tmp/ezaai/b72f86d85f7e7f28_tmp/9614918276263326714 at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:1344) at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:324) ... 6 more Caused by: java.nio.file.AccessDeniedException: /tmp/ezaai/b72f86d85f7e7f28_tmp/9614918276263326714/pref_0.dbtype at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:90) at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111) at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116) at java.base/sun.nio.fs.UnixFileSystemProvider.implDelete(UnixFileSystemProvider.java:249) at java.base/sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(AbstractFileSystemProvider.java:110) at java.base/java.nio.file.Files.deleteIfExists(Files.java:1181) at org.apache.commons.io.file.DeletingPathVisitor.visitFile(DeletingPathVisitor.java:161) at org.apache.commons.io.file.DeletingPathVisitor.visitFile(DeletingPathVisitor.java:37) at java.base/java.nio.file.Files.walkFileTree(Files.java:2725) at java.base/java.nio.file.Files.walkFileTree(Files.java:2797) at org.apache.commons.io.file.PathUtils.visitFileTree(PathUtils.java:971) at org.apache.commons.io.file.PathUtils.deleteDirectory(PathUtils.java:434) at org.apache.commons.io.file.PathUtils.delete(PathUtils.java:391) at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:1341)
Checking the /tmp directory, the directory created (/tmp/ezaai/b72f86d85f7e7f28_tmp/9614918276263326714 in this case) has permissions: dr-xr-xr-x. 2 myusername myusername 260 Mar 7 14:42 9614918276263326714
So readable and executable, but not writeable, which extends to the files it contains. The folder containing this folder has write permissions just fine, as does the other folder active when the software errors out (the _faa folder). Any ideas?
Hello! Firstly, thanks for creating and maintaining this great tool :) I've been using it on a large collection of genomes, and I've run into a small issue. Basically, I am looping over a list of directories, and I'd like to name the output db with the variable name for later comparison. While I can easily go back and rename them later, I was wondering if there was a way to do this in the script more easily.
I'm trying to test the program for AAI calculation and I stumbled upon an issue when I tried to execute the calculate module. The program was installed with Conda and I can create a database file fine. I ran the following command:
ezaai calculate -i db/ -j db/ -o aai.tsv
I got this:
[APR 08 06:16:16] EzAAI |: EzAAI - v1.2.3 [Feb. 2024]
java.io.FileNotFoundException: mm.label (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.(FileInputStream.java:138)
at java.io.FileInputStream.(FileInputStream.java:93)
at java.io.FileReader.(FileReader.java:58)
at leb.main.EzAAI.runCalculate(EzAAI.java:456)
at leb.main.EzAAI.run(EzAAI.java:689)
at leb.main.EzAAI.main(EzAAI.java:725)
I also tried giving the -tmp argument to the command and the same error appeared.
Any ideas on how to solve this?
EzAAI - v1.2 [Mar. 2022]
java.io.FileNotFoundException: mm.label (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.(FileInputStream.java:138)
at java.io.FileInputStream.(FileInputStream.java:93)
at java.io.FileReader.(FileReader.java:58)
at leb.main.EzAAI.runCalculate(EzAAI.java:307)
at leb.main.EzAAI.run(EzAAI.java:482)
at leb.main.EzAAI.main(EzAAI.java:517)
I also tried it with "db/*.db" but than just the selfcomparison of the first db file is calculated.
MMseqs2 Version: 13.45111
I am unable to see a .db file created using either extract or convert. I set up the same sample folder as the tutorial, with 10 of my genomes in the fasta folder.
java -jar EzAAI_latest.jar extract -i fasta/MAG_48_Clean_2N.fa -o db/MAG_48_Clean_2N.db -l "Methanolobus sp. SBSPR1"
EzAAI |: EzAAI - v1.0 [Mar. 2021]
EzAAI |: Running prodigal on genome fasta/MAG_48_Clean_2N.fa...
getEngineName() called
getEngineName() called
EzAAI |: Converting given CDS file into profile database... (fasta/MAG_48_Clean_2N.fa.faa -> db/MAG_48_Clean_2N.db)
EzAAI |: Task finished.
It all looks like it worked well. But then when I check the db/ folder, there is no MAG_48_Clean_2N.db file. Same thing happened when I ran prodigal manually outside of EzAAI to make a protein CDS file and tried to convert it to the .db
It seems like the issue is the getEngineName() called, as I do not see that in the tutorial.
If it helps here is my java info.
java version "15.0.1" 2020-10-20
Java(TM) SE Runtime Environment (build 15.0.1+9-18)
Java HotSpot(TM) 64-Bit Server VM (build 15.0.1+9-18, mixed mode, sharing)
Please let me know if you have any suggestions. Thanks!
Thanks for your help with the previous issue - I'm back with a different one!
I'd like to use blastp for some AAI calculations. I used conda to install blastp in the same environment I was previously using for EzAAI calculations (info below). I'm running a single instance at a time.
As I understand it, I use the same extract command to prepare databases, regardless of mapping type - is that incorrect?
[FEB 24 08:51:15] EzAAI |: EzAAI - v1.11 [Feb. 2022]
getEngineName() called
[FEB 24 08:51:16] EzAAI |: Calculating AAI... [Task 1/1]
[FEB 24 08:51:16] EzAAI |: Preparing to run reciprocal BLASTp+...
[FEB 24 08:51:16] EzAAI |: Running BLASTp+... (/tmp/bdd397448b571442_faa/i0.faa vs. /tmp/bdd397448b571442_faa/j0.faa)
java.io.FileNotFoundException: /tmp/bdd397448b571442_vice.out (No such file or directory)
at java.base/java.io.FileInputStream.open0(Native Method)
at java.base/java.io.FileInputStream.open(FileInputStream.java:219)
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
at java.base/java.io.FileReader.<init>(FileReader.java:75)
at leb.process.ProcFuncAnnoByBlastPlus.parseOutFile(ProcFuncAnnoByBlastPlus.java:283)
at leb.process.ProcFuncAnnoByBlastPlus.execute(ProcFuncAnnoByBlastPlus.java:273)
at leb.process.ProcCalcPairwiseAAI.pairwiseBlastp(ProcCalcPairwiseAAI.java:499)
at leb.process.ProcCalcPairwiseAAI.calculateProteomePairWithDetails(ProcCalcPairwiseAAI.java:248)
at leb.main.EzAAI.runCalculate(EzAAI.java:361)
at leb.main.EzAAI.run(EzAAI.java:493)
at leb.main.EzAAI.main(EzAAI.java:528)
[FEB 24 08:51:16] ERROR |: Program terminated with error.
Please let me know if you have ideas on how to proceed. Thanks!
Hello,
I tried using EzAAI for a calculation. The first time, it worked without any issues, but I encountered an error on my second attempt. Can you explain what the 'mm.label' file is? Here's what my terminal showed:
This is my code: java -jar EzAAI.jar calculate -i db/ -j mmseqs/ -o out/aai.tsv
java.io.FileNotFoundException: mm.label (No such file or directory)
at java.base/java.io.FileInputStream.open0(Native Method)
at java.base/java.io.FileInputStream.open(FileInputStream.java:213)
at java.base/java.io.FileInputStream.(FileInputStream.java:152)
at java.base/java.io.FileInputStream.(FileInputStream.java:106)
at java.base/java.io.FileReader.(FileReader.java:60)
at leb.main.EzAAI.runCalculate(EzAAI.java:456)
at leb.main.EzAAI.run(EzAAI.java:689)
at leb.main.EzAAI.main(EzAAI.java:725)
[MAR 03 01:26:15] ERROR |: Program terminated with error.
I would appreciate your assistance in resolving this issue.
Thanks.
Hello. I am totally appreciative with all the efforts poured in creating this AAI tool. Well done.
I have just some issue with the second step, the calculation of AAI. I have successfully extracted the DB from my genome data files. However, whenever I run the command for the AAI calculation, I got this error prompt:
MAR 07 16:12:03] EzAAI |: EzAAI - v1.2 [Mar. 2022]
[MAR 07 16:12:42] EzAAI |: Calculating AAI... [Task 1/5776]
java.io.FileNotFoundException: /tmp/31f9c2de403cfb4b_faa/i0.faa (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.(FileInputStream.java:138)
at java.io.FileInputStream.(FileInputStream.java:93)
at java.io.FileReader.(FileReader.java:58)
at leb.process.ProcCalcPairwiseAAI.pairwiseMmseqs(ProcCalcPairwiseAAI.java:308)
at leb.process.ProcCalcPairwiseAAI.calculateProteomePairWithDetails(ProcCalcPairwiseAAI.java:58)
at leb.main.EzAAI.runCalculate(EzAAI.java:350)
at leb.main.EzAAI.run(EzAAI.java:482)
at leb.main.EzAAI.main(EzAAI.java:517)
[MAR 07 16:12:42] ERROR |: Program terminated with error.
I just don't know if it was just my fault, because I am totally new to this "coding" world.
I hope you could attend to this query despite of your hectic schedules.