Error running OrthoMCL
1
0
Entering edit mode
7.8 years ago
johane92 • 0

Hi all,

I'm developing a pipeline for using OrthoMCL and I can't get around an error that occurs when running OrthoMCLPairs:

DBD::mysql::st execute failed: Table 'BestQueryTaxonScore' already exists at /home/user/software/orthoMCL/bin/orthomclPairs line 709, <f> line 14.

I went to check line 709 in orthomclPairs, which really didn't tell me much why the error occurs.

When the pipeline is run one row at a time, this error isn't raised and therefore this makes no sense to me. The orthomcl.config is unique for each run, meaning that my SimiliarSequencesTable will be unique.

This is basically the source code from where the error occurs:

Install schema in MySQL: (cd $dir/my_orthomcl_dir && /home/user/software/orthoMCL/bin/orthomclInstallSchema "orthomcl_LK.config")

Load BLAST: (cd $dir/my_orthomcl_dir && time /home/user/software/orthoMCL/bin/orthomclLoadBlast "orthomcl_LK.config" "similarSequences_LK_test_5.txt")

Find pairs: (cd $dir/my_orthomcl_dir && time /home/user/software/orthoMCL/bin/orthomclPairs "orthomcl_LK.config" "pairs_LK_paramOAD.log" cleanup=yes)

Anyone else that has encountered this error?

orthoMCL MySQL • 4.3k views
ADD COMMENT
1
Entering edit mode

The error indicates that the program is trying to create a MySQL table that already exists. This can happen when the same command runs twice, maybe the table was created in a previous run. Just drop the table (or the whole database) and start again. To avoid this, the code should probably run DROP TABLE ... IF EXISTS before trying to create the table.

ADD REPLY
1
Entering edit mode

This is correct - OrthoMCL expects a "clean" and empty database after orthoMCLInstallSchema, so in between runs it's easiest to run "DROP DATABASE orthomcl;", "CREATE DATABASE orthomcl," inside the mysql command line and then to do orthoMCLinstallSchema again

ADD REPLY
0
Entering edit mode

Yes I've thought of that too, but according to my supervisor the OrthoMCL database where I run the pipeline is used by several computers in the department, and therefore I'm not really sure that it should/can be removed. When the commands is run separately, this problem doesn't occur which feels like that the existence of the database cannot be the problem. The same goes for the table. But maybe it should be removed, which feels like the only reason and solution to the problem!

Cheers!

ADD REPLY
0
Entering edit mode

Hi,

Do you know how to troubleshoot this error from orthomclLoadBlast?

Error: DBD::mysql::st execute failed: Data too long for column 'SUBJECT_ID' at row 1567

ADD REPLY
0
Entering edit mode

This tells you that you're trying to insert data that is longer than the specified length of the field. Check what is the data type and size of the column SUBJECT_ID and either change its size or make sure that your data is always smaller. Alternatively if you can accept truncation of your data, make the error go away by disabling MySQL strict mode (not recommended anyway).

ADD REPLY
0
Entering edit mode

Hi Karin, An error prompt in my run in orthomclDumpPairsFiles

DBD::mysql::st execute failed: Error writing file '/tmp/MYza1d1c' (Errcode: 28 - No space left on device) at /home/.../bin/orthomclDumpPairsFiles line 54, <f> line 14.

Do you know how to solve this? Thanks!

ADD REPLY
0
Entering edit mode

This error means one of two things: either you're running out of disk space or you're running out of inodes. This usually happens when some processes don't clean up temporary files after themselves and the system accumulates lots of files over time either eating up all available space or eating up all available inodes (e.g. with lots of small files).

ADD REPLY
0
Entering edit mode

Thanks for the reply. But can you share to me the steps to troubleshoot it?

ADD REPLY
0
Entering edit mode

On the affected filesystem, start with checking the available space with: df -h . If there's still space left, there are two possibilities: either you're filling up all the remaining space when running your pipeline (MySQL creates temporary files that can be large) and that's been cleaned up or you're running out of inodes and you'll have to find where the unwanted files are. Most likely they are in temporary directories like /tmp. Monitor the available space while running your pipeline and see if it is getting full. Also on some systems, a reboot clears tmp directories and some caches so that's worth a try.

ADD REPLY
0
Entering edit mode

Doing df -h gives me tmpfs avail ~1.9G. In line with this, I am wondering if I can change the writing of the files from /tmp/MY40oycE to other folder? I had this folder with 613G available so I change the tmpdir of mysqld.cnf into its path. Apparently, when i restart mysql to take effect the change I made I got this error:

Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.

I would also try to reboot to try my luck. How to do the rebooting? Im just new to this so Im sorry if im asking too many question. Thanks.

ADD REPLY
0
Entering edit mode

tmpfs is irrelevant, you want data fro the affected filesystem, i.e. the one you're running things one, most likely the one where /tmp is located. So assuming the current directory is on the affected filesystem, you should run:

df -h .

Notice the dot. Or list all output of df -h (i.e. without the dot). Rebooting is done either by using the shutdown/restart menu or by pressing the power button on the computer. If you're accessing the machine via a terminal, you can run:

sudo reboot now

It would be easier and more efficient if you could find someone knowledgeable near you. Also there are other places dedicated to this type of problems such as Unix & Linux StackExchange or StackOverflow.

ADD REPLY
0
Entering edit mode

Dear Jean, I am having the same problem with memory. I ran orthoMCL-pipeline to run orthoMCL in an easier way but I have a lot of data and I was following a tutorial so I guess It was my mistake not clearing temporal files. Do you know how I could continue the process without loosing the progress? It took weeks and it's the first time I use orthoMCL. The problem is in line 627 or OrthoMCL-pipeline: $job_runner->submit_job($pairsbin, $param_keys, $param_values, "$ortho_log.stdout", "$ortho_log.stderr");

And orthomclPairs gives me this mistake: DBD::mysql::st execute failed: Error writing file '/tmp/MLfd=124' (OS errno 28 - No space left on device) at /usr/local/bioconda/bin/orthomclPairs line 709, <f> line 12.

I don't see any temporal files in the output directory or temporal tables in mysql so I don't know what to eliminate.

ADD REPLY
0
Entering edit mode
7.7 years ago
Naren ▴ 1000

refer to this thread.

ADD COMMENT

Login before adding your answer.

Traffic: 1817 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6