or: why you never use sudo with wine.
So, this morning has been a learning experience for me. Steven wanted to do some proteomics stuff on Emu which brought up all kinds of exciting shortcomings of Linux, Wine, and my system administration skills!
It did have a couple of bonus upsides however! We learned how to skip the .raw to .mzXML step, which is nice. That’s done via
WINEPREFIX=~/.wine32 wine /home/shared/comet/comet.2016012.win32.exe -Pcomet.params.file -Dproteome.file sample.raw
But the developer for comet suggested converting from .raw to .mzXML prior to running comet, as wine requires enough system overhead to slow down the process, so we went back to the old plan of using ReAdW to convert. It’s here that I learned that wine is… picky to say the least.
Wine, when you install it creates a user specific wine environment, that only you have access/control over. I should have realized this by even the WINEPREFIX=~/.wine32, but apparently not. When I had been working on this previously, I was testing on both the srlab and my own account, and so they got built organically, as I was working through problems. I either spaced that this was the issue, or didn’t realize it, but now I do know! And here’s how to fix it.
Pretend we have a new user, bob. He logs in to his account and wants to convert some .raw files.
First, we needs to create his 32-bit wine environment and run winetricks to install a bunch of needed libraries (.NET 2.0, .NET2.0 SP1 and 2, and Visual C++ Runtime environments from 2008 and 2010 via
WINEARCH=win32 WINEPREFIX=~/.wine32 winetricks dotnet20 dotnet20sp1 dotnet20sp2 vcrun2008 vcrun2010
After clicking Yes a bunch of times, we now have a basic windows environment with the parts needed to run the subsequent programs.
Next we need to install the thermo DLLs specifically for converting raw to mzXML files by running
MSFileReader.exe found on Emu in
That’s done via
WINEPREFIX=~/.wine32 wine /home/shared/MSFileReader/MSFileReader.exe
Click through like you would installing any program, and we’re almost there!
You should be able to now run ReAdW via
WINEPREFIX=~/.wine32 wine ReAdW.2016010.msfilereader.exe sample.raw sample.mzXML and convert happily away.
This took a while because someone, probably myself, ran wine as root via
sudo wine ... which is highly, highly unadvisable. When wine creates files using sudo, root owns the files, even though they’re located in your personal directory. Wine will then be unable to change them in the future, leading to all kinds of unintended consequences. Don’t do it. No sudo wine.