-
Notifications
You must be signed in to change notification settings - Fork 548
Description
I currently have no easy way to test STAR on macOS other than through GitHub Actions for my package. I'm currently updating supported Python versions. The first few lines of my workflow look like:
jobs:
install-and-test:
runs-on: ${{matrix.os}}
defaults:
run:
shell: bash -l {0}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
python-version: ["3.11", "3.12", "3.13"]
steps:
- uses: actions/checkout@v5
- uses: conda-incubator/setup-miniconda@v3This worked before (3.7, 3.8, 3.9, and 3.10), although at some point I had to run legacy versions on Intel CPUs by forcing macos-13, instead of macos-latest.
STAR is installed
star 2.7.11b haf7d672_7 biocondabut it systematically fails to map under macOS (macos-15-arm64, I also tried macos-14-arm64, and the deprecated macos-13). Linux is fine, all tests complete successfully.
I include the relevant traceback below for one macOS run:
EXITING: because of fatal EXECUTION error: Failed spawning readFilesCommand
2: No such file or directory
Sep 23 13:08:53 ...... FATAL ERROR, exiting
Traceback (most recent call last):
File "/Users/runner/miniconda3/envs/rpbp/bin/create-base-genome-profile", line 7, in <module>
sys.exit(main())
^^^^^^
File "/Users/runner/miniconda3/envs/rpbp/lib/python3.12/site-packages/rpbp/orf_profile_construction/create_base_genome_profile.py", line 243, in main
shell_utils.call_if_not_exists(
File "/Users/runner/miniconda3/envs/rpbp/lib/python3.12/site-packages/pbiotools/misc/shell_utils.py", line 366, in call_if_not_exists
ret_code = check_call(cmd, call=call, raise_on_error=raise_on_error)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/runner/miniconda3/envs/rpbp/lib/python3.12/site-packages/pbiotools/misc/shell_utils.py", line 202, in check_call
return check_call_step(cmd, call=call, raise_on_error=raise_on_error)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/runner/miniconda3/envs/rpbp/lib/python3.12/site-packages/pbiotools/misc/shell_utils.py", line 184, in check_call_step
raise subprocess.CalledProcessError(ret_code, cmd)
subprocess.CalledProcessError: Command 'STAR --runThreadN 1 --genomeDir /private/var/folders/q0/wmf37v850txck86cpnvwm_zw0000gn/T/pytest-of-runner/pytest-0/data0/c-elegans-chrI-example/WBcel235.79.chrI/star-index --sjdbGTFfile /private/var/folders/q0/wmf37v850txck86cpnvwm_zw0000gn/T/pytest-of-runner/pytest-0/data0/c-elegans-chrI-example/input/WBcel235.79.chrI.gtf --readFilesIn /private/var/folders/q0/wmf37v850txck86cpnvwm_zw0000gn/T/pytest-of-runner/pytest-0/data0/c-elegans-chrI-example/without-rrna/c-elegans-rep-1.fastq.gz --readFilesCommand gzcat --limitBAMsortRAM 2147483648 --alignIntronMin 20 --alignIntronMax 100000 --outFilterMismatchNmax 1 --outFilterMismatchNoverLmax 0.04 --outFilterType BySJout --outFilterIntronMotifs RemoveNoncanonicalUnannotated --outSAMattributes AS NH HI nM MD --outSAMtype BAM SortedByCoordinate --sjdbOverhang 33 --seedSearchStartLmaxOverLread 0.5 --winAnchorMultimapNmax 100 --outFileNamePrefix /private/var/folders/q0/wmf37v850txck86cpnvwm_zw0000gn/T/pytest-of-runner/pytest-0/data0/c-elegans-chrI-example/without-rrna-mapping/c-elegans-rep-1' returned non-zero exit status 102.I also tried with --readFilesCommand gunzip -c and --readFilesCommand "gunzip -c", without success. On Linux, I use --readFilesCommand zcat.
I don't really understand the error, whether STAR fails to read the readFilesCommand's argument, whether the argument is not a valid command on macOS, or if there is actually something else preventing it from spawning some process...
As far as I can tell, all previous steps run fine, the files and index should be there.
Any piece of advice is appreciated. Thanks.