odp
odp copied to clipboard
running on M1 mac issues, solved!
Hi, I had a few problems getting this to run on my M1 mac with python 3.11.5, but with a few changes, I think it's all worked okay now.
- Error message:
cd LG_db; \
tar --skip-old-files -xzvf BCnS_LGs.tar.gz; \
cd BCnS_LGs; \
snakemake
tar: Option --skip-old-files is not supported
This isn't GNU-tar it's the mac bsdtar, so that option doesn't exist. You can get GNUtar for macs, but instead for now, I changed tar --skip-old-files
to tar -k
in the Makefile.
- Error message:
/bin/bash: line 1: hmmbuild: command not found
[Thu Jun 13 13:23:20 2024]
Error in rule make_hmm:
jobid: 1846
input: aligned/mer_BFL_EMU_HVU_PYE_RES_447.fasta
output: hmms/mer_BFL_EMU_HVU_PYE_RES_447.hmm
shell:
hmmbuild hmms/mer_BFL_EMU_HVU_PYE_RES_447.hmm aligned/mer_BFL_EMU_HVU_PYE_RES_447.fasta
(one of the commands exited with non-zero exit code; note that snakemake uses bash strict mode!)
HMMER was not listed as a dependency, but it didn't work for me until I installed it with pip.
- Error message:
snakemake: error: unrecognized arguments: -r
snakemake -r
is deprecated (it's default true now), so I just deleted the -r
from the command.
- Error message:
Error in rule make_diamond_and_blast_db:
jobid: 10
input: odp/db/Popi_prots.pep.gz, odp/db/input_check/Popi_pass.txt
output: odp/db/dmnd/Popi_prots.gz.dmnd, odp/db/Popi_prots.pep.gz.phr, odp/db/Popi_prots.pep.gz.pin, odp/db/Popi_prots.pep.gz.psq
shell:
mkdir -p odp/db/dmnd
diamond makedb --in odp/db/Popi_prots.pep.gz --db odp/db/dmnd/Popi_prots.gz.dmnd
zcat odp/db/Popi_prots.pep.gz | makeblastdb -in - -out odp/db/Popi_prots.pep.gz -title Popi_prots.pep.gz -dbtype prot
(one of the commands exited with non-zero exit code; note that snakemake uses bash strict mode!)
So, in odp
, I changed all instances of zcat
to zcat <
based on this.
- Error message:
UserWarning: Starting a Matplotlib GUI outside of the main thread will likely fail.
# make the black dots a little lighter
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'NSWindow should only be instantiated on the main thread!'
The issue I am now getting is a problem with plotting, and it seems to be a problem with macs so, based on the fix here where they set matplotlib mode to Agg (so that doesn't make an interactive gui, it just writes to files), I added the line matplotlib.use('Agg')
underneath line 1381 import matplotlib
in odp_functions.py
, and under line 7 in odp_plotting_functions.py
.
It seems to work now, I hope this is useful to someone else!