tutorial on os x
Got the latest version of mac darwin binary. Can't fetch the database: ph ./philosopher_darwin_amd64-2.dms database --id UP000001013 --contam --reviewed INFO[17:19:07] Fetching database INFO[17:19:07] Processing decoys INFO[17:19:07] Creating file INFO[17:19:07] Done
But nothing is being downloaded.
Hey @snp;
I have almost no access to a Mac computer around here right now, so I'll try to see how to fix that for you but I can't give you a good time frame, sorry for that.
@snp Have you tried running it again with a more recent version?
@prvst Now I can't reach this point to check:
INFO[11:20:29] Executing Workspace 20190219
WARN[11:20:31] There is a new version of Philosopher available for download: https://github.com/prvst/philosopher/releases
INFO[11:20:31] Creating workspace
FATA[11:20:31] cannot create directory: Can't find temporary directory; check folder permissions
We have no plans to add Prophet support on Mac, right now. I'm archiving this for now
Hi, I’ve successfully managed to run FragPipe natively on both Linux aarch64 (Huawei Kunpeng 920) and macOS (M1 Max), including OpenSearch and MSFragger.
Raw to mzML conversion For converting .raw files to .mzML, I used mono + ThermoRawFileParser. Since Thermo's API is based on .NET, mono works well on aarch64, so this step was straightforward.
FragPipe compatibility The major compatibility issue in my workflow comes from the Philosopher —specifically, the TPP (Trans-Proteomic Pipeline) tools such as PeptideProphet, ProteinProphet, PTMProphet, etc. These are embedded in the Philosopher binary using go-bindata, and the provided binaries are x86_64 only, so they don’t run on ARM.
The rest of Philosopher’s tools are written in Go and can be recompiled for ARM without much issue.
Solution for TPP tools I recompiled the required TPP tools from TPP source code, and then re-embedded them into Philosopher using go-bindata, followed by a full rebuild.
Notes on building TPP Dependencies like argtable2, boost, and hdf5 are the main challenge.
On macOS, using clang is generally fine. You do need to patch make scripts to recognize darwin.
On Linux (Kunpeng), compiling with gcc/g++ requires attention to:
boost::hash compatibility – especially in container_hash, which needed changes.
Multiple bundled config.guess and config.sub files were outdated and couldn't recognize aarch64, so I had to manually update or replace them.
I now have a working pipeline on both platforms and am happy to share more details if needed!
Hi @lgp0509 ,
Thank you so much for the efforts and updates. Compiling TPP and Philosopher on OS X is what I always want to do but don't have time to do. If it is OK, could you share the scripts that compiling TPP and Philosopher? You could also submit a pull request if you want.
Thanks,
Fengchao
Hi @Fengchao,
I followed the TPP build guide (https://tools.proteomecenter.org/wiki/index.php?title=TPP_7.0.0:_Installing_on_Ubuntu_22.04_LTS ) and successfully compiled the following tools on both Linux aarch64 and macOS M1 Max: Comet, InterProphetParser, InteractParser, PeptideProphetParser, RefreshParser, batchcoverage, DatabaseParser, ProteinProphet, and PTMProphetParser.
After building, I used go-bindata to generate .go files for each binary and replaced the corresponding lib/ext/[tool]/unix/go-bindata.go files in Philosopher. I didn’t modify the core source code — I’m not very familiar with Go, so I didn’t touch the build system or Makefiles directly.
The only change I made was adding: //go:build darwin // +build darwin to the top of the [tool]_unix.go files for macOS support.
So far, it works for me on both platforms 😄. If it’s helpful, I can upload the pre-generated go-bindata .go files for both Linux aarch64 and macOS Apple silicon, in case anyone wants to use them.
I’ll do more testing with large-scale mass spectrometry datasets in the coming weeks, and once that’s done, I’ll submit a pull request.
I’ll also upload the macOS Apple Silicon go-bindata files a bit later.
comet_unix_aarch64_bindata.zip interprophet_unix_aarch64_bindata.zip peptideprophet_unix_aarch64_bindata.zip proteinprophet_unix_aarch64_bindata.zip ptmprophet_unix_aarch64_bindata.zip