Msconvert Wine
From SPCTools
Revision as of 00:14, 27 November 2012 JoeS (Talk | contribs) (→Instructions for Ubuntu (Updated 11/26/2012)) ← Previous diff |
Revision as of 00:15, 27 November 2012 JoeS (Talk | contribs) (→Instructions for Ubuntu (Updated 11/26/2012)) Next diff → |
||
Line 46: | Line 46: | ||
# Register dll (shouldn't be needed but...) | # Register dll (shouldn't be needed but...) | ||
#: wine regsvr32 pwiz/MSFileReader.XRawfile2.dll | #: wine regsvr32 pwiz/MSFileReader.XRawfile2.dll | ||
+ | #: wine regsvr32 pwiz/CompassXtractMS.dll | ||
# Run msconvert | # Run msconvert | ||
#:wine pwiz/msconvert.exe | #:wine pwiz/msconvert.exe |
Revision as of 00:15, 27 November 2012
Proteowizard's msconvert utility is a must have tool for converting mass spectrometry data from almost any proprietary data format into open standards formats (primary mzML and mzXML). While this tool runs on both Windows and Linux, the ability to convert many common instrument formats under Linux is limited due to the need to have vendor specific libraries (dlls) installed. Fortunately it is possible to run the Windows version of msconvert under Linux using Wine, a open source compatibility layer for Windows -- though your mileage may vary.
The following are instructions on how to install and setup Wine under a variety of Linux platforms. These instructions where largely derived from several spctools-discuss emails and a large thanks goes out to the users who posted them (see references below).
Contents |
Requirements
- You will need to use wine in 32bit emulation mode (basically a 32bit wine even if you are on a 64bit architecture). This is because the .Net and Visual Studio libraries are required and these libraries are installed using a 32 bit installer, even for the 64 bit versions of these libraries. Please also be aware that not all proprietary vendor libraries that are distributed with ProtoWizard are 64 bit hence the 64 bit version of msconvert cannot be used to convert most proprietary files.
Instructions for Ubuntu (Updated 11/26/2012)
The following instructions where developed using Wine 1.5.18 and ProteoWizard 2.1.4131 on the 4.5.2 TPP Amazon Machine Image which is based on the official Ubuntu 12.04 'precise' AMI.
Please read the notes regarding potential issues following these instructions before executing. |
- Connect to the system you want to install on. If using ssh use the -X option to ensure display forwarding is set since parts of the setup will prompt you with GUI dialogs asking you to accept licenses.
- ssh -X ubuntu@<hostname>
- Install the latest 32-bit version of wine
- sudo add-apt-repository ppa:ubuntu-wine/ppa
- sudo apt-get -y update
- sudo apt-get -y install wine1.5-i386
- sudo apt-get -y install winetricks
- Ensure wine has the correct architecture and set the location of the Windows emulation
- export WINEARCH=win32
- export WINEPREFIX=~/.wine Default. Choose wherever
- Use winetricks to configure the Windows emulation
- winetricks win7 vcrun2005 vcrun2008 vcrun2010
- Progressively install the .Net frameworks. While winetricks is suppose to install prerequisite .Net frameworks I found it worked better if I did it manually. Also see note below about sites blocking downloads.
- winetricks dotnet20
- winetricks dotnet20sp1
- winetricks dotnet20sp2
- winetricks dotnet30
- Correct known issue with dotnet20 (see [1])
- mkdir -p $WINEPREFIX/dosdevices/c:/windows/assembly/NativeImages_v2.0.50727_32
- touch $WINEPREFIX/dosdevices/c:/windows/assembly/NativeImages_v2.0.50727_32/indexb.dat
- Continue installing the rest of the .Net frameworks
- winetricks dotnet30sp1
- winetricks dotnet35 May fail. Rerunning it a 2nd time worked.
- winetricks dotnet35sp1 May fail. Rerunning it a 2nd time worked.
- winetricks dotnet40
- Download and install Proteowizard.
- Go to http://proteowizard.sourceforge.net/ using a web browser. Click on the downloads link and select the Windows with vendor support option with the tar.bz2 extension. Extract the package and move it to wherever you want to install it.
- mkdir pwiz; tar xvf pwiz*.tar.bz2 -C pwiz
- Go to http://proteowizard.sourceforge.net/ using a web browser. Click on the downloads link and select the Windows with vendor support option with the tar.bz2 extension. Extract the package and move it to wherever you want to install it.
- Register dll (shouldn't be needed but...)
- wine regsvr32 pwiz/MSFileReader.XRawfile2.dll
- wine regsvr32 pwiz/CompassXtractMS.dll
- Run msconvert
- wine pwiz/msconvert.exe
Issues/Problems
- If you are trying to install on an Amazon EC2 instance winetricks may fail when trying to download and install packages. From what I can tell some download sites are blocking access from the Amazon Cloud. Just manually download the file from a different system (tip, use the wget command suggested by winetricks or a browser) and copy them to the location specified by winetricks.
- If during the installation of .Net 3.0 it seems to hang, look in your "system tray" for the installer icon. This will be the final finish dialog that will need to be clicked through to end the installation.
- Currently doesn't work for AB Sciex wiff files as I believe it uses .Net 4.0 functionality that is either buggy or not implemented fully under wine yet.
- Lastly should be aware that various vendor libraries use versions of .Net that are still experimental at this time. ProteoWizard elements that make use of this may not work correctly.
Instructions for CentOS
The following instructions where tested using ProteoWizard 2.1.2785 on a CentOS 5.5 Amazon Machine Image (ami-68f80f01). CentOS presents a bigger challenge, as you'll need the latest version of Wine and at the time these instructions where written none of the CentOS repositories contained pre-built rpms for it.
- Upgrade your system if it hasn't already been
- Install necessary packages for building and running wine
- yum -y install xauth cabextract fontconfig gcc44 rpm-build
- wget ftp://ftp.pbone.net/mirror/ftp.sourceforge.net/pub/sourceforge/h/project/hp/hphp/CentOS%205%2064bit/RPM/flex-2.5.35-7.x86_64.rpm
- rpm -Uvh flex*
- Log out, then log back in and build wine (using -X)
- CC=/usr/bin/gcc44
- wget http://download.hostedgameservers.com/install-wine1.2.2.sh
- chmod 777 install-wine1.2.2.sh
- ./install-wine1.2.2.sh
- ...And wait for a really really long time...
- Run Steps 3 on from the ubtuntu section
- Register the dll's
- cd pwiz Or whichever directory you installed Proteowizard in
- wine regsvr32 MSFileReader.XRawfile2.dll
- wine regsvr32 CompassXtractMS.dll
What Works?
The following table shows the results of testing Wine/msconvert with the various different instrument formats available to us. For each format the instrument output was converted using the same version of msconvert installed on Windows 7 and Wine. The program readmzXML was then used to dump a summary of the resulting mzML file and the values compared between systems.
If you have any questions about the testing or have additional results to add please forward them to the spc-tools discussion mailing list.
Vendor | Model | Acquisition Software | Output Type | Result | Notes |
---|---|---|---|---|---|
Applied Biosystems (ABSciex) | QQQ | Analyst | .wiff file | Fails | Requires .Net 3.5 which doesn't function under wine. |
Agilent | QQQ | MassHunter 2.1 | .d directory | Success | |
Agilent | QTOF | MassHunter 2.1 | .d directory | Success | |
Bruker | Apex, MicrOTOF | ?1 | .baf file | Success | |
Waters | ? | MassLynx 4.1 | .raw directory | Success |
How can I install windows applications to be shared by multiple users under wine?
Wine does not currently allow sharing its Windows root (or "prefix") between users, due to the risk of registry corruption from running multiple wineservers simultaneously ([bug #11112]). This means you typically would need to go through and install each set of Windows applications for each user. If you have a lot of users this could become burdensome, however you can create a single prefix and then copy it for each user. (The default wine prefix is ~/.wine). This saves having to run the same installation instructions for each user.
Another option is to write a wrapper script around the whole process. This wrapper script could copy a standardized wine prefix with all of the applications installed into a new temporary prefix owned by the user, set the environment variable WINEPREFIX to point to the temp prefix, run the wine command(s), stop the user's wine server, and then remove the temporary prefix.
One last item, be careful about using NFS with wine. If your home directory is mounted using NFS and shared across systems you could experience some problems running wine on multiple systems in parallel. More information about wine's "windows" partition and NFS:
References
- http://groups.google.com/group/spctools-discuss/browse_thread/thread/604745729ac0e541
- http://groups.google.com/group/spctools-discuss/browse_thread/thread/bb2a608ad31f77dd/868fab027488bd09?hl=en&lnk=gst&q=wine#868fab027488bd09
- http://groups.google.com/group/spctools-discuss/browse_thread/thread/2d98145b42479cb0/f8d80a25d1f8583c?hl=en&lnk=gst&q=wine#f8d80a25d1f8583c