odp icon indicating copy to clipboard operation
odp copied to clipboard

running on M1 mac issues, solved!

Open madeleineaaseremedios opened this issue 8 months ago • 0 comments

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.

  1. 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.

  1. 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.

  1. 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.

  1. 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.

  1. 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!

madeleineaaseremedios avatar Jun 19 '24 10:06 madeleineaaseremedios