All Downloads are FREE. Search and download functionalities are using the official Maven repository.

spring.jobs.jobTMHMM-context.xml Maven / Gradle / Ivy

The newest version!
<?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-4.2.xsd">

    <import resource="classpath:/spring/persistence/persistence-config-context.xml"/>

    <!-- ##### JOB: TMHMM - Prediction of transmembrane helices in proteins ############################  -->
    <!-- Used by the UniProt team in their "Annabel" automatic annotation pipeline. -->

    <bean id="pathToTMHMMBinaryFileId" class="java.lang.String">
        <constructor-arg value="${binary.tmhmm.path}"/>
    </bean>

    <bean id="pathToTMHMMModelFileId" class="java.lang.String">
        <constructor-arg value="${tmhmm.model.path}"/>
    </bean>

    <bean id="jobTMHMM" class="uk.ac.ebi.interpro.scan.management.model.Job">
        <property name="description"
                  value="Prediction of transmembrane helices in proteins"/>
        <property name="analysis" value="true"/>
        <property name="active" value="true" />
        <property name="libraryRelease" ref="signatureLibraryReleaseTMHMM"/>
        <!--Check mechanism for licensed binaries-->
        <property name="nonEmptyPaths">
            <list value-type="java.lang.String">
                <ref bean="pathToTMHMMBinaryFileId"/>
                <ref bean="pathToTMHMMModelFileId" />
            </list>
        </property>
        <property name="mandatoryParameters">
            <map key-type="java.lang.String" value-type="java.lang.String">
                <entry key="binary.tmhmm.path" value-ref="pathToTMHMMBinaryFileId"/>
                <entry key="tmhmm.model.path" value-ref="pathToTMHMMModelFileId"/>
            </map>
        </property>
        <property name="doRunLocally" value="false"/>
    </bean>

    <bean id="abstractTMHMMStep" abstract="true" class="uk.ac.ebi.interpro.scan.management.model.Step">
        <property name="job" ref="jobTMHMM"/>
        <property name="maxProteins" value="${analysis.max.sequence.count.TMHMM}"/>
        <property name="createStepInstancesForNewProteins" value="true"/>
        <property name="retries" value="0"/>
        <property name="nfsDelayMilliseconds" value="${nfs.delay.milliseconds}"/>
    </bean>

    <!-- STEP 1: Write FASTA file -->
    <bean id="stepTMHMMWriteFastaFile"
          class="uk.ac.ebi.interpro.scan.management.model.implementations.WriteFastaFileStep"
          parent="abstractTMHMMStep">
        <!-- This step has no dependencies, so will be scheduled first for its associated job. -->
        <property name="stepDescription" value="Create FASTA file."/>
        <property name="fastaFileNameTemplate" ref="fastaFileNameTemplate"/>

        <!-- TMHMM cannot cope with non-standard amino acids.  Both pyrrolysine and selenocysteine are
         present in uniparc.  This custom FastaFileWriter will check for any non-standard amino acids
         in the sequence and substitute where possible.  If any other characters appear that
         cannot be handled, the sequence will not be written out to the fasta file.-->
        <property name="fastaFileWriter">
            <bean class="uk.ac.ebi.interpro.scan.business.sequence.fasta.FastaFileWriter">
                <property name="validAlphabet" value="ARNDCEQGHILKMFPSTWYVX"/>
                <property name="residueSubstitutions">
                    <map>
                        <entry key="O" value="K"/>
                        <entry key="U" value="C"/>
                    </map>
                </property>
            </bean>
        </property>
        <property name="serialGroup" value="WRITE_FASTA_FILE_TMHMM"/>
        <property name="proteinDAO" ref="proteinDAO"/>
    </bean>

    <!-- STEP 2: Run binary -->
    <bean id="stepTMHMMRunBinary"
          class="uk.ac.ebi.interpro.scan.management.model.implementations.tmhmm.TMHMMBinaryStep"
          parent="abstractTMHMMStep">
        <!--
        support-mini-x86-32/bin/tmhmm/2.0c/decodeanhmm
        -N 1
        -PostLabProb
        -PrintNumbers
        -background '0.081 0.015 0.054 0.061 0.040 0.068 0.022 0.057 0.056 0.093 0.025 0.045 0.049 0.039 0.057 0.068 0.058 0.067 0.013 0.032'
        support-mini-x86-32/data/tmhmm/model/2.5.1/TMHMM2.5.1.model
        support-mini-x86-32/data/tmhmm/test_proteins.fasta
        -->
        <property name="dependsUpon" ref="stepTMHMMWriteFastaFile"/>
        <property name="stepDescription" value="Run TMHMM binary for selected protein sequences"/>
        <!--Add path to binary-->
        <property name="pathToTmhmmBinary" ref="pathToTMHMMBinaryFileId"/>
        <!--Add different parameters-->
        <property name="binarySwitches" value="${tmhmm.binary.switches}"/>
        <!--Add background parameter-->
        <property name="binaryBackgroundSwitch"
                  value="0.081 0.015 0.054 0.061 0.040 0.068 0.022 0.057 0.056 0.093 0.025 0.045 0.049 0.039 0.057 0.068 0.058 0.067 0.013 0.032"/>
        <!--Add TMHMM model-->
        <property name="pathToTmhmmModel" ref="pathToTMHMMModelFileId"/>
        <property name="outputFileNameTemplate" ref="rawAnalaysisOutputFileTemplate"/>
        <property name="fastaFileNameTemplate" ref="fastaFileNameTemplate"/>
        <property name="retries" value="3"/>
        <property name="requiresDatabaseAccess" value="false"/>
    </bean>

    <bean id="stepTMHMMDeleteFastaFile"
          class="uk.ac.ebi.interpro.scan.management.model.implementations.DeleteFileStep" parent="abstractTMHMMStep">
        <property name="dependsUpon" ref="stepTMHMMRunBinary"/>
        <property name="stepDescription" value="Delete the FASTA file following successful run"/>
        <property name="fileNameTemplate" ref="fastaFileNameTemplate"/>
    </bean>

    <!-- STEP 3: Parse and persist raw results -->
    <bean id="stepTMHMMParseOutput"
          class="uk.ac.ebi.interpro.scan.management.model.implementations.tmhmm.TMHMMParseStep"
          parent="abstractTMHMMStep">
        <property name="dependsUpon" ref="stepTMHMMRunBinary"/>
        <property name="stepDescription" value="Parse the output from TMHMM binary"/>
        <property name="parser" ref="tmhmmParser"/>
        <property name="filteredMatchDAO" ref="tmhmmFilteredMatchDAO"/>
        <property name="serialGroup" value="PARSE_TMHMM"/>
        <property name="retries" value="3"/>
        <property name="outputFileNameTemplate" ref="rawAnalaysisOutputFileTemplate"/>
    </bean>

    <bean id="stepTMHMMDeleteRawOutput"
          class="uk.ac.ebi.interpro.scan.management.model.implementations.DeleteFileStep"
          parent="abstractTMHMMStep">
        <property name="dependsUpon" ref="stepTMHMMParseOutput"/>
        <property name="stepDescription" value="Delete the analysis output file following successful parsing"/>
        <property name="fileNameTemplate" ref="rawAnalaysisOutputFileTemplate"/>
    </bean>

    <!-- ######################## Dependencies ############################  -->
    <bean id="signatureLibraryReleaseTMHMM" class="uk.ac.ebi.interpro.scan.model.SignatureLibraryRelease">
        <constructor-arg type="uk.ac.ebi.interpro.scan.model.SignatureLibrary" value="TMHMM"/>
        <constructor-arg type="java.lang.String" ref="tmhmmSignatureLibraryReleaseVersion"/>
    </bean>

    <bean id="tmhmmParser" class="uk.ac.ebi.interpro.scan.io.tmhmm.TMHMMRawResultParser">
        <constructor-arg type="uk.ac.ebi.interpro.scan.model.SignatureLibraryRelease" ref="signatureLibraryReleaseTMHMM"/>
    </bean>

    <bean id="tmhmmFilteredMatchDAO" class="uk.ac.ebi.interpro.scan.persistence.TMHMMFilteredMatchDAOImpl">
        <constructor-arg type="uk.ac.ebi.interpro.scan.model.SignatureLibraryRelease" ref="signatureLibraryReleaseTMHMM"/>
    </bean>

    <bean id="tmhmmSignatureLibraryReleaseVersion" class="java.lang.String">
        <constructor-arg value="${tmhmm.signature.library.release}"/>
    </bean>

    <!-- !!!!!!!!!!!!!!!!!!!!! Dependencies-END !!!!!!!!!!!!!!!!!!!!!!!!!!!!  -->
</beans>




© 2015 - 2025 Weber Informatics LLC | Privacy Policy