This documentation will describe how to configure the LabKey Server Enterprise Pipeline to convert native instrument data files (such as .RAW) files to mzXML using the msconvert software that is part of ProteoWizard.
Copy the following to the <LABKEY_HOME> directory:
cd <LABKEY_HOME>
java -jar labkeyBootstrap.jar
In the System Control Panel, create the LABKEY_ROOT environment variable and set it to <LABKEY_HOME>. This should be a System Variable.
This is the location where the Conversion tools (msconvert.exe, etc) binaries are located. For most installations this should be set to <LABKEY_HOME>\bin
The pipelineConfig.xml file enables communication with: (1) the the JMS queue, (2) the RAW files to be converted, and (3) the tools that perform the conversion.
An example pipelineConfig.xml File
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="activeMqConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<constructor-arg value="tcp://localhost:61616"/>
<property name="userName" value="someUsername" />
<property name="password" value="somePassword" />
</bean>
<bean id="pipelineJobService" class="org.labkey.pipeline.api.PipelineJobServiceImpl">
<property name="workDirFactory">
<bean class="org.labkey.pipeline.api.WorkDirectoryRemote$Factory">
<!--<property name="lockDirectory" value="T:/tools/bin/syncp-locks"/>-->
<property name="cleanupOnStartup" value="true" />
<property name="tempDirectory" value="c:/temp/remoteTempDir" />
</bean>
</property>
<property name="remoteServerProperties">
<bean class="org.labkey.pipeline.api.properties.RemoteServerPropertiesImpl">
<property name="location" value="mzxmlconvert"/>
</bean>
</property>
<property name="appProperties">
<bean class="org.labkey.pipeline.api.properties.ApplicationPropertiesImpl">
<property name="networkDriveLetter" value="t" />
<property name="networkDrivePath" value="\\someServer\somePath" />
<property name="networkDriveUser" value="someUser" />
<property name="networkDrivePassword" value="somePassword" />
<property name="toolsDirectory" value="c:/labkey/build/deploy/bin" />
</bean>
</property>
</bean>
</beans>
<bean id="activeMqConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<constructor-arg value="tcp://@@JMSQUEUE@@:61616"/>
</bean>
and change @@JMSQUEUE@@ to be the name of your JMS Queue server.
The WORK DIRECTORY is the directory on the server where RAW files are placed while be converted to mzXML. There are 3 properties that can be set
<property name="workDirFactory">
<bean class="org.labkey.pipeline.api.WorkDirectoryRemote$Factory">
<!-- <property name="lockDirectory" value="T:/tools/bin/syncp-locks"/> -->
<property name="cleanupOnStartup" value="true" />
<property name="tempDirectory" value="c:/TempDir" />
</bean>
</property>
There are 2 properties that must be set
Change all values surrounded by "@@...@@" to fit your environment:
<property name="appProperties">
<bean class="org.labkey.pipeline.api.properties.ApplicationPropertiesImpl">
<!-- If the user is mapping a drive, fill in this section with their input -->
<property name="networkDriveLetter" value="@@networkDriveLetter@@" />
<property name="networkDrivePath" value="@@networkDrivePath@@" />
<property name="networkDriveUser" value="@@networkDriveUser@@" />
<property name="networkDrivePassword" value="@@networkDrivePassword@@" />
<!-- Enter the bin directory, based on the install location -->
<property name="toolsDirectory" value="@@toolsDirectory@@" />
</bean>
</property>
The MS2 configuration settings are located in the file <LABKEY_HOME>\config\ms2Config.xml
An example configuration for running msconvert on a remote server named "mzxmlconvert":
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="ms2PipelineOverrides" class="org.labkey.api.pipeline.TaskPipelineRegistrar">
<property name="factories">
<list>
<!-- This reference and its related bean below enable RAW to mzXML conversion -->
<ref bean="mzxmlConverterOverride"/>
</list>
</property>
</bean>
<!-- Enable Thermo RAW to mzXML conversion using msConvert. -->
<bean id="mzxmlConverterOverride" class="org.labkey.api.pipeline.cmd.ConvertTaskFactorySettings">
<constructor-arg value="mzxmlConverter"/>
<property name="cloneName" value="mzxmlConverter"/>
<property name="commands">
<list>
<ref bean="msConvertCommandOverride"/>
</list>
</property>
</bean>
<!-- Configuration to customize behavior of msConvert -->
<bean id="msConvertCommandOverride" class="org.labkey.api.pipeline.cmd.CommandTaskFactorySettings">
<constructor-arg value="msConvertCommand"/>
<property name="cloneName" value="msConvertCommand"/>
<!-- Run msconvert on a remote server named "mzxmlconvert" -->
<property name="location" value="mzxmlconvert"/>
</bean>
</beans>
LabKey uses procrun to run the Conversion Service as a Windows Service. This means you will be able to have the Conversion Service start up when the server boots and be able to control the Service via the Windows Service Control Panel.
In the System Control Panel, create the LABKEY_ROOT environment variable and set it to <LABKEY_HOME> (where <LABKEY_HOME> is the target install directory). This should be a System Environment Variable.
set LABKEY_ROOT=<LABKEY_HOME>
<LABKEY_HOME>\bin\installServiceWin32.bat
set LABKEY_ROOT=<LABKEY_HOME>
<LABKEY_HOME>\bin\installServiceWin64.bat
where <LABKEY_HOME> is the directory where labkey is installed. For example, if installed in c:\labkey\labkey, then the command is
set LABKEY_ROOT=c:\labkey\labkey
If the command succeeded then it should have created a new Windows Service named LabKeyRemoteServer
<LABKEY_HOME>\bin\service\removeServiceWin32.bat
<LABKEY_HOME>\bin\service\removeServiceWin64.bat
To Change the Service:
<LABKEY_HOME>\bin\service\installService.bat
How to start the service:
From the command prompt you can run
net start LabKeyRemoteServer
How to stop the service:
From the command prompt you can run
net start LabKeyRemoteServer
All logs from the LabKey Remote Server are located in <LABKEY_HOME>\logs\output.log
NOTE: If running Windows, this service cannot be run as the Local System user. You will need to change the LabKey Remote Pipeline Service to log on as a different user.