<?xml version="1.0" encoding="UTF-8"?>
<sci:data xmlns:sci="http://www.SciTegic.com/" object="SciTegic.Protocol.1" format="8.0.0">
	<sci:dbitem>
		<sci:component name="BLAST Search (NCBI Server)" version="2">
			<sci:arg name="Input Sequence" type="URLType" required="true" visibility="visible" multi="false">
				<sci:help>&lt;p&gt;In Pipeline Pilot, specify a sequence file. Supported file formats include BSML, PIR, FASTA, Genbank, and SwissProt.  In Discovery Studio, choose from the list of sequences in all open Sequence Windows.&lt;/p&gt;

&lt;!-- &lt;DSClientParameterType=AasequenceType&gt; --&gt;</sci:help>
				<sci:value>data\Fasta\tyrosineKinase.fasta</sci:value>
			</sci:arg>
			<sci:arg name="Input Database" type="StringType" required="true" visibility="visible" multi="false">
				<sci:help>&lt;p&gt;
Name of a NCBI database for searching:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;nr&lt;/b&gt;: non-redundant protein sequences.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;refseq_protein&lt;/b&gt;: reference proteins.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;swissprot&lt;/b&gt;: Swissprot protein sequences.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;pat&lt;/b&gt;: patented protein sequences.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;pdb&lt;/b&gt;: Protein Data Bank proteins.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;env_nr&lt;/b&gt;: environmental samples.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;b&gt;See Also:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Check the NCBI BLAST web site for more database information.&lt;/li&gt;
&lt;/ul&gt;
</sci:help>
				<sci:member>User Specified Database</sci:member>
				<sci:legalval>nr</sci:legalval>
				<sci:legalval>refseq_protein</sci:legalval>
				<sci:legalval>swissprot</sci:legalval>
				<sci:legalval>pat</sci:legalval>
				<sci:legalval selected="true">pdb</sci:legalval>
				<sci:legalval>env_nr</sci:legalval>
				<sci:legalval>User</sci:legalval>
			</sci:arg>
			<sci:arg name="User Specified Database" type="StringType" required="false" visibility="visible" multi="false" expanded="true" uimpl="false">
				<sci:help>Allows the specification of a database other than those known of at the time of the protocol release. Requires that Custom is chosen as the Input Database. It is the user&apos;s responsibility to specify a valid database name.</sci:help>
				<sci:validscript>SetInvalidDetails(&apos;Parameter must not be blank when Input Database is set to User&apos;);
trim(Parameter()) ne &quot;&quot;</sci:validscript>
				<sci:enabledscript>SetDisabledDetails(&apos;Enabled when Input Database is set to User&apos;);
parameter(&apos;Input Database&apos;) rlike &apos;user&apos;</sci:enabledscript>
			</sci:arg>
			<sci:arg name="Organism" type="StringType" required="false" visibility="visible" multi="false">
				<sci:help>&lt;p&gt;An organism name to limit search.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Organism&lt;/i&gt; names should preferably be the scientific name of the organism. However, a number of common synonyms are supported, as specified in the NCBI Taxonomy database.&lt;/p&gt;
&lt;p&gt;Examples: &quot;human&quot;, &quot;Homo sapiens&quot;, &quot;house mouse&quot;, &quot;Mus musculus&quot; or &quot;Caenorhabditis elegans&quot;&lt;/p&gt;</sci:help>
			</sci:arg>
			<sci:arg name="E-value Cutoff" type="DoubleType" required="false" visibility="visible" multi="false">
				<sci:help>&lt;p&gt;Threshold expectation value for hits to be reported.&lt;/p&gt;
&lt;p&gt;This is the E-value from the Karlin-Altschul equation. The default value (10) means that 10 such matches are expected to be found merely by chance. If the statistical significance ascribed to a match is greater than this threshold, the match will not be reported. A lower &lt;i&gt;E-value Cutoff&lt;/i&gt; will typically result in fewer, but more significant hits. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;See Also:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Karlin, S. and  Altschul, S.F.  Methods for assessing the statistical significance of molecular sequence features by using general scoring schemes. &lt;i&gt;Proc. Natl. Acad. Sci. USA&lt;/i&gt; (1990), 87:2264-2268.&lt;/li&gt;&lt;/ul&gt;</sci:help>
				<sci:validscript>SetInvalidDetails(&quot;Must be a number greater than 0&quot;);
Parameter() &gt;0;</sci:validscript>
				<sci:value>10</sci:value>
			</sci:arg>
			<sci:arg name="Maximum Hits" type="LongType" required="false" visibility="visible" multi="false">
				<sci:help>Number of sequences to be reported.</sci:help>
				<sci:validscript>SetInvalidDetails(&quot;Must be a number greater than 0&quot;);
Parameter() &gt;0;</sci:validscript>
				<sci:value>100</sci:value>
			</sci:arg>
			<sci:arg name="Advanced" type="GroupType" required="false" visibility="visible" multi="false">
				<sci:help>Contains less commonly used parameters.</sci:help>
				<sci:member>Word Size</sci:member>
				<sci:member>URL</sci:member>
				<sci:member>Scoring Matrix</sci:member>
				<sci:member>Gap Penalties</sci:member>
				<sci:member>Gapped Alignment</sci:member>
				<sci:member>Use Composition Based Statistics</sci:member>
				<sci:member>Filter Low Complexity</sci:member>
			</sci:arg>
			<sci:arg name="Scoring Matrix" type="StringType" required="false" visibility="visible" multi="false">
				<sci:help>&lt;p&gt;Scoring matrix used in searching.&lt;/p&gt;&lt;p&gt; The matrix assigns a score for aligning any possible pair of residues:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;BLOSUM45&lt;/b&gt;: for particularly long and weak similarities.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BLOSUM62&lt;/b&gt;: for detecting most weak protein similarities. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;BLOSUM80&lt;/b&gt;: for sequence length between 50 and 85 residues.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PAM70&lt;/b&gt;: for sequence length between 35 and 55 residues.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PAM30&lt;/b&gt;: for sequence length shorter than 35 residues.&lt;/li&gt;
&lt;/ul&gt;</sci:help>
				<sci:legalval>BLOSUM45</sci:legalval>
				<sci:legalval selected="true">BLOSUM62</sci:legalval>
				<sci:legalval>BLOSUM80</sci:legalval>
				<sci:legalval>PAM70</sci:legalval>
				<sci:legalval>PAM30</sci:legalval>
			</sci:arg>
			<sci:arg name="Gap Penalties" type="StringType" required="true" visibility="visible" multi="false">
				<sci:help>Value pair for the gap open and gap extension penalties. Increase the &lt;i&gt;Existence&lt;/i&gt; to prevent a gap from being opened. Increase the &lt;i&gt;Extension&lt;/i&gt; to prevent a gap from being extended. The recommended value for each &lt;i&gt;Scoring Matrix&lt;/i&gt; is:
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Existence: 15 Extension: 2&lt;/b&gt; for BLOSUM45&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Existence: 11 Extension: 1&lt;/b&gt; for BLOSUM62&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Existence: 10 Extension: 1&lt;/b&gt; for BLOSUM80&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Existence: 10 Extension: 1&lt;/b&gt; for PAM70&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Existence: 9 Extension: 1&lt;/b&gt; for PAM30&lt;/li&gt;
&lt;/ul&gt;</sci:help>
				<sci:legalvalscript>if parameter(&quot;Scoring Matrix&quot;) eq &apos;BLOSUM62&apos; then
	append(legalvals,&apos;Existence: 9 Extension: 2&apos;);
	append(legalvals,&apos;Existence: 8 Extension: 2&apos;);
	append(legalvals,&apos;Existence: 7 Extension: 2&apos;);
	append(legalvals,&apos;Existence: 12 Extension: 1&apos;);
	append(legalvals,&apos;Existence: 11 Extension: 1&apos;);
	append(legalvals,&apos;Existence: 10 Extension: 1&apos;);
elsif parameter(&quot;Scoring Matrix&quot;) eq &apos;PAM30&apos; then
	append(legalvals,&apos;Existence: 7 Extension: 2&apos;);
	append(legalvals,&apos;Existence: 6 Extension: 2&apos;);
	append(legalvals,&apos;Existence: 5 Extension: 2&apos;);
	append(legalvals,&apos;Existence: 10 Extension: 1&apos;);
	append(legalvals,&apos;Existence: 9 Extension: 1&apos;);
	append(legalvals,&apos;Existence: 8 Extension: 1&apos;);
elsif parameter(&quot;Scoring Matrix&quot;) eq &apos;PAM70&apos; then
	append(legalvals,&apos;Existence: 8 Extension: 2&apos;);
	append(legalvals,&apos;Existence: 7 Extension: 2&apos;);
	append(legalvals,&apos;Existence: 6 Extension: 2&apos;);
	append(legalvals,&apos;Existence: 11 Extension: 1&apos;);
	append(legalvals,&apos;Existence: 10 Extension: 1&apos;);
	append(legalvals,&apos;Existence: 9 Extension: 1&apos;);
elsif parameter(&quot;Scoring Matrix&quot;) eq &apos;BLOSUM80&apos; then
	append(legalvals,&apos;Existence: 8 Extension: 2&apos;);
	append(legalvals,&apos;Existence: 7 Extension: 2&apos;);
	append(legalvals,&apos;Existence: 6 Extension: 2&apos;);
	append(legalvals,&apos;Existence: 11 Extension: 1&apos;);
	append(legalvals,&apos;Existence: 10 Extension: 1&apos;);
	append(legalvals,&apos;Existence: 9 Extension: 1&apos;);
elsif parameter(&quot;Scoring Matrix&quot;) eq &apos;BLOSUM45&apos; then
	append(legalvals,&apos;Existence: 13 Extension: 3&apos;);
	append(legalvals,&apos;Existence: 12 Extension: 3&apos;);
	append(legalvals,&apos;Existence: 11 Extension: 3&apos;);
	append(legalvals,&apos;Existence: 10 Extension: 3&apos;);
	append(legalvals,&apos;Existence: 15 Extension: 2&apos;);
	append(legalvals,&apos;Existence: 14 Extension: 2&apos;);
	append(legalvals,&apos;Existence: 13 Extension: 2&apos;);
	append(legalvals,&apos;Existence: 12 Extension: 2&apos;);
	append(legalvals,&apos;Existence: 19 Extension: 1&apos;);
	append(legalvals,&apos;Existence: 18 Extension: 1&apos;);
	append(legalvals,&apos;Existence: 17 Extension: 1&apos;);
	append(legalvals,&apos;Existence: 16 Extension: 1&apos;);
end if;

SetLegalValues(legalvals);</sci:legalvalscript>
				<sci:value>Existence: 11 Extension: 1</sci:value>
			</sci:arg>
			<sci:arg name="Gapped Alignment" type="BoolType" required="false" visibility="visible" multi="false">
				<sci:help>&lt;p&gt;Specifies whether to use gapped BLAST or ungapped BLAST algorithm.&lt;/p&gt; 
&lt;p&gt;The ungapped BLAST algorithm invokes the older, ungapped style of alignment, according to the Karlin-Altschul statistics.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;See Also:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Karlin, S. and  Altschul, S.F.  Methods for assessing the statistical significance of molecular sequence features by using general scoring schemes. &lt;i&gt;Proc. Natl. Acad. Sci. USA&lt;/i&gt; (1990), 87:2264-2268.&lt;/li&gt;&lt;/ul&gt;</sci:help>
				<sci:legalval selected="true">True</sci:legalval>
				<sci:legalval>False</sci:legalval>
			</sci:arg>
			<sci:arg name="Use Composition Based Statistics" type="BoolType" required="false" visibility="visible" multi="false">
				<sci:help>Use the amino acid composition of the individual database sequences involved in reported alignments when calculating the E-values. This improves the accuracy of E-values and thus reduces the number of false positives.</sci:help>
				<sci:enabledscript>SetInvalidDetails(&apos;Composition Based Statistics requires Gapped Alignment being set to TRUE&apos;);
Parameter(&apos;Gapped Alignment&apos;) eq &apos;True&apos;;</sci:enabledscript>
				<sci:legalval selected="true">True</sci:legalval>
				<sci:legalval>False</sci:legalval>
			</sci:arg>
			<sci:arg name="Filter Low Complexity" type="BoolType" required="false" visibility="visible" multi="false">
				<sci:help>Specifies whether to mask off segments of the query sequence that have low compositional complexity.  Filtering can remove hits that are  statistically significant but biologically uninteresting  (e.g., hits against common acidic-, basic- or proline-rich regions).</sci:help>
				<sci:legalval selected="true">True</sci:legalval>
				<sci:legalval>False</sci:legalval>
			</sci:arg>
			<sci:arg name="Word Size" type="LongType" required="false" visibility="visible" multi="false">
				<sci:help>Specifies the length (either 2 or 3) of the initial matching segment. A larger value tends to yield more accurate results, but takes more computation time.</sci:help>
				<sci:legalval>2</sci:legalval>
				<sci:legalval selected="true">3</sci:legalval>
			</sci:arg>
			<sci:arg name="URL" type="StringType" required="true" visibility="visible" multi="false">
				<sci:help>URL for online BLAST server</sci:help>
				<sci:value>https://blast.ncbi.nlm.nih.gov/Blast.cgi</sci:value>
			</sci:arg>
			<sci:arg name="ParameterMapping" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
				<sci:help>Map parameters for Discovery Studio backwards compatibility.</sci:help>
				<sci:value>Database,Input Database;Matrix,Scoring Matrix;Gap Cost,Gap Penalties;Number of Sequences in Output,Maximum Hits;Expectation Value,E-value Cutoff;</sci:value>
			</sci:arg>
			<sci:arg name="Tempfiles" type="StringType" required="false" visibility="visible" multi="false" implbase="{7B3502D7-FA57-4EB5-838B-FE6AB0BF0E69}" uimpl="true">
				<sci:help>Lists the set of temporary files which will be converted by the network to true temporary file names</sci:help>
			</sci:arg>
			<sci:arg name="Reporting" type="GroupType" required="false" visibility="visible" multi="false" expanded="true" uimpl="true">
				<sci:help>This group contains parameters specific to protocols containing Reporting components.</sci:help>
				<sci:member>Reporting Stylesheet</sci:member>
			</sci:arg>
			<sci:arg name="Reporting Stylesheet" type="StylesheetType" required="false" visibility="visible" multi="false" expanded="true" uimpl="true">
				<sci:help>Specifies the name of a Stylesheet to be used by this protocol if any of the Reporting components have a Style selected in the &lt;i&gt;Format&lt;/i&gt; and &lt;i&gt;Position&lt;/i&gt; parameters.</sci:help>
				<sci:value>{42691EC8-0CE0-4DB9-8B3C-5379CBB967A7}</sci:value>
			</sci:arg>
			<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
				<sci:help>Component Attributes</sci:help>
				<sci:legalval>ComponentTakesInput</sci:legalval>
				<sci:legalval>ComponentReturnsPass</sci:legalval>
				<sci:legalval>ComponentReturnsFail</sci:legalval>
				<sci:legalval>ComponentRunsLocal</sci:legalval>
			</sci:arg>
			<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
				<sci:legalval selected="true">Halt</sci:legalval>
				<sci:legalval>Fail</sci:legalval>
				<sci:legalval>Pass</sci:legalval>
			</sci:arg>
			<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
				<sci:legalval selected="true">Halt</sci:legalval>
				<sci:legalval>Fail</sci:legalval>
				<sci:legalval>Pass</sci:legalval>
			</sci:arg>
			<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
			<sci:arg name="ProtocolComment" type="StringType" required="false" visibility="nevershow" multi="false">
				<sci:help>Add Protocol Comment Here</sci:help>
				<sci:value>Add Protocol Comment Here</sci:value>
			</sci:arg>
			<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
				<sci:value>ProtocolNode</sci:value>
			</sci:arg>
			<sci:arg name="ComponentRevision" type="LongType" required="true" visibility="nevershow" multi="false">
				<sci:help>Component Revision</sci:help>
				<sci:value>100</sci:value>
			</sci:arg>
			<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
				<sci:value>0</sci:value>
			</sci:arg>
			<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
				<sci:value>70 -50</sci:value>
			</sci:arg>
			<sci:arg name="ByReference" type="BoolType" required="false" visibility="nevershow" multi="false">
				<sci:help>By Ref</sci:help>
				<sci:value>0</sci:value>
			</sci:arg>
			<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
				<sci:value>100</sci:value>
				<sci:value>Searches protein databases at the NCBI with a query sequence using BLAST</sci:value>
				<sci:value>&lt;p&gt;Uses the BLAST server at the National Center for Biotechnology Information (NCBI). BLAST is a statistically driven search method that finds regions of similarity between a query sequence and database sequences and produces gapped or ungapped alignments of these regions.&lt;/p&gt;

&lt;p&gt;The NCBI maintains up-to-date protein databases that enable you to perform sequence similarity searches over the internet against all publicly available sequence data.&lt;/p&gt;

</sci:value>
				<sci:value>None</sci:value>
				<sci:value/>
				<sci:value>None</sci:value>
				<sci:value/>
				<sci:value>None</sci:value>
				<sci:value/>
			</sci:arg>
			<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
				<sci:help>The server version when this component was registered</sci:help>
				<sci:value>20.1.0.2200</sci:value>
			</sci:arg>
			<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
			<sci:arg name="Protocol Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
				<sci:help>Protocol Sticky Notes</sci:help>
			</sci:arg>
			<sci:arg name="Protocol Options" type="StringType" required="false" visibility="nevershow" multi="false">
				<sci:help>Protocol Options</sci:help>
				<sci:legalval>Make Shortcut by Default</sci:legalval>
				<sci:legalval>Owner Access Only</sci:legalval>
			</sci:arg>
			<sci:arg name="ProtocolScale2" type="LongType" required="false" visibility="nevershow" multi="false">
				<sci:help>Protocol Scale</sci:help>
				<sci:value>100</sci:value>
			</sci:arg>
			<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
				<sci:help>The component this component is based upon.</sci:help>
				<sci:value>EmptyProtocol</sci:value>
			</sci:arg>
			<sci:arg name="ComponentComment" type="StringType" required="false" visibility="nevershow" multi="false">
				<sci:help>Component Comment</sci:help>
				<sci:value>A top-level component for building protocols.</sci:value>
			</sci:arg>
			<sci:arg name="ComponentUsage" type="StringType" required="false" visibility="nevershow" multi="false">
				<sci:help>Component Usage</sci:help>
				<sci:value>The user should customize this description and usage to describe 
the functioning of their derived protocol.</sci:value>
			</sci:arg>
			<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
				<sci:value>BLAST Search (NCBI Server)</sci:value>
			</sci:arg>
			<sci:arg name="ProtocolAutoLayout" type="BoolType" required="false" visibility="nevershow" multi="false">
				<sci:help>Protocol AutoLayout</sci:help>
				<sci:value>1</sci:value>
			</sci:arg>
			<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
				<sci:help>The user who registered this component.</sci:help>
				<sci:value>HKH1</sci:value>
			</sci:arg>
			<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
				<sci:help>The date this component was registered.</sci:help>
				<sci:value>Mon Apr 20 16:53:17 2020</sci:value>
			</sci:arg>
			<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
				<sci:value>{B11F2E16-0879-4FF8-8C4D-0796C11617B7}</sci:value>
			</sci:arg>
			<sci:arg name="WebExports" type="StringType" required="false" visibility="nevershow" multi="false" implbase="{7B3502D7-FA57-4EB5-838B-FE6AB0BF0E69}" uimpl="true">
				<sci:help>A comma separated list of global properties which will be automatically 
exported if this protocol is published as a web service.</sci:help>
			</sci:arg>
			<sci:arg name="ProtocolShowComment" type="BoolType" required="false" visibility="nevershow" multi="false">
				<sci:help>Protocol ShowComment</sci:help>
				<sci:value>true</sci:value>
			</sci:arg>
			<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
				<sci:help>Local Component Identifier</sci:help>
				<sci:value>-1</sci:value>
			</sci:arg>
			<sci:arg name="OriginalPackage" type="StringType" required="false" visibility="nevershow" multi="false">
				<sci:help>OriginalPackage</sci:help>
				<sci:value>scitegic/dscore</sci:value>
			</sci:arg>
			<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
				<sci:help>The original path within the database of this component.</sci:help>
				<sci:value>Protocols\BIOVIA Discovery Studio\Discovery Studio\Macromolecules\Sequence Analysis\BLAST Search (NCBI Server)</sci:value>
			</sci:arg>
		</sci:component>
		<sci:protocol>
			<sci:data object="SciTegic.ComponentPerlPlugin.1">
				<sci:component name="Perl (on Server)" version="2">
					<sci:arg name="Script" type="PerlScriptType" required="true" visibility="visible" multi="false" implbase="{6C9F19F9-6CF3-4BB9-8F61-89C89D9CDCBB}">
						<sci:help>&lt;p&gt;Perl script to execute.  Pipeline Pilot executes the following three subroutines:

&lt;ul&gt;
&lt;li&gt;onInitialize: the subroutine that executes before the first data record is processed.&lt;/li&gt;
&lt;li&gt;onProcess: the subroutine that executes for each data record.&lt;/li&gt;
&lt;li&gt;onFinalize: the subroutine that executes after the last data record has been processed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
The usual Perl scoping rules apply to variables.  To pass a variable between the three required subroutines use package level variables, e.g., &lt;code&gt;$::variable&lt;/code&gt; or &lt;code&gt;my $variable&lt;/code&gt; declared outside the subroutines.
&lt;/p&gt;

&lt;p&gt;
The &lt;i&gt;onInitialize&lt;/i&gt; and &lt;i&gt;onFinalize&lt;/i&gt; subroutines both receive the &lt;code&gt;pilot::Context Perl&lt;/code&gt; object as the only argument.  The &lt;i&gt;onProcess&lt;/i&gt; subroutine receives the &lt;code&gt;pilot::Context&lt;/code&gt; and &lt;code&gt;pilot::DataRecord&lt;/code&gt; Perl objects as its two arguments.
&lt;/p&gt;

&lt;p&gt;
pilot::Context provides access to globals and parameters.  A common way to get these is via a Perl hash reference.  For example, to get a &lt;i&gt;Source&lt;/i&gt; parameter value use
&lt;/p&gt;

&lt;pre&gt;
my $parametersHashRef = $context-&gt;getComponentParameters()-&gt;getHashRef();
my $source = $parametersHashRef-&gt;{&quot;Source&quot;};
&lt;/pre&gt;

&lt;p&gt;
To obtain the value of a global property called &lt;i&gt;Old&lt;/i&gt; and set a new global property called &lt;i&gt;New&lt;/i&gt; use
&lt;/p&gt;

&lt;pre&gt;
my $globalsHashRef = $context-&gt;getGlobalProperties()-&gt;getHashRef();
my $value = $globalsHashRef-&gt;{&quot;Old&quot;};
$globalsHashRef-&gt;{&quot;New&quot;} = &quot;newValue&quot;;
&lt;/pre&gt;

&lt;p&gt;
Top level properties in a data record are accessed similarly.
&lt;/p&gt;

&lt;pre&gt;
my $node = $data-&gt;getRoot();
my $propertiesHashRef = $node-&gt;getProperties()-&gt;getHashRef();
my $value = $propertiesHashRef-&gt;{&quot;Old&quot;};
$propertiesHashRef-&gt;{&quot;New&quot;} = &quot;newValue&quot;;
&lt;/pre&gt;

&lt;p&gt;
&lt;i&gt;onInitialize&lt;/i&gt; and &lt;i&gt;onProcess&lt;/i&gt; must return one of the following component state values:
&lt;ul&gt;
&lt;li&gt;pilot::READYFORINPUTDATA
&lt;li&gt;pilot::DONEPROCESSINGDATA
&lt;li&gt;pilot::READYFORNEWDATA
&lt;li&gt;pilot::READYFORINPUTTHENNEWDATA
&lt;/ul&gt;
&lt;/p&gt;

&lt;p&gt;
To explicitly route a data record to a port use
&lt;/p&gt;

&lt;pre&gt;
$data-&gt;routeTo($pilot::PassPort);
&lt;/pre&gt;

&lt;p&gt;
or
&lt;/p&gt;

&lt;pre&gt;
$data-&gt;routeTo($pilot::FailPort);
&lt;/pre&gt;

&lt;p&gt;
Data records can also be terminated internally by routing to &lt;code&gt;$pilot::NoPort&lt;/code&gt;.
&lt;/p&gt;</sci:help>
						<sci:value>use strict;

use Proteomics::BLASTCommon;

sub onInitialize {
	my $context = shift;
	
	my $gpRef = $context-&gt;getGlobalProperties-&gt;getHashRef;
	
	# 
	my $pn = $gpRef-&gt;{&apos;Gap Penalties&apos;};
	if($pn=~/(\d+).+(\d+)/) {
		$gpRef-&gt;{&apos;GapOpeningPenalty&apos;} = $1;
		$gpRef-&gt;{&apos;GapExtensionPenalty&apos;} = $2;
	} else {
		die(&quot;Unknown Gap Penalties $pn&quot;);
	}
	if (uc($gpRef-&gt;{&apos;Gapped Alignment&apos;}) eq &apos;TRUE&apos;) {
		$gpRef-&gt;{&apos;Use Composition Based Statistics Flag&apos;} = $gpRef-&gt;{&apos;Use Composition Based Statistics&apos;}		
	} else {
		$gpRef-&gt;{&apos;Use Composition Based Statistics Flag&apos;} = &apos;False&apos;;
	}
	my $db = $gpRef-&gt;{&apos;Input Database&apos;};
	if(lc($db) eq &quot;user&quot;){
		$gpRef-&gt;{&apos;Database&apos;} = $gpRef-&gt;{&apos;User Specified Database&apos;};
	}else{
		$gpRef-&gt;{&apos;Database&apos;} = $db;
	}


	return pilot::READYFORINPUTDATA;
}


sub onProcess {
	my $context = shift;
	my $data = shift;

	return pilot::READYFORINPUTDATA;
}


sub onFinalize {
	my $context = shift;


}</sci:value>
					</sci:arg>
					<sci:arg name="Use Package" type="StringType" required="false" visibility="visible" multi="false" implbase="{6C9F19F9-6CF3-4BB9-8F61-89C89D9CDCBB}">
						<sci:help>The name of an application package that contains Perl modules referenced by this component. By defining this package name, a package-specific module may be referenced with the &apos;use modulename;&apos; syntax.</sci:help>
						<sci:value>scitegic/dscore</sci:value>
					</sci:arg>
					<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
						<sci:help>Component Attributes</sci:help>
						<sci:legalval>ComponentTakesInput</sci:legalval>
						<sci:legalval>ComponentReturnsPass</sci:legalval>
						<sci:legalval>ComponentReturnsFail</sci:legalval>
						<sci:legalval>ComponentRunsLocal</sci:legalval>
					</sci:arg>
					<sci:arg name="RebuildInRTC" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>If True, the Perl interpreter instance for the component is terminated in the onFinalize event.</sci:help>
						<sci:legalval selected="true">True</sci:legalval>
						<sci:legalval>False</sci:legalval>
					</sci:arg>
					<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The user who registered this component.</sci:help>
						<sci:value>scitegic/integration</sci:value>
					</sci:arg>
					<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The date this component was registered.</sci:help>
						<sci:value>Mon Nov 06 19:45:37 2006</sci:value>
					</sci:arg>
					<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>{6C9F19F9-6CF3-4BB9-8F61-89C89D9CDCBB}</sci:value>
					</sci:arg>
					<sci:arg name="ComponentComment" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Comment</sci:help>
						<sci:value>Loads a class to provide component behavior.</sci:value>
					</sci:arg>
					<sci:arg name="ComponentUsage" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Component Usage</sci:help>
						<sci:value>Loads a class to provide component behavior.

Set the ports and icon as appropriate.</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>Set Parameters</sci:value>
					</sci:arg>
					<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>90 -95</sci:value>
					</sci:arg>
					<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
						<sci:value>COMPONENTNODE</sci:value>
					</sci:arg>
					<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The component this component is based upon.</sci:help>
						<sci:value>Plug In</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
						<sci:value>100</sci:value>
						<sci:value>Executes Perl code on the server</sci:value>
						<sci:value>&lt;p&gt;Allows a Perl script to manipulate a data record&apos;s property list, the global
property list, and component behavior. The &lt;em&gt;Script&lt;/em&gt; parameter contains
the script that implements the component behavior, encoded in Perl. The following
subroutines must be defined in this text parameter (all three methods need to
be declared in the main scope): &lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;onInitialize: &lt;/em&gt;Invoked once before the any data records
    arrive. This method receives one argument, a pilot::Context object. Also,
    it must return a component state, one of $pilot::ReadyForInputData, $pilot::DoneProcessingData, $pilot::ReadyForNewData or $pilot::ReadyForInputThenNewData. &lt;/li&gt;
  &lt;li&gt;&lt;em&gt;onProcess&lt;/em&gt;: Called once per data record. This method
    receives two arguments, a pilot::Context and a pilot::DataRecord object and
    return a component state. &lt;/li&gt;
  &lt;li&gt;&lt;em&gt;onFinalize&lt;/em&gt;: Called when no more data records are available.
    This method receives one argument, a pilot::Context object. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;i&gt;onInitialize&lt;/i&gt; and &lt;i&gt;onProcess&lt;/i&gt; must
return one of the following component state values:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;pilot::READYFORINPUTDATA
&lt;li&gt;pilot::DONEPROCESSINGDATA
&lt;li&gt;pilot::READYFORNEWDATA
&lt;li&gt;pilot::READYFORINPUTTHENNEWDATA
&lt;/ul&gt;


&lt;p&gt;&lt;strong&gt;Notes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Any script outside of the subroutines is executed just prior to calling
    onInitialize.&lt;/li&gt;
	&lt;li&gt;The optional &lt;em&gt;Use Package&lt;/em&gt; parameter is used to identify a package
      that holds one or more Perl modules that are referenced by the component.
      In this way, much or all of a component&apos;s functionality can be maintained
      in a package module. This facilitates component upgrading, by centralizing
    the code.&lt;/li&gt;
    &lt;li&gt;The Perl include path for the library must be declared in the package.conf
      file for the named package.&lt;/li&gt;
    &lt;li&gt;Perl&apos;s &lt;em&gt;strict&lt;/em&gt; and &lt;em&gt;warnings&lt;/em&gt; directives can be very useful
      when writing scripts. To detect warnings, you need to create a handler
      to manage them, since by default, Perl sends them to STDERR, which is not
    easily accessible from within Pipeline Pilot. 
	&lt;p&gt;For example, the following
    script treats warnings as errors:&lt;/p&gt;
	&lt;p&gt;&lt;code&gt;use warnings;&lt;br /&gt;
	$SIG{__WARN__} = sub {die @_;};&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;See Also:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;javascript:DoLink(&apos;sciapps/scitegic/integration/docs/server_side/perl_api.htm&apos;)&quot;&gt;Perl Scripting Component API&lt;/a&gt;&lt;/li&gt; 
&lt;li&gt;&lt;a href=&quot;javascript:DoLink(&apos;sciapps/scitegic/integration/docs/server_side/perl_comp_dev.pdf&apos;)&quot;&gt;Perl Component Development Guide&lt;/a&gt;&lt;/li&gt;  
&lt;/ul&gt;</sci:value>
						<sci:value>None</sci:value>
						<sci:value/>
						<sci:value>None</sci:value>
						<sci:value/>
						<sci:value>None</sci:value>
						<sci:value/>
					</sci:arg>
					<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The server version when this component was registered</sci:help>
						<sci:value>6.0.1.4</sci:value>
					</sci:arg>
					<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:help>Local Component Identifier</sci:help>
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The original path within the database of this component.</sci:help>
						<sci:value>Components\Database and Application Integration\Application Integration\Programmatic Integration\Perl (on Server)</sci:value>
					</sci:arg>
				</sci:component>
			</sci:data>
			<sci:data object="SciTegic.EvaluateExpression.1">
				<sci:component name="Custom Filter (PilotScript)" version="2">
					<sci:arg name="Expression" type="ExpressionType" required="true" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
						<sci:help>The PilotScript expression used to filter the data.</sci:help>
						<sci:member>Initial Expression</sci:member>
						<sci:member>Final Expression</sci:member>
						<sci:member>Keep Calculated Properties</sci:member>
						<sci:value>WarningMsg is defined and WarningMsg  ne &quot;&quot;;</sci:value>
					</sci:arg>
					<sci:arg name="Initial Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
						<sci:help>&lt;p&gt;
An expression evaluated only when the component
is first initialized (when the first data record enters).
&lt;p/&gt;
Since there is no data available at initialization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
					</sci:arg>
					<sci:arg name="Final Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
						<sci:help>&lt;p&gt;
An expression evaluated only when the
component is finalized (once the last data
record has passed).
&lt;p/&gt;
Since there is no data available at finalization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
					</sci:arg>
					<sci:arg name="Keep Calculated Properties" type="BoolType" required="true" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
						<sci:help>Allows any properties that were calculated in
&quot;Expression&quot; to be included with the exiting
record.
Otherwise, these properties are removed after
the evaluation is complete.</sci:help>
						<sci:legalval>True</sci:legalval>
						<sci:legalval selected="true">False</sci:legalval>
					</sci:arg>
					<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
						<sci:help>Component Attributes</sci:help>
						<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
						<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
						<sci:legalval>ComponentReturnsFail</sci:legalval>
						<sci:legalval>ComponentRunsLocal</sci:legalval>
					</sci:arg>
					<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Custom Error Message</sci:help>
					</sci:arg>
					<sci:arg name="ExpressionVersion" type="LongType" required="false" visibility="nevershow" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
						<sci:help>Version of expression parser to use.</sci:help>
						<sci:value>2</sci:value>
					</sci:arg>
					<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The user who registered this component.</sci:help>
						<sci:value>scitegic/generic</sci:value>
					</sci:arg>
					<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The date this component was registered.</sci:help>
						<sci:value>Mon Jan 21 09:57:16 2008</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="ComponentAutoDisplayName" type="ExpressionType" required="false" visibility="nevershow" multi="false">
						<sci:help>Automatically update the component display name when the &quot;Expression&quot; property is changed. This feature is turned off after the user manually changes the display name of the component in Protocol workspace.</sci:help>
						<sci:value>#displayName := trim(Parameter(&apos;Expression&apos;, 2));
if(strlength(#displayName) &gt; 0) then	
	/* Find the first line break */
	#nl := FindSubstring(#displayName, &quot;\r&quot;);
	if #nl &lt;= 0 then
		#nl := FindSubstring(#displayName, &quot;\n&quot;);
	end if;

	/* Keep the first line only */
	if (#nl &gt; 0) then
		StrErase(#displayName, #nl);
	end if;
	
	#displayName;
else
	&quot;&quot;;
end if;</sci:value>
					</sci:arg>
					<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
						<sci:value>FILTERNODE</sci:value>
					</sci:arg>
					<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The component this component is based upon.</sci:help>
						<sci:value>Custom Filter (PilotScript)</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>{DD58ECD1-516F-48FE-A5DB-8328AED680F2}</sci:value>
					</sci:arg>
					<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>1890 -455</sci:value>
					</sci:arg>
					<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
						<sci:value>100</sci:value>
						<sci:value>Passes data records for which a PilotScript expression evaluates to True

</sci:value>
						<sci:value>&lt;p&gt;For each incoming data record, the PilotScript statements in &lt;i&gt;Expression&lt;/i&gt; are evaluated. If the last statement in the expression evaluates to True or non-zero, the record is sent out the Pass port. Otherwise it is sent out the Fail port.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To initialize global variables such as counters, use &lt;i&gt;Initial Expression&lt;/i&gt;.&lt;/li&gt; 
&lt;li&gt;To clean up global variables or calculate final results use &lt;i&gt;Final Expression&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Parameters on Custom Manipulators do not become global variables that can be accessed via &lt;i&gt;@ParameterName&lt;/i&gt; syntax.  They must be accessed by using the &lt;i&gt;Parameter(&apos;ParameterName&apos;)&lt;/i&gt; function or by using token substitution via &lt;i&gt;$(ParameterName)&lt;/i&gt; syntax.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
</sci:value>
						<sci:value>Generic</sci:value>
						<sci:value/>
						<sci:value>Generic</sci:value>
						<sci:value>Data records for which the final expression in the PilotScript evaluates to True or non-zero</sci:value>
						<sci:value>Generic</sci:value>
						<sci:value>Data records for which the final expression in the PilotScript evaluates to False or zero</sci:value>
					</sci:arg>
					<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:help>Local Component Identifier</sci:help>
						<sci:value>42</sci:value>
					</sci:arg>
					<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The original path within the database of this component.</sci:help>
						<sci:value>Components\Data Access and Manipulation\Property Filters\Custom Filter (PilotScript)</sci:value>
					</sci:arg>
				</sci:component>
				<sci:proplist>
					<sci:propval name="RegistrationVersion">7.0.0.35</sci:propval>
				</sci:proplist>
			</sci:data>
			<sci:data object="SciTegic.Protocol.1">
				<sci:component name="DS Messaging" version="2">
					<sci:arg name="Client Message" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>&lt;p&gt;Short text send to the DS client.&lt;/p&gt;

&lt;strong&gt;Note:&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Text is limited to 32 characters.&lt;/li&gt;
&lt;/ul&gt;</sci:help>
						<sci:member>Client Message Final</sci:member>
					</sci:arg>
					<sci:arg name="Client Message Final" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>&lt;p&gt;Text send to the DS Client.&lt;/p&gt;

&lt;strong&gt;Note:&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Text length is not limited.&lt;/li&gt;
&lt;/ul&gt;</sci:help>
					</sci:arg>
					<sci:arg name="Report" type="GroupType" required="false" visibility="visible" multi="false" expanded="true">
						<sci:help>Parameters controlling the DS report.</sci:help>
						<sci:member>Report Error</sci:member>
						<sci:member>Remove Duplicates from Summary</sci:member>
						<sci:member>Report Detail</sci:member>
						<sci:member>Report Warning</sci:member>
						<sci:member>Report Summary</sci:member>
					</sci:arg>
					<sci:arg name="Report Summary" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>Text added to &lt;strong&gt;Summary&lt;/strong&gt; section in the DS report.</sci:help>
					</sci:arg>
					<sci:arg name="Report Detail" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>Text added to &lt;strong&gt;Detail&lt;/strong&gt; section in the DS report.</sci:help>
					</sci:arg>
					<sci:arg name="Report Warning" type="LinkDataPropertyType" required="false" visibility="visible" multi="false" legalvalsenforced="false">
						<sci:metaproplist>
							<sci:propval name="SCI_InitializeUsingRevertInfo" ishidden="true" base64="UI1">Al1HAAFBVGV4dCBhZGRlZCB0byA8c3Ryb25nPldhcm5pbmc8L3N0cm9uZz4gc2VjdGlvbiBpbiB0aGUgRFMgcmVwb3J0LixTdHJpbmdUeXBlAAgAAAABAQABAAQA/AAAAAAAAAAAADxSZXBvcnQgV2FybmluZwPMU8+7BAA=</sci:propval>
							<sci:propval name="SCI_InitializeUsingOrigType" ishidden="true">StringType</sci:propval>
							<sci:propval name="SCI_EvalOnInit" ishidden="true" boolVal="true"/>
							<sci:propval name="SCI_EvalOnInitType" ishidden="true">StringType</sci:propval>
						</sci:metaproplist>
						<sci:help>Text added to &lt;strong&gt;Warning&lt;/strong&gt; section in the DS report.</sci:help>
						<sci:value>WarningMsg</sci:value>
					</sci:arg>
					<sci:arg name="Report Error" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>Text added to &lt;strong&gt;Error&lt;/strong&gt; section in the DS report.

&lt;strong&gt;Note:&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;A specified text will change the run status to failure.&lt;/li&gt;
&lt;/ul&gt;</sci:help>
					</sci:arg>
					<sci:arg name="Remove Duplicates from Summary" type="BoolType" required="true" visibility="visible" multi="false" uimpl="false">
						<sci:help>When set to True, all duplicate &lt;strong&gt;Summary&lt;/strong&gt; lines in the DS report are removed. </sci:help>
						<sci:legalval>True</sci:legalval>
						<sci:legalval selected="true">False</sci:legalval>
					</sci:arg>
					<sci:arg name="Advanced" type="GroupType" required="false" visibility="visible" multi="false" expanded="true" uimpl="true">
						<sci:help>Contains less commonly used parameters.</sci:help>
						<sci:member>Debug Level</sci:member>
						<sci:member>Debug Message</sci:member>
					</sci:arg>
					<sci:arg name="Debug Message" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Message to send to the log file (if log is specified)</sci:help>
					</sci:arg>
					<sci:arg name="Debug Level" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>User can set the debug level for the debug message.</sci:help>
						<sci:legalval selected="true">1</sci:legalval>
						<sci:legalval>2</sci:legalval>
					</sci:arg>
					<sci:arg name="Tempfiles" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Temporary files converted by the network to true temporary filenames</sci:help>
					</sci:arg>
					<sci:arg name="DeclareLocal" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Lists a set of properties (without the @) to create on the property list for this protocol. Other properties are created on the global property list and are accessible from all protocols.</sci:help>
					</sci:arg>
					<sci:arg name="RunToCompletion" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>When the network runs, processes once or until done for each process call</sci:help>
						<sci:legalval>True</sci:legalval>
						<sci:legalval selected="true">False</sci:legalval>
					</sci:arg>
					<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
						<sci:help>Component Attributes</sci:help>
						<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
						<sci:legalval>ComponentReturnsPass</sci:legalval>
						<sci:legalval>ComponentReturnsFail</sci:legalval>
						<sci:legalval>ComponentRunsLocal</sci:legalval>
					</sci:arg>
					<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The date this component was registered.</sci:help>
						<sci:value>Mon Feb 26 16:26:52 2018</sci:value>
					</sci:arg>
					<sci:arg name="ComponentComment" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Component Comment</sci:help>
						<sci:value>Defines a subprotocol in a pipeline. When you are creating a pipeline that requires a subprotocol as a component, drag this component into the pipeline, open it, and add components to it.</sci:value>
					</sci:arg>
					<sci:arg name="ComponentUsage" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Component Usage</sci:help>
						<sci:value>When you are creating a pipeline which requires a subprotocol as 
a component, you can drag this SubProtocol component into the 
pipeline, open it, and add components into it.</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>DS Messaging</sci:value>
					</sci:arg>
					<sci:arg name="ProtocolAutoLayout" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol AutoLayout</sci:help>
						<sci:value>1</sci:value>
					</sci:arg>
					<sci:arg name="ProtocolShowComment" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol ShowComment</sci:help>
						<sci:value>true</sci:value>
					</sci:arg>
					<sci:arg name="ProtocolComment" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Add Protocol Comment Here</sci:help>
						<sci:value>Add Protocol Comment Here</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
						<sci:value>COMPONENTNODE</sci:value>
					</sci:arg>
					<sci:arg name="ComponentRevision" type="LongType" required="true" visibility="nevershow" multi="false">
						<sci:help>Component Revision</sci:help>
						<sci:value>100</sci:value>
					</sci:arg>
					<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The component this component is based upon.</sci:help>
						<sci:value>SubProtocol</sci:value>
					</sci:arg>
					<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>{8F288684-93BC-4712-BC9A-73930339BDEB}</sci:value>
					</sci:arg>
					<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>2190 -455</sci:value>
					</sci:arg>
					<sci:arg name="ByReference" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>By Ref</sci:help>
						<sci:value>1</sci:value>
					</sci:arg>
					<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
						<sci:value>100</sci:value>
						<sci:value>Sends text to the client and/or to the DS report</sci:value>
						<sci:value>&lt;p&gt;Messages can be sent to the client or text can be specified for the DS report.&lt;/p&gt;
</sci:value>
						<sci:value>None</sci:value>
						<sci:value/>
						<sci:value>None</sci:value>
						<sci:value>Records passing out of any unconnected pass ports of components inside the subprotocol</sci:value>
						<sci:value>None</sci:value>
						<sci:value>Records passing out of any unconnected fail ports of components inside the subprotocol</sci:value>
					</sci:arg>
					<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The server version when this component was registered</sci:help>
						<sci:value>18.1.0.1604</sci:value>
					</sci:arg>
					<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="Protocol Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Sticky Notes</sci:help>
					</sci:arg>
					<sci:arg name="ProtocolScale2" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Scale</sci:help>
						<sci:value>100</sci:value>
					</sci:arg>
					<sci:arg name="Protocol Options" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Options</sci:help>
						<sci:legalval>Make Shortcut by Default</sci:legalval>
						<sci:legalval>Owner Access Only</sci:legalval>
					</sci:arg>
					<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The user who registered this component.</sci:help>
						<sci:value>scitegic/dscore</sci:value>
					</sci:arg>
					<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:help>Local Component Identifier</sci:help>
						<sci:value>43</sci:value>
					</sci:arg>
					<sci:arg name="SubProtocolMadeLinkIntoCopy" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Subprotocol Made Link Into Copy</sci:help>
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The original path within the database of this component.</sci:help>
						<sci:value>Components\Chemistry\Utilities\Discovery Studio\DS Messaging</sci:value>
					</sci:arg>
				</sci:component>
				<sci:protocol/>
			</sci:data>
			<sci:data object="SciTegic.Protocol.1">
				<sci:component name="Subprotocol" version="2">
					<sci:arg name="Tempfiles" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>&lt;p&gt;A comma delimited list of global properties, each of which will automatically hold the name of a file in the job&apos;s temporary folder, whose name is guaranteed to be unique.&lt;p/&gt;For each global name, an additional global is created (with the suffix &lt;i&gt;_Filename&lt;/i&gt;) that hold just the leaf file name of the temporary file.&lt;/p&gt;</sci:help>
					</sci:arg>
					<sci:arg name="DeclareLocal" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>&lt;p&gt;Lists a set of properties (without the @) to create on the global property list for this subprotocol. Such properties can only be accessed within the scope of this subprotocol and its descendent subprotocols.&lt;p/&gt;Any global property not declared in this way is created on the top level global property list and is accessible from all protocols, but may collide with another property of the same name.&lt;/p&gt;&lt;p&gt;Scoping global properties to the subprotocol where they are used is highly recommended.&lt;/p&gt;</sci:help>
					</sci:arg>
					<sci:arg name="RunToCompletion" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>When &lt;i&gt;RunToCompletion&lt;/i&gt; is set to &quot;True - For Each Data Record&quot;, the subprotocol is re-initialized and executed in its entirety for each individual data record it processes.
&lt;p&gt;
When set to &quot;True - For Each Category&quot;, the data records are divided into categories based on the value of the Categorize Using parameter and then the subprotocol is re-initialized and executed in its entirety for each category of data records. When used in conjunction with &lt;i&gt;Parallel Processing Options&lt;/i&gt;, each category of data records will be sent to the remote server as part of one single batch.</sci:help>
						<sci:member>RunToCompletion Categorize Using</sci:member>
						<sci:legalval selected="true">False</sci:legalval>
						<sci:legalval>True - For Each Data Record</sci:legalval>
						<sci:legalval>True - For Each Category</sci:legalval>
					</sci:arg>
					<sci:arg name="RunToCompletion Categorize Using" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Required when RunToCompletion is set to &lt;i&gt;True - For Each Category&lt;/i&gt;, this parameter specifies the property or properties used to define the categories.</sci:help>
						<sci:validscript>SetInvalidDetails(&apos;This parameter is required when RunToCompletion is set to True - For Each Category&apos;);
Parameter() ne &apos;&apos;;</sci:validscript>
						<sci:enabledscript>SetDisabledDetails(&apos;To Enable, Set RunToCompletion to True - For Each Category&apos;);
Parameter(&apos;RunToCompletion&apos;) eq &apos;True - For Each Category&apos;;</sci:enabledscript>
					</sci:arg>
					<sci:arg name="Parallel Processing Options" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>&lt;p&gt;
When set to True, this set of options allow the subprotocol to execute in parallel on one or more independent Pipeline Pilot servers, running local or remote.  Additional parameters control the number of data records to send in each process batch, the list of Pipeline Pilot servers to use, the number of protocol processes that can be executed on each server, and whether to preserve the order of the processed data records.
&lt;/p&gt;&lt;p&gt;
Use this option judiciously, since it will not increase throughput in all circumstances. In general, it will yield improved performance when the parallelization benefits outweigh the data transfer overhead for the specified batch size.  As a rough guide, performance can be improved when each individual batch requires at least 10 seconds to execute, although this can be affected by the size of each data record.
&lt;/p&gt;&lt;p&gt;
When running the protocol with debugging, the subprotocol will provide debugging messages to detail each of the various steps of execution.  Also, components located within the parallel subprotocol will display their debugging messages as well.
&lt;/p&gt;&lt;p&gt;
For more information on the parallel subprotocol options, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/subprots/subprot_parallel_processing.htm&apos;)&quot;&gt;Parallel Processing Subprotocols&lt;/a&gt;.
&lt;/p&gt;
</sci:help>
						<sci:member>Parallel Processing Options Batch Size</sci:member>
						<sci:member>Parallel Processing Options Server</sci:member>
						<sci:member>Parallel Processing Options Preserve Order</sci:member>
						<sci:legalval>True</sci:legalval>
						<sci:legalval selected="true">False</sci:legalval>
					</sci:arg>
					<sci:arg name="Parallel Processing Options Batch Size" type="LongType" required="true" visibility="visible" multi="false" uimpl="true">
						<sci:help>&lt;p&gt;The number of records to send to the remote server(s) for each subprotocol execution.  In general, performance is optimized when the amount of time required to process each batch is at least 10 seconds (note that this can vary depending on the characteristics of the remote server&apos;s hardware).  Use a batch size of -1 to pass all data in a single batch.&lt;/p&gt;
&lt;p&gt;When &lt;i&gt;RunToCompletion&lt;/i&gt; is set to &quot;True - for each category&quot;, the batch sizes will be determined by the number of records in each individual category.  Therefore, the &lt;i&gt;Batch Size&lt;/i&gt; parameter is not applicable.</sci:help>
						<sci:enabledscript>#parallel := Parameter(&apos;Parallel Processing Options&apos;);
#rtcForEachCategory := (Parameter(&apos;RunToCompletion&apos;) eq &apos;True - For Each Category&apos;);
if (not #parallel) then
	SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
elsif (#rtcForEachCategory) then
	SetDisabledDetails(&quot;This parameter is not applicable when &apos;RunToCompletion&apos; is set to &apos;True - For Each Category&apos;&quot;);
end if;
#parallel and not #rtcForEachCategory;</sci:enabledscript>
					</sci:arg>
					<sci:arg name="Parallel Processing Options Server" type="StringType" required="false" visibility="visible" multi="true" expanded="true" legalvalsenforced="false" uimpl="true">
						<sci:help>&lt;p&gt;
Comma separated list of Pipeline Pilot servers on which to execute the parallel subprotocol.  The server names should be in the same format as the Pipeline Pilot Client&apos;s change server dialog (server-name:port-number).
&lt;/p&gt;&lt;p&gt;
Specifying &lt;b&gt;localhost&lt;/b&gt; as a server will cause the subprotocol to use its own Pipeline Pilot server.  This can be helpful on multi-CPU/multi-core systems (where the subprotocol jobs are spawned on the same machine) and Pipeline Pilot Linux clusters (where &apos;localhost&apos; requests spawning the subprotocol jobs on the same cluster).
&lt;/p&gt;</sci:help>
						<sci:member>Parallel Processing Options Server Processes</sci:member>
						<sci:member>Parallel Processing Options Server Run On Grid</sci:member>
						<sci:validscript>SetInvalidDetails(&apos;This parameter is required.&apos;);
Parameter() ne &apos;&apos;;</sci:validscript>
						<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
					</sci:arg>
					<sci:arg name="Parallel Processing Options Server Processes" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Comma separated list of maximum number of batches that can be simultaneously executed on each remote server.  The number of entries in this parameter must equal the number of servers. If &apos;*&apos; is specified as the number of processes, then that server will only launch as many batches as the administrator of the remote server has permitted.</sci:help>
						<sci:validscript>/* Server Processes must have the same number of comma separated entries as the Server parameter and must have a value*/
#processes := parameter();
expand(&apos;,&apos;, #processes);
#servers := parameter(&apos;Parallel Processing Options Server&apos;);
expand(&apos;,&apos;, #servers);

if (numvalues(#processes) == 0) then
	SetInvalidDetails(&apos;This parameter is required.&apos;);
else
	SetInvalidDetails(&apos;The number of server processes (&apos; . numvalues(#processes) . &apos;) must equal the number of servers (&apos; . numvalues(#servers) . &apos;).&apos;);
end if;
numvalues(#processes) &gt; 0 and numvalues(#processes) == numvalues(#servers);</sci:validscript>
						<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
					</sci:arg>
					<sci:arg name="Parallel Processing Options Server Run On Grid" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Run subprotocol on grid engine if available.</sci:help>
						<sci:member>Parallel Processing Options Server Run On Grid Queue Name</sci:member>
						<sci:enabledscript>parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
						<sci:legalval selected="true">True</sci:legalval>
						<sci:legalval>False</sci:legalval>
					</sci:arg>
					<sci:arg name="Parallel Processing Options Server Run On Grid Queue Name" type="StringType" required="false" visibility="visible" multi="false" legalvalsenforced="false" uimpl="true">
						<sci:help>Select the queue name on the grid to submit jobs to. Leave blank to use default queue name.</sci:help>
						<sci:enabledscript>parameter(&apos;Parallel Processing Options Server Run On Grid&apos;);</sci:enabledscript>
					</sci:arg>
					<sci:arg name="Parallel Processing Options Preserve Order" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Whether to preserve the order of the data as it enters and leaves the remote subprotocol.</sci:help>
						<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
						<sci:legalval selected="true">True</sci:legalval>
						<sci:legalval>False</sci:legalval>
					</sci:arg>
					<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
						<sci:help>Component Attributes</sci:help>
						<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
						<sci:value>ComponentReturnsFail</sci:value>
						<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
						<sci:legalval>ComponentReturnsFail</sci:legalval>
						<sci:legalval>ComponentRunsLocal</sci:legalval>
					</sci:arg>
					<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="Proxy Authentication Username" type="PromotedGroupMemberType" required="false" visibility="nevershow" multi="false" uimpl="false">
						<sci:help>Specifies the username to pass the proxy server authentication.</sci:help>
						<sci:value>Proxy Authentication Username</sci:value>
					</sci:arg>
					<sci:arg name="Proxy Authentication Password" type="PromotedGroupMemberType" required="false" visibility="nevershow" multi="false" uimpl="false">
						<sci:help>Specifies the password to pass the proxy server authentication.</sci:help>
						<sci:value>Proxy Authentication Password</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>Fetch Hit Sequences</sci:value>
					</sci:arg>
					<sci:arg name="ProtocolAutoLayout" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol AutoLayout</sci:help>
						<sci:value>1</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
						<sci:value>SUBPROTOCOLNODE</sci:value>
					</sci:arg>
					<sci:arg name="ComponentRevision" type="LongType" required="true" visibility="nevershow" multi="false">
						<sci:help>Component Revision</sci:help>
						<sci:value>790</sci:value>
					</sci:arg>
					<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>{17001C74-63CE-4B4B-B37C-F0EAA19CE4AA}</sci:value>
					</sci:arg>
					<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>1590 -635</sci:value>
					</sci:arg>
					<sci:arg name="ByReference" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>By Ref</sci:help>
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
						<sci:value>100</sci:value>
						<sci:value>Builds subprotocols in Pipeline Pilot.</sci:value>
						<sci:value>&lt;p&gt;
Use a subprotocol to collapse one or more components into a single item. Open a subprotocol to view or edit its contents. 
&lt;/p&gt;&lt;p&gt;
To define input and output ports, display icon, and parameter settings, right-click and select Edit. You can save subprotocols and reuse them. For more information, see the User Guide help for &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/subprots/subprot_overview.htm&apos;)&quot;&gt;Subprotocols Overview&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;
For more information on the parallel subprotocol options, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/subprots/subprot_parallel_processing.htm&apos;)&quot;&gt;Parallel Processing Subprotocols&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;
Tip: Any component can be made into a shortcut, so that the latest version is always used. For more information, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/subprots/shortcuts.htm&apos;)&quot;&gt;Creating Shortcuts&lt;/a&gt;.
&lt;/p&gt;</sci:value>
						<sci:value>Generic</sci:value>
						<sci:value/>
						<sci:value>None</sci:value>
						<sci:value>Records passing out of any unconnected pass ports of components inside the subprotocol</sci:value>
						<sci:value>Generic</sci:value>
						<sci:value>Records passing out of any unconnected fail ports of components inside the subprotocol</sci:value>
					</sci:arg>
					<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The server version when this component was registered</sci:help>
						<sci:value>7.9.0.30</sci:value>
					</sci:arg>
					<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="Protocol Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Sticky Notes</sci:help>
					</sci:arg>
					<sci:arg name="ProtocolScale2" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Scale</sci:help>
						<sci:value>100</sci:value>
					</sci:arg>
					<sci:arg name="Protocol Options" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Options</sci:help>
						<sci:legalval>Owner Access Only</sci:legalval>
					</sci:arg>
					<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The user who registered this component.</sci:help>
						<sci:value>scitegic/coreutils</sci:value>
					</sci:arg>
					<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The date this component was registered.</sci:help>
						<sci:value>Tue Jan 26 10:02:05 2010</sci:value>
					</sci:arg>
					<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:help>Local Component Identifier</sci:help>
						<sci:value>29</sci:value>
					</sci:arg>
					<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The original path within the database of this component.</sci:help>
						<sci:value>Components\Data Access and Manipulation\Utilities\Subprotocol Utilities\Subprotocol</sci:value>
					</sci:arg>
				</sci:component>
				<sci:protocol>
					<sci:data object="SciTegic.PropertyFunctions.1">
						<sci:component name="No-op" version="2">
							<sci:arg name="DataActionOnError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When a General or DataType error occurs during processing:  
  LeaveData: The data is passed unalterd
  ClearData: The data is cleared before being passed (an empty data item)
  DeleteData: The data is deleted and not passed</sci:help>
								<sci:legalval selected="true">LeaveData</sci:legalval>
								<sci:legalval>ClearData</sci:legalval>
								<sci:legalval>DeleteData</sci:legalval>
							</sci:arg>
							<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
								<sci:help>Component Attributes</sci:help>
								<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
								<sci:legalval>ComponentReturnsFail</sci:legalval>
								<sci:legalval>ComponentRunsLocal</sci:legalval>
							</sci:arg>
							<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>CustomErrorText</sci:help>
							</sci:arg>
							<sci:arg name="Action" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:help>the action to perform</sci:help>
								<sci:value>PassDataToPort</sci:value>
							</sci:arg>
							<sci:arg name="Port" type="LongType" required="true" visibility="nevershow" multi="false">
								<sci:help>the port to pass data to</sci:help>
								<sci:value>1</sci:value>
							</sci:arg>
							<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:value>COMPONENTNODE</sci:value>
							</sci:arg>
							<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/generic</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The date this component was registered.</sci:help>
								<sci:value>Thu Sep 28 16:34:08 2006</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>No-op</sci:value>
							</sci:arg>
							<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The component this component is based upon.</sci:help>
								<sci:value>Evaluate Expression</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>{6E468A38-A6F7-4371-B65B-501A3ED4C0D9}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>465 -95</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:value>100</sci:value>
								<sci:value>Sends all incoming records out the Pass port unchanged</sci:value>
								<sci:value>&lt;p&gt;Useful in subprotocols to capture the point of input. For example, if you wish to perform two different sequences of operations on the same input data, use No-op as the first component of the subprotocol and connect both pipes to the No-op output port.&lt;/p&gt;

&lt;p&gt;You can also use this component to simplify the layout for complex protocols. For example, if you have three Reader components that need to be connected to three Viewer components, placing a No-op in the middle reduces the number of required connections and clarifies the logic.&lt;/p&gt;
</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>None</sci:value>
								<sci:value/>
							</sci:arg>
							<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The server version when this component was registered</sci:help>
								<sci:value>6.0.1.1</sci:value>
							</sci:arg>
							<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
							<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Local Component Identifier</sci:help>
								<sci:value>6</sci:value>
							</sci:arg>
							<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The original path within the database of this component.</sci:help>
								<sci:value>Components\Data Access and Manipulation\Utilities\Subprotocol Utilities\No-op</sci:value>
							</sci:arg>
						</sci:component>
					</sci:data>
					<sci:data object="SciTegic.CountRecords.1">
						<sci:component name="Count and Index Data" version="2">
							<sci:arg name="Counter Property" type="PropertyNameType" required="true" visibility="visible" multi="false">
								<sci:help>&lt;p&gt;The name of the property to hold the data record count. If the name begins with &quot;@&quot;, this is a global property name and is updated each time a data record is received. Otherwise, it is a local property name and a new property by that name will be created on each data record and given the current value (i.e., the count).&lt;/p&gt;

</sci:help>
								<sci:member>Start Index</sci:member>
								<sci:member>Check if Property Already in Use</sci:member>
								<sci:value>@NumSeqs</sci:value>
							</sci:arg>
							<sci:arg name="Start Index" type="LongType" required="true" visibility="visible" multi="false">
								<sci:help>The index (i.e., number) used to start the sequence.</sci:help>
								<sci:value>1</sci:value>
							</sci:arg>
							<sci:arg name="Check if Property Already in Use" type="BoolType" required="true" visibility="visible" multi="false">
								<sci:help>Generates an error if the property already exists. This helps prevent overwriting data created by another component. Default is &quot;True&quot;.
</sci:help>
								<sci:legalval selected="true">True</sci:legalval>
								<sci:legalval>False</sci:legalval>
							</sci:arg>
							<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
								<sci:help>Component Attributes</sci:help>
								<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
								<sci:legalval>ComponentReturnsFail</sci:legalval>
								<sci:legalval>ComponentRunsLocal</sci:legalval>
							</sci:arg>
							<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Custom Error Message</sci:help>
							</sci:arg>
							<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/generic</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The date this component was registered.</sci:help>
								<sci:value>Tue Sep 13 07:16:44 2016</sci:value>
							</sci:arg>
							<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>{7BF3D951-BF75-70A2-8B2C-AD8909791909}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>Count and Index Data</sci:value>
							</sci:arg>
							<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:value>COMPONENTNODE</sci:value>
							</sci:arg>
							<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The component this component is based upon.</sci:help>
								<sci:value>Count and Index Data</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>1365 -95</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:value>100</sci:value>
								<sci:value>Counts the number of data records and puts the count in a property</sci:value>
								<sci:value>&lt;p&gt;Use this component to create a numerical index of data records and to keep track of the total number of records.  The value of &lt;i&gt;Counter Property&lt;/i&gt; is incremented each time a data record enters the component.&lt;/p&gt;

&lt;p&gt;This component can be used in two modes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If &lt;i&gt;Counter Property&lt;/i&gt; is the name of a local property (does not start with &quot;@&quot;), a new property by that name is created on each data record and given the value of the current count.&lt;/li&gt;
&lt;li&gt;If &lt;i&gt;Counter Property&lt;/i&gt; is the name of a global property (starts with &quot;@&quot;), then each data record that passes through causes this global record count to be incremented, but values are not added to the passing records.&lt;/li&gt;
&lt;/ul&gt;</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>None</sci:value>
								<sci:value/>
							</sci:arg>
							<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The server version when this component was registered</sci:help>
								<sci:value>17.1.0.119</sci:value>
							</sci:arg>
							<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
							<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Local Component Identifier</sci:help>
								<sci:value>16</sci:value>
							</sci:arg>
							<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The original path within the database of this component.</sci:help>
								<sci:value>Components\Data Access and Manipulation\Data Manipulators\Count and Index Data</sci:value>
							</sci:arg>
						</sci:component>
					</sci:data>
					<sci:data object="SciTegic.EvaluateExpression.1">
						<sci:component name="Custom Manipulator (PilotScript)" version="2">
							<sci:arg name="Expression" type="ExpressionType" required="true" visibility="visible" multi="false" expanded="true" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>Expression (or list of expressions separated by semi-colons) to evaluate.</sci:help>
								<sci:member>Initial Expression</sci:member>
								<sci:member>Final Expression</sci:member>
								<sci:member>Keep Calculated Properties</sci:member>
								<sci:value>/*make sure display ID is the same as the accessionNumber in the hit file-
  this may not be the case for sequences which had no gi originally or where the database name needed removing for EFetch*/
  if(accessionNumberFull is defined)then
	  debugMessage(&quot;full accession  &quot;. accessionNumberFull . &quot; accessionNumber now is &quot; . accessionNumber . &quot; and display ID is &quot; . displayID);
	  accessionNumber := accessionNumberFull;
  else
	  debugMessage(&quot;full accession was not retained, accessionNumber is &quot; . accessionNumber . &quot; and display ID is &quot; . displayID);
  end if;
  displayID := accessionNumber;</sci:value>
							</sci:arg>
							<sci:arg name="Initial Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>&lt;p&gt;
This expression is executed only the first time data passes into the component.
&lt;p/&gt; 
Since there is no data available at initialization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
							</sci:arg>
							<sci:arg name="Final Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>&lt;p&gt;
This expression is executed only at finalization (after the last data passes out of the component).
&lt;p/&gt; 
Since there is no data available at finalization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
							</sci:arg>
							<sci:arg name="Keep Calculated Properties" type="BoolType" required="true" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>Adds any properties calculated in this component to a data record&apos;s property list.</sci:help>
								<sci:legalval selected="true">True</sci:legalval>
								<sci:legalval>False</sci:legalval>
							</sci:arg>
							<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
								<sci:help>Component Attributes</sci:help>
								<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
								<sci:legalval>ComponentReturnsFail</sci:legalval>
								<sci:legalval>ComponentRunsLocal</sci:legalval>
							</sci:arg>
							<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Custom Error Message</sci:help>
							</sci:arg>
							<sci:arg name="Do Screen" type="BoolType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>When TRUE, controls which exit port is used for
each data record by evaluating the final expression
(or only one) listed in the &quot;Expression&quot; parameter.
   -Pass (green) port when expression true
   -Fail (red) port when expression false</sci:help>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="ExpressionVersion" type="LongType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>Version of expression parser to use.</sci:help>
								<sci:value>2</sci:value>
							</sci:arg>
							<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/generic</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The date this component was registered.</sci:help>
								<sci:value>Mon Jan 21 09:55:43 2008</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false"/>
							<sci:arg name="ComponentAutoDisplayName" type="ExpressionType" required="false" visibility="nevershow" multi="false">
								<sci:help>Automatically update the component display name when the &quot;Expression&quot; property is changed. This feature is turned off after the user manually changes the display name of the component in Protocol workspace.</sci:help>
								<sci:value>#displayName := trim(Parameter(&apos;Expression&apos;, 2));
if(strlength(#displayName) &gt; 0) then	
	/* Find the first line break */
	#nl := FindSubstring(#displayName, &quot;\r&quot;);
	if #nl &lt;= 0 then
		#nl := FindSubstring(#displayName, &quot;\n&quot;);
	end if;

	/* Keep the first line only */
	if (#nl &gt; 0) then
		StrErase(#displayName, #nl);
	end if;
	
	#displayName;
else
	&quot;&quot;;
end if;</sci:value>
							</sci:arg>
							<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The component this component is based upon.</sci:help>
								<sci:value>Custom Manipulator (PilotScript)</sci:value>
							</sci:arg>
							<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:value>EXPRESSIONNODE</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>{0995D675-7EE2-432C-95DF-E91C14052B22}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>1665 -95</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:value>100</sci:value>
								<sci:value>Applies a PilotScript expression to each data record
</sci:value>
								<sci:value>&lt;p&gt;PilotScript is the native scripting language in Pipeline Pilot.  It is based on PL/SQL and allows you to query or alter the properties on data records.  For example, the expression:

&lt;blockquote&gt;
&lt;code&gt;A := 10;&lt;/code&gt;
&lt;/blockquote&gt;
creates a property named &quot;A&quot; and sets the value to &quot;10&quot;.&lt;/p&gt;

&lt;p&gt;For each incoming data record the PilotScript statements in &lt;i&gt;Expression&lt;/i&gt; are evaluated.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To initialize global variables such as counters, use &lt;i&gt;Initial Expression&lt;/i&gt;.&lt;/li&gt; 
&lt;li&gt;To clean up global variables or calculate final results use &lt;i&gt;Final Expression&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Parameters on Custom Manipulators do not become global variables that can be accessed via &lt;i&gt;@ParameterName&lt;/i&gt; syntax.  They must be accessed by using the &lt;i&gt;Parameter(&apos;ParameterName&apos;)&lt;/i&gt; function or by using token substitution via &lt;i&gt;$(ParameterName)&lt;/i&gt; syntax.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;See Also:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For more information on PilotScript, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/pscript/pscript_overview.htm&apos;)&quot;&gt;PilotScript Overview&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To use PilotScript to filter data records use &lt;a href=&quot;javascript:DoLink(&apos;{DD58ECD1-516F-48FE-A5DB-8328AED680F2}&apos;)&quot;&gt;Custom Filter (PilotScript)&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>None</sci:value>
								<sci:value/>
							</sci:arg>
							<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The server version when this component was registered</sci:help>
								<sci:value>7.0.0.35</sci:value>
							</sci:arg>
							<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
							<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Local Component Identifier</sci:help>
								<sci:value>14</sci:value>
							</sci:arg>
							<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The original path within the database of this component.</sci:help>
								<sci:value>Components\Data Access and Manipulation\Property Manipulators\Custom Manipulator (PilotScript)</sci:value>
							</sci:arg>
						</sci:component>
					</sci:data>
					<sci:data object="SciTegic.FastaWriter.1">
						<sci:component name="FASTA Sequence Writer" version="2">
							<sci:arg name="Destination" type="URLType" required="true" visibility="visible" multi="false">
								<sci:help>The filename for the destination sequences</sci:help>
								<sci:member>Maximum</sci:member>
								<sci:member>Use Original FASTA ID</sci:member>
								<sci:member>If File Exists</sci:member>
								<sci:member>Character Encoding</sci:member>
								<sci:member>NewlineStyle</sci:member>
								<sci:member>Sequence Line Length</sci:member>
								<sci:value>$(RunDirectory)/blastseqs.fasta</sci:value>
							</sci:arg>
							<sci:arg name="Maximum" type="LongType" required="false" visibility="visible" multi="false">
								<sci:help>The maximum number of sequences to write (all if value is empty)</sci:help>
							</sci:arg>
							<sci:arg name="Sequence Line Length" type="LongType" required="true" visibility="visible" multi="false">
								<sci:help>Specifies the maximum number of characters per line for the sequence output. 

If you specify 0, the whole sequence will be printed on a single line. </sci:help>
								<sci:value>60</sci:value>
							</sci:arg>
							<sci:arg name="If File Exists" type="StringType" required="true" visibility="visible" multi="false">
								<sci:help>What to do if the given destination file already exists</sci:help>
								<sci:legalval selected="true">Overwrite</sci:legalval>
								<sci:legalval>Append</sci:legalval>
								<sci:legalval>Halt</sci:legalval>
							</sci:arg>
							<sci:arg name="Use Original FASTA ID" type="BoolType" required="false" visibility="visible" multi="false">
								<sci:help>If the sequence data record has an &quot;originalFastaID&quot; property, use its value as the ID in the FASTA record.  </sci:help>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="Character Encoding" type="StringType" required="false" visibility="visible" multi="false">
								<sci:help>&lt;p&gt;Indicates the character set that will be used within the file.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;ANSI&lt;/b&gt; is the default and specifies a character set where each character is defined by a single byte.  This allows the Latin-1 (ISO-8859-1) character set to be written to the file.  Virtually all applications can read these files.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;UTF-8&lt;/b&gt; specifies a variable length character set.  Each character is represented by 1 to 6 bytes.  This allows writing out all extended characters specified in the Unicode character sets while maintaining reasonably lengthed files.  Many applications do not support UTF-8 files.&lt;/li&gt;
 
&lt;li&gt;&lt;b&gt;Unicode&lt;/b&gt; and &lt;b&gt;Unicode big endian&lt;/b&gt; are sets where each character is represented by exactly 2 bytes (also known as UCS-2).  Depending on which is used will determine the order in which the bytes appear for each character. Many applications do not support Unicode or Unicode big endian files.&lt;/li&gt;
&lt;/ul&gt;
 
&lt;p&gt;&lt;b&gt;See Also:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For more information about each of these encoding styles, go to &lt;a href=&quot;javascript:DoLink(&apos;http://www.unicode.org/&apos;)&quot;&gt;http://www.unicode.org/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</sci:help>
								<sci:member>UseByteOrderMark</sci:member>
								<sci:legalval selected="true">ANSI</sci:legalval>
								<sci:legalval>UTF-8</sci:legalval>
								<sci:legalval>Unicode</sci:legalval>
								<sci:legalval>Unicode big endian</sci:legalval>
							</sci:arg>
							<sci:arg name="UseByteOrderMark" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
								<sci:help>&lt;p&gt;The byte order mark (BOM) is an optional Unicode character written to the start of a file or data stream that can be used to indicate the character encoding of the following data. Spefically it can be used to indicate the various UTF-8 and UTF-16 encodings.
&lt;/p&gt;
&lt;p&gt;
BOMs are more widely used in a Windows setting. (For example, Windows Notepad includes a BOM in UTF-8 files.)
&lt;/p&gt;
&lt;p&gt;
Setting options are:
&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;Always&lt;/dt&gt;
&lt;dd&gt;For non-ANSI encodings, the BOM is always written at the start of the output stream.&lt;/dd&gt;
&lt;dt&gt;Never&lt;/dt&gt;
&lt;dd&gt;No BOM is written at the start of the output stream.&lt;/dd&gt;
&lt;dt&gt;Native&lt;/dt&gt;
&lt;dd&gt;This is equivalent to &quot;Always&quot; on Windows and &quot;Never&quot; on Linux.&lt;/dd&gt;
&lt;/dl&gt;</sci:help>
								<sci:enabledscript>SetDisabledDetails(
	       &apos;To enable &apos;.ParameterName().&apos;, set Character Encoding to a non-ANSI value&apos;);
	Parameter(&apos;Character Encoding&apos;) ne &apos;ANSI&apos;;</sci:enabledscript>
								<sci:legalval selected="true">Always</sci:legalval>
								<sci:legalval>Never</sci:legalval>
								<sci:legalval>Native</sci:legalval>
							</sci:arg>
							<sci:arg name="NewlineStyle" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
								<sci:help>&lt;p&gt;
Set this value to define the line ending character(s) in the output file. The default value is the Windows-standard carriage return plus line feed (CR+LF), but you may need to change this, especially in a non-Windows environment. Options are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CR+LF (Traditional Windows text file line ending)&lt;/li&gt;
&lt;li&gt;LF (Line feed, &apos;\n&apos;, 0x0A)&lt;/li&gt;
&lt;li&gt;CR (Carriage return, &apos;\r&apos;, 0x0D)&lt;/li&gt;
&lt;li&gt;Native (CR+LF on Windows, LF on Linux)&lt;/li&gt;
&lt;/ul&gt;</sci:help>
								<sci:legalval>CR+LF</sci:legalval>
								<sci:legalval>LF</sci:legalval>
								<sci:legalval>CR</sci:legalval>
								<sci:legalval selected="true">Native</sci:legalval>
							</sci:arg>
							<sci:arg name="IfFileExists" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
								<sci:help>Aliased by the &lt;b&gt;If File Exists&lt;/b&gt; parameter on the Parameters tab.

Do not modify this value.</sci:help>
								<sci:value>$(If File Exists)</sci:value>
							</sci:arg>
							<sci:arg name="CharacterEncoding" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
								<sci:help>Aliased by &lt;b&gt;Character Encoding&lt;/b&gt; parameter on the Parameters tab.

Do not modify this value.</sci:help>
								<sci:value>$(Character Encoding)</sci:value>
							</sci:arg>
							<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
								<sci:help>Component Attributes</sci:help>
								<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
								<sci:legalval>ComponentReturnsPass</sci:legalval>
								<sci:legalval>ComponentReturnsFail</sci:legalval>
								<sci:legalval>ComponentRunsLocal</sci:legalval>
							</sci:arg>
							<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
							<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/seqanal</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The date this component was registered.</sci:help>
								<sci:value>Thu Mar 10 12:46:10 2011</sci:value>
							</sci:arg>
							<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>{EC23DB98-971A-49EF-8E9F-5A23D33BE8FB}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>FASTA Sequence  Writer</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>1965 -95</sci:value>
							</sci:arg>
							<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:value>DOCUMENTNODE</sci:value>
							</sci:arg>
							<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The component this component is based upon.</sci:help>
								<sci:value>Plug In</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:value>100</sci:value>
								<sci:value>Writes a FASTA sequence file.</sci:value>
								<sci:value>Creates a flat file entry for each sequence data record. There is a parameter to limit the number of sequences written. There is no fail port.

&lt;strong&gt;See Also:&lt;/strong&gt; &lt;a href=&quot;javascript:DoLink(&apos;sciapps/scitegic/seqanal/docs/seqanal.pdf&apos;)&quot;&gt;Sequence Analysis User Guide&lt;/a&gt;</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>None</sci:value>
								<sci:value/>
								<sci:value>None</sci:value>
								<sci:value/>
							</sci:arg>
							<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The server version when this component was registered</sci:help>
								<sci:value>8.4.5.21</sci:value>
							</sci:arg>
							<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
							<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Local Component Identifier</sci:help>
								<sci:value>3</sci:value>
							</sci:arg>
							<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The original path within the database of this component.</sci:help>
								<sci:value>Components\Biology\Sequence Analysis\Writers\FASTA Sequence Writer</sci:value>
							</sci:arg>
						</sci:component>
					</sci:data>
					<sci:data object="SciTegic.EvaluateExpression.1">
						<sci:component name="Custom Filter (PilotScript)" version="2">
							<sci:arg name="Expression" type="ExpressionType" required="true" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
								<sci:help>The PilotScript expression used to filter the data.</sci:help>
								<sci:member>Initial Expression</sci:member>
								<sci:member>Final Expression</sci:member>
								<sci:member>Keep Calculated Properties</sci:member>
								<sci:value>/* gi|3402063|pdb|1A6V|L */
#status := false;
AccessionNumberFull := accessionNumber;
debugMessage(&quot;accession number before EFetch is &quot; . AccessionNumber);
#hitid := RSPLIT(accessionNumber,&apos;\|&apos;,&apos;g&apos;);
/*keep this */

/* does the accession contain a gi number? */
if(#hitid[1] eq &quot;gi&quot;)then
  primaryID := #hitid[2];
  #status := True;
  debugMessage(&quot;got primary ID &quot; . primaryID . &quot; from accession &quot; . accessionNumber);
else
  debugMessage(&quot;no gi in accession &quot; . accessionNumber);
  /*so need to check if there are 2 fields which we assume is dbname|accessionNumber ... actually 3 is returned for db|accession|
  The EFetch apparently needs plain accessionNumber */
  if(NumValues(#hitid) = (2 or 3))then
	  if(NumValues(#hitid) = 3 and #hitid[1] rlike &quot;pdb&quot;)then
		  accessionNumber := #hitid[2] . &quot;_&quot; . #hitid[3];
		  #status := true;
	  elsif(NumValues(#hitid) = 3 and #hitid[2] eq &quot;&quot;) then /*weird thing like the prf||2007441A I found */
		  accessionNumber := #hitid[3];
		  debugMessage(&quot;WEIRD accession&quot;);
		  #status := true;
	  else
		accessionNumber := #hitid[2];
		#status := true;
	  end if;
  elsif(NumValues(#hitid) = 1)then
	  /*I think we have to assume this is the plain accession number and continue*/
	  #status := true;
  else
	  debugMessage(&quot;number of values in hit ID is &quot; . NumValues(#hitid));
  end if;
end if;
if(#status)then
	debugMessage(&quot;accessionNumber now is &quot; . accessionNumber);
/* sanity check*/
	if( accessionNumber eq &quot;&quot;)then
		#status := false;
	end if;
end if;
#status;
</sci:value>
							</sci:arg>
							<sci:arg name="Initial Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
								<sci:help>An expression evaluated only when the component
is first inialized (when the first data record enters).
  (Since there is no data available at initialization
   time, only expressions referencing global
   properties are allowed.)</sci:help>
							</sci:arg>
							<sci:arg name="Final Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
								<sci:help>An expression evaluated only when the
component is finalized (once the last data
record has passed).
*Since there is no data available at finalization
  time, only expressions referencing global 
  properties are allowed.</sci:help>
							</sci:arg>
							<sci:arg name="Keep Calculated Properties" type="BoolType" required="true" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
								<sci:help>Allows any properties that were calculated in
&quot;Expression&quot; to be included with the exiting
record.
Otherwise, these properties are removed after
the evaluation is complete.</sci:help>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
								<sci:help>Component Attributes</sci:help>
								<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsFail</sci:legalval>
								<sci:legalval>ComponentRunsLocal</sci:legalval>
							</sci:arg>
							<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
							<sci:arg name="ExpressionVersion" type="LongType" required="false" visibility="nevershow" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
								<sci:help>Version of expression parser to use.</sci:help>
								<sci:value>2</sci:value>
							</sci:arg>
							<sci:arg name="ComponentComment" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Comment</sci:help>
								<sci:value>Allows you to filter using the result from a PilotScript expression. The expression you specify is evaluated for each incoming data record, and is evaluated to a True or False value. If multiple statements are present, then the value of the last statement is used.</sci:value>
							</sci:arg>
							<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/core</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The date this component was registered.</sci:help>
								<sci:value>Mon Dec 11 10:20:18 2006</sci:value>
							</sci:arg>
							<sci:arg name="ComponentUsage" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Usage</sci:help>
								<sci:value>The &apos;Expression&apos; is evaluated for each incoming data record.  The last statement in the expression evaluates to a boolean value  (true/false or nonzero/zero) and determines the fate of the data record:  Records which evaluate to &apos;true&apos; are passed out the Pass port; those which evaluate to &apos;false&apos; are passed out the &apos;Fail&apos; port.

Input             - Data records
Output Pass  - Data records which evaluate &apos;true&apos;
Output Fail    - Data records which evaluate &apos;false&apos;</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>set primaryID</sci:value>
							</sci:arg>
							<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:value>FILTERNODE</sci:value>
							</sci:arg>
							<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The component this component is based upon.</sci:help>
								<sci:value>Custom Filter (PilotScript)</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>{DD58ECD1-516F-48FE-A5DB-8328AED680F2}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>90 -275</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:value>100</sci:value>
								<sci:value>Passes data records for which a PilotScript expression evaluates to True

</sci:value>
								<sci:value>&lt;p&gt;For each incoming data record, the PilotScript statements in &lt;i&gt;Expression&lt;/i&gt; are evaluated. If the last statement in the expression evaluates to True or non-zero, the record is sent out the Pass port. Otherwise it is sent out the Fail port.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To initialize global variables such as counters, use &lt;i&gt;Initial Expression&lt;/i&gt;.&lt;/li&gt; 
&lt;li&gt;To clean up global variables or calculate final results use &lt;i&gt;Final Expression&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Parameters on Custom Manipulators do not become global variables that can be accessed via &lt;i&gt;@ParameterName&lt;/i&gt; syntax and can only be accessed by token substitution via &lt;i&gt;$(ParameterName)&lt;/i&gt; syntax.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>Generic</sci:value>
								<sci:value>Data records for which the final expression in the PilotScript evaluates to True or non-zero</sci:value>
								<sci:value>None</sci:value>
								<sci:value>Data records for which the final expression in the PilotScript evaluates to False or zero</sci:value>
							</sci:arg>
							<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
							<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Local Component Identifier</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The original path within the database of this component.</sci:help>
								<sci:value>Components\Data Access and Manipulation\Property Filters\Custom Filter (PilotScript)</sci:value>
							</sci:arg>
						</sci:component>
						<sci:proplist>
							<sci:propval name="RegistrationVersion">6.0.2.0</sci:propval>
						</sci:proplist>
					</sci:data>
					<sci:data object="SciTegic.CountRecords.1">
						<sci:component name="Count and Index Data" version="2">
							<sci:arg name="Counter Property" type="PropertyNameType" required="true" visibility="visible" multi="false">
								<sci:help>&lt;p&gt;The name of the property to hold the data record count. If the name begins with &quot;@&quot;, this is a global property name and is updated each time a data record is received. Otherwise, it is a local property name and a new property by that name will be created on each data record and given the current value (i.e., the count).&lt;/p&gt;

</sci:help>
								<sci:member>Start Index</sci:member>
								<sci:member>Check if Property Already in Use</sci:member>
								<sci:value>@NumIDs</sci:value>
							</sci:arg>
							<sci:arg name="Start Index" type="LongType" required="true" visibility="visible" multi="false">
								<sci:help>The index (i.e., number) used to start the sequence.</sci:help>
								<sci:value>1</sci:value>
							</sci:arg>
							<sci:arg name="Check if Property Already in Use" type="BoolType" required="true" visibility="visible" multi="false">
								<sci:help>Generates an error if the property already exists. This helps prevent overwriting data created by another component. Default is &quot;True&quot;.
</sci:help>
								<sci:legalval selected="true">True</sci:legalval>
								<sci:legalval>False</sci:legalval>
							</sci:arg>
							<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
								<sci:help>Component Attributes</sci:help>
								<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
								<sci:legalval>ComponentReturnsFail</sci:legalval>
								<sci:legalval>ComponentRunsLocal</sci:legalval>
							</sci:arg>
							<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Custom Error Message</sci:help>
							</sci:arg>
							<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/generic</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The date this component was registered.</sci:help>
								<sci:value>Tue Sep 13 07:16:44 2016</sci:value>
							</sci:arg>
							<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>{7BF3D951-BF75-70A2-8B2C-AD8909791909}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>Count and Index Data</sci:value>
							</sci:arg>
							<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:value>COMPONENTNODE</sci:value>
							</sci:arg>
							<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The component this component is based upon.</sci:help>
								<sci:value>Count and Index Data</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>765 -275</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:value>100</sci:value>
								<sci:value>Counts the number of data records and puts the count in a property</sci:value>
								<sci:value>&lt;p&gt;Use this component to create a numerical index of data records and to keep track of the total number of records.  The value of &lt;i&gt;Counter Property&lt;/i&gt; is incremented each time a data record enters the component.&lt;/p&gt;

&lt;p&gt;This component can be used in two modes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If &lt;i&gt;Counter Property&lt;/i&gt; is the name of a local property (does not start with &quot;@&quot;), a new property by that name is created on each data record and given the value of the current count.&lt;/li&gt;
&lt;li&gt;If &lt;i&gt;Counter Property&lt;/i&gt; is the name of a global property (starts with &quot;@&quot;), then each data record that passes through causes this global record count to be incremented, but values are not added to the passing records.&lt;/li&gt;
&lt;/ul&gt;</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>None</sci:value>
								<sci:value/>
							</sci:arg>
							<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The server version when this component was registered</sci:help>
								<sci:value>17.1.0.119</sci:value>
							</sci:arg>
							<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
							<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Local Component Identifier</sci:help>
								<sci:value>15</sci:value>
							</sci:arg>
							<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The original path within the database of this component.</sci:help>
								<sci:value>Components\Data Access and Manipulation\Data Manipulators\Count and Index Data</sci:value>
							</sci:arg>
						</sci:component>
					</sci:data>
					<sci:data object="SciTegic.Protocol.1">
						<sci:component name="Entrez EFetch" version="2">
							<sci:arg name="Database" type="StringType" required="true" visibility="visible" multi="false" uimpl="false">
								<sci:help>Select an Entrez database for the input primary ID:
&lt;ul&gt;
&lt;li&gt;By database property: uses the input database property.&lt;/li&gt;
&lt;li&gt;PubMed: biomedical literature citations and abstracts.&lt;/li&gt;
&lt;li&gt;PubMed Central: free, full text journal articles.&lt;/li&gt;
&lt;li&gt;OMIM: online Mendelian inheritance in man.&lt;/li&gt;
&lt;li&gt;Nucleotide: full nucleotide sequence records.&lt;/li&gt;
&lt;li&gt;Core Nucleotide: core subset of nucleotide sequence records.&lt;/li&gt;
&lt;li&gt;EST: expressed sequence tag records.&lt;/li&gt;
&lt;li&gt;GSS: genome survey sequence records.&lt;/li&gt;
&lt;li&gt;Protein: sequence database.&lt;/li&gt;
&lt;li&gt;Taxonomy: organisms in GenBank.&lt;/li&gt;
&lt;li&gt;SNP: single nucleotide polymorphism.&lt;/li&gt;
&lt;li&gt;Gene: gene-centered information.&lt;/li&gt;
&lt;li&gt;PopSet: population study data sets.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;p&gt;
&lt;b&gt;See Also: &lt;/b&gt;&lt;a href=&quot;javascript:DoLink(&apos;http://www.ncbi.nlm.nih.gov/sites/gquery&apos;)&quot;&gt;Entrez search page&lt;/a&gt; for detailed database information.</sci:help>
								<sci:member>Keep PubMed Abstract HTML Tags</sci:member>
								<sci:legalval>By database property</sci:legalval>
								<sci:legalval>PubMed</sci:legalval>
								<sci:legalval>PubMed Central</sci:legalval>
								<sci:legalval>OMIM</sci:legalval>
								<sci:legalval>Nucleotide</sci:legalval>
								<sci:legalval>Core Nucleotide</sci:legalval>
								<sci:legalval>EST</sci:legalval>
								<sci:legalval>GSS</sci:legalval>
								<sci:legalval selected="true">Protein</sci:legalval>
								<sci:legalval>Taxonomy</sci:legalval>
								<sci:legalval>SNP</sci:legalval>
								<sci:legalval>Gene</sci:legalval>
								<sci:legalval>PopSet</sci:legalval>
							</sci:arg>
							<sci:arg name="Batch Size" type="LongType" required="true" visibility="visible" multi="false">
								<sci:help>&lt;p&gt;To not overload NCBI&apos;s systems, database accesses are grouped together in batch requests. Specify the maximum number of primary IDs of each batch request. An exception is &lt;b&gt;PopSet&lt;/b&gt;, its Batch Size is always set to 1 internally. Note that accesses to different databases are grouped separately, also there are 3 seconds delay between requests.  </sci:help>
								<sci:validscript>SetInvalidDetails(
ParameterName() . &apos; must be larger than zero&apos;);
Parameter() &gt; 0;</sci:validscript>
								<sci:value>500</sci:value>
							</sci:arg>
							<sci:arg name="Read Features" type="BoolType" required="false" visibility="visible" multi="false">
								<sci:help>Read the features and annotations or just the sequence data, description, and accession number for &lt;b&gt;EST&lt;/b&gt;, &lt;b&gt;GSS&lt;/b&gt;, &lt;b&gt;Nucleotide&lt;/b&gt;, &lt;b&gt;Core Nucleotide&lt;/b&gt;, or &lt;b&gt;Protein&lt;/b&gt; databases.
</sci:help>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="NCBI Account" type="GroupType" required="false" visibility="visible" multi="false" legalvalsenforced="false">
								<sci:help>Use your NCBI account for high-frequency E-utilities requests.</sci:help>
								<sci:member>NCBI Account API Key</sci:member>
								<sci:member>NCBI Account Tool</sci:member>
								<sci:member>NCBI Account Email</sci:member>
							</sci:arg>
							<sci:arg name="NCBI Account API Key" type="xpass" encrypt="bf_1" required="false" visibility="visible" multi="false" legalvalsenforced="false">
								<sci:help>The API key of your NCBI account.</sci:help>
							</sci:arg>
							<sci:arg name="NCBI Account Tool" type="StringType" required="false" visibility="visible" multi="false">
								<sci:help>Specifies the software that is producing the request.</sci:help>
							</sci:arg>
							<sci:arg name="NCBI Account Email" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
								<sci:help>The email of your NCBI account.</sci:help>
							</sci:arg>
							<sci:arg name="Tempfiles" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
								<sci:help>&lt;/p&gt;A comma delimited list of global properties, each of which will automatically hold the name of a file in the job&apos;s temporary folder, whose name is guaranteed to be unique.&lt;p/&gt;For each global name, an additional global is created (with the suffix &lt;i&gt;_Filename&lt;/i&gt;) that hold just the leaf file name of the temporary file.&lt;p/&gt;</sci:help>
							</sci:arg>
							<sci:arg name="DeclareLocal" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
								<sci:help>&lt;p&gt;Lists a set of properties (without the @) to create on the global property list for this subprotocol. Such properties can only be accessed within the scope of this subprotocol and its descendent subprotocols.&lt;p/&gt;Any global property not declared in this way is created on the top level global property list and is accessible from all protocols, but may collide with another property of the same name.&lt;p/&gt;Scoping global properties to the subprotocol where they are used is highly recommended.&lt;/p&gt;</sci:help>
							</sci:arg>
							<sci:arg name="RunToCompletion" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
								<sci:help>When RunToCompletion is set to True, the subprotocol is re-initialized and executed in its entirety for each record it processes.</sci:help>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="Parallel Processing Options" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
								<sci:help>&lt;p&gt;
When set to True, this set of options allow the subprotocol to execute in parallel on one or more independent Pipeline Pilot servers, running local or remote.  Additional parameters control the number of data records to send in each process batch, the list of Pipeline Pilot servers to use, the number of protocol processes that can be executed on each server, and whether to preserve the order of the processed data records.
&lt;/p&gt;&lt;p&gt;
Use this option judiciously, since it will not increase throughput in all circumstances. In general, it will yield improved performance when the parallelization benefits outweigh the data transfer overhead for the specified batch size.  As a rough guide, performance can be improved when each individual batch requires at least 10 seconds to execute, although this can be affected by the size of each data record.
&lt;/p&gt;&lt;p&gt;
When running the protocol with debugging, the subprotocol will provide debugging messages to detail each of the various steps of execution.  Also, components located within the parallel subprotocol will display their debugging messages as well.
&lt;/p&gt;&lt;p&gt;
For more information on the parallel subprotocol options, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/subprots/subprot_parallel_processing.htm&apos;)&quot;&gt;Parallel Processing Subprotocols&lt;/a&gt;.
&lt;/p&gt;
</sci:help>
								<sci:member>Parallel Processing Options Batch Size</sci:member>
								<sci:member>Parallel Processing Options Server</sci:member>
								<sci:member>Parallel Processing Options Preserve Order</sci:member>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="Parallel Processing Options Batch Size" type="LongType" required="true" visibility="visible" multi="false" uimpl="true">
								<sci:help>The number of records to send to the remote server(s) for each subprotocol execution.  In general, performance is optimized when the amount of time required to process each batch is at least 10 seconds (note that this can vary depending on the characteristics of the remote server&apos;s hardware).  Use a batch size of -1 to pass all data in a single batch.</sci:help>
								<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
								<sci:value>25</sci:value>
							</sci:arg>
							<sci:arg name="Parallel Processing Options Server" type="StringType" required="false" visibility="visible" multi="true" expanded="true" legalvalsenforced="false" uimpl="true">
								<sci:help>&lt;p&gt;
Comma separated list of Pipeline Pilot servers on which to execute the parallel subprotocol.  The server names should be in the same format as the Pipeline Pilot Client&apos;s change server dialog (server-name:port-number).
&lt;/p&gt;&lt;p&gt;
Specifying &lt;b&gt;localhost&lt;/b&gt; as a server will cause the subprotocol to use its own Pipeline Pilot server.  This can be helpful on multi-CPU/multi-core systems (where the subprotocol jobs are spawned on the same machine) and Pipeline Pilot Linux clusters (where &apos;localhost&apos; requests spawning the subprotocol jobs on the same cluster).
&lt;/p&gt;</sci:help>
								<sci:member>Parallel Processing Options Server Processes</sci:member>
								<sci:validscript>SetInvalidDetails(&apos;This parameter is required.&apos;);
Parameter() ne &apos;&apos;;</sci:validscript>
								<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
							</sci:arg>
							<sci:arg name="Parallel Processing Options Server Processes" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
								<sci:help>Comma separated list of maximum number of batches that can be simultaneously executed on each remote server.  The number of entries in this parameter must equal the number of servers. If &apos;*&apos; is specified as the number of processes, then that server will only launch as many batches as the administrator of the remote server has permitted.</sci:help>
								<sci:validscript>/* Server Processes must have the same number of comma separated entries as the Server parameter and must have a value*/
#processes := parameter();
expand(&apos;,&apos;, #processes);
#servers := parameter(&apos;Parallel Processing Options Server&apos;);
expand(&apos;,&apos;, #servers);

if (numvalues(#processes) == 0) then
	SetInvalidDetails(&apos;This parameter is required.&apos;);
else
	SetInvalidDetails(&apos;The number of server processes (&apos; . numvalues(#processes) . &apos;) must equal the number of servers (&apos; . numvalues(#servers) . &apos;).&apos;);
end if;
numvalues(#processes) &gt; 0 and numvalues(#processes) == numvalues(#servers);</sci:validscript>
								<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
							</sci:arg>
							<sci:arg name="Parallel Processing Options Preserve Order" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
								<sci:help>Whether to preserve the order of the data as it enters and leaves the remote subprotocol.</sci:help>
								<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
								<sci:legalval selected="true">True</sci:legalval>
								<sci:legalval>False</sci:legalval>
							</sci:arg>
							<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
								<sci:help>Component Attributes</sci:help>
								<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsFail</sci:legalval>
								<sci:legalval>ComponentRunsLocal</sci:legalval>
							</sci:arg>
							<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
							<sci:arg name="Keep PubMed Abstract HTML Tags" type="BoolType" required="false" visibility="visible" multi="false" legalvalsenforced="false">
								<sci:help>For &lt;b&gt;PubMed&lt;/b&gt; database, the abstract field may contain HTML tags like &amp;lt;i&amp;gt; or &amp;lt;sup&amp;gt;. Set this value to True, if you want to keep these tags.</sci:help>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>Entrez EFetch</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolAutoLayout" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol AutoLayout</sci:help>
								<sci:value>1</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:value>JOINNODE</sci:value>
							</sci:arg>
							<sci:arg name="ComponentRevision" type="LongType" required="true" visibility="nevershow" multi="false">
								<sci:help>Component Revision</sci:help>
								<sci:value>100</sci:value>
							</sci:arg>
							<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The component this component is based upon.</sci:help>
								<sci:value>SubProtocol</sci:value>
							</sci:arg>
							<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>{9579C91D-05FA-4C2F-9D84-125CCB6B9542}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>1065 -275</sci:value>
							</sci:arg>
							<sci:arg name="ByReference" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>By Ref</sci:help>
								<sci:value>1</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:value>100</sci:value>
								<sci:value>Retreives a record from Entrez databases</sci:value>
								<sci:value>&lt;p&gt;
Uses the Entrez EFetch utility to retrieve the Entrez database  record from &lt;i&gt;primaryID&lt;/i&gt; of the input data record. The primaryID must be used in conjunction with a database. If the input data record has the information in its &lt;i&gt;database&lt;/i&gt; property, set &lt;i&gt;Database&lt;/i&gt; to &lt;b&gt;By database property&lt;/b&gt;. Otherwise, select a suitable database. If the &lt;i&gt;database&lt;/i&gt; property is present but not equal to the &lt;i&gt;Database&lt;/i&gt; parameter, the input data record is sent out the Fail port. 
&lt;/p&gt;
&lt;p&gt;The results are processed differently for different databases. For &lt;b&gt;Nucleotide&lt;/b&gt;, &lt;b&gt;Core Nucleotide&lt;/b&gt;, &lt;b&gt;Protein&lt;/b&gt;, &lt;b&gt;EST&lt;/b&gt;, and &lt;b&gt;GSS&lt;/b&gt;, the database record
is fetched in GenBank format, then loaded by &lt;a href=&quot;javascript:DoLink(&apos;{034F926A-9B95-45D9-957C-68A2632FDE3A}&apos;)&quot;&gt;GenBank Sequence Reader&lt;/a&gt; and merged into the input data record. The type of the output data record is set to &lt;b&gt;SciTegic.Sequence&lt;/b&gt;.
&lt;/p&gt;
&lt;p&gt;
If the input data record has no GI number in its &lt;i&gt;primaryID&lt;/i&gt;, its &lt;i&gt;accessionNumber&lt;/i&gt; will be used as the identifier to fetch the record from NCBI.
&lt;/p&gt;
&lt;p&gt;
For other databases, the database record is fetched in XML format, then loaded by &lt;a href=&quot;javascript:DoLink(&apos;{93C4D73F-0B4D-03F4-B0E3-D82C4FE04C6F}&apos;)&quot;&gt;XML Reader (Generic)&lt;/a&gt; and merged into the input data record, with major information parsed and provided in top-level properties.
&lt;/p&gt;
&lt;p&gt;A partial nucleotide sequence can be fetched by specify &lt;i&gt;StartBaseNumber&lt;/i&gt; and &lt;i&gt;StopBaseNumber&lt;/i&gt; in the input data record. Also specify the input &lt;i&gt;Strand&lt;/i&gt; property as &lt;b&gt;Plus&lt;/b&gt; or &lt;b&gt;Minus&lt;/b&gt; to fetch the desired strand.
&lt;/p&gt;
&lt;b&gt;See Also:&lt;/b&gt; &lt;a href=&quot;javascript:DoLink(&apos;http://www.ncbi.nlm.nih.gov/entrez/query/static/efetch_help.html&apos;)&quot;&gt;NCBI EFetch utility help&lt;/a&gt;
&lt;p&gt;
</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>Generic</sci:value>
								<sci:value>Records passing out of any unconnected pass ports of components inside the subprotocol</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value>Records passing out of any unconnected fail ports of components inside the subprotocol</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The server version when this component was registered</sci:help>
								<sci:value>20.1.0.2156</sci:value>
							</sci:arg>
							<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
							<sci:arg name="Protocol Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Sticky Notes</sci:help>
							</sci:arg>
							<sci:arg name="ProtocolScale2" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Scale</sci:help>
								<sci:value>100</sci:value>
							</sci:arg>
							<sci:arg name="Protocol Options" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Options</sci:help>
								<sci:legalval>Make Shortcut by Default</sci:legalval>
								<sci:legalval>Owner Access Only</sci:legalval>
							</sci:arg>
							<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/seqanal</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The date this component was registered.</sci:help>
								<sci:value>Wed Sep 11 11:00:44 2019</sci:value>
							</sci:arg>
							<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Local Component Identifier</sci:help>
								<sci:value>1</sci:value>
							</sci:arg>
							<sci:arg name="SubProtocolMadeLinkIntoCopy" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>Subprotocol Made Link Into Copy</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentComment" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Comment</sci:help>
								<sci:value>Defines a subprotocol in a pipeline. When you are creating a pipeline that requires a subprotocol as a component, drag this component into the pipeline, open it, and add components to it.</sci:value>
							</sci:arg>
							<sci:arg name="ComponentUsage" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Usage</sci:help>
								<sci:value>When you are creating a pipeline which requires a subprotocol as 
a component, you can drag this SubProtocol component into the 
pipeline, open it, and add components into it.</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolShowComment" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol ShowComment</sci:help>
								<sci:value>true</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolComment" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Add Protocol Comment Here</sci:help>
								<sci:value>Add Protocol Comment Here</sci:value>
							</sci:arg>
							<sci:arg name="SubProtocolModified" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>Subprotocol Modified</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The original path within the database of this component.</sci:help>
								<sci:value>Components\Biology\Sequence Analysis\Database Query\Entrez\Entrez EFetch</sci:value>
							</sci:arg>
						</sci:component>
						<sci:protocol/>
					</sci:data>
					<sci:data object="SciTegic.Protocol.1">
						<sci:component name="Subprotocol" version="2">
							<sci:arg name="RunToCompletion" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
								<sci:help>When &lt;i&gt;RunToCompletion&lt;/i&gt; is set to &quot;True - For Each Data Record&quot;, the subprotocol is re-initialized and executed in its entirety for each individual data record it processes.
&lt;p&gt;
When set to &quot;True - For Each Category&quot;, the data records are divided into categories based on the value of the Categorize Using parameter and then the subprotocol is re-initialized and executed in its entirety for each category of data records. When used in conjunction with &lt;i&gt;Parallel Processing Options&lt;/i&gt;, each category of data records will be sent to the remote server as part of one single batch.</sci:help>
								<sci:member>RunToCompletion Categorize Using</sci:member>
								<sci:legalval>False</sci:legalval>
								<sci:legalval selected="true">True - For Each Data Record</sci:legalval>
								<sci:legalval>True - For Each Category</sci:legalval>
							</sci:arg>
							<sci:arg name="RunToCompletion Categorize Using" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
								<sci:help>Required when RunToCompletion is set to &lt;i&gt;True - For Each Category&lt;/i&gt;, this parameter specifies the property or properties used to define the categories.</sci:help>
								<sci:validscript>SetInvalidDetails(&apos;This parameter is required when RunToCompletion is set to True - For Each Category&apos;);
Parameter() ne &apos;&apos;;</sci:validscript>
								<sci:enabledscript>SetDisabledDetails(&apos;To Enable, Set RunToCompletion to True - For Each Category&apos;);
Parameter(&apos;RunToCompletion&apos;) eq &apos;True - For Each Category&apos;;</sci:enabledscript>
							</sci:arg>
							<sci:arg name="Parallel Processing Options" type="BoolType" required="false" visibility="visible" multi="false" uimpl="false">
								<sci:help>&lt;p&gt;
When set to True, this set of options allows the subprotocol to execute in parallel on one or more independent Pipeline Pilot servers, running locally or remotely.  Additional parameters control the number of data records to send in each process batch, the list of Pipeline Pilot servers to use, the number of protocol processes that can be executed on each server, and whether to preserve the order of the processed data records.
&lt;/p&gt;&lt;p&gt;
Use this option with care, since it will not increase throughput in all circumstances. Generally speaking, it yields improved performance when the parallelization benefits outweigh the data transfer overhead for the specified batch size.  As a rough guide, performance can be improved when each individual batch requires at least 10 seconds to execute, although this can be affected by the size of each data record.
&lt;/p&gt;&lt;p&gt;
When running the protocol with debugging, the subprotocol will provide debugging messages to detail each of the various steps of execution.  Also, components located within the parallel subprotocol will display their debugging messages as well.
&lt;/p&gt;&lt;p&gt;
For more information on the parallel subprotocol options, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/subprots/subprot_parallel_processing.htm&apos;)&quot;&gt;Parallel Processing Subprotocols&lt;/a&gt;.
&lt;/p&gt;
</sci:help>
								<sci:member>Parallel Processing Options Batch Size</sci:member>
								<sci:member>Parallel Processing Options Server</sci:member>
								<sci:member>Parallel Processing Options Preserve Order</sci:member>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="Parallel Processing Options Batch Size" type="LongType" required="true" visibility="visible" multi="false" uimpl="false">
								<sci:help>&lt;p&gt;The number of records to send to the remote server(s) for each subprotocol execution.  In general, performance is optimized when the amount of time required to process each batch is at least 10 seconds (note that this can vary depending on the characteristics of the remote server&apos;s hardware).  Use a batch size of -1 to pass all data in a single batch.&lt;/p&gt;
&lt;p&gt;When &lt;i&gt;RunToCompletion&lt;/i&gt; is set to &quot;True - for each category&quot;, the batch sizes will be determined by the number of records in each individual category.  Therefore, the &lt;i&gt;Batch Size&lt;/i&gt; parameter is not applicable.</sci:help>
								<sci:enabledscript>#parallel := Parameter(&apos;Parallel Processing Options&apos;);
if (not #parallel) then
	SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
end if;
#parallel;</sci:enabledscript>
							</sci:arg>
							<sci:arg name="Parallel Processing Options Server" type="StringType" required="false" visibility="visible" multi="true" expanded="true" legalvalsenforced="false" uimpl="false">
								<sci:help>&lt;p&gt;
A comma-separated list of Pipeline Pilot servers on which to execute the parallel subprotocol.  The server names should be in the same format as the Pipeline Pilot Client&apos;s change server dialog (that is, server-name:port-number).
&lt;/p&gt;&lt;p&gt;
Specifying &lt;b&gt;localhost&lt;/b&gt; as a server will cause the subprotocol to use its own Pipeline Pilot server.  This can be useful on multi-CPU/multi-core systems (where the subprotocol jobs are spawned on the same machine) and Pipeline Pilot Linux clusters (where &apos;localhost&apos; requests spawning the subprotocol jobs on the same cluster).
&lt;/p&gt;</sci:help>
								<sci:member>Parallel Processing Options Server Processes</sci:member>
								<sci:member>Parallel Processing Options Server Run On Grid</sci:member>
								<sci:validscript>SetInvalidDetails(&apos;This parameter is required.&apos;);
Parameter() ne &apos;&apos;;</sci:validscript>
								<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
							</sci:arg>
							<sci:arg name="Parallel Processing Options Server Processes" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
								<sci:help>A comma-separated list of the maximum number of batches that can be simultaneously executed on each remote server.  The number of entries in this parameter must equal the number of servers. If &apos;*&apos; is specified as the number of processes, then that server will only launch as many batches as the administrator of the remote server has permitted.&lt;/br&gt;&lt;/br&gt;For non-Grid Engine job, the number of jobs will be limited to the value for the maximum number of simultaneous subprotocol jobs as defined in the Admin Console even if this value is higher than the value entered here or &apos;*&apos;.&lt;/br&gt;&lt;/br&gt;For Grid Engine jobs, the number of jobs will be limited to the value for the maximum number of simultaneous subprotocol grid jobs as defined in the Admin Console even if this value is higher than the value entered here or &apos;*&apos;.&lt;/br&gt;&lt;/br&gt;</sci:help>
								<sci:validscript>/* Server Processes must have the same number of comma separated entries as the Server parameter and must have a value*/
#processes := parameter();
expand(&apos;,&apos;, #processes);
#servers := parameter(&apos;Parallel Processing Options Server&apos;);
expand(&apos;,&apos;, #servers);

if (numvalues(#processes) == 0) then
	SetInvalidDetails(&apos;This parameter is required.&apos;);
else
	SetInvalidDetails(&apos;The number of server processes (&apos; . numvalues(#processes) . &apos;) must equal the number of servers (&apos; . numvalues(#servers) . &apos;).&apos;);
end if;
numvalues(#processes) &gt; 0 and numvalues(#processes) == numvalues(#servers);</sci:validscript>
								<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
							</sci:arg>
							<sci:arg name="Parallel Processing Options Server Run On Grid" type="BoolType" required="false" visibility="visible" multi="false" uimpl="false">
								<sci:help>Run subprotocol on grid engine if available.  Note: If no grid engine is configured the subprotocol will still run even if this parameter is set to true.</sci:help>
								<sci:member>Parallel Processing Options Server Run On Grid Queue Name</sci:member>
								<sci:member>Parallel Processing Options Server Run On Grid Grid Options</sci:member>
								<sci:enabledscript>parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
								<sci:legalval selected="true">True</sci:legalval>
								<sci:legalval>False</sci:legalval>
							</sci:arg>
							<sci:arg name="Parallel Processing Options Server Run On Grid Queue Name" type="StringType" required="false" visibility="visible" multi="false" legalvalsenforced="false" uimpl="false">
								<sci:help>Select the queue name on the grid to submit jobs to. Leave blank to use default queue name.</sci:help>
								<sci:enabledscript>parameter(&apos;Parallel Processing Options Server Run On Grid&apos;);</sci:enabledscript>
							</sci:arg>
							<sci:arg name="Parallel Processing Options Server Run On Grid Grid Options" type="StringType" required="false" visibility="visible" multi="true" uimpl="false">
								<sci:help>&lt;p&gt;This is an array of command line options to send to the Grid engine submit command.&lt;/p&gt;
&lt;p&gt;If you just include one line, whatever you enter will be sent &quot;as is&quot; to the submission command.&lt;/p&gt;
&lt;/br&gt;
&lt;b&gt;Example - Just sending options directly to command line - PBS&lt;/b&gt;
&lt;p&gt;-l procs=16 -l walltime=08:00:00 -A PROJECTID&lt;/p&gt;
&lt;/br&gt;
&lt;p&gt;There are a number of parameters that Pipeline Pilot will translate to the correct command line options for whichever supported Grid Engine you are using.&lt;/p&gt;
&lt;/br&gt;
&lt;b&gt;Example - Supported parameters&lt;/b&gt;
&lt;p&gt;Account=&amp;lt;Project/Account name&amp;gt;&lt;/p&gt;
&lt;p&gt;Maximum Execution Time=&amp;lt;HH:MM:SS&amp;gt; hours, minutes, seconds - LSF ignores seconds&lt;/p&gt;
&lt;p&gt;Number of Cores=&amp;lt;16&amp;gt;&lt;/p&gt;
&lt;p&gt;Parallel Environment=&amp;lt;The Parallel Environment to use&amp;gt; - Only needed for SGE&lt;/p&gt;
&lt;p&gt;Other=&amp;lt;Additional Parameters sent directly to submit command line&amp;gt;&lt;/p&gt;
&lt;/br&gt;
&lt;p&gt;Any of these options can be commented out by placing a # in front of them.&lt;/p&gt;
&lt;/br&gt;
					</sci:help>
								<sci:enabledscript>parameter(&apos;Parallel Processing Options Server Run On Grid&apos;);</sci:enabledscript>
								<sci:value>Account=</sci:value>
								<sci:value>Maximum Execution Time=</sci:value>
								<sci:value>Parallel Environment=</sci:value>
								<sci:value>Number of Cores=</sci:value>
								<sci:value>Other=</sci:value>
							</sci:arg>
							<sci:arg name="Parallel Processing Options Preserve Order" type="BoolType" required="false" visibility="visible" multi="false" uimpl="false">
								<sci:help>Whether to preserve the order of the data as it enters and leaves the remote subprotocol.</sci:help>
								<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
								<sci:legalval selected="true">True</sci:legalval>
								<sci:legalval>False</sci:legalval>
							</sci:arg>
							<sci:arg name="Tempfiles" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
								<sci:help>&lt;p&gt;A comma-delimited list of global properties, each of which is automatically populated with the name of a file in the job&apos;s temporary folder, which always has a unique name.&lt;p/&gt;For each global name, an additional global is created (with the suffix &lt;i&gt;_Filename&lt;/i&gt;) that hold only the leaf file name of the temporary file.&lt;/p&gt;</sci:help>
							</sci:arg>
							<sci:arg name="DeclareLocal" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
								<sci:help>&lt;p&gt;Lists a set of properties (without the @) to create on the global property list for this subprotocol. Separate property names with commas. Such properties can only be accessed within the scope of this subprotocol and its descendent subprotocols.&lt;p/&gt;

&lt;p&gt;Any global property not declared in this way is created on the top-level global property list and is accessible from all subprotocols, but breaks the encapsulation of the subprotocol and may collide with another property of the same name.&lt;/p&gt;

&lt;p&gt;Therefore, you should always declare a new global property in the &lt;i&gt;DeclareLocal&lt;/i&gt; parameter, to minimize the scope of the global property to the subprotocol where it is used.&lt;/p&gt;

&lt;p&gt;The example &lt;i&gt;DeclareLocal&lt;/i&gt; value below creates 3 global properties in the subprotocol scope. Note that you can initialize the declared global value with a scalar value using the &quot;:=&quot; syntax, as shown. You can surround text string values with quotes to aid clarity.&lt;/p&gt;
&lt;pre&gt;
    SubP_Counter := 0, SubP_NameHash, SubP_TitleText:=&quot;Sample 1&quot;
&lt;/pre&gt;
</sci:help>
								<sci:value>warning</sci:value>
							</sci:arg>
							<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
								<sci:help>Component Attributes</sci:help>
								<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
								<sci:legalval>ComponentReturnsFail</sci:legalval>
								<sci:legalval>ComponentRunsLocal</sci:legalval>
							</sci:arg>
							<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Custom Error Message</sci:help>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>no gi, use efetch to get from accession</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolAutoLayout" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol AutoLayout</sci:help>
								<sci:value>1</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:value>SUBPROTOCOLNODE</sci:value>
							</sci:arg>
							<sci:arg name="ComponentRevision" type="LongType" required="true" visibility="nevershow" multi="false">
								<sci:help>Component Revision</sci:help>
								<sci:value>790</sci:value>
							</sci:arg>
							<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>{17001C74-63CE-4B4B-B37C-F0EAA19CE4AA}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>465 -455</sci:value>
							</sci:arg>
							<sci:arg name="ByReference" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>By Ref</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:value>100</sci:value>
								<sci:value>Builds subprotocols in Pipeline Pilot.</sci:value>
								<sci:value>&lt;p&gt;
Use a subprotocol to collapse one or more components into a single item. Open 
a subprotocol to view or edit its contents. 
&lt;/p&gt;&lt;p&gt;
To define input and output ports, display 
icon, and parameter settings, right-click and select Edit. You can save subprotocols and reuse them. 
For more information, see the User Guide help for &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/subprots/subprot_overview.htm&apos;)&quot;&gt;Subprotocols 
Overview&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;
For more information on the parallel subprotocol options, see 
&lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/subprots/subprot_parallel_processing.htm&apos;)&quot;&gt;Parallel 
Processing Subprotocols&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;
Tip: Any component can be made into a shortcut, 
so that the latest version is always used. For more information, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/subprots/shortcuts.htm&apos;)&quot;&gt;Creating 
Shortcuts&lt;/a&gt;.
&lt;/p&gt;</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>Generic</sci:value>
								<sci:value>Records passing out of any unconnected pass ports of components inside the subprotocol</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value>Records passing out of any unconnected fail ports of components inside the subprotocol</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The server version when this component was registered</sci:help>
								<sci:value>17.2.0.1267</sci:value>
							</sci:arg>
							<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>%VERSION 3%</sci:value>
								<sci:value>1503 -629 652 264</sci:value>
								<sci:value>255 255 0</sci:value>
								<sci:value>This shouldn&apos;t be needed but leave in place as a backstop in case the accession doesn&apos;t conform to expectations.</sci:value>
							</sci:arg>
							<sci:arg name="Protocol Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Sticky Notes</sci:help>
							</sci:arg>
							<sci:arg name="ProtocolScale2" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Scale</sci:help>
								<sci:value>100</sci:value>
							</sci:arg>
							<sci:arg name="Protocol Options" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Options</sci:help>
								<sci:legalval>Owner Access Only</sci:legalval>
							</sci:arg>
							<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/coreutils</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The date this component was registered.</sci:help>
								<sci:value>Thu Sep 15 15:57:54 2016</sci:value>
							</sci:arg>
							<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Local Component Identifier</sci:help>
								<sci:value>5</sci:value>
							</sci:arg>
							<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The original path within the database of this component.</sci:help>
								<sci:value>Components\Data Access and Manipulation\Utilities\Subprotocol Utilities\Subprotocol</sci:value>
							</sci:arg>
						</sci:component>
						<sci:protocol>
							<sci:data object="SciTegic.Protocol.1">
								<sci:component name="Entrez ESearch for Each Data" version="2">
									<sci:arg name="Entrez Query Property" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
										<sci:help>&lt;p&gt;The name of the property in the data record holding the text query.&lt;/p&gt;</sci:help>
										<sci:value>accessionNumber</sci:value>
									</sci:arg>
									<sci:arg name="Database" type="StringType" required="true" visibility="visible" multi="false" expanded="true">
										<sci:help>Select a Entrez database to search:
&lt;ul&gt;
&lt;li&gt;Assembly: Genome assembly.&lt;/li&gt;
&lt;li&gt;BioProject: a collection of biological data related to a single initiative, originating from a single organization or from a consortium.&lt;/li&gt;
&lt;li&gt;BioSample: biological source materials used in experimental assays.&lt;/li&gt;
&lt;li&gt;BioSystems: biological systems database.&lt;/li&gt;
&lt;li&gt;BLAST Database: information for BLAST databases.&lt;/li&gt;
&lt;li&gt;Books: online books.&lt;/li&gt;
&lt;li&gt;ClinVar: information about genomic variation and its relationship to human health.&lt;/li&gt;&lt;li&gt;Clone: a database that integrates information about clones and libraries, including sequence data, map positions and distributor information.&lt;/li&gt;
&lt;li&gt;Conserved Domains: conserved protein domain database.&lt;/li&gt;
&lt;li&gt;Core Nucleotide: core subset of nucleotide sequence records.&lt;/li&gt;
&lt;li&gt;dbGaP: genotype and phenotype.&lt;/li&gt;
&lt;li&gt;EST: expressed sequence tag records.&lt;/li&gt;
&lt;li&gt;Gene: gene-centered information.&lt;/li&gt;
&lt;li&gt;Genome: whole genome sequences.&lt;/li&gt;
&lt;li&gt;GEO Profiles: expression and molecular abundance profiles.&lt;/li&gt;
&lt;li&gt;GEO DataSets: experimental sets of GEO data.&lt;/li&gt;
&lt;li&gt;GSS: genome survey sequence records.&lt;/li&gt;
&lt;li&gt;GTR: a central location for voluntary submission of genetic test information by providers.&lt;/li&gt;
&lt;li&gt;HomoloGene: eukaryotic homology groups.&lt;/li&gt;
&lt;li&gt;MedGen: organized information related to human medical genetics, such as attributes of conditions with a genetic contribution.&lt;/li&gt;
&lt;li&gt;MeSH: detailed information about NLM&apos;s controlled vocabulary.&lt;/li&gt;
&lt;li&gt;NCBI Web Site: NCBI site and ftp search.&lt;/li&gt;
&lt;li&gt;NLM Catalog: catalog of books, journals, and audiovisuals in the NLM collections.&lt;/li&gt;
&lt;li&gt;Nucleotide: full nucleotide sequence records.&lt;/li&gt;
&lt;li&gt;OMIM: online Mendelian inheritance in man.&lt;/li&gt;
&lt;li&gt;PopSet: population study data sets.&lt;/li&gt;
&lt;li&gt;Probe: sequence-specific reagents.&lt;/li&gt;
&lt;li&gt;Protein: sequence database.&lt;/li&gt;
&lt;li&gt;Protein Clusters: a collection of related protein sequences.&lt;/li&gt;
&lt;li&gt;PubChem BioAssay: bioactivity screens of chemical substances.&lt;/li&gt;
&lt;li&gt;PubChem Compound: unique small molecule chemical structures.&lt;/li&gt;
&lt;li&gt;PubChem Substance: deposited chemical substance records.&lt;/li&gt;
&lt;li&gt;PubMed: biomedical literature citations and abstracts.&lt;/li&gt;
&lt;li&gt;PubMed Central: free, full text journal articles.&lt;/li&gt;
&lt;li&gt;PubMed Health: specialized in clinical effectiveness research.&lt;/li&gt;
&lt;li&gt;SNP: single nucleotide polymorphism.&lt;/li&gt;
&lt;li&gt;Sparcle: Subfamily Protein Architecture Labeling Engine.&lt;/li&gt;
&lt;li&gt;SRA: next generation sequencing data.&lt;/li&gt;
&lt;li&gt;Structure: three-dimensional macromolecular structures.&lt;/li&gt;
&lt;li&gt;Taxonomy: organisms in GenBank.&lt;/li&gt;
&lt;li&gt;UniGene: gene-oriented clusters of transcript sequences.&lt;/li&gt;


&lt;/ul&gt;
&lt;p&gt;
&lt;p&gt;
&lt;b&gt;See Also:&lt;/b&gt; &lt;a href=&quot;javascript:DoLink(&apos;http://www.ncbi.nlm.nih.gov/sites/gquery&apos;)&quot;&gt;Entrez search page&lt;/a&gt; for detailed database information.</sci:help>
										<sci:member>ID Type</sci:member>
										<sci:legalval/>
										<sci:legalval>Assembly</sci:legalval>
										<sci:legalval>BioProject</sci:legalval>
										<sci:legalval>BioSample</sci:legalval>
										<sci:legalval>BioSystems</sci:legalval>
										<sci:legalval>BLAST Database</sci:legalval>
										<sci:legalval>Books</sci:legalval>
										<sci:legalval>ClinVar</sci:legalval>
										<sci:legalval>Clone</sci:legalval>
										<sci:legalval>Conserved Domains</sci:legalval>
										<sci:legalval>Core Nucleotide</sci:legalval>
										<sci:legalval>dbGaP</sci:legalval>
										<sci:legalval>EST</sci:legalval>
										<sci:legalval>Gene</sci:legalval>
										<sci:legalval>Genome</sci:legalval>
										<sci:legalval>GEO DataSets</sci:legalval>
										<sci:legalval>GEO Profiles</sci:legalval>
										<sci:legalval>GSS</sci:legalval>
										<sci:legalval>GTR</sci:legalval>
										<sci:legalval>HomoloGene</sci:legalval>
										<sci:legalval>MedGen</sci:legalval>
										<sci:legalval>MeSH</sci:legalval>
										<sci:legalval>NCBI Web Site</sci:legalval>
										<sci:legalval>NLM Catalog</sci:legalval>
										<sci:legalval>Nucleotide</sci:legalval>
										<sci:legalval>OMIM</sci:legalval>
										<sci:legalval>PopSet</sci:legalval>
										<sci:legalval>Probe</sci:legalval>
										<sci:legalval selected="true">Protein</sci:legalval>
										<sci:legalval>Protein Clusters</sci:legalval>
										<sci:legalval>PubChem BioAssay</sci:legalval>
										<sci:legalval>PubChem Compound</sci:legalval>
										<sci:legalval>PubChem Substance</sci:legalval>
										<sci:legalval>PubMed</sci:legalval>
										<sci:legalval>PubMed Central</sci:legalval>
										<sci:legalval>PubMed Health</sci:legalval>
										<sci:legalval>SNP</sci:legalval>
										<sci:legalval>Sparcle</sci:legalval>
										<sci:legalval>SRA</sci:legalval>
										<sci:legalval>Structure</sci:legalval>
										<sci:legalval>Taxonomy</sci:legalval>
										<sci:legalval>UniGene</sci:legalval>
									</sci:arg>
									<sci:arg name="ID Type" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
										<sci:metaproplist>
											<sci:mpropval name="SCI_PromotedFrom" type="StringType">
												<sci:value>ID Type</sci:value>
											</sci:mpropval>
											<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
										</sci:metaproplist>
										<sci:help>For &lt;b&gt;Nucleotide&lt;/b&gt;, &lt;b&gt;Core Nucleotide&lt;/b&gt;, &lt;b&gt;EST&lt;/b&gt;, &lt;b&gt;GSS&lt;/b&gt;, &lt;b&gt;Protein&lt;/b&gt; databases, Specifies whether to return accession.version or GI number. The output data records will use &lt;i&gt;accessionNumber&lt;/i&gt; for &lt;b&gt;Accession.Version&lt;/b&gt; but &lt;i&gt;primaryID&lt;/i&gt; for &lt;b&gt;GI&lt;/b&gt;.</sci:help>
										<sci:enabledscript>SetDisabledDetails(
	       &apos;To enable &apos;.ParameterName().&apos;, set Database to &quot;Nucleotide&quot;, &quot;Core Nucleotide&quot;, &quot;EST&quot;, &quot;GSS&quot;, or &quot;Protein&quot;&apos;);

Parameter(&apos;Database&apos;) eq &apos;Nucleotide&apos; or
Parameter(&apos;Database&apos;) eq &apos;Core Nucleotide&apos; or
Parameter(&apos;Database&apos;) eq &apos;EST&apos; or
Parameter(&apos;Database&apos;) eq &apos;GSS&apos; or
Parameter(&apos;Database&apos;) eq &apos;Protein&apos;;</sci:enabledscript>
										<sci:legalval>Accession.Version</sci:legalval>
										<sci:legalval selected="true">GI</sci:legalval>
									</sci:arg>
									<sci:arg name="Search Field" type="StringType" required="false" visibility="visible" multi="false">
										<sci:help>Select a field to search or select &lt;b&gt;All Fields [all]&lt;/b&gt; to search all fields. The legal values are dependent on &lt;i&gt;Database&lt;/i&gt;.</sci:help>
										<sci:legalvalscript>resize(lvals, 1);
lvals[1] := &quot;All Fields [all]&quot;;
SetLegalValues(lvals);
#database := Parameter(&apos;Database&apos;);
if (#database eq &apos;Assembly&apos;) then
	resize(lvals, 41);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Accession [accn]&quot;;
	lvals[3] := &quot;Assembly Accession [asac]&quot;;
	lvals[4] := &quot;Assembly Level [aslv]&quot;;
	lvals[5] := &quot;Taxonomy ID [txid]&quot;;
	lvals[6] := &quot;Organism [orgn]&quot;;
	lvals[7] := &quot;RefSeq ID [ruid]&quot;;
	lvals[8] := &quot;GenBank ID [guid]&quot;;
	lvals[9] := &quot;All Uids [uids]&quot;;
	lvals[10] := &quot;BioProject IDs and Accessions [proj]&quot;;
	lvals[11] := &quot;BioSample [samp]&quot;;
	lvals[12] := &quot;Assembly Name [name]&quot;;
	lvals[13] := &quot;All Names [alln]&quot;;
	lvals[14] := &quot;Description [desc]&quot;;
	lvals[15] := &quot;Coverage [cov]&quot;;
	lvals[16] := &quot;Assembly Type [type]&quot;;
	lvals[17] := &quot;Total Sequence Length in Mbp [len]&quot;;
	lvals[18] := &quot;Chromosome Count [repl]&quot;;
	lvals[19] := &quot;Placed Scaffolds Count [plac]&quot;;
	lvals[20] := &quot;Unlocalized Scaffolds Count [unlo]&quot;;
	lvals[21] := &quot;Unplaced Scaffolds Count [unpl]&quot;;
	lvals[22] := &quot;Contig N50 [cn50]&quot;;
	lvals[23] := &quot;Scaffold N50 [sn50]&quot;;
	lvals[24] := &quot;Contig L50 [cl50]&quot;;
	lvals[25] := &quot;Scaffold L50 [sl50]&quot;;
	lvals[26] := &quot;Contig Count [cntg]&quot;;
	lvals[27] := &quot;Ungapped Length in Mbp [ungl]&quot;;
	lvals[28] := &quot;Properties [prop]&quot;;
	lvals[29] := &quot;Submitter Organization [subo]&quot;;
	lvals[30] := &quot;Infraspecific Name [infr]&quot;;
	lvals[31] := &quot;Isolate [isol]&quot;;
	lvals[32] := &quot;Sex [sex]&quot;;
	lvals[33] := &quot;Assembly Method [asmm]&quot;;
	lvals[34] := &quot;Genome Coverage [gcov]&quot;;
	lvals[35] := &quot;Sequencing Technology [tech]&quot;;
	lvals[36] := &quot;Expected Final Version [exfv]&quot;;
	lvals[37] := &quot;Reference Guided Assembly [rgas]&quot;;
	lvals[38] := &quot;Single Cell Amplification [scam]&quot;;
	lvals[39] := &quot;RefSeq Category [rcat]&quot;;
	lvals[40] := &quot;From Type Material [ftyp]&quot;;
	lvals[41] := &quot;Excluded from RefSeq [nfrs]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;BioProject&apos;) then
	resize(lvals, 24);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Organism [orgn]&quot;;
	lvals[3] := &quot;Project Accession [prja]&quot;;
	lvals[4] := &quot;Project Type [type]&quot;;
	lvals[5] := &quot;Project Subtype [stpe]&quot;;
	lvals[6] := &quot;Title [titl]&quot;;
	lvals[7] := &quot;Submitter Organization [cen]&quot;;
	lvals[8] := &quot;Replicon accession [accn]&quot;;
	lvals[9] := &quot;Replicon type [rtyp]&quot;;
	lvals[10] := &quot;Locus Tag Prefix [ltp]&quot;;
	lvals[11] := &quot;Description [word]&quot;;
	lvals[12] := &quot;Keyword [kwrd]&quot;;
	lvals[13] := &quot;Properties [prop]&quot;;
	lvals[14] := &quot;Project Data Type [dtpe]&quot;;
	lvals[15] := &quot;Grant ID [grnt]&quot;;
	lvals[16] := &quot;Funding Agency [fund]&quot;;
	lvals[17] := &quot;PMID [pmid]&quot;;
	lvals[18] := &quot;ProjectID [pid]&quot;;
	lvals[19] := &quot;Relevance [relv]&quot;;
	lvals[20] := &quot;Assembly name [anme]&quot;;
	lvals[21] := &quot;WGS Accession [wgsa]&quot;;
	lvals[22] := &quot;Assembly Accession [aacc]&quot;;
	lvals[23] := &quot;Attribute Name [atnm]&quot;;
	lvals[24] := &quot;Attribute [attr]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;BioSample&apos;) then
	resize(lvals, 10);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Accession [accn]&quot;;
	lvals[3] := &quot;Title [titl]&quot;;
	lvals[4] := &quot;Properties [prop]&quot;;
	lvals[5] := &quot;Text Word [word]&quot;;
	lvals[6] := &quot;Organism [orgn]&quot;;
	lvals[7] := &quot;Author [auth]&quot;;
	lvals[8] := &quot;Attribute Name [atnm]&quot;;
	lvals[9] := &quot;Attribute [attr]&quot;;
	lvals[10] := &quot;Submitter Organization [cen]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;BioSystems&apos;) then
	resize(lvals, 23);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;SourceName [src]&quot;;
	lvals[3] := &quot;SourceID [srid]&quot;;
	lvals[4] := &quot;BioSystemType [type]&quot;;
	lvals[5] := &quot;SourceAccession [sacc]&quot;;
	lvals[6] := &quot;Title [titl]&quot;;
	lvals[7] := &quot;Description [desc]&quot;;
	lvals[8] := &quot;Comments [com]&quot;;
	lvals[9] := &quot;Organism [orgn]&quot;;
	lvals[10] := &quot;ProteinName [pn]&quot;;
	lvals[11] := &quot;ChemicalName [cn]&quot;;
	lvals[12] := &quot;SidExternalID [seid]&quot;;
	lvals[13] := &quot;GeneName [gn]&quot;;
	lvals[14] := &quot;GeneExternalID [geid]&quot;;
	lvals[15] := &quot;ProteinID [pid]&quot;;
	lvals[16] := &quot;CID [cid]&quot;;
	lvals[17] := &quot;GeneID [gid]&quot;;
	lvals[18] := &quot;SID [sid]&quot;;
	lvals[19] := &quot;Accession [accn]&quot;;
	lvals[20] := &quot;SIDCount [sct]&quot;;
	lvals[21] := &quot;CIDCount [cct]&quot;;
	lvals[22] := &quot;GeneCount [gct]&quot;;
	lvals[23] := &quot;ProteinCount [pct]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;Books&apos;) then
	resize(lvals, 26);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Author [auth]&quot;;
	lvals[3] := &quot;Corporate Author [ca]&quot;;
	lvals[4] := &quot;Full Author Name [fa]&quot;;
	lvals[5] := &quot;Full Editor Name [fe]&quot;;
	lvals[6] := &quot;Title [titl]&quot;;
	lvals[7] := &quot;Type [type]&quot;;
	lvals[8] := &quot;Full Text [stxt]&quot;;
	lvals[9] := &quot;Concept Phrases [conp]&quot;;
	lvals[10] := &quot;Book [book]&quot;;
	lvals[11] := &quot;PMID [pmid]&quot;;
	lvals[12] := &quot;RefPMID [rmid]&quot;;
	lvals[13] := &quot;Rid [rid]&quot;;
	lvals[14] := &quot;Publisher [pubn]&quot;;
	lvals[15] := &quot;ISBN [isbn]&quot;;
	lvals[16] := &quot;Attribute [attr]&quot;;
	lvals[17] := &quot;Editor [edit]&quot;;
	lvals[18] := &quot;Subject [sub]&quot;;
	lvals[19] := &quot;Resource Type [rt]&quot;;
	lvals[20] := &quot;Accession ID [aid]&quot;;
	lvals[21] := &quot;Book Accession ID [baci]&quot;;
	lvals[22] := &quot;Chapter Accession ID [chid]&quot;;
	lvals[23] := &quot;Disease [dn]&quot;;
	lvals[24] := &quot;Gene Name [gs]&quot;;
	lvals[25] := &quot;Protein Name [pn]&quot;;
	lvals[26] := &quot;Grant Number [grnt]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;ClinVar&apos;) then
	resize(lvals, 34);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Name of the ClinVar record [titl]&quot;;
	lvals[3] := &quot;Text Word [word]&quot;;
	lvals[4] := &quot;Organism [orgn]&quot;;
	lvals[5] := &quot;Chromosome [chr]&quot;;
	lvals[6] := &quot;Gene Name [gene]&quot;;
	lvals[7] := &quot;MIM [mim]&quot;;
	lvals[8] := &quot;Disease/Phenotype [dis]&quot;;
	lvals[9] := &quot;ClinVar accession [accn]&quot;;
	lvals[10] := &quot;External allele ID [vrid]&quot;;
	lvals[11] := &quot;Trait identifier [trid]&quot;;
	lvals[12] := &quot;Properties [prop]&quot;;
	lvals[13] := &quot;PubMed ID [pmid]&quot;;
	lvals[14] := &quot;Gene ID [gid]&quot;;
	lvals[15] := &quot;Taxonomy ID [tid]&quot;;
	lvals[16] := &quot;Base Position [cpos]&quot;;
	lvals[17] := &quot;Gene Full Name [gfn]&quot;;
	lvals[18] := &quot;Submitter [sbm]&quot;;
	lvals[19] := &quot;Variant name [vrnm]&quot;;
	lvals[20] := &quot;Type of variation [vrtp]&quot;;
	lvals[21] := &quot;Molecular consequence [mcns]&quot;;
	lvals[22] := &quot;Review status [rvst]&quot;;
	lvals[23] := &quot;AlleleID [alid]&quot;;
	lvals[24] := &quot;Origin [orig]&quot;;
	lvals[25] := &quot;Submitter Batch [sid]&quot;;
	lvals[26] := &quot;Cytogenetic band [cyt]&quot;;
	lvals[27] := &quot;Accession for a test registered in GTR [gtrt]&quot;;
	lvals[28] := &quot;Study Name [stnm]&quot;;
	lvals[29] := &quot;Complexity [cmpl]&quot;;
	lvals[30] := &quot;Base Position for Assembly GRCh37 [c37]&quot;;
	lvals[31] := &quot;Length of the variant [vlen]&quot;;
	lvals[32] := &quot;Nucleotide/Protein Accession [accn]&quot;;
	lvals[33] := &quot;HGNC identifier for human gene [hgnc]&quot;;
	lvals[34] := &quot;Variation ID [vid]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;Clone&apos;) then
	resize(lvals, 49);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Accession [acc]&quot;;
	lvals[3] := &quot;Accession Version [accv]&quot;;
	lvals[4] := &quot;Alternate Library Abbreviation [alab]&quot;;
	lvals[5] := &quot;Alternate Library Name [aln]&quot;;
	lvals[6] := &quot;Assembly Accession [assa]&quot;;
	lvals[7] := &quot;Assembly Name [assn]&quot;;
	lvals[8] := &quot;Breed [bree]&quot;;
	lvals[9] := &quot;Cell Line [cell]&quot;;
	lvals[10] := &quot;Cell Type [celt]&quot;;
	lvals[11] := &quot;Chromosome Accession [chra]&quot;;
	lvals[12] := &quot;Chromosome Start [chrb]&quot;;
	lvals[13] := &quot;Chromosome Stop [chre]&quot;;
	lvals[14] := &quot;Clone Name [cln]&quot;;
	lvals[15] := &quot;Clone Name Alias [cla]&quot;;
	lvals[16] := &quot;Cultivar [cult]&quot;;
	lvals[17] := &quot;Cultivar Accession [cuac]&quot;;
	lvals[18] := &quot;Distributor [dist]&quot;;
	lvals[19] := &quot;Development Stage [dest]&quot;;
	lvals[20] := &quot;Gene Name [gene]&quot;;
	lvals[21] := &quot;Gene ID [gnid]&quot;;
	lvals[22] := &quot;Gene Description [gdsc]&quot;;
	lvals[23] := &quot;GI [gi]&quot;;
	lvals[24] := &quot;Isolate [isol]&quot;;
	lvals[25] := &quot;Library Abbreviation [lbr]&quot;;
	lvals[26] := &quot;Library ID [lid]&quot;;
	lvals[27] := &quot;Library Name [lib]&quot;;
	lvals[28] := &quot;Library Type [libt]&quot;;
	lvals[29] := &quot;Object type [ot]&quot;;
	lvals[30] := &quot;Organ [orga]&quot;;
	lvals[31] := &quot;Organism [org]&quot;;
	lvals[32] := &quot;Placed [plcd]&quot;;
	lvals[33] := &quot;Placement Method [plmt]&quot;;
	lvals[34] := &quot;Placement Confidence [plcn]&quot;;
	lvals[35] := &quot;Population [popu]&quot;;
	lvals[36] := &quot;Properties [prop]&quot;;
	lvals[37] := &quot;Genome Project Id [pid]&quot;;
	lvals[38] := &quot;PMID [pmid]&quot;;
	lvals[39] := &quot;Scaffold Accession [scfa]&quot;;
	lvals[40] := &quot;Scaffold Start [scfb]&quot;;
	lvals[41] := &quot;Scaffold Stop [scfe]&quot;;
	lvals[42] := &quot;Strain [stra]&quot;;
	lvals[43] := &quot;STS [sts]&quot;;
	lvals[44] := &quot;Taxonomy ID [txid]&quot;;
	lvals[45] := &quot;TI [ti]&quot;;
	lvals[46] := &quot;Tissue [tiss]&quot;;
	lvals[47] := &quot;Vector [vn]&quot;;
	lvals[48] := &quot;Vector Type [vt]&quot;;
	lvals[49] := &quot;BAC Resource [ba]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;Conserved Domains&apos;) then
	resize(lvals, 12);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Accession [accn]&quot;;
	lvals[3] := &quot;Database [db]&quot;;
	lvals[4] := &quot;Title [titl]&quot;;
	lvals[5] := &quot;Subtitle [sttl]&quot;;
	lvals[6] := &quot;Text Word [word]&quot;;
	lvals[7] := &quot;Organism [orgn]&quot;;
	lvals[8] := &quot;PssmLength [plen]&quot;;
	lvals[9] := &quot;Alternative Accession [aacn]&quot;;
	lvals[10] := &quot;Structure Representative [strp]&quot;;
	lvals[11] := &quot;The description of sites [sd]&quot;;
	lvals[12] := &quot;Number of Sites [ns]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;Core Nucleotide&apos;) then
	resize(lvals, 30);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Text Word [word]&quot;;
	lvals[3] := &quot;Title [titl]&quot;;
	lvals[4] := &quot;Keyword [kywd]&quot;;
	lvals[5] := &quot;Author [auth]&quot;;
	lvals[6] := &quot;Journal [jour]&quot;;
	lvals[7] := &quot;Volume [vol]&quot;;
	lvals[8] := &quot;Issue [iss]&quot;;
	lvals[9] := &quot;Page Number [page]&quot;;
	lvals[10] := &quot;Organism [orgn]&quot;;
	lvals[11] := &quot;Accession [accn]&quot;;
	lvals[12] := &quot;Primary Accession [pacc]&quot;;
	lvals[13] := &quot;Gene Name [gene]&quot;;
	lvals[14] := &quot;Protein Name [prot]&quot;;
	lvals[15] := &quot;EC/RN Number [ecno]&quot;;
	lvals[16] := &quot;Substance Name [subs]&quot;;
	lvals[17] := &quot;Properties [prop]&quot;;
	lvals[18] := &quot;SeqID String [sqid]&quot;;
	lvals[19] := &quot;BioProject [gprj]&quot;;
	lvals[20] := &quot;Sequence Length [slen]&quot;;
	lvals[21] := &quot;Feature key [fkey]&quot;;
	lvals[22] := &quot;Primary Organism [porg]&quot;;
	lvals[23] := &quot;Component Accession [comp]&quot;;
	lvals[24] := &quot;Assembly [assm]&quot;;
	lvals[25] := &quot;Division [div]&quot;;
	lvals[26] := &quot;Strain [strn]&quot;;
	lvals[27] := &quot;Isolate [isol]&quot;;
	lvals[28] := &quot;Cultivar [cult]&quot;;
	lvals[29] := &quot;Breed [brd]&quot;;
	lvals[30] := &quot;BioSample [bios]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;EST&apos;) then
	resize(lvals, 32);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Text Word [word]&quot;;
	lvals[3] := &quot;Title [titl]&quot;;
	lvals[4] := &quot;Keyword [kywd]&quot;;
	lvals[5] := &quot;Author [auth]&quot;;
	lvals[6] := &quot;Journal [jour]&quot;;
	lvals[7] := &quot;Volume [vol]&quot;;
	lvals[8] := &quot;Issue [iss]&quot;;
	lvals[9] := &quot;Page Number [page]&quot;;
	lvals[10] := &quot;Organism [orgn]&quot;;
	lvals[11] := &quot;Accession [accn]&quot;;
	lvals[12] := &quot;Primary Accession [pacc]&quot;;
	lvals[13] := &quot;Gene Name [gene]&quot;;
	lvals[14] := &quot;Protein Name [prot]&quot;;
	lvals[15] := &quot;EC/RN Number [ecno]&quot;;
	lvals[16] := &quot;Substance Name [subs]&quot;;
	lvals[17] := &quot;Properties [prop]&quot;;
	lvals[18] := &quot;SeqID String [sqid]&quot;;
	lvals[19] := &quot;BioProject [gprj]&quot;;
	lvals[20] := &quot;Sequence Length [slen]&quot;;
	lvals[21] := &quot;Feature key [fkey]&quot;;
	lvals[22] := &quot;EST id [id]&quot;;
	lvals[23] := &quot;EST Name [name]&quot;;
	lvals[24] := &quot;Clone ID [clon]&quot;;
	lvals[25] := &quot;Library Name [lib]&quot;;
	lvals[26] := &quot;Submitter Name [subm]&quot;;
	lvals[27] := &quot;Citation Title [cit]&quot;;
	lvals[28] := &quot;Strain [strn]&quot;;
	lvals[29] := &quot;Isolate [isol]&quot;;
	lvals[30] := &quot;Cultivar [cult]&quot;;
	lvals[31] := &quot;Breed [brd]&quot;;
	lvals[32] := &quot;BioSample [bios]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;GEO DataSets&apos;) then
	resize(lvals, 27);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Organism [orgn]&quot;;
	lvals[3] := &quot;GEO Accession [accn]&quot;;
	lvals[4] := &quot;Title [titl]&quot;;
	lvals[5] := &quot;Description [desc]&quot;;
	lvals[6] := &quot;Supplementary Files [sfil]&quot;;
	lvals[7] := &quot;Entry Type [etyp]&quot;;
	lvals[8] := &quot;Sample Type [styp]&quot;;
	lvals[9] := &quot;Sample Value Type [vtyp]&quot;;
	lvals[10] := &quot;Platform Technology Type [ptyp]&quot;;
	lvals[11] := &quot;DataSet Type [gtyp]&quot;;
	lvals[12] := &quot;Number of Samples [nsam]&quot;;
	lvals[13] := &quot;Sample Source [src]&quot;;
	lvals[14] := &quot;Author [auth]&quot;;
	lvals[15] := &quot;Submitter Institute [inst]&quot;;
	lvals[16] := &quot;Number of Platform Probes [npro]&quot;;
	lvals[17] := &quot;Subset Variable Type [sstp]&quot;;
	lvals[18] := &quot;Subset Description [ssde]&quot;;
	lvals[19] := &quot;Reporter Identifier [geid]&quot;;
	lvals[20] := &quot;Tag Length [tagl]&quot;;
	lvals[21] := &quot;Related Series [rgse]&quot;;
	lvals[22] := &quot;Related Platform [rgpl]&quot;;
	lvals[23] := &quot;MeSH Terms [mesh]&quot;;
	lvals[24] := &quot;Project [proj]&quot;;
	lvals[25] := &quot;Attribute Name [atnm]&quot;;
	lvals[26] := &quot;Attribute [attr]&quot;;
	lvals[27] := &quot;Properties [prop]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;GEO Profiles&apos;) then
	resize(lvals, 24);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Organism [orgn]&quot;;
	lvals[3] := &quot;GEO Accession [accn]&quot;;
	lvals[4] := &quot;GDS Text [gdst]&quot;;
	lvals[5] := &quot;GEO Description/Title Text [geot]&quot;;
	lvals[6] := &quot;Platform Reporter Type [rtyp]&quot;;
	lvals[7] := &quot;DataSet Type [gtyp]&quot;;
	lvals[8] := &quot;Sample Value Type [vtyp]&quot;;
	lvals[9] := &quot;Number of Samples [nsam]&quot;;
	lvals[10] := &quot;Sample Source [src]&quot;;
	lvals[11] := &quot;ID_REF [id]&quot;;
	lvals[12] := &quot;Reporter Identifier [name]&quot;;
	lvals[13] := &quot;Gene Symbol [symb]&quot;;
	lvals[14] := &quot;Gene Description [gdsc]&quot;;
	lvals[15] := &quot;Ranked Standard Deviation [rstd]&quot;;
	lvals[16] := &quot;Max Value Rank [rmax]&quot;;
	lvals[17] := &quot;Min Value Rank [rmin]&quot;;
	lvals[18] := &quot;Flag Information [finf]&quot;;
	lvals[19] := &quot;Flag Type [ftyp]&quot;;
	lvals[20] := &quot;GI [gi]&quot;;
	lvals[21] := &quot;Annotation Type [atyp]&quot;;
	lvals[22] := &quot;Gene Ontology [go]&quot;;
	lvals[23] := &quot;Chromosome [chr]&quot;;
	lvals[24] := &quot;Base Position [cpos]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;GSS&apos;) then
	resize(lvals, 33);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Text Word [word]&quot;;
	lvals[3] := &quot;Title [titl]&quot;;
	lvals[4] := &quot;Keyword [kywd]&quot;;
	lvals[5] := &quot;Author [auth]&quot;;
	lvals[6] := &quot;Journal [jour]&quot;;
	lvals[7] := &quot;Volume [vol]&quot;;
	lvals[8] := &quot;Issue [iss]&quot;;
	lvals[9] := &quot;Page Number [page]&quot;;
	lvals[10] := &quot;Organism [orgn]&quot;;
	lvals[11] := &quot;Accession [accn]&quot;;
	lvals[12] := &quot;Primary Accession [pacc]&quot;;
	lvals[13] := &quot;Gene Name [gene]&quot;;
	lvals[14] := &quot;Protein Name [prot]&quot;;
	lvals[15] := &quot;EC/RN Number [ecno]&quot;;
	lvals[16] := &quot;Substance Name [subs]&quot;;
	lvals[17] := &quot;Properties [prop]&quot;;
	lvals[18] := &quot;SeqID String [sqid]&quot;;
	lvals[19] := &quot;BioProject [gprj]&quot;;
	lvals[20] := &quot;Sequence Length [slen]&quot;;
	lvals[21] := &quot;Feature key [fkey]&quot;;
	lvals[22] := &quot;GSS id [id]&quot;;
	lvals[23] := &quot;GSS Name [name]&quot;;
	lvals[24] := &quot;Clone ID [clon]&quot;;
	lvals[25] := &quot;Library Name [lib]&quot;;
	lvals[26] := &quot;Submitter Name [subm]&quot;;
	lvals[27] := &quot;Citation Title [cit]&quot;;
	lvals[28] := &quot;Library Class [lc]&quot;;
	lvals[29] := &quot;Strain [strn]&quot;;
	lvals[30] := &quot;Isolate [isol]&quot;;
	lvals[31] := &quot;Cultivar [cult]&quot;;
	lvals[32] := &quot;Breed [brd]&quot;;
	lvals[33] := &quot;BioSample [bios]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;GTR&apos;) then
	resize(lvals, 47);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Text Word [word]&quot;;
	lvals[3] := &quot;Text Word 1 [wrd1]&quot;;
	lvals[4] := &quot;Properties [prop]&quot;;
	lvals[5] := &quot;Organization names [org]&quot;;
	lvals[6] := &quot;Organization City [city]&quot;;
	lvals[7] := &quot;Organization State [state]&quot;;
	lvals[8] := &quot;Organization Country [country]&quot;;
	lvals[9] := &quot;Organization postcode [postcode]&quot;;
	lvals[10] := &quot;Organization Director(s) [director]&quot;;
	lvals[11] := &quot;Organization Staff [staff]&quot;;
	lvals[12] := &quot;Lab Service name [ls]&quot;;
	lvals[13] := &quot;Accession for GTR test [gtracc]&quot;;
	lvals[14] := &quot;name for this test [name]&quot;;
	lvals[15] := &quot;Alternate name [alt]&quot;;
	lvals[16] := &quot;disease name for this test [testdis]&quot;;
	lvals[17] := &quot;Specimen options for test [specimen]&quot;;
	lvals[18] := &quot;title of this clinvar assertion [titl]&quot;;
	lvals[19] := &quot;Accession for clinvar assertion [cvacc]&quot;;
	lvals[20] := &quot;Disease BioConcepts concept id [dcui]&quot;;
	lvals[21] := &quot;Name of Disease [disname]&quot;;
	lvals[22] := &quot;Gene BioConcepts concept id [gcui]&quot;;
	lvals[23] := &quot;Gene Symbol [symb]&quot;;
	lvals[24] := &quot;Name of Gene [genename]&quot;;
	lvals[25] := &quot;MIM number for the Gene [genemim]&quot;;
	lvals[26] := &quot;Name of Protein [protname]&quot;;
	lvals[27] := &quot;Name of Method [mtod]&quot;;
	lvals[28] := &quot;name for method category [mcat]&quot;;
	lvals[29] := &quot;name for method top category [tcat]&quot;;
	lvals[30] := &quot;laboratory certification [lcrt]&quot;;
	lvals[31] := &quot;Country ISO code [cid]&quot;;
	lvals[32] := &quot;State ISO code [sid]&quot;;
	lvals[33] := &quot;Top Method Category ID [tcid]&quot;;
	lvals[34] := &quot;Method Category ID [ctid]&quot;;
	lvals[35] := &quot;Test Method ID [mtid]&quot;;
	lvals[36] := &quot;Disease BioConcepts Entrez ID [did]&quot;;
	lvals[37] := &quot;Organism [orgn]&quot;;
	lvals[38] := &quot;Target Population option for the test [tarpop]&quot;;
	lvals[39] := &quot;Clinical Utility option for the test [clnutl]&quot;;
	lvals[40] := &quot;Clinical Validity option for the test [clnval]&quot;;
	lvals[41] := &quot;Number of genes [genenum]&quot;;
	lvals[42] := &quot;Pharmacogenetic response condition [pharma]&quot;;
	lvals[43] := &quot;Specimen Type ID [stid]&quot;;
	lvals[44] := &quot;Test target [testtarget]&quot;;
	lvals[45] := &quot;Analyte [alyt]&quot;;
	lvals[46] := &quot;Chromosomal region [chrg]&quot;;
	lvals[47] := &quot;Test gene [testgene]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;Gene&apos;) then
	resize(lvals, 30);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Gene/Protein Name [titl]&quot;;
	lvals[3] := &quot;Text Word [word]&quot;;
	lvals[4] := &quot;Organism [orgn]&quot;;
	lvals[5] := &quot;Chromosome [chr]&quot;;
	lvals[6] := &quot;Default Map Location [mv]&quot;;
	lvals[7] := &quot;Gene Name [gene]&quot;;
	lvals[8] := &quot;EC/RN Number [ecno]&quot;;
	lvals[9] := &quot;MIM ID [mim]&quot;;
	lvals[10] := &quot;Disease/Phenotype [dis]&quot;;
	lvals[11] := &quot;Nucleotide/Protein Accession [accn]&quot;;
	lvals[12] := &quot;UniGene Cluster Number [ugen]&quot;;
	lvals[13] := &quot;Properties [prop]&quot;;
	lvals[14] := &quot;Nucleotide Accession [ncac]&quot;;
	lvals[15] := &quot;Nucleotide UID [nuid]&quot;;
	lvals[16] := &quot;Protein Accession [pacc]&quot;;
	lvals[17] := &quot;Protein UID [puid]&quot;;
	lvals[18] := &quot;PubMed ID [pmid]&quot;;
	lvals[19] := &quot;Taxonomy ID [tid]&quot;;
	lvals[20] := &quot;Gene Ontology [go]&quot;;
	lvals[21] := &quot;Domain Name [dom]&quot;;
	lvals[22] := &quot;Base Position [cpos]&quot;;
	lvals[23] := &quot;Gene Full Name [gfn]&quot;;
	lvals[24] := &quot;Protein Full Name [pfn]&quot;;
	lvals[25] := &quot;Gene Length [gl]&quot;;
	lvals[26] := &quot;Exon Count [xc]&quot;;
	lvals[27] := &quot;Group [grp]&quot;;
	lvals[28] := &quot;Preferred Symbol [pref]&quot;;
	lvals[29] := &quot;Assembly Accession [aacc]&quot;;
	lvals[30] := &quot;Assembly Name [asm]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;Genome&apos;) then
	resize(lvals, 27);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Organism [orgn]&quot;;
	lvals[3] := &quot;ProjectID [pid]&quot;;
	lvals[4] := &quot;Project Accession [prja]&quot;;
	lvals[5] := &quot;Project Type [prjt]&quot;;
	lvals[6] := &quot;Title [dfln]&quot;;
	lvals[7] := &quot;Genome description [dscr]&quot;;
	lvals[8] := &quot;Status [stat]&quot;;
	lvals[9] := &quot;AssemblyID [aid]&quot;;
	lvals[10] := &quot;Assembly Accession [aacc]&quot;;
	lvals[11] := &quot;Assembly Name [anam]&quot;;
	lvals[12] := &quot;Replicon GI [gi]&quot;;
	lvals[13] := &quot;Replicon accession [accn]&quot;;
	lvals[14] := &quot;Replicon name [rnam]&quot;;
	lvals[15] := &quot;Protein Accession [pacc]&quot;;
	lvals[16] := &quot;Protein Name [prot]&quot;;
	lvals[17] := &quot;Protein GI [pgi]&quot;;
	lvals[18] := &quot;GeneID [gnid]&quot;;
	lvals[19] := &quot;Gene Name [gene]&quot;;
	lvals[20] := &quot;Locus Tag [ltag]&quot;;
	lvals[21] := &quot;WGS prefix [wgsp]&quot;;
	lvals[22] := &quot;PubMed ID [pmid]&quot;;
	lvals[23] := &quot;biological properties [biop]&quot;;
	lvals[24] := &quot;ProtClust ID [pcid]&quot;;
	lvals[25] := &quot;Properties [prop]&quot;;
	lvals[26] := &quot;Strain [strn]&quot;;
	lvals[27] := &quot;Host [host]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;HomoloGene&apos;) then
	resize(lvals, 15);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Title [titl]&quot;;
	lvals[3] := &quot;Text Word [word]&quot;;
	lvals[4] := &quot;Properties [prop]&quot;;
	lvals[5] := &quot;Organism [orgn]&quot;;
	lvals[6] := &quot;Gene ID [gnid]&quot;;
	lvals[7] := &quot;Gene Name [gene]&quot;;
	lvals[8] := &quot;Gene Description [gdsc]&quot;;
	lvals[9] := &quot;Protein UID [puid]&quot;;
	lvals[10] := &quot;Protein Accession [prac]&quot;;
	lvals[11] := &quot;Nucleotide UID [nuid]&quot;;
	lvals[12] := &quot;Nucleotide Accession [ncac]&quot;;
	lvals[13] := &quot;UniGene ID [ugid]&quot;;
	lvals[14] := &quot;Ancestor [ancs]&quot;;
	lvals[15] := &quot;Domain Name [dom]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;MeSH&apos;) then
	resize(lvals, 8);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;MeSH Terms [mesh]&quot;;
	lvals[3] := &quot;Substance Name [subs]&quot;;
	lvals[4] := &quot;Text Word [word]&quot;;
	lvals[5] := &quot;Scope Note [note]&quot;;
	lvals[6] := &quot;Registry Number [reg]&quot;;
	lvals[7] := &quot;Record Type [type]&quot;;
	lvals[8] := &quot;MeSH Unique ID [mhui]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;MedGen&apos;) then
	resize(lvals, 19);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Accession [accn]&quot;;
	lvals[3] := &quot;Title [titl]&quot;;
	lvals[4] := &quot;Properties [prop]&quot;;
	lvals[5] := &quot;Text Word [word]&quot;;
	lvals[6] := &quot;Definition [defn]&quot;;
	lvals[7] := &quot;Vocabulary [vocb]&quot;;
	lvals[8] := &quot;ExactTitle [xtit]&quot;;
	lvals[9] := &quot;Source ID [code]&quot;;
	lvals[10] := &quot;Chromosome [chr]&quot;;
	lvals[11] := &quot;Clinical Features [clin]&quot;;
	lvals[12] := &quot;Gene Name [gene]&quot;;
	lvals[13] := &quot;Base Position [cpos]&quot;;
	lvals[14] := &quot;MIM ID [oid]&quot;;
	lvals[15] := &quot;Gene Full Name [gfn]&quot;;
	lvals[16] := &quot;Keyword [kwd]&quot;;
	lvals[17] := &quot;Mode Of Inheritance [minh]&quot;;
	lvals[18] := &quot;SNOMED CT CUI [snm]&quot;;
	lvals[19] := &quot;Guideline title [gtit]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;NCBI Web Site&apos;) then
	resize(lvals, 11);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Title [titl]&quot;;
	lvals[3] := &quot;Keyword [kywd]&quot;;
	lvals[4] := &quot;Description [desc]&quot;;
	lvals[5] := &quot;Text Word [word]&quot;;
	lvals[6] := &quot;Category [cat]&quot;;
	lvals[7] := &quot;Homepage Title [home]&quot;;
	lvals[8] := &quot;Homepage URL [hurl]&quot;;
	lvals[9] := &quot;URL [url]&quot;;
	lvals[10] := &quot;META Name [mnam]&quot;;
	lvals[11] := &quot;META Content [mcon]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;NLM Catalog&apos;) then
	resize(lvals, 37);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Abstract/Index Tags [itag]&quot;;
	lvals[3] := &quot;Author [auth]&quot;;
	lvals[4] := &quot;Author Full Name [full]&quot;;
	lvals[5] := &quot;Call Number [call]&quot;;
	lvals[6] := &quot;Corporate/Conference Name [cnam]&quot;;
	lvals[7] := &quot;Item Type [item]&quot;;
	lvals[8] := &quot;Journal [jour]&quot;;
	lvals[9] := &quot;Language [lang]&quot;;
	lvals[10] := &quot;Resource Type [rtyp]&quot;;
	lvals[11] := &quot;MeSH Terms [mesh]&quot;;
	lvals[12] := &quot;MeSH Major Topic [majr]&quot;;
	lvals[13] := &quot;MeSH Subheading [subh]&quot;;
	lvals[14] := &quot;Olio [olio]&quot;;
	lvals[15] := &quot;Other Number [othr]&quot;;
	lvals[16] := &quot;Other Term [otrm]&quot;;
	lvals[17] := &quot;Personal Name as Subject [pers]&quot;;
	lvals[18] := &quot;Personal Full Name as Subject [fper]&quot;;
	lvals[19] := &quot;Country of Publication [cnty]&quot;;
	lvals[20] := &quot;Publication Year [pdat]&quot;;
	lvals[21] := &quot;Publication Status [psta]&quot;;
	lvals[22] := &quot;Publication Type [ptyp]&quot;;
	lvals[23] := &quot;Publisher [publ]&quot;;
	lvals[24] := &quot;Series [seri]&quot;;
	lvals[25] := &quot;Title [titl]&quot;;
	lvals[26] := &quot;URL [url]&quot;;
	lvals[27] := &quot;NLM Unique ID [nid]&quot;;
	lvals[28] := &quot;Authority Information [ai]&quot;;
	lvals[29] := &quot;AIID [aiid]&quot;;
	lvals[30] := &quot;Broad Subject Term [st]&quot;;
	lvals[31] := &quot;Current Format Status [cfs]&quot;;
	lvals[32] := &quot;Indexing Subset [xs]&quot;;
	lvals[33] := &quot;ISO Abbreviation [iso]&quot;;
	lvals[34] := &quot;Publication Start Year [syr]&quot;;
	lvals[35] := &quot;Publication End Year [eyr]&quot;;
	lvals[36] := &quot;ISSN [is]&quot;;
	lvals[37] := &quot;NLM Title Abbreviation [mabr]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;Nucleotide&apos;) then
	resize(lvals, 30);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Text Word [word]&quot;;
	lvals[3] := &quot;Title [titl]&quot;;
	lvals[4] := &quot;Keyword [kywd]&quot;;
	lvals[5] := &quot;Author [auth]&quot;;
	lvals[6] := &quot;Journal [jour]&quot;;
	lvals[7] := &quot;Volume [vol]&quot;;
	lvals[8] := &quot;Issue [iss]&quot;;
	lvals[9] := &quot;Page Number [page]&quot;;
	lvals[10] := &quot;Organism [orgn]&quot;;
	lvals[11] := &quot;Accession [accn]&quot;;
	lvals[12] := &quot;Primary Accession [pacc]&quot;;
	lvals[13] := &quot;Gene Name [gene]&quot;;
	lvals[14] := &quot;Protein Name [prot]&quot;;
	lvals[15] := &quot;EC/RN Number [ecno]&quot;;
	lvals[16] := &quot;Substance Name [subs]&quot;;
	lvals[17] := &quot;Properties [prop]&quot;;
	lvals[18] := &quot;SeqID String [sqid]&quot;;
	lvals[19] := &quot;BioProject [gprj]&quot;;
	lvals[20] := &quot;Sequence Length [slen]&quot;;
	lvals[21] := &quot;Feature key [fkey]&quot;;
	lvals[22] := &quot;Primary Organism [porg]&quot;;
	lvals[23] := &quot;Component Accession [comp]&quot;;
	lvals[24] := &quot;Assembly [assm]&quot;;
	lvals[25] := &quot;Division [div]&quot;;
	lvals[26] := &quot;Strain [strn]&quot;;
	lvals[27] := &quot;Isolate [isol]&quot;;
	lvals[28] := &quot;Cultivar [cult]&quot;;
	lvals[29] := &quot;Breed [brd]&quot;;
	lvals[30] := &quot;BioSample [bios]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;OMIM&apos;) then
	resize(lvals, 16);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Title [titl]&quot;;
	lvals[3] := &quot;Text Word [word]&quot;;
	lvals[4] := &quot;Contributor [auth]&quot;;
	lvals[5] := &quot;Clinical Synopsis [clin]&quot;;
	lvals[6] := &quot;Allelic Variant [alvr]&quot;;
	lvals[7] := &quot;Reference [refr]&quot;;
	lvals[8] := &quot;Gene Map [gmap]&quot;;
	lvals[9] := &quot;Gene Map Disorder [dsdr]&quot;;
	lvals[10] := &quot;Gene Name [gene]&quot;;
	lvals[11] := &quot;EC/RN Number [ecno]&quot;;
	lvals[12] := &quot;Chromosome [chr]&quot;;
	lvals[13] := &quot;Editor [edtr]&quot;;
	lvals[14] := &quot;Properties [prop]&quot;;
	lvals[15] := &quot;Clinical Synopsis Key [csk]&quot;;
	lvals[16] := &quot;Clinical Synopsis Editor [csed]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;PopSet&apos;) then
	resize(lvals, 26);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Text Word [word]&quot;;
	lvals[3] := &quot;Title [titl]&quot;;
	lvals[4] := &quot;Keyword [kywd]&quot;;
	lvals[5] := &quot;Author [auth]&quot;;
	lvals[6] := &quot;Journal [jour]&quot;;
	lvals[7] := &quot;Volume [vol]&quot;;
	lvals[8] := &quot;Issue [iss]&quot;;
	lvals[9] := &quot;Page Number [page]&quot;;
	lvals[10] := &quot;Organism [orgn]&quot;;
	lvals[11] := &quot;Accession [accn]&quot;;
	lvals[12] := &quot;Primary Accession [pacc]&quot;;
	lvals[13] := &quot;Gene Name [gene]&quot;;
	lvals[14] := &quot;Protein Name [prot]&quot;;
	lvals[15] := &quot;EC/RN Number [ecno]&quot;;
	lvals[16] := &quot;Substance Name [subs]&quot;;
	lvals[17] := &quot;Properties [prop]&quot;;
	lvals[18] := &quot;SeqID String [sqid]&quot;;
	lvals[19] := &quot;BioProject [gprj]&quot;;
	lvals[20] := &quot;Feature key [fkey]&quot;;
	lvals[21] := &quot;Protein Count [pcnt]&quot;;
	lvals[22] := &quot;Nucleotide Count [ncnt]&quot;;
	lvals[23] := &quot;Strain [strn]&quot;;
	lvals[24] := &quot;Isolate [isol]&quot;;
	lvals[25] := &quot;Cultivar [cult]&quot;;
	lvals[26] := &quot;Breed [brd]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;Probe&apos;) then
	resize(lvals, 20);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Author [auth]&quot;;
	lvals[3] := &quot;Distributor [dist]&quot;;
	lvals[4] := &quot;Gene Name [gene]&quot;;
	lvals[5] := &quot;Gene ID [gnid]&quot;;
	lvals[6] := &quot;Application [kywd]&quot;;
	lvals[7] := &quot;Organism [orgn]&quot;;
	lvals[8] := &quot;Probe Name [prnm]&quot;;
	lvals[9] := &quot;Probe Type [prty]&quot;;
	lvals[10] := &quot;Properties [prop]&quot;;
	lvals[11] := &quot;Text Word [word]&quot;;
	lvals[12] := &quot;Title [titl]&quot;;
	lvals[13] := &quot;Caption [capt]&quot;;
	lvals[14] := &quot;Platform Name [coll]&quot;;
	lvals[15] := &quot;Sequence [seq]&quot;;
	lvals[16] := &quot;Sequence accession [accn]&quot;;
	lvals[17] := &quot;Pubmed ID [pmid]&quot;;
	lvals[18] := &quot;Validation [val]&quot;;
	lvals[19] := &quot;UniSTS ID [usts]&quot;;
	lvals[20] := &quot;Probeset UID [pset]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;Protein&apos;) then
	resize(lvals, 29);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Text Word [word]&quot;;
	lvals[3] := &quot;Title [titl]&quot;;
	lvals[4] := &quot;Keyword [kywd]&quot;;
	lvals[5] := &quot;Author [auth]&quot;;
	lvals[6] := &quot;Journal [jour]&quot;;
	lvals[7] := &quot;Volume [vol]&quot;;
	lvals[8] := &quot;Issue [iss]&quot;;
	lvals[9] := &quot;Page Number [page]&quot;;
	lvals[10] := &quot;Organism [orgn]&quot;;
	lvals[11] := &quot;Accession [accn]&quot;;
	lvals[12] := &quot;Primary Accession [pacc]&quot;;
	lvals[13] := &quot;Gene Name [gene]&quot;;
	lvals[14] := &quot;Protein Name [prot]&quot;;
	lvals[15] := &quot;EC/RN Number [ecno]&quot;;
	lvals[16] := &quot;Substance Name [subs]&quot;;
	lvals[17] := &quot;Properties [prop]&quot;;
	lvals[18] := &quot;SeqID String [sqid]&quot;;
	lvals[19] := &quot;BioProject [gprj]&quot;;
	lvals[20] := &quot;Sequence Length [slen]&quot;;
	lvals[21] := &quot;Molecular Weight [mlwt]&quot;;
	lvals[22] := &quot;Feature key [fkey]&quot;;
	lvals[23] := &quot;Primary Organism [porg]&quot;;
	lvals[24] := &quot;Assembly [assm]&quot;;
	lvals[25] := &quot;Division [div]&quot;;
	lvals[26] := &quot;Strain [strn]&quot;;
	lvals[27] := &quot;Isolate [isol]&quot;;
	lvals[28] := &quot;Cultivar [cult]&quot;;
	lvals[29] := &quot;Breed [brd]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;Protein Clusters&apos;) then
	resize(lvals, 27);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Accession [accn]&quot;;
	lvals[3] := &quot;PubMed ID [pmid]&quot;;
	lvals[4] := &quot;Title [titl]&quot;;
	lvals[5] := &quot;Gene Name [gene]&quot;;
	lvals[6] := &quot;Gene Synonym [gsyn]&quot;;
	lvals[7] := &quot;COG [cog]&quot;;
	lvals[8] := &quot;EC/RN Number [ecno]&quot;;
	lvals[9] := &quot;HAMAP [hmap]&quot;;
	lvals[10] := &quot;KO [ko]&quot;;
	lvals[11] := &quot;Protein Name [prot]&quot;;
	lvals[12] := &quot;Protein Accession [pacc]&quot;;
	lvals[13] := &quot;Locus Tag [ltag]&quot;;
	lvals[14] := &quot;Sequence Length [slen]&quot;;
	lvals[15] := &quot;Organism [orgn]&quot;;
	lvals[16] := &quot;Taxonomy ID [txid]&quot;;
	lvals[17] := &quot;Size [size]&quot;;
	lvals[18] := &quot;Domain Name [dom]&quot;;
	lvals[19] := &quot;Domains [doms]&quot;;
	lvals[20] := &quot;Protein GI [puid]&quot;;
	lvals[21] := &quot;Paralogs [para]&quot;;
	lvals[22] := &quot;COG group [cogg]&quot;;
	lvals[23] := &quot;Average Length [avgl]&quot;;
	lvals[24] := &quot;Properties [prop]&quot;;
	lvals[25] := &quot;Total Publications [tpub]&quot;;
	lvals[26] := &quot;SwissProt Accession [spcn]&quot;;
	lvals[27] := &quot;Conserved In [cons]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;PubChem BioAssay&apos;) then
	resize(lvals, 36);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Assay Name [anam]&quot;;
	lvals[3] := &quot;Assay Description [ades]&quot;;
	lvals[4] := &quot;Assay Protocol [aprl]&quot;;
	lvals[5] := &quot;Categorized Comment [ccmt]&quot;;
	lvals[6] := &quot;Assay Comment [acmt]&quot;;
	lvals[7] := &quot;Assay Source ID [asrd]&quot;;
	lvals[8] := &quot;Activity Outcome Method [acmd]&quot;;
	lvals[9] := &quot;Source Name [snme]&quot;;
	lvals[10] := &quot;Current Source Name [csnm]&quot;;
	lvals[11] := &quot;Journal Name [jnam]&quot;;
	lvals[12] := &quot;Active Sid Count [ac]&quot;;
	lvals[13] := &quot;Total Sid Count [tsc]&quot;;
	lvals[14] := &quot;Target Count [tcnt]&quot;;
	lvals[15] := &quot;Probe Cid Count [pcc]&quot;;
	lvals[16] := &quot;Probe Sid Count [psc]&quot;;
	lvals[17] := &quot;Nucleic Acid Reagent ID [nard]&quot;;
	lvals[18] := &quot;Protein Target Name [ptn]&quot;;
	lvals[19] := &quot;Gene Symbol [gsym]&quot;;
	lvals[20] := &quot;Categorized Comment Title [cct]&quot;;
	lvals[21] := &quot;Protein Target GI [ptgi]&quot;;
	lvals[22] := &quot;BioSystems ID [bsid]&quot;;
	lvals[23] := &quot;Pig GI [pigi]&quot;;
	lvals[24] := &quot;RNA Target GI [rtgi]&quot;;
	lvals[25] := &quot;Synonym Tested [synt]&quot;;
	lvals[26] := &quot;Source Category [srcc]&quot;;
	lvals[27] := &quot;Taxonomy Name [txnm]&quot;;
	lvals[28] := &quot;Grant Number [grn]&quot;;
	lvals[29] := &quot;Number of Sids With Activity Concentration micromolar [nsam]&quot;;
	lvals[30] := &quot;Number of Sids With Activity Concentration nanomolar [nsan]&quot;;
	lvals[31] := &quot;Organism [orgn]&quot;;
	lvals[32] := &quot;Assay Project [aprj]&quot;;
	lvals[33] := &quot;Cell Line [cell]&quot;;
	lvals[34] := &quot;GenBank Accession [gbac]&quot;;
	lvals[35] := &quot;UniProt Accession [upac]&quot;;
	lvals[36] := &quot;Detection Method [dtmd]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;PubChem Compound&apos;) then
	resize(lvals, 39);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;CompoundID [uid]&quot;;
	lvals[3] := &quot;SourceName [src]&quot;;
	lvals[4] := &quot;SourceCategory [srcc]&quot;;
	lvals[5] := &quot;InChI [inch]&quot;;
	lvals[6] := &quot;InChIKey [ikey]&quot;;
	lvals[7] := &quot;CompleteSynonym [csyn]&quot;;
	lvals[8] := &quot;Synonym [syno]&quot;;
	lvals[9] := &quot;MeSHTerm [msht]&quot;;
	lvals[10] := &quot;PharmAction [phma]&quot;;
	lvals[11] := &quot;Element [elmt]&quot;;
	lvals[12] := &quot;MolecularWeight [mw]&quot;;
	lvals[13] := &quot;TotalFormalCharge [tfc]&quot;;
	lvals[14] := &quot;IUPACName [upac]&quot;;
	lvals[15] := &quot;XLogP [xlgp]&quot;;
	lvals[16] := &quot;Complexity [cplx]&quot;;
	lvals[17] := &quot;RotatableBondCount [rbc]&quot;;
	lvals[18] := &quot;HydrogenBondDonorCount [hbdc]&quot;;
	lvals[19] := &quot;HydrogenBondAcceptorCount [hbac]&quot;;
	lvals[20] := &quot;HeavyAtomCount [hac]&quot;;
	lvals[21] := &quot;AtomChiralCount [acc]&quot;;
	lvals[22] := &quot;AtomChiralDefCount [acdc]&quot;;
	lvals[23] := &quot;AtomChiralUndefCount [acuc]&quot;;
	lvals[24] := &quot;BondChiralCount [bcc]&quot;;
	lvals[25] := &quot;BondChiralDefCount [bcdc]&quot;;
	lvals[26] := &quot;BondChiralUndefCount [bcuc]&quot;;
	lvals[27] := &quot;IsotopeAtomCount [iac]&quot;;
	lvals[28] := &quot;CovalentUnitCount [cuc]&quot;;
	lvals[29] := &quot;ActiveAidCount [ac]&quot;;
	lvals[30] := &quot;TotalAidCount [tac]&quot;;
	lvals[31] := &quot;SubstanceID [sid]&quot;;
	lvals[32] := &quot;TPSA [tpsa]&quot;;
	lvals[33] := &quot;ExactMass [emas]&quot;;
	lvals[34] := &quot;MonoisotopicMass [mmas]&quot;;
	lvals[35] := &quot;PharmActionID [paid]&quot;;
	lvals[36] := &quot;StructureID [stid]&quot;;
	lvals[37] := &quot;DepositorCompleteSynonym [dcsy]&quot;;
	lvals[38] := &quot;DepositorSynonym [dsyn]&quot;;
	lvals[39] := &quot;DepositorCount [dcnt]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;PubChem Substance&apos;) then
	resize(lvals, 15);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;SubstanceID [uid]&quot;;
	lvals[3] := &quot;SourceName [src]&quot;;
	lvals[4] := &quot;CurrentSourceName [csn]&quot;;
	lvals[5] := &quot;SourceID [srid]&quot;;
	lvals[6] := &quot;SourceCategory [srcc]&quot;;
	lvals[7] := &quot;CompleteSynonym [csyn]&quot;;
	lvals[8] := &quot;Synonym [syno]&quot;;
	lvals[9] := &quot;Comment [cmt]&quot;;
	lvals[10] := &quot;TotalAidCount [tac]&quot;;
	lvals[11] := &quot;StandardizedCID [scid]&quot;;
	lvals[12] := &quot;ComponentCID [ccid]&quot;;
	lvals[13] := &quot;CompoundID [cid]&quot;;
	lvals[14] := &quot;AssaySourceName [asrc]&quot;;
	lvals[15] := &quot;StructureID [stid]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;PubMed&apos;) then
	resize(lvals, 36);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Title [titl]&quot;;
	lvals[3] := &quot;Text Word [word]&quot;;
	lvals[4] := &quot;MeSH Terms [mesh]&quot;;
	lvals[5] := &quot;MeSH Major Topic [majr]&quot;;
	lvals[6] := &quot;Author [auth]&quot;;
	lvals[7] := &quot;Journal [jour]&quot;;
	lvals[8] := &quot;Affiliation [affl]&quot;;
	lvals[9] := &quot;EC/RN Number [ecno]&quot;;
	lvals[10] := &quot;Supplementary Concept [subs]&quot;;
	lvals[11] := &quot;Volume [vol]&quot;;
	lvals[12] := &quot;Pagination [page]&quot;;
	lvals[13] := &quot;Publication Type [ptyp]&quot;;
	lvals[14] := &quot;Language [lang]&quot;;
	lvals[15] := &quot;Issue [iss]&quot;;
	lvals[16] := &quot;MeSH Subheading [subh]&quot;;
	lvals[17] := &quot;Secondary Source ID [si]&quot;;
	lvals[18] := &quot;Title/Abstract [tiab]&quot;;
	lvals[19] := &quot;Other Term [otrm]&quot;;
	lvals[20] := &quot;Investigator [invr]&quot;;
	lvals[21] := &quot;Author - Corporate [coln]&quot;;
	lvals[22] := &quot;Pharmacological Action [papx]&quot;;
	lvals[23] := &quot;Grant Number [grnt]&quot;;
	lvals[24] := &quot;Author - First [faut]&quot;;
	lvals[25] := &quot;Author - Full [full]&quot;;
	lvals[26] := &quot;Investigator - Full [finv]&quot;;
	lvals[27] := &quot;Transliterated Title [tt]&quot;;
	lvals[28] := &quot;Author - Last [laut]&quot;;
	lvals[29] := &quot;Location ID [lid]&quot;;
	lvals[30] := &quot;Book [book]&quot;;
	lvals[31] := &quot;Editor [ed]&quot;;
	lvals[32] := &quot;ISBN [isbn]&quot;;
	lvals[33] := &quot;Publisher [pubn]&quot;;
	lvals[34] := &quot;Author - Identifier [auid]&quot;;
	lvals[35] := &quot;Subject - Personal Name [ps]&quot;;
	lvals[36] := &quot;Conflict of Interest Statements [cois]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;PubMed Central&apos;) then
	resize(lvals, 29);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Author [auth]&quot;;
	lvals[3] := &quot;Title [titl]&quot;;
	lvals[4] := &quot;Abstract [abst]&quot;;
	lvals[5] := &quot;Figure/Table Caption [capt]&quot;;
	lvals[6] := &quot;Section Title [sect]&quot;;
	lvals[7] := &quot;Reference [refr]&quot;;
	lvals[8] := &quot;Reference Author [refa]&quot;;
	lvals[9] := &quot;Journal [jour]&quot;;
	lvals[10] := &quot;Volume [vol]&quot;;
	lvals[11] := &quot;Issue [iss]&quot;;
	lvals[12] := &quot;Pagination [page]&quot;;
	lvals[13] := &quot;Text Word [word]&quot;;
	lvals[14] := &quot;Body - All Words [arti]&quot;;
	lvals[15] := &quot;Body - Key Terms [kwd]&quot;;
	lvals[16] := &quot;Methods - Key Terms [meth]&quot;;
	lvals[17] := &quot;MeSH Terms [mesh]&quot;;
	lvals[18] := &quot;MeSH Major Topic [majr]&quot;;
	lvals[19] := &quot;MeSH Subheading [subh]&quot;;
	lvals[20] := &quot;EC/RN Number [ecno]&quot;;
	lvals[21] := &quot;Supplementary Concept [subs]&quot;;
	lvals[22] := &quot;Affiliation [affl]&quot;;
	lvals[23] := &quot;Organism [orgn]&quot;;
	lvals[24] := &quot;Organism unsynonymized [onsn]&quot;;
	lvals[25] := &quot;Accession [accn]&quot;;
	lvals[26] := &quot;DOI [doi]&quot;;
	lvals[27] := &quot;Full Author Name [full]&quot;;
	lvals[28] := &quot;Grant Number [grnt]&quot;;
	lvals[29] := &quot;Acknowledgments [ack]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;PubMed Health&apos;) then
	resize(lvals, 18);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Title [titl]&quot;;
	lvals[3] := &quot;Keyphrase [kyph]&quot;;
	lvals[4] := &quot;Secondary Text [stxt]&quot;;
	lvals[5] := &quot;Concept Phrases [conp]&quot;;
	lvals[6] := &quot;Book [book]&quot;;
	lvals[7] := &quot;ParentId [pid]&quot;;
	lvals[8] := &quot;PmId [pmid]&quot;;
	lvals[9] := &quot;Subject [sub]&quot;;
	lvals[10] := &quot;AccessionID [aid]&quot;;
	lvals[11] := &quot;UMLSID [umls]&quot;;
	lvals[12] := &quot;ICD9ID [icd9]&quot;;
	lvals[13] := &quot;BioconceptsID [bcid]&quot;;
	lvals[14] := &quot;DrugName [dr]&quot;;
	lvals[15] := &quot;Type [type]&quot;;
	lvals[16] := &quot;Category [cat]&quot;;
	lvals[17] := &quot;Publisher [publ]&quot;;
	lvals[18] := &quot;CollectionId [clid]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;SNP&apos;) then
	resize(lvals, 35);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Reference SNP ID [rs]&quot;;
	lvals[3] := &quot;Chromosome [chr]&quot;;
	lvals[4] := &quot;Gene Name [gene]&quot;;
	lvals[5] := &quot;Submitter Handle [han]&quot;;
	lvals[6] := &quot;Accession [accn]&quot;;
	lvals[7] := &quot;LocusLink ID [llid]&quot;;
	lvals[8] := &quot;Organism [orgn]&quot;;
	lvals[9] := &quot;Function Class [fxn]&quot;;
	lvals[10] := &quot;Genotype [gtyp]&quot;;
	lvals[11] := &quot;non reference assembly [nref]&quot;;
	lvals[12] := &quot;Heterozygosity [hetz]&quot;;
	lvals[13] := &quot;Map Weight [mpwt]&quot;;
	lvals[14] := &quot;Validation Status [vali]&quot;;
	lvals[15] := &quot;Success Rate [srat]&quot;;
	lvals[16] := &quot;Create Build ID [cbid]&quot;;
	lvals[17] := &quot;Update Build ID [ubid]&quot;;
	lvals[18] := &quot;Population Class [pcls]&quot;;
	lvals[19] := &quot;Method Class [mcls]&quot;;
	lvals[20] := &quot;Submitter SNP ID [ss]&quot;;
	lvals[21] := &quot;Local SNP ID [sid]&quot;;
	lvals[22] := &quot;Allele [vari]&quot;;
	lvals[23] := &quot;SNP Class [scls]&quot;;
	lvals[24] := &quot;Gene Description [gdsc]&quot;;
	lvals[25] := &quot;Base Position [cpos]&quot;;
	lvals[26] := &quot;Contig Position [gpos]&quot;;
	lvals[27] := &quot;Text Word [word]&quot;;
	lvals[28] := &quot;Reference Amino Acid [wtaa]&quot;;
	lvals[29] := &quot;Variant Amino Acid [mtaa]&quot;;
	lvals[30] := &quot;Reference SNP [rsnp]&quot;;
	lvals[31] := &quot;SNP Index [sidx]&quot;;
	lvals[32] := &quot;SNP Allele Origin [alor]&quot;;
	lvals[33] := &quot;Suspected false variation [susp]&quot;;
	lvals[34] := &quot;Clinical Significance [clin]&quot;;
	lvals[35] := &quot;Global Minor Allele Frequency [gmaf]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;SRA&apos;) then
	resize(lvals, 18);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Accession [accn]&quot;;
	lvals[3] := &quot;Title [titl]&quot;;
	lvals[4] := &quot;Properties [prop]&quot;;
	lvals[5] := &quot;Text Word [word]&quot;;
	lvals[6] := &quot;Organism [orgn]&quot;;
	lvals[7] := &quot;Author [auth]&quot;;
	lvals[8] := &quot;BioProject [gprj]&quot;;
	lvals[9] := &quot;BioSample [bspl]&quot;;
	lvals[10] := &quot;Platform [plat]&quot;;
	lvals[11] := &quot;Strategy [stra]&quot;;
	lvals[12] := &quot;Source [src]&quot;;
	lvals[13] := &quot;Selection [sel]&quot;;
	lvals[14] := &quot;Layout [lay]&quot;;
	lvals[15] := &quot;ReadLength [rlen]&quot;;
	lvals[16] := &quot;Access [acs]&quot;;
	lvals[17] := &quot;Aligned [aln]&quot;;
	lvals[18] := &quot;Mbases [mbs]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;Sparcle&apos;) then
	resize(lvals, 17);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Status [stat]&quot;;
	lvals[3] := &quot;ECNumber [ecn]&quot;;
	lvals[4] := &quot;CDDShortname [shrt]&quot;;
	lvals[5] := &quot;GeneSymbol [gene]&quot;;
	lvals[6] := &quot;Name [nm]&quot;;
	lvals[7] := &quot;Label [lb]&quot;;
	lvals[8] := &quot;ECTitle [ectl]&quot;;
	lvals[9] := &quot;CDDTitle [cdtl]&quot;;
	lvals[10] := &quot;PDBTitle [pdtl]&quot;;
	lvals[11] := &quot;CDDDescription [cdds]&quot;;
	lvals[12] := &quot;BiosystemsDescription [bsds]&quot;;
	lvals[13] := &quot;GeneDescription [geds]&quot;;
	lvals[14] := &quot;Organism [orgn]&quot;;
	lvals[15] := &quot;Comment [cmmt]&quot;;
	lvals[16] := &quot;Defline [dfln]&quot;;
	lvals[17] := &quot;ReviewLevel [lev]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;Structure&apos;) then
	resize(lvals, 48);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;PDB Accession [accn]&quot;;
	lvals[3] := &quot;EC/RN Number [ecno]&quot;;
	lvals[4] := &quot;Resolution [reso]&quot;;
	lvals[5] := &quot;Experimental Method [expm]&quot;;
	lvals[6] := &quot;Title [titl]&quot;;
	lvals[7] := &quot;Abstract [abs]&quot;;
	lvals[8] := &quot;Author [auth]&quot;;
	lvals[9] := &quot;PDB Class [pcla]&quot;;
	lvals[10] := &quot;PDB Source [psrc]&quot;;
	lvals[11] := &quot;PDB Description [pdsc]&quot;;
	lvals[12] := &quot;PDB Comment [pcom]&quot;;
	lvals[13] := &quot;PDB Chemical Code [lcod]&quot;;
	lvals[14] := &quot;Chemical Name [lnam]&quot;;
	lvals[15] := &quot;Chemical Synonyms [csyn]&quot;;
	lvals[16] := &quot;Chemical Description [ldes]&quot;;
	lvals[17] := &quot;Organism [orgn]&quot;;
	lvals[18] := &quot;Taxonomy ID [txid]&quot;;
	lvals[19] := &quot;BioUnit Protein Molecule Count [pmc]&quot;;
	lvals[20] := &quot;BioUnit DNA Molecule Count [dmc]&quot;;
	lvals[21] := &quot;BioUnit RNA Molecule Count [rmc]&quot;;
	lvals[22] := &quot;BioUnit Biopolymer Count [bpc]&quot;;
	lvals[23] := &quot;BioUnit Chemical Count [lcou]&quot;;
	lvals[24] := &quot;BioUnit Other Molecule Count [ocou]&quot;;
	lvals[25] := &quot;Journal [jour]&quot;;
	lvals[26] := &quot;Conserved Domain PSSMID [cdid]&quot;;
	lvals[27] := &quot;Conserved Domain Short Name [cdsn]&quot;;
	lvals[28] := &quot;Conserved Domain Title [cddt]&quot;;
	lvals[29] := &quot;Conserved Domain Description [cddf]&quot;;
	lvals[30] := &quot;Conserved Domain Superfamily PSSMID [sfid]&quot;;
	lvals[31] := &quot;Conserved Domain Superfamily Short Name [spfn]&quot;;
	lvals[32] := &quot;Conserved Domain Superfamily Title [sptl]&quot;;
	lvals[33] := &quot;Conserved Domain Superfamily Description [spdf]&quot;;
	lvals[34] := &quot;Oligomeric State [os]&quot;;
	lvals[35] := &quot;Protein Name [pnam]&quot;;
	lvals[36] := &quot;Gene Name [gn]&quot;;
	lvals[37] := &quot;Gene Description [gdsc]&quot;;
	lvals[38] := &quot;DNA Name [dnam]&quot;;
	lvals[39] := &quot;RNA Name [rnam]&quot;;
	lvals[40] := &quot;Other Molecule Name [onam]&quot;;
	lvals[41] := &quot;ASU Protein Molecule Count [apmc]&quot;;
	lvals[42] := &quot;ASU DNA Molecule Count [admc]&quot;;
	lvals[43] := &quot;ASU RNA Molecule Count [armc]&quot;;
	lvals[44] := &quot;ASU Biopolymer Count [abpc]&quot;;
	lvals[45] := &quot;ASU Chemical Count [alct]&quot;;
	lvals[46] := &quot;ASU Other Molecule Count [aoct]&quot;;
	lvals[47] := &quot;BioUnit Molecular Weight [mlwt]&quot;;
	lvals[48] := &quot;Number of PDB Records per Structure [fc]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;Taxonomy&apos;) then
	resize(lvals, 16);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Scientific Name [scin]&quot;;
	lvals[3] := &quot;Common Name [comn]&quot;;
	lvals[4] := &quot;Synonym [txsy]&quot;;
	lvals[5] := &quot;All Names [alln]&quot;;
	lvals[6] := &quot;Next Level [nxlv]&quot;;
	lvals[7] := &quot;Subtree [sbtr]&quot;;
	lvals[8] := &quot;Lineage [lnge]&quot;;
	lvals[9] := &quot;GC [gc]&quot;;
	lvals[10] := &quot;MGC [mgc]&quot;;
	lvals[11] := &quot;PGC [pgc]&quot;;
	lvals[12] := &quot;Division [txdv]&quot;;
	lvals[13] := &quot;Rank [rank]&quot;;
	lvals[14] := &quot;Properties [prop]&quot;;
	lvals[15] := &quot;Text Word [word]&quot;;
	lvals[16] := &quot;Name Tokens [ntok]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;UniGene&apos;) then
	resize(lvals, 25);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Organism [orgn]&quot;;
	lvals[3] := &quot;Title [titl]&quot;;
	lvals[4] := &quot;Library [libr]&quot;;
	lvals[5] := &quot;Tissue [tiss]&quot;;
	lvals[6] := &quot;Clone ID [clon]&quot;;
	lvals[7] := &quot;Nucleotide Accession [ncac]&quot;;
	lvals[8] := &quot;Nucleotide UID [nuid]&quot;;
	lvals[9] := &quot;Protein Accession [prac]&quot;;
	lvals[10] := &quot;Protein UID [puid]&quot;;
	lvals[11] := &quot;Properties [prop]&quot;;
	lvals[12] := &quot;Text Word [word]&quot;;
	lvals[13] := &quot;Chromosome [chr]&quot;;
	lvals[14] := &quot;Gene Name [gene]&quot;;
	lvals[15] := &quot;Gene Description [gdsc]&quot;;
	lvals[16] := &quot;Gene ID [llid]&quot;;
	lvals[17] := &quot;Taxonomy ID [txid]&quot;;
	lvals[18] := &quot;Est Count [estc]&quot;;
	lvals[19] := &quot;mRNA Count [mrna]&quot;;
	lvals[20] := &quot;Sequence Count [seqc]&quot;;
	lvals[21] := &quot;Cluster ID [cid]&quot;;
	lvals[22] := &quot;Expression [expr]&quot;;
	lvals[23] := &quot;Restricted Expression [rexp]&quot;;
	lvals[24] := &quot;Page Rank [prnk]&quot;;
	lvals[25] := &quot;Record Type [rtyp]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;dbGaP&apos;) then
	resize(lvals, 40);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Discriminator [disc]&quot;;
	lvals[3] := &quot;Object Type [obj]&quot;;
	lvals[4] := &quot;Ancestor [ance]&quot;;
	lvals[5] := &quot;Belongs To [belo]&quot;;
	lvals[6] := &quot;Attribution [attr]&quot;;
	lvals[7] := &quot;Is Root Study [rtst]&quot;;
	lvals[8] := &quot;Is Top-Level Study [tlst]&quot;;
	lvals[9] := &quot;Study ID [stid]&quot;;
	lvals[10] := &quot;Study Name [stnm]&quot;;
	lvals[11] := &quot;Disease [dis]&quot;;
	lvals[12] := &quot;Project [proj]&quot;;
	lvals[13] := &quot;Genotype Platform [geno]&quot;;
	lvals[14] := &quot;Study Has SRA Components [sra]&quot;;
	lvals[15] := &quot;Study [stud]&quot;;
	lvals[16] := &quot;Has Variable [hasv]&quot;;
	lvals[17] := &quot;Variable ID [vrid]&quot;;
	lvals[18] := &quot;Variable Name [vrnm]&quot;;
	lvals[19] := &quot;Variable Description [vrds]&quot;;
	lvals[20] := &quot;Variable [var]&quot;;
	lvals[21] := &quot;Has Document [hasd]&quot;;
	lvals[22] := &quot;Document ID [dcid]&quot;;
	lvals[23] := &quot;Document Name [dcnm]&quot;;
	lvals[24] := &quot;Document [doc]&quot;;
	lvals[25] := &quot;Document Part [docp]&quot;;
	lvals[26] := &quot;Has Analysis [hasa]&quot;;
	lvals[27] := &quot;Analysis ID [anid]&quot;;
	lvals[28] := &quot;Analysis Name [annm]&quot;;
	lvals[29] := &quot;Analysis [anls]&quot;;
	lvals[30] := &quot;Has Dataset [hast]&quot;;
	lvals[31] := &quot;Dataset ID [dsid]&quot;;
	lvals[32] := &quot;Dataset Name [dsnm]&quot;;
	lvals[33] := &quot;Dataset [ds]&quot;;
	lvals[34] := &quot;PhenX [px]&quot;;
	lvals[35] := &quot;Has PhenX Mapping [hasp]&quot;;
	lvals[36] := &quot;Study Archive [arch]&quot;;
	lvals[37] := &quot;Molecular Data Type [mole]&quot;;
	lvals[38] := &quot;Primary Phenotype in Study [prph]&quot;;
	lvals[39] := &quot;Data Access Committee [dac]&quot;;
	lvals[40] := &quot;Study Design [design]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;BLAST Database&apos;) then
	resize(lvals, 12);
	lvals[1] := &quot;All Fields [all]&quot;;
	lvals[2] := &quot;Database Name [db]&quot;;
	lvals[3] := &quot;Database Title [titl]&quot;;
	lvals[4] := &quot;Database Organism Taxid [orgn]&quot;;
	lvals[5] := &quot;Genome Collection Assembly Name [asm]&quot;;
	lvals[6] := &quot;Blast Sequence Type [seqt]&quot;;
	lvals[7] := &quot;Blast Sequence Strategy [seqs]&quot;;
	lvals[8] := &quot;Blast Database Source [src]&quot;;
	lvals[9] := &quot;Keyword [keyw]&quot;;
	lvals[10] := &quot;NCBI Genome Project ID [prj]&quot;;
	lvals[11] := &quot;Gpipe Build Name [gpb]&quot;;
	lvals[12] := &quot;NCBI WGS Project ID [wgpr]&quot;;
	SetLegalValues(lvals);
end if;</sci:legalvalscript>
										<sci:value>Accession [accn]</sci:value>
									</sci:arg>
									<sci:arg name="Date Limits" type="GroupType" required="false" visibility="visible" multi="false" expanded="true">
										<sci:help>Limits search by dates.</sci:help>
										<sci:member>Date Range</sci:member>
										<sci:member>Date Field</sci:member>
									</sci:arg>
									<sci:arg name="Date Field" type="StringType" required="false" visibility="visible" multi="false" expanded="true">
										<sci:help>Selet a field to apply &lt;i&gt;Date Range&lt;/i&gt;. The legal values are dependent on &lt;i&gt;Database&lt;/i&gt;.</sci:help>
										<sci:legalvalscript>resize(lvals, 1);
lvals[1] := &quot;&quot;;
SetLegalValues(lvals);
#database := Parameter(&apos;Database&apos;);
if (#database eq &apos;Assembly&apos;) then
	resize(lvals, 5);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;Date - Sequences Release [srdt]&quot;;
	lvals[3] := &quot;Date - Assembly Update [updt]&quot;;
	lvals[4] := &quot;Date - GenBank Assembly Release [grls]&quot;;
	lvals[5] := &quot;Date - RefSeq Assembly Release [rrls]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;BioProject&apos;) then
	resize(lvals, 2);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;Registration Date [date]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;BioSample&apos;) then
	resize(lvals, 3);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;Publication Date [pdat]&quot;;
	lvals[3] := &quot;Modification Date [mdat]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;BioSystems&apos;) then
	resize(lvals, 3);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;CreateDate [pdat]&quot;;
	lvals[3] := &quot;ModifyDate [mdat]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;Books&apos;) then
	resize(lvals, 3);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;Publication Year [pdat]&quot;;
	lvals[3] := &quot;Release Date [rd]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;ClinVar&apos;) then
	resize(lvals, 4);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;Modification Date [mdat]&quot;;
	lvals[3] := &quot;Creation Date [cdat]&quot;;
	lvals[4] := &quot;Last interpreted [imod]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;Conserved Domains&apos;) then
	resize(lvals, 3);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;Publication Date [pdat]&quot;;
	lvals[3] := &quot;Modification Date [mdat]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;Core Nucleotide&apos;) then
	resize(lvals, 3);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;Publication Date [pdat]&quot;;
	lvals[3] := &quot;Modification Date [mdat]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;EST&apos;) then
	resize(lvals, 3);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;Publication Date [pdat]&quot;;
	lvals[3] := &quot;Modification Date [mdat]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;GEO DataSets&apos;) then
	resize(lvals, 3);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;Publication Date [pdat]&quot;;
	lvals[3] := &quot;Update Date [udat]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;GSS&apos;) then
	resize(lvals, 3);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;Publication Date [pdat]&quot;;
	lvals[3] := &quot;Modification Date [mdat]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;GTR&apos;) then
	resize(lvals, 2);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;Modification Date [mdat]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;Gene&apos;) then
	resize(lvals, 4);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;Modification Date [mdat]&quot;;
	lvals[3] := &quot;Creation Date [cdat]&quot;;
	lvals[4] := &quot;Date Discontinued [ddat]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;Genome&apos;) then
	resize(lvals, 2);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;Create Date [cdt]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;MedGen&apos;) then
	resize(lvals, 2);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;Modification Date [mdat]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;NCBI Web Site&apos;) then
	resize(lvals, 2);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;Modification Date [mdat]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;NLM Catalog&apos;) then
	resize(lvals, 2);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;Entrez Date [edat]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;Nucleotide&apos;) then
	resize(lvals, 3);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;Publication Date [pdat]&quot;;
	lvals[3] := &quot;Modification Date [mdat]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;OMIM&apos;) then
	resize(lvals, 5);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;Modification Date [mdat]&quot;;
	lvals[3] := &quot;Modification History [mdhs]&quot;;
	lvals[4] := &quot;Publication Date [pdat]&quot;;
	lvals[5] := &quot;Clinical Synopsis Date [csdt]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;PopSet&apos;) then
	resize(lvals, 3);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;Publication Date [pdat]&quot;;
	lvals[3] := &quot;Modification Date [mdat]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;Probe&apos;) then
	resize(lvals, 3);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;Modification Date [mdat]&quot;;
	lvals[3] := &quot;Publication Date [pdat]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;Protein&apos;) then
	resize(lvals, 3);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;Publication Date [pdat]&quot;;
	lvals[3] := &quot;Modification Date [mdat]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;Protein Clusters&apos;) then
	resize(lvals, 3);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;Creation Date [cdat]&quot;;
	lvals[3] := &quot;Modification Date [mdat]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;PubChem BioAssay&apos;) then
	resize(lvals, 4);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;Deposit Date [ddat]&quot;;
	lvals[3] := &quot;Modify Date [mdat]&quot;;
	lvals[4] := &quot;Hold Until Date [hdat]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;PubChem Compound&apos;) then
	resize(lvals, 2);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;CreateDate [cdat]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;PubChem Substance&apos;) then
	resize(lvals, 6);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;SourceReleaseDate [srd]&quot;;
	lvals[3] := &quot;DepositDate [ddat]&quot;;
	lvals[4] := &quot;ModifyDate [mdat]&quot;;
	lvals[5] := &quot;HoldUntilDate [hud]&quot;;
	lvals[6] := &quot;AvailableDate [adat]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;PubMed&apos;) then
	resize(lvals, 7);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;Date - Publication [pdat]&quot;;
	lvals[3] := &quot;Date - Entrez [edat]&quot;;
	lvals[4] := &quot;Date - MeSH [mhda]&quot;;
	lvals[5] := &quot;Date - Modification [mdat]&quot;;
	lvals[6] := &quot;Date - Completion [cdat]&quot;;
	lvals[7] := &quot;Date - Create [crdt]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;PubMed Central&apos;) then
	resize(lvals, 6);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;Publication Date [pdat]&quot;;
	lvals[3] := &quot;Electronic Publication Date [epdt]&quot;;
	lvals[4] := &quot;PMC Live Date [ldat]&quot;;
	lvals[5] := &quot;Entrez Date [edat]&quot;;
	lvals[6] := &quot;Print Publication Date [ppdt]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;PubMed Health&apos;) then
	resize(lvals, 4);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;ReleaseDate [rd]&quot;;
	lvals[3] := &quot;Date of publication [pdat]&quot;;
	lvals[4] := &quot;Update Date [udat]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;SNP&apos;) then
	resize(lvals, 3);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;Publication Date [pdat]&quot;;
	lvals[3] := &quot;Modification Date [mdat]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;SRA&apos;) then
	resize(lvals, 3);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;Publication Date [pdat]&quot;;
	lvals[3] := &quot;Modification Date [mdat]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;Sparcle&apos;) then
	resize(lvals, 2);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;CreateDate [pdat]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;Structure&apos;) then
	resize(lvals, 4);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;PDB Deposit Date [pdd]&quot;;
	lvals[3] := &quot;MMDB Entry Date [ddat]&quot;;
	lvals[4] := &quot;MMDB Modify Date [mdat]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;Taxonomy&apos;) then
	resize(lvals, 3);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;Entrez Date [edat]&quot;;
	lvals[3] := &quot;Modification Date [mdat]&quot;;
	SetLegalValues(lvals);
end if;
if (#database eq &apos;BLAST Database&apos;) then
	resize(lvals, 2);
	lvals[1] := &quot;&quot;;
	lvals[2] := &quot;Last Update [date]&quot;;
	SetLegalValues(lvals);
end if;</sci:legalvalscript>
									</sci:arg>
									<sci:arg name="Date Range" type="StringType" required="false" visibility="visible" multi="false">
										<sci:help>Limits search on records bounded by two specific dates. For example, &lt;b&gt;2008/01/01-2008/06/30&lt;/b&gt; or &lt;b&gt;2001-2003&lt;/b&gt;. Or leave an empty value for no date limits.</sci:help>
										<sci:enabledscript>SetDisabledDetails(&apos;To enable &apos;.ParameterName().&apos;, select a Date Field first&apos;);
StrLength(Parameter(&apos;Date Field&apos;)) &gt; 0;</sci:enabledscript>
									</sci:arg>
									<sci:arg name="Result Range" type="StringType" required="true" visibility="visible" multi="false" uimpl="false">
										<sci:help>&lt;p&gt;Limits a range of matching records to return. For example, &lt;b&gt;1-100&lt;/b&gt; or &lt;b&gt;100-150&lt;/b&gt;. The total number of matching records is provided in &lt;i&gt;matchingCount&lt;/i&gt;&lt;/p&gt;</sci:help>
										<sci:value>1</sci:value>
									</sci:arg>
									<sci:arg name="Results with Warnings" type="StringType" required="false" visibility="visible" multi="false">
										<sci:help>Specifies what to do with results which produced warnings.</sci:help>
										<sci:legalval selected="true">Data to Fail Port</sci:legalval>
										<sci:legalval>Data to Pass Port</sci:legalval>
										<sci:legalval>Don&apos;t Pass Data</sci:legalval>
									</sci:arg>
									<sci:arg name="NCBI Account" type="GroupType" required="false" visibility="visible" multi="false" legalvalsenforced="false" uimpl="false">
										<sci:metaproplist>
											<sci:propval name="SCI_InitializeUsingOrigType">GroupType</sci:propval>
											<sci:mpropval name="SCI_PromotedFrom" type="StringType">
												<sci:value>NCBI Account</sci:value>
											</sci:mpropval>
											<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
										</sci:metaproplist>
										<sci:help>Use your NCBI account for high-frequency E-utilities requests.</sci:help>
										<sci:member>NCBI Account API Key</sci:member>
										<sci:member>NCBI Account Tool</sci:member>
										<sci:member>NCBI Account Email</sci:member>
									</sci:arg>
									<sci:arg name="NCBI Account API Key" type="xpass" encrypt="bf_1" required="false" visibility="visible" multi="false" legalvalsenforced="false" uimpl="false">
										<sci:metaproplist>
											<sci:mpropval name="SCI_PromotedFrom" type="StringType">
												<sci:value>NCBI Account API Key</sci:value>
											</sci:mpropval>
										</sci:metaproplist>
										<sci:help>The API key of your NCBI account.</sci:help>
									</sci:arg>
									<sci:arg name="NCBI Account Tool" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
										<sci:metaproplist>
											<sci:mpropval name="SCI_PromotedFrom" type="StringType">
												<sci:value>NCBI Account Tool</sci:value>
											</sci:mpropval>
										</sci:metaproplist>
										<sci:help>Specifies the software that is producing the request.</sci:help>
									</sci:arg>
									<sci:arg name="NCBI Account Email" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
										<sci:metaproplist>
											<sci:mpropval name="SCI_PromotedFrom" type="StringType">
												<sci:value>NCBI Account Email</sci:value>
											</sci:mpropval>
										</sci:metaproplist>
										<sci:help>The email of your NCBI account.</sci:help>
									</sci:arg>
									<sci:arg name="Text Query" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
										<sci:help>&lt;p&gt;
The word or phrase to search for, for example, &lt;b&gt;stem cells&lt;/b&gt;. 
&lt;/p&gt;
&lt;p&gt;
&lt;i&gt;Text Query&lt;/i&gt; accepts a combination of terms, fields, boolean operators to conduct advanced search. For example, use &lt;b&gt;&quot;pancreatic cancer&quot;[titl] AND JOP[jour]&lt;/b&gt; and set &lt;i&gt;Database&lt;/i&gt; to &lt;b&gt;PubMed&lt;/b&gt; to search for pancreatic cancer in the title field of JOP (Journal of the Pancreas) articles. The &lt;i&gt;Search Field&lt;/i&gt; is ignored for such advanced search. A more complex example is &lt;b&gt;transporter[title] AND (&quot;Drosophila melanogaster&quot;[orgn] OR &quot;Mus musculus&quot;[orgn])&lt;/b&gt; for &lt;b&gt;Gene&lt;/b&gt; database. Refer to &lt;i&gt;Search Field&lt;/i&gt; to know the short fields names for each databse, that is the names inside []. 
&lt;/p&gt;
&lt;p&gt;
See &lt;a href=&quot;javascript:DoLink(&apos;http://www.ncbi.nlm.nih.gov/entrez/query/static/esearch_help.html&apos;)&quot;&gt;NCBI ESearch utility help&lt;/a&gt; for more details.
&lt;/p&gt;
</sci:help>
									</sci:arg>
									<sci:arg name="Tempfiles" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
										<sci:help>&lt;/p&gt;A comma delimited list of global properties, each of which will automatically hold the name of a file in the job&apos;s temporary folder, whose name is guaranteed to be unique.&lt;p/&gt;For each global name, an additional global is created (with the suffix &lt;i&gt;_Filename&lt;/i&gt;) that hold just the leaf file name of the temporary file.&lt;p/&gt;</sci:help>
									</sci:arg>
									<sci:arg name="DeclareLocal" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
										<sci:help>&lt;p&gt;Lists a set of properties (without the @) to create on the global property list for this subprotocol. Such properties can only be accessed within the scope of this subprotocol and its descendent subprotocols.&lt;p/&gt;Any global property not declared in this way is created on the top level global property list and is accessible from all protocols, but may collide with another property of the same name.&lt;p/&gt;Scoping global properties to the subprotocol where they are used is highly recommended.&lt;/p&gt;</sci:help>
										<sci:value>inputCache,searchResults</sci:value>
									</sci:arg>
									<sci:arg name="RunToCompletion" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
										<sci:help>When RunToCompletion is set to True, the subprotocol is re-initialized and executed in its entirety for each record it processes.</sci:help>
										<sci:legalval selected="true">True</sci:legalval>
										<sci:legalval>False</sci:legalval>
									</sci:arg>
									<sci:arg name="Parallel Processing Options" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
										<sci:help>&lt;p&gt;
When set to True, this set of options allow the subprotocol to execute in parallel on one or more independent Pipeline Pilot servers, running local or remote.  Additional parameters control the number of data records to send in each process batch, the list of Pipeline Pilot servers to use, the number of protocol processes that can be executed on each server, and whether to preserve the order of the processed data records.
&lt;/p&gt;&lt;p&gt;
Use this option judiciously, since it will not increase throughput in all circumstances. In general, it will yield improved performance when the parallelization benefits outweigh the data transfer overhead for the specified batch size.  As a rough guide, performance can be improved when each individual batch requires at least 10 seconds to execute, although this can be affected by the size of each data record.
&lt;/p&gt;&lt;p&gt;
When running the protocol with debugging, the subprotocol will provide debugging messages to detail each of the various steps of execution.  Also, components located within the parallel subprotocol will display their debugging messages as well.
&lt;/p&gt;&lt;p&gt;
For more information on the parallel subprotocol options, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/subprots/subprot_parallel_processing.htm&apos;)&quot;&gt;Parallel Processing Subprotocols&lt;/a&gt;.
&lt;/p&gt;
</sci:help>
										<sci:member>Parallel Processing Options Batch Size</sci:member>
										<sci:member>Parallel Processing Options Server</sci:member>
										<sci:member>Parallel Processing Options Preserve Order</sci:member>
										<sci:legalval>True</sci:legalval>
										<sci:legalval selected="true">False</sci:legalval>
									</sci:arg>
									<sci:arg name="Parallel Processing Options Batch Size" type="LongType" required="true" visibility="visible" multi="false" uimpl="true">
										<sci:help>The number of records to send to the remote server(s) for each subprotocol execution.  In general, performance is optimized when the amount of time required to process each batch is at least 10 seconds (note that this can vary depending on the characteristics of the remote server&apos;s hardware).  Use a batch size of -1 to pass all data in a single batch.</sci:help>
										<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
										<sci:value>25</sci:value>
									</sci:arg>
									<sci:arg name="Parallel Processing Options Server" type="StringType" required="false" visibility="visible" multi="true" expanded="true" legalvalsenforced="false" uimpl="true">
										<sci:help>&lt;p&gt;
Comma separated list of Pipeline Pilot servers on which to execute the parallel subprotocol.  The server names should be in the same format as the Pipeline Pilot Client&apos;s change server dialog (server-name:port-number).
&lt;/p&gt;&lt;p&gt;
Specifying &lt;b&gt;localhost&lt;/b&gt; as a server will cause the subprotocol to use its own Pipeline Pilot server.  This can be helpful on multi-CPU/multi-core systems (where the subprotocol jobs are spawned on the same machine) and Pipeline Pilot Linux clusters (where &apos;localhost&apos; requests spawning the subprotocol jobs on the same cluster).
&lt;/p&gt;</sci:help>
										<sci:member>Parallel Processing Options Server Processes</sci:member>
										<sci:validscript>SetInvalidDetails(&apos;This parameter is required.&apos;);
Parameter() ne &apos;&apos;;</sci:validscript>
										<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
									</sci:arg>
									<sci:arg name="Parallel Processing Options Server Processes" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
										<sci:help>Comma separated list of maximum number of batches that can be simultaneously executed on each remote server.  The number of entries in this parameter must equal the number of servers. If &apos;*&apos; is specified as the number of processes, then that server will only launch as many batches as the administrator of the remote server has permitted.</sci:help>
										<sci:validscript>/* Server Processes must have the same number of comma separated entries as the Server parameter and must have a value*/
#processes := parameter();
expand(&apos;,&apos;, #processes);
#servers := parameter(&apos;Parallel Processing Options Server&apos;);
expand(&apos;,&apos;, #servers);

if (numvalues(#processes) == 0) then
	SetInvalidDetails(&apos;This parameter is required.&apos;);
else
	SetInvalidDetails(&apos;The number of server processes (&apos; . numvalues(#processes) . &apos;) must equal the number of servers (&apos; . numvalues(#servers) . &apos;).&apos;);
end if;
numvalues(#processes) &gt; 0 and numvalues(#processes) == numvalues(#servers);</sci:validscript>
										<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
									</sci:arg>
									<sci:arg name="Parallel Processing Options Preserve Order" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
										<sci:help>Whether to preserve the order of the data as it enters and leaves the remote subprotocol.</sci:help>
										<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
										<sci:legalval selected="true">True</sci:legalval>
										<sci:legalval>False</sci:legalval>
									</sci:arg>
									<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
										<sci:help>Component Attributes</sci:help>
										<sci:value>ComponentReturnsFail</sci:value>
										<sci:value>ComponentReturnsPass</sci:value>
										<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
										<sci:legalval>ComponentReturnsPass</sci:legalval>
										<sci:legalval>ComponentReturnsFail</sci:legalval>
										<sci:legalval>ComponentRunsLocal</sci:legalval>
									</sci:arg>
									<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>Entrez ESearch for Each Data</sci:value>
									</sci:arg>
									<sci:arg name="ProtocolAutoLayout" type="BoolType" required="false" visibility="nevershow" multi="false">
										<sci:help>Protocol AutoLayout</sci:help>
										<sci:value>1</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:value>DATABASENODE</sci:value>
									</sci:arg>
									<sci:arg name="ComponentRevision" type="LongType" required="true" visibility="nevershow" multi="false">
										<sci:help>Component Revision</sci:help>
										<sci:value>100</sci:value>
									</sci:arg>
									<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The component this component is based upon.</sci:help>
										<sci:value>SubProtocol</sci:value>
									</sci:arg>
									<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>{CDED4568-2DF4-4B8D-9538-934A267E75A2}</sci:value>
									</sci:arg>
									<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>90 -95</sci:value>
									</sci:arg>
									<sci:arg name="ByReference" type="BoolType" required="false" visibility="nevershow" multi="false">
										<sci:help>By Ref</sci:help>
										<sci:value>1</sci:value>
									</sci:arg>
									<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
										<sci:value>100</sci:value>
										<sci:value>Searches a Entrez database to retrieve primary IDs</sci:value>
										<sci:value>&lt;p&gt;
Uses the Entrez ESearch utility. Select a Entrez &lt;i&gt;Database&lt;/i&gt; to search for the text query specified in &lt;i&gt;Entrez Query Property&lt;/i&gt; (usually named EntrezQuery). The search returns a list of primary IDs of the matching records in the database. Each of these IDs is sent out the Pass port in &lt;i&gt;primaryID&lt;/i&gt;. The total number of matching records is provided in &lt;i&gt;matchingCount&lt;/i&gt;. 
&lt;/p&gt;
&lt;p&gt;
Use &lt;i&gt;Search Field&lt;/i&gt; and &lt;i&gt;Date Limits&lt;/i&gt; to limit searching space for more refined results.
&lt;/p&gt;

&lt;p&gt;
If there were no search results produced for your query, the input data record is sent out the Fail Port unchanged.
&lt;br&gt;&lt;br&gt;
&lt;p&gt;
&lt;b&gt;Note regarding Entrez searches:&lt;/b&gt;
&lt;p&gt;
Entrez is smart about searches so if your query does not succeed exactly as stated, it is sometimes reinterpreted more broadly in order to produce related results. If Entrez does reinterpret your query, it will issue a warning and the results data record will be tagged with a &lt;b&gt;warnings&lt;/b&gt; property which will be set to &lt;b&gt;true&lt;/b&gt;. There are also additional properties which will identify the problematic query terms.
&lt;p&gt;
You have three options for how this component will handle results with warnings, chosen with the &lt;b&gt;Results With Warnings&lt;/b&gt; parameter:
&lt;ul&gt;
&lt;li&gt;Send to Pass Port - all results will come out the Pass Port.
&lt;li&gt;Send to Fail Port - results without warnings (exact matches to your query) will come out the Pass Port; results with warnings (matches to the broadened query) will come out the Fail Port.
&lt;li&gt;Don&apos;t Pass Data - no results with warnings will be produced.
&lt;/ul&gt;
&lt;br&gt;
&lt;p&gt;
The output data record can be streamed into &lt;a href=&quot;javascript:DoLink(&apos;{A116CE06-CF9D-4858-A746-C34598A24C10}&apos;)&quot;&gt;Entrez ESummary&lt;/a&gt;, &lt;a href=&quot;javascript:DoLink(&apos;{9579C91D-05FA-4C2F-9D84-125CCB6B9542}&apos;)&quot;&gt;Entrez EFetch&lt;/a&gt;, and &lt;a href=&quot;javascript:DoLink(&apos;{3114F126-CF80-4BD4-9D41-06BC91EA9A4E}&apos;)&quot;&gt;Entrez ELink&lt;/a&gt; to retrieve more information. Different database uses different primary IDs, so an ID must be used in conjunction with its database.
&lt;p&gt;
&lt;b&gt;See Also:&lt;/b&gt; &lt;a href=&quot;javascript:DoLink(&apos;http://www.ncbi.nlm.nih.gov/entrez/query/static/esearch_help.html&apos;)&quot;&gt;NCBI ESearch utility help&lt;/a&gt;
&lt;p&gt;
</sci:value>
										<sci:value>Generic</sci:value>
										<sci:value/>
										<sci:value>Generic</sci:value>
										<sci:value>Records passing out of any unconnected pass ports of components inside the subprotocol</sci:value>
										<sci:value>Generic</sci:value>
										<sci:value>Records passing out of any unconnected fail ports of components inside the subprotocol</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The server version when this component was registered</sci:help>
										<sci:value>20.1.0.2004</sci:value>
									</sci:arg>
									<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="Protocol Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>Protocol Sticky Notes</sci:help>
									</sci:arg>
									<sci:arg name="ProtocolScale2" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:help>Protocol Scale</sci:help>
										<sci:value>100</sci:value>
									</sci:arg>
									<sci:arg name="Protocol Options" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>Protocol Options</sci:help>
										<sci:legalval>Make Shortcut by Default</sci:legalval>
										<sci:legalval>Owner Access Only</sci:legalval>
									</sci:arg>
									<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The user who registered this component.</sci:help>
										<sci:value>scitegic/seqanal</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The date this component was registered.</sci:help>
										<sci:value>Mon Jun 17 09:53:43 2019</sci:value>
									</sci:arg>
									<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:help>Local Component Identifier</sci:help>
										<sci:value>7</sci:value>
									</sci:arg>
									<sci:arg name="SubProtocolMadeLinkIntoCopy" type="BoolType" required="false" visibility="nevershow" multi="false">
										<sci:help>Subprotocol Made Link Into Copy</sci:help>
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="SubProtocolModified" type="BoolType" required="false" visibility="nevershow" multi="false">
										<sci:help>Subprotocol Modified</sci:help>
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The original path within the database of this component.</sci:help>
										<sci:value>Components\Biology\Sequence Analysis\Database Query\Entrez\Entrez ESearch for Each Data</sci:value>
									</sci:arg>
								</sci:component>
								<sci:protocol/>
							</sci:data>
							<sci:data object="SciTegic.EvaluateExpression.1">
								<sci:component name="Custom Manipulator (PilotScript)" version="2">
									<sci:arg name="Expression" type="ExpressionType" required="true" visibility="visible" multi="false" expanded="true" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>Expression (or list of expressions separated by semi-colons) to evaluate.</sci:help>
										<sci:member>Initial Expression</sci:member>
										<sci:member>Final Expression</sci:member>
										<sci:member>Keep Calculated Properties</sci:member>
										<sci:value>
@warning := &quot;Failed to retrieve GI for accession &quot; . accessionNumber;
</sci:value>
									</sci:arg>
									<sci:arg name="Initial Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>&lt;p&gt;
This expression is executed only the first time data passes into the component.
&lt;p/&gt; 
Since there is no data available at initialization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
									</sci:arg>
									<sci:arg name="Final Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>&lt;p&gt;
This expression is executed only at finalization (after the last data passes out of the component).
&lt;p/&gt; 
Since there is no data available at finalization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
									</sci:arg>
									<sci:arg name="Keep Calculated Properties" type="BoolType" required="true" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>Adds any properties calculated in this component to a data record&apos;s property list.</sci:help>
										<sci:legalval selected="true">True</sci:legalval>
										<sci:legalval>False</sci:legalval>
									</sci:arg>
									<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
										<sci:help>Component Attributes</sci:help>
										<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
										<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
										<sci:legalval>ComponentReturnsFail</sci:legalval>
										<sci:legalval>ComponentRunsLocal</sci:legalval>
									</sci:arg>
									<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>Custom Error Message</sci:help>
									</sci:arg>
									<sci:arg name="Do Screen" type="BoolType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>When TRUE, controls which exit port is used for
each data record by evaluating the final expression
(or only one) listed in the &quot;Expression&quot; parameter.
   -Pass (green) port when expression true
   -Fail (red) port when expression false</sci:help>
										<sci:legalval>True</sci:legalval>
										<sci:legalval selected="true">False</sci:legalval>
									</sci:arg>
									<sci:arg name="ExpressionVersion" type="LongType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>Version of expression parser to use.</sci:help>
										<sci:value>2</sci:value>
									</sci:arg>
									<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The user who registered this component.</sci:help>
										<sci:value>scitegic/generic</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The date this component was registered.</sci:help>
										<sci:value>Mon Jan 21 09:55:43 2008</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="ComponentAutoDisplayName" type="ExpressionType" required="false" visibility="nevershow" multi="false">
										<sci:help>Automatically update the component display name when the &quot;Expression&quot; property is changed. This feature is turned off after the user manually changes the display name of the component in Protocol workspace.</sci:help>
										<sci:value>#displayName := trim(Parameter(&apos;Expression&apos;, 2));
if(strlength(#displayName) &gt; 0) then	
	/* Find the first line break */
	#nl := FindSubstring(#displayName, &quot;\r&quot;);
	if #nl &lt;= 0 then
		#nl := FindSubstring(#displayName, &quot;\n&quot;);
	end if;

	/* Keep the first line only */
	if (#nl &gt; 0) then
		StrErase(#displayName, #nl);
	end if;
	
	#displayName;
else
	&quot;&quot;;
end if;</sci:value>
									</sci:arg>
									<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The component this component is based upon.</sci:help>
										<sci:value>Custom Manipulator (PilotScript)</sci:value>
									</sci:arg>
									<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:value>EXPRESSIONNODE</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>{0995D675-7EE2-432C-95DF-E91C14052B22}</sci:value>
									</sci:arg>
									<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>390 -95</sci:value>
									</sci:arg>
									<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
										<sci:value>100</sci:value>
										<sci:value>Applies a PilotScript expression to each data record
</sci:value>
										<sci:value>&lt;p&gt;PilotScript is the native scripting language in Pipeline Pilot.  It is based on PL/SQL and allows you to query or alter the properties on data records.  For example, the expression:

&lt;blockquote&gt;
&lt;code&gt;A := 10;&lt;/code&gt;
&lt;/blockquote&gt;
creates a property named &quot;A&quot; and sets the value to &quot;10&quot;.&lt;/p&gt;

&lt;p&gt;For each incoming data record the PilotScript statements in &lt;i&gt;Expression&lt;/i&gt; are evaluated.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To initialize global variables such as counters, use &lt;i&gt;Initial Expression&lt;/i&gt;.&lt;/li&gt; 
&lt;li&gt;To clean up global variables or calculate final results use &lt;i&gt;Final Expression&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Parameters on Custom Manipulators do not become global variables that can be accessed via &lt;i&gt;@ParameterName&lt;/i&gt; syntax.  They must be accessed by using the &lt;i&gt;Parameter(&apos;ParameterName&apos;)&lt;/i&gt; function or by using token substitution via &lt;i&gt;$(ParameterName)&lt;/i&gt; syntax.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;See Also:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For more information on PilotScript, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/pscript/pscript_overview.htm&apos;)&quot;&gt;PilotScript Overview&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To use PilotScript to filter data records use &lt;a href=&quot;javascript:DoLink(&apos;{DD58ECD1-516F-48FE-A5DB-8328AED680F2}&apos;)&quot;&gt;Custom Filter (PilotScript)&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

</sci:value>
										<sci:value>Generic</sci:value>
										<sci:value/>
										<sci:value>Generic</sci:value>
										<sci:value/>
										<sci:value>None</sci:value>
										<sci:value/>
									</sci:arg>
									<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The server version when this component was registered</sci:help>
										<sci:value>7.0.0.35</sci:value>
									</sci:arg>
									<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:help>Local Component Identifier</sci:help>
										<sci:value>12</sci:value>
									</sci:arg>
									<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The original path within the database of this component.</sci:help>
										<sci:value>Components\Data Access and Manipulation\Property Manipulators\Custom Manipulator (PilotScript)</sci:value>
									</sci:arg>
								</sci:component>
							</sci:data>
							<sci:data object="SciTegic.Protocol.1">
								<sci:component name="DS Messaging" version="2">
									<sci:arg name="Client Message" type="StringType" required="false" visibility="visible" multi="false">
										<sci:help>&lt;p&gt;Short text send to the DS client.&lt;/p&gt;

&lt;strong&gt;Note:&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Text is limited to 32 characters.&lt;/li&gt;
&lt;/ul&gt;</sci:help>
										<sci:member>Client Message Final</sci:member>
									</sci:arg>
									<sci:arg name="Client Message Final" type="StringType" required="false" visibility="visible" multi="false">
										<sci:help>&lt;p&gt;Text send to the DS Client.&lt;/p&gt;

&lt;strong&gt;Note:&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Text length is not limited.&lt;/li&gt;
&lt;/ul&gt;</sci:help>
									</sci:arg>
									<sci:arg name="Report" type="GroupType" required="false" visibility="visible" multi="false" expanded="true">
										<sci:help>Parameters controlling the DS report.</sci:help>
										<sci:member>Report Error</sci:member>
										<sci:member>Remove Duplicates from Summary</sci:member>
										<sci:member>Report Detail</sci:member>
										<sci:member>Report Warning</sci:member>
										<sci:member>Report Summary</sci:member>
									</sci:arg>
									<sci:arg name="Report Summary" type="StringType" required="false" visibility="visible" multi="false">
										<sci:help>Text added to &lt;strong&gt;Summary&lt;/strong&gt; section in the DS report.</sci:help>
									</sci:arg>
									<sci:arg name="Report Detail" type="StringType" required="false" visibility="visible" multi="false">
										<sci:help>Text added to &lt;strong&gt;Detail&lt;/strong&gt; section in the DS report.</sci:help>
									</sci:arg>
									<sci:arg name="Report Warning" type="StringType" required="false" visibility="visible" multi="false">
										<sci:help>Text added to &lt;strong&gt;Warning&lt;/strong&gt; section in the DS report.</sci:help>
										<sci:value>$(Warning)</sci:value>
									</sci:arg>
									<sci:arg name="Report Error" type="StringType" required="false" visibility="visible" multi="false">
										<sci:help>Text added to &lt;strong&gt;Error&lt;/strong&gt; section in the DS report.

&lt;strong&gt;Note:&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;A specified text will change the run status to failure.&lt;/li&gt;
&lt;/ul&gt;</sci:help>
									</sci:arg>
									<sci:arg name="Remove Duplicates from Summary" type="BoolType" required="true" visibility="visible" multi="false" uimpl="false">
										<sci:help>When set to True, all duplicate &lt;strong&gt;Summary&lt;/strong&gt; lines in the DS report are removed. </sci:help>
										<sci:legalval>True</sci:legalval>
										<sci:legalval selected="true">False</sci:legalval>
									</sci:arg>
									<sci:arg name="Advanced" type="GroupType" required="false" visibility="visible" multi="false" expanded="true" uimpl="true">
										<sci:help>Contains less commonly used parameters.</sci:help>
										<sci:member>Debug Level</sci:member>
										<sci:member>Debug Message</sci:member>
									</sci:arg>
									<sci:arg name="Debug Message" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
										<sci:help>Message to send to the log file (if log is specified)</sci:help>
									</sci:arg>
									<sci:arg name="Debug Level" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
										<sci:help>User can set the debug level for the debug message.</sci:help>
										<sci:legalval selected="true">1</sci:legalval>
										<sci:legalval>2</sci:legalval>
									</sci:arg>
									<sci:arg name="Tempfiles" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
										<sci:help>Temporary files converted by the network to true temporary filenames</sci:help>
									</sci:arg>
									<sci:arg name="DeclareLocal" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
										<sci:help>Lists a set of properties (without the @) to create on the property list for this protocol. Other properties are created on the global property list and are accessible from all protocols.</sci:help>
									</sci:arg>
									<sci:arg name="RunToCompletion" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
										<sci:help>When the network runs, processes once or until done for each process call</sci:help>
										<sci:legalval>True</sci:legalval>
										<sci:legalval selected="true">False</sci:legalval>
									</sci:arg>
									<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
										<sci:help>Component Attributes</sci:help>
										<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
										<sci:legalval>ComponentReturnsPass</sci:legalval>
										<sci:legalval>ComponentReturnsFail</sci:legalval>
										<sci:legalval>ComponentRunsLocal</sci:legalval>
									</sci:arg>
									<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The date this component was registered.</sci:help>
										<sci:value>Mon Feb 26 16:26:52 2018</sci:value>
									</sci:arg>
									<sci:arg name="ComponentComment" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>Component Comment</sci:help>
										<sci:value>Defines a subprotocol in a pipeline. When you are creating a pipeline that requires a subprotocol as a component, drag this component into the pipeline, open it, and add components to it.</sci:value>
									</sci:arg>
									<sci:arg name="ComponentUsage" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>Component Usage</sci:help>
										<sci:value>When you are creating a pipeline which requires a subprotocol as 
a component, you can drag this SubProtocol component into the 
pipeline, open it, and add components into it.</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>DS Messaging</sci:value>
									</sci:arg>
									<sci:arg name="ProtocolAutoLayout" type="BoolType" required="false" visibility="nevershow" multi="false">
										<sci:help>Protocol AutoLayout</sci:help>
										<sci:value>1</sci:value>
									</sci:arg>
									<sci:arg name="ProtocolShowComment" type="BoolType" required="false" visibility="nevershow" multi="false">
										<sci:help>Protocol ShowComment</sci:help>
										<sci:value>true</sci:value>
									</sci:arg>
									<sci:arg name="ProtocolComment" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>Add Protocol Comment Here</sci:help>
										<sci:value>Add Protocol Comment Here</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:value>COMPONENTNODE</sci:value>
									</sci:arg>
									<sci:arg name="ComponentRevision" type="LongType" required="true" visibility="nevershow" multi="false">
										<sci:help>Component Revision</sci:help>
										<sci:value>100</sci:value>
									</sci:arg>
									<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The component this component is based upon.</sci:help>
										<sci:value>SubProtocol</sci:value>
									</sci:arg>
									<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>{8F288684-93BC-4712-BC9A-73930339BDEB}</sci:value>
									</sci:arg>
									<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>690 -95</sci:value>
									</sci:arg>
									<sci:arg name="ByReference" type="BoolType" required="false" visibility="nevershow" multi="false">
										<sci:help>By Ref</sci:help>
										<sci:value>1</sci:value>
									</sci:arg>
									<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
										<sci:value>100</sci:value>
										<sci:value>Sends text to the client and/or to the DS report</sci:value>
										<sci:value>&lt;p&gt;Messages can be sent to the client or text can be specified for the DS report.&lt;/p&gt;
</sci:value>
										<sci:value>None</sci:value>
										<sci:value/>
										<sci:value>None</sci:value>
										<sci:value>Records passing out of any unconnected pass ports of components inside the subprotocol</sci:value>
										<sci:value>None</sci:value>
										<sci:value>Records passing out of any unconnected fail ports of components inside the subprotocol</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The server version when this component was registered</sci:help>
										<sci:value>18.1.0.1604</sci:value>
									</sci:arg>
									<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="Protocol Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>Protocol Sticky Notes</sci:help>
									</sci:arg>
									<sci:arg name="ProtocolScale2" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:help>Protocol Scale</sci:help>
										<sci:value>100</sci:value>
									</sci:arg>
									<sci:arg name="Protocol Options" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>Protocol Options</sci:help>
										<sci:legalval>Make Shortcut by Default</sci:legalval>
										<sci:legalval>Owner Access Only</sci:legalval>
									</sci:arg>
									<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The user who registered this component.</sci:help>
										<sci:value>scitegic/dscore</sci:value>
									</sci:arg>
									<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:help>Local Component Identifier</sci:help>
										<sci:value>14</sci:value>
									</sci:arg>
									<sci:arg name="SubProtocolMadeLinkIntoCopy" type="BoolType" required="false" visibility="nevershow" multi="false">
										<sci:help>Subprotocol Made Link Into Copy</sci:help>
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The original path within the database of this component.</sci:help>
										<sci:value>Components\Chemistry\Utilities\Discovery Studio\DS Messaging</sci:value>
									</sci:arg>
								</sci:component>
								<sci:protocol/>
							</sci:data>
							<sci:connectid from="7" to="12" type="false"/>
							<sci:connectid from="12" to="14" type="true"/>
						</sci:protocol>
					</sci:data>
					<sci:data object="SciTegic.EvaluateExpression.1">
						<sci:component name="Custom Manipulator (PilotScript)" version="2">
							<sci:arg name="Expression" type="ExpressionType" required="true" visibility="visible" multi="false" expanded="true" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>Expression (or list of expressions separated by semi-colons) to evaluate.</sci:help>
								<sci:member>Initial Expression</sci:member>
								<sci:member>Final Expression</sci:member>
								<sci:member>Keep Calculated Properties</sci:member>
								<sci:value>debugMessage(&quot;Failed to retrieve sequence &quot;);
for #i in 1 .. NumProperties() loop
	debugMessage(IthPropertyName(#i) . &quot; : &quot; . IthProperty(#i));
end loop;
	</sci:value>
							</sci:arg>
							<sci:arg name="Initial Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>&lt;p&gt;
This expression is executed only the first time data passes into the component.
&lt;p/&gt; 
Since there is no data available at initialization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
							</sci:arg>
							<sci:arg name="Final Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>&lt;p&gt;
This expression is executed only at finalization (after the last data passes out of the component).
&lt;p/&gt; 
Since there is no data available at finalization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
							</sci:arg>
							<sci:arg name="Keep Calculated Properties" type="BoolType" required="true" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>Adds any properties calculated in this component to a data record&apos;s property list.</sci:help>
								<sci:legalval selected="true">True</sci:legalval>
								<sci:legalval>False</sci:legalval>
							</sci:arg>
							<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
								<sci:help>Component Attributes</sci:help>
								<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
								<sci:legalval>ComponentReturnsPass</sci:legalval>
								<sci:legalval>ComponentReturnsFail</sci:legalval>
								<sci:legalval>ComponentRunsLocal</sci:legalval>
							</sci:arg>
							<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Custom Error Message</sci:help>
							</sci:arg>
							<sci:arg name="Do Screen" type="BoolType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>When TRUE, controls which exit port is used for
each data record by evaluating the final expression
(or only one) listed in the &quot;Expression&quot; parameter.
   -Pass (green) port when expression true
   -Fail (red) port when expression false</sci:help>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="ExpressionVersion" type="LongType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>Version of expression parser to use.</sci:help>
								<sci:value>2</sci:value>
							</sci:arg>
							<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/generic</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The date this component was registered.</sci:help>
								<sci:value>Mon Jan 21 09:55:43 2008</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false"/>
							<sci:arg name="ComponentAutoDisplayName" type="ExpressionType" required="false" visibility="nevershow" multi="false">
								<sci:help>Automatically update the component display name when the &quot;Expression&quot; property is changed. This feature is turned off after the user manually changes the display name of the component in Protocol workspace.</sci:help>
								<sci:value>#displayName := trim(Parameter(&apos;Expression&apos;, 2));
if(strlength(#displayName) &gt; 0) then	
	/* Find the first line break */
	#nl := FindSubstring(#displayName, &quot;\r&quot;);
	if #nl &lt;= 0 then
		#nl := FindSubstring(#displayName, &quot;\n&quot;);
	end if;

	/* Keep the first line only */
	if (#nl &gt; 0) then
		StrErase(#displayName, #nl);
	end if;
	
	#displayName;
else
	&quot;&quot;;
end if;</sci:value>
							</sci:arg>
							<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The component this component is based upon.</sci:help>
								<sci:value>Custom Manipulator (PilotScript)</sci:value>
							</sci:arg>
							<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:value>EXPRESSIONNODE</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>{0995D675-7EE2-432C-95DF-E91C14052B22}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>1365 -455</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:value>100</sci:value>
								<sci:value>Applies a PilotScript expression to each data record
</sci:value>
								<sci:value>&lt;p&gt;PilotScript is the native scripting language in Pipeline Pilot.  It is based on PL/SQL and allows you to query or alter the properties on data records.  For example, the expression:

&lt;blockquote&gt;
&lt;code&gt;A := 10;&lt;/code&gt;
&lt;/blockquote&gt;
creates a property named &quot;A&quot; and sets the value to &quot;10&quot;.&lt;/p&gt;

&lt;p&gt;For each incoming data record the PilotScript statements in &lt;i&gt;Expression&lt;/i&gt; are evaluated.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To initialize global variables such as counters, use &lt;i&gt;Initial Expression&lt;/i&gt;.&lt;/li&gt; 
&lt;li&gt;To clean up global variables or calculate final results use &lt;i&gt;Final Expression&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Parameters on Custom Manipulators do not become global variables that can be accessed via &lt;i&gt;@ParameterName&lt;/i&gt; syntax.  They must be accessed by using the &lt;i&gt;Parameter(&apos;ParameterName&apos;)&lt;/i&gt; function or by using token substitution via &lt;i&gt;$(ParameterName)&lt;/i&gt; syntax.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;See Also:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For more information on PilotScript, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/pscript/pscript_overview.htm&apos;)&quot;&gt;PilotScript Overview&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To use PilotScript to filter data records use &lt;a href=&quot;javascript:DoLink(&apos;{DD58ECD1-516F-48FE-A5DB-8328AED680F2}&apos;)&quot;&gt;Custom Filter (PilotScript)&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>None</sci:value>
								<sci:value/>
							</sci:arg>
							<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The server version when this component was registered</sci:help>
								<sci:value>7.0.0.35</sci:value>
							</sci:arg>
							<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
							<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Local Component Identifier</sci:help>
								<sci:value>17</sci:value>
							</sci:arg>
							<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The original path within the database of this component.</sci:help>
								<sci:value>Components\Data Access and Manipulation\Property Manipulators\Custom Manipulator (PilotScript)</sci:value>
							</sci:arg>
						</sci:component>
					</sci:data>
					<sci:data object="SciTegic.EvaluateExpression.1">
						<sci:component name="Custom Filter (PilotScript)" version="2">
							<sci:arg name="Expression" type="ExpressionType" required="true" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
								<sci:help>The PilotScript expression used to filter the data.</sci:help>
								<sci:member>Initial Expression</sci:member>
								<sci:member>Final Expression</sci:member>
								<sci:member>Keep Calculated Properties</sci:member>
								<sci:value>#status := true;
if(@NumSeqs = 0)then
	#status := False;
	ErrorMsg := @NumIds . &quot; hits were found but no sequences could be retrieved from the NCBI server&quot;;
elsif (@NumSeqs &lt; @NumIDs)then
	WarningMsg := @NumIds . &quot; hits were found but only &quot; . @NumSeqs . &quot; sequences could be retrieved from the NCBI server&quot;;
end if;
#status;</sci:value>
							</sci:arg>
							<sci:arg name="Initial Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
								<sci:help>&lt;p&gt;
An expression evaluated only when the component
is first initialized (when the first data record enters).
&lt;p/&gt;
Since there is no data available at initialization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
							</sci:arg>
							<sci:arg name="Final Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
								<sci:help>&lt;p&gt;
An expression evaluated only when the
component is finalized (once the last data
record has passed).
&lt;p/&gt;
Since there is no data available at finalization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
							</sci:arg>
							<sci:arg name="Keep Calculated Properties" type="BoolType" required="true" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
								<sci:help>Allows any properties that were calculated in
&quot;Expression&quot; to be included with the exiting
record.
Otherwise, these properties are removed after
the evaluation is complete.</sci:help>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
								<sci:help>Component Attributes</sci:help>
								<sci:legalval>ComponentTakesInput</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsFail</sci:legalval>
								<sci:legalval>ComponentRunsLocal</sci:legalval>
							</sci:arg>
							<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Custom Error Message</sci:help>
							</sci:arg>
							<sci:arg name="ExpressionVersion" type="LongType" required="false" visibility="nevershow" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
								<sci:help>Version of expression parser to use.</sci:help>
								<sci:value>2</sci:value>
							</sci:arg>
							<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/generic</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The date this component was registered.</sci:help>
								<sci:value>Mon Jan 21 09:57:16 2008</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false"/>
							<sci:arg name="ComponentAutoDisplayName" type="ExpressionType" required="false" visibility="nevershow" multi="false">
								<sci:help>Automatically update the component display name when the &quot;Expression&quot; property is changed. This feature is turned off after the user manually changes the display name of the component in Protocol workspace.</sci:help>
								<sci:value>#displayName := trim(Parameter(&apos;Expression&apos;, 2));
if(strlength(#displayName) &gt; 0) then	
	/* Find the first line break */
	#nl := FindSubstring(#displayName, &quot;\r&quot;);
	if #nl &lt;= 0 then
		#nl := FindSubstring(#displayName, &quot;\n&quot;);
	end if;

	/* Keep the first line only */
	if (#nl &gt; 0) then
		StrErase(#displayName, #nl);
	end if;
	
	#displayName;
else
	&quot;&quot;;
end if;</sci:value>
							</sci:arg>
							<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:value>FILTERNODE</sci:value>
							</sci:arg>
							<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The component this component is based upon.</sci:help>
								<sci:value>Custom Filter (PilotScript)</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>{DD58ECD1-516F-48FE-A5DB-8328AED680F2}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>90 -635</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:value>100</sci:value>
								<sci:value>Passes data records for which a PilotScript expression evaluates to True

</sci:value>
								<sci:value>&lt;p&gt;For each incoming data record, the PilotScript statements in &lt;i&gt;Expression&lt;/i&gt; are evaluated. If the last statement in the expression evaluates to True or non-zero, the record is sent out the Pass port. Otherwise it is sent out the Fail port.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To initialize global variables such as counters, use &lt;i&gt;Initial Expression&lt;/i&gt;.&lt;/li&gt; 
&lt;li&gt;To clean up global variables or calculate final results use &lt;i&gt;Final Expression&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Parameters on Custom Manipulators do not become global variables that can be accessed via &lt;i&gt;@ParameterName&lt;/i&gt; syntax.  They must be accessed by using the &lt;i&gt;Parameter(&apos;ParameterName&apos;)&lt;/i&gt; function or by using token substitution via &lt;i&gt;$(ParameterName)&lt;/i&gt; syntax.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>Generic</sci:value>
								<sci:value>Data records for which the final expression in the PilotScript evaluates to True or non-zero</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value>Data records for which the final expression in the PilotScript evaluates to False or zero</sci:value>
							</sci:arg>
							<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
							<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Local Component Identifier</sci:help>
								<sci:value>18</sci:value>
							</sci:arg>
							<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The original path within the database of this component.</sci:help>
								<sci:value>Components\Data Access and Manipulation\Property Filters\Custom Filter (PilotScript)</sci:value>
							</sci:arg>
						</sci:component>
						<sci:proplist>
							<sci:propval name="RegistrationVersion">7.0.0.35</sci:propval>
						</sci:proplist>
					</sci:data>
					<sci:connectid from="6" to="15" type="true"/>
					<sci:connectid from="16" to="14" type="true"/>
					<sci:connectid from="14" to="3" type="true"/>
					<sci:connectid from="0" to="6" type="true"/>
					<sci:connectid from="0" to="5" type="false"/>
					<sci:connectid from="15" to="1" type="true"/>
					<sci:connectid from="1" to="16" type="true"/>
					<sci:connectid from="1" to="17" type="false"/>
					<sci:connectid from="5" to="15" type="true"/>
				</sci:protocol>
			</sci:data>
			<sci:data object="SciTegic.UnpackChildren.1">
				<sci:component name="Extract Similarity Search Hits" version="2">
					<sci:arg name="Location Property" type="StringType" required="false" visibility="visible" multi="false" implbase="{8FE8B2B4-92D1-4FB4-AB4A-762C80FDD304}" uimpl="true">
						<sci:help>The property containing the location of the similarity search hits in the hierarchy.</sci:help>
						<sci:value>SimilaritySearchHitsPackLocation</sci:value>
					</sci:arg>
					<sci:arg name="PackId Property" type="StringType" required="false" visibility="visible" multi="false" implbase="{8FE8B2B4-92D1-4FB4-AB4A-762C80FDD304}" uimpl="true">
						<sci:help>The property containing the pack ID for the similarity search hits. Used in reassembly.</sci:help>
						<sci:value>SimilaritySearchHitsPackId</sci:value>
					</sci:arg>
					<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
						<sci:help>Component Attributes</sci:help>
						<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
						<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
						<sci:legalval>ComponentReturnsFail</sci:legalval>
						<sci:legalval>ComponentRunsLocal</sci:legalval>
					</sci:arg>
					<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="Location To Unpack" type="StringType" required="true" visibility="nevershow" multi="false">
						<sci:help>The location of the similarity search hits in the hierarchy. The similarity search hits will be unpacked, and
passed out the Pass port, annotated with properties SimilaritySearchHitsPackId and SimilaritySearchHitsPackLocation.</sci:help>
						<sci:value>/SciTegic.*/SciTegic.SearchResultGroup/*[contains(local-name(),&apos;Group&apos;)]/</sci:value>
					</sci:arg>
					<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The user who registered this component.</sci:help>
						<sci:value>scitegic/seqanal</sci:value>
					</sci:arg>
					<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The date this component was registered.</sci:help>
						<sci:value>Fri Dec 11 10:01:30 2009</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>Extract Similarity Search Hits</sci:value>
					</sci:arg>
					<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
						<sci:value>GeneratorNode</sci:value>
					</sci:arg>
					<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The component this component is based upon.</sci:help>
						<sci:value>Evaluate Expression</sci:value>
					</sci:arg>
					<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>{8FE8B2B4-92D1-4FB4-AB4A-762C80FDD304}</sci:value>
					</sci:arg>
					<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>1290 -815</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
						<sci:value>100</sci:value>
						<sci:value>Extracts Similarity Search Hits from a Similarity Search Result record.</sci:value>
						<sci:value>Generates a Sequence data record for each similarity search database hit from a similarity Search Result record for a particular sequence. 

If you wish to reassemble the similarity Search Result record later, you should branch the incoming pipeline and apply a &lt;I&gt;Delete Hits from Similarity Search Result&lt;/I&gt; component in parallel to obtain the parent; the parent can be combined later with the children using the &lt;I&gt;Reassemble Similarity Search Result&lt;/I&gt;.

&lt;strong&gt;See Also:&lt;/strong&gt; &lt;a href=&quot;javascript:DoLink(&apos;sciapps/scitegic/seqanal/docs/seqanal.pdf&apos;)&quot;&gt;Sequence Analysis User Guide&lt;/a&gt;</sci:value>
						<sci:value>Generic Data</sci:value>
						<sci:value>Similarity Search Result records</sci:value>
						<sci:value>Generic Data</sci:value>
						<sci:value>Similarity Search Hits</sci:value>
						<sci:value>Generic Data</sci:value>
						<sci:value>If you turn this on, this port will contain records that are not Similarity Search Results.</sci:value>
					</sci:arg>
					<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The server version when this component was registered</sci:help>
						<sci:value>4.5.2.100</sci:value>
					</sci:arg>
					<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:help>Local Component Identifier</sci:help>
						<sci:value>5</sci:value>
					</sci:arg>
					<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The original path within the database of this component.</sci:help>
						<sci:value>Components\Biology\Sequence Analysis\Search and Similarity\Manipulators\Extract Similarity Search Hits</sci:value>
					</sci:arg>
				</sci:component>
			</sci:data>
			<sci:data object="SciTegic.Protocol.1">
				<sci:component name="DS Messaging" version="2">
					<sci:arg name="Client Message" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>Short message send to the client.</sci:help>
						<sci:member>Client Message Final</sci:member>
					</sci:arg>
					<sci:arg name="Client Message Final" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>Final Message reported to the DS Client</sci:help>
					</sci:arg>
					<sci:arg name="Report" type="GroupType" required="false" visibility="visible" multi="false" expanded="true">
						<sci:help>Options controlling the DS report page</sci:help>
						<sci:member>Report Error</sci:member>
						<sci:member>Report Summary</sci:member>
						<sci:member>Remove Duplicates from Summary</sci:member>
						<sci:member>Report Warning</sci:member>
						<sci:member>Report Detail</sci:member>
					</sci:arg>
					<sci:arg name="Report Summary" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>Message added to &lt;strong&gt;Summary&lt;/strong&gt; section in DS report</sci:help>
					</sci:arg>
					<sci:arg name="Report Detail" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>Message added to &lt;strong&gt;Detail&lt;/strong&gt; section in DS report</sci:help>
					</sci:arg>
					<sci:arg name="Report Warning" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>Message added to &lt;strong&gt;Warning&lt;/strong&gt; section in DS report</sci:help>
					</sci:arg>
					<sci:arg name="Report Error" type="LinkDataPropertyType" required="false" visibility="visible" multi="false" legalvalsenforced="false">
						<sci:metaproplist>
							<sci:propval name="SCI_InitializeUsingRevertInfo" base64="UI1">Al1HAAE9TWVzc2FnZSBhZGRlZCB0byA8c3Ryb25nPkVycm9yPC9zdHJvbmc+IHNlY3Rpb24gaW4gRFMgcmVwb3J0LFN0cmluZ1R5cGUACAAAAAEBAAEABAD8AAAAAAAAAAAANFJlcG9ydCBFcnJvcgPMU8+7AS1GYWlsIHRvIGZldGNoIGhpdCBzZXF1ZW5jZXMgZnJvbSBOQ0JJIHNlcnZlcgA=</sci:propval>
							<sci:propval name="SCI_InitializeUsingOrigType">StringType</sci:propval>
							<sci:propval name="SCI_EvalOnInit" boolVal="true"/>
							<sci:propval name="SCI_EvalOnInitType">StringType</sci:propval>
						</sci:metaproplist>
						<sci:help>Message added to &lt;strong&gt;Error&lt;/strong&gt; section in DS report</sci:help>
						<sci:value>ErrorMsg</sci:value>
					</sci:arg>
					<sci:arg name="Remove Duplicates from Summary" type="BoolType" required="true" visibility="visible" multi="false" uimpl="false">
						<sci:help>When set to True, all duplicate &lt;strong&gt;Summary&lt;/strong&gt; lines in the DS report are removed. </sci:help>
						<sci:legalval>True</sci:legalval>
						<sci:legalval selected="true">False</sci:legalval>
					</sci:arg>
					<sci:arg name="Advanced" type="GroupType" required="false" visibility="visible" multi="false" expanded="true" uimpl="true">
						<sci:help>Contains less commonly used parameters.</sci:help>
						<sci:member>Debug Level</sci:member>
						<sci:member>Debug Message</sci:member>
					</sci:arg>
					<sci:arg name="Debug Message" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Message to send to the log file (if log is specified)</sci:help>
					</sci:arg>
					<sci:arg name="Debug Level" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>User can set the debug level for the debug message.</sci:help>
						<sci:legalval selected="true">1</sci:legalval>
						<sci:legalval>2</sci:legalval>
					</sci:arg>
					<sci:arg name="Tempfiles" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Temporary files converted by the network to true temporary filenames</sci:help>
					</sci:arg>
					<sci:arg name="DeclareLocal" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Lists a set of properties (without the @) to create on the property list for this protocol. Other properties are created on the global property list and are accessible from all protocols.</sci:help>
					</sci:arg>
					<sci:arg name="RunToCompletion" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>When the network runs, processes once or until done for each process call</sci:help>
						<sci:legalval>True</sci:legalval>
						<sci:legalval selected="true">False</sci:legalval>
					</sci:arg>
					<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
						<sci:help>Component Attributes</sci:help>
						<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
						<sci:legalval>ComponentReturnsPass</sci:legalval>
						<sci:legalval>ComponentReturnsFail</sci:legalval>
						<sci:legalval>ComponentRunsLocal</sci:legalval>
					</sci:arg>
					<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The date this component was registered.</sci:help>
						<sci:value>Mon Feb 26 16:26:52 2018</sci:value>
					</sci:arg>
					<sci:arg name="ComponentComment" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Component Comment</sci:help>
						<sci:value>Defines a subprotocol in a pipeline. When you are creating a pipeline that requires a subprotocol as a component, drag this component into the pipeline, open it, and add components to it.</sci:value>
					</sci:arg>
					<sci:arg name="ComponentUsage" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Component Usage</sci:help>
						<sci:value>When you are creating a pipeline which requires a subprotocol as 
a component, you can drag this SubProtocol component into the 
pipeline, open it, and add components into it.</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>DS Messaging</sci:value>
					</sci:arg>
					<sci:arg name="ProtocolAutoLayout" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol AutoLayout</sci:help>
						<sci:value>1</sci:value>
					</sci:arg>
					<sci:arg name="ProtocolShowComment" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol ShowComment</sci:help>
						<sci:value>true</sci:value>
					</sci:arg>
					<sci:arg name="ProtocolComment" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Add Protocol Comment Here</sci:help>
						<sci:value>Add Protocol Comment Here</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
						<sci:value>COMPONENTNODE</sci:value>
					</sci:arg>
					<sci:arg name="ComponentRevision" type="LongType" required="true" visibility="nevershow" multi="false">
						<sci:help>Component Revision</sci:help>
						<sci:value>100</sci:value>
					</sci:arg>
					<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The component this component is based upon.</sci:help>
						<sci:value>SubProtocol</sci:value>
					</sci:arg>
					<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>{8F288684-93BC-4712-BC9A-73930339BDEB}</sci:value>
					</sci:arg>
					<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>1890 -815</sci:value>
					</sci:arg>
					<sci:arg name="ByReference" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>By Ref</sci:help>
						<sci:value>1</sci:value>
					</sci:arg>
					<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
						<sci:value>100</sci:value>
						<sci:value>Sends text to the client and/or to the DS report</sci:value>
						<sci:value>&lt;p&gt;Messages can be sent to the client or text can be specified for the DS report.&lt;/p&gt;
</sci:value>
						<sci:value>None</sci:value>
						<sci:value/>
						<sci:value>None</sci:value>
						<sci:value>Records passing out of any unconnected pass ports of components inside the subprotocol</sci:value>
						<sci:value>None</sci:value>
						<sci:value>Records passing out of any unconnected fail ports of components inside the subprotocol</sci:value>
					</sci:arg>
					<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The server version when this component was registered</sci:help>
						<sci:value>18.1.0.1604</sci:value>
					</sci:arg>
					<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="Protocol Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Sticky Notes</sci:help>
					</sci:arg>
					<sci:arg name="ProtocolScale2" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Scale</sci:help>
						<sci:value>100</sci:value>
					</sci:arg>
					<sci:arg name="Protocol Options" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Options</sci:help>
						<sci:legalval>Make Shortcut by Default</sci:legalval>
						<sci:legalval>Owner Access Only</sci:legalval>
					</sci:arg>
					<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The user who registered this component.</sci:help>
						<sci:value>scitegic/dscore</sci:value>
					</sci:arg>
					<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:help>Local Component Identifier</sci:help>
						<sci:value>19</sci:value>
					</sci:arg>
					<sci:arg name="SubProtocolMadeLinkIntoCopy" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Subprotocol Made Link Into Copy</sci:help>
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="SubProtocolModified" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Subprotocol Modified</sci:help>
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The original path within the database of this component.</sci:help>
						<sci:value>Components\Chemistry\Utilities\Discovery Studio\DS Messaging</sci:value>
					</sci:arg>
				</sci:component>
				<sci:protocol/>
			</sci:data>
			<sci:data object="SciTegic.Protocol.1">
				<sci:component name="Subprotocol" version="2">
					<sci:arg name="Tempfiles" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Temporary files converted by the network to true temporary filenames</sci:help>
					</sci:arg>
					<sci:arg name="DeclareLocal" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Lists a set of properties (without the @) to create on the property list for this protocol. Other properties are created on the global property list and are accessible from all protocols.</sci:help>
						<sci:value>PDBCode, PDBChain</sci:value>
					</sci:arg>
					<sci:arg name="RunToCompletion" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>When the network runs, processes once or until done for each process call</sci:help>
						<sci:legalval>True</sci:legalval>
						<sci:legalval selected="true">False</sci:legalval>
					</sci:arg>
					<sci:arg name="Parallel Processing Options" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Allow the subprotocol to execute batched and in parallel on one or more remote Pipeline Pilot servers.  Additional parameters control the number of data records to send in each process batch, the list of Pipeline Pilot servers to use, the number of protocol processes that can be executed on each server, and whether to preserve the order of the processed data records.</sci:help>
						<sci:member>Batch Size</sci:member>
						<sci:member>Server</sci:member>
						<sci:member>Preserve Order</sci:member>
						<sci:legalval>True</sci:legalval>
						<sci:legalval selected="true">False</sci:legalval>
					</sci:arg>
					<sci:arg name="Batch Size" type="LongType" required="true" visibility="visible" multi="false" uimpl="true">
						<sci:help>The number of records to send to the remote server(s) for each subprotocol execution.</sci:help>
						<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
						<sci:value>25</sci:value>
					</sci:arg>
					<sci:arg name="Server" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Comma separated list of Pipeline Pilot servers on which to execute the remote subprotocol.  the server names should be in the same format as the Pipeline Pilot Client&apos;s change server dialog.  However, specifying &lt;b&gt;&apos;localhost&apos;&lt;/b&gt; as a server will cause the subprotocol to use its own Pipeline Pilot server.  This can be helpful on multi-CPU systems and Pipeline Pilot Linux clusters.</sci:help>
						<sci:member>Server Processes</sci:member>
						<sci:validscript>SetInvalidDetails(&apos;This parameter is required.&apos;);
Parameter() ne &apos;&apos;;</sci:validscript>
						<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
					</sci:arg>
					<sci:arg name="Server Processes" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Optional comma separated list of maximum number of batches that can simultaneously execute on each remote server.  The number of entries in this parameter must equal the number of servers. </sci:help>
						<sci:validscript>#processes := parameter();
expand(&apos;,&apos;, #processes);
if (numvalues(#processes) &gt; 0) then
	#servers := parameter(&apos;Server&apos;);
	expand(&apos;,&apos;, #servers);
end if;
SetInvalidDetails(&apos;The number of server processes (&apos; . numvalues(#processes) . &apos;) must equal the number of servers (&apos; . numvalues(#servers) . &apos;)&apos;);
numvalues(#processes) == 0 or numvalues(#processes) == numvalues(#servers);</sci:validscript>
					</sci:arg>
					<sci:arg name="Preserve Order" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Whether to preserve the order of the data as it enters and leaves the remote subprotocol.</sci:help>
						<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
						<sci:legalval selected="true">True</sci:legalval>
						<sci:legalval>False</sci:legalval>
					</sci:arg>
					<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
						<sci:help>Component Attributes</sci:help>
						<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
						<sci:legalval>ComponentReturnsPass</sci:legalval>
						<sci:legalval>ComponentReturnsFail</sci:legalval>
						<sci:legalval>ComponentRunsLocal</sci:legalval>
					</sci:arg>
					<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="ComponentComment" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Component Comment</sci:help>
						<sci:value>Defines a subprotocol in a pipeline. When you are creating a pipeline that requires a subprotocol as a component, drag this component into the pipeline, open it, and add components to it.</sci:value>
					</sci:arg>
					<sci:arg name="ComponentUsage" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Component Usage</sci:help>
						<sci:value>When you are creating a pipeline which requires a subprotocol as 
a component, you can drag this SubProtocol component into the 
pipeline, open it, and add components into it.</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>SCOP and Ligands and Resolution</sci:value>
					</sci:arg>
					<sci:arg name="ProtocolAutoLayout" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol AutoLayout</sci:help>
						<sci:value>1</sci:value>
					</sci:arg>
					<sci:arg name="ProtocolShowComment" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol ShowComment</sci:help>
						<sci:value>true</sci:value>
					</sci:arg>
					<sci:arg name="ProtocolComment" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Add Protocol Comment Here</sci:help>
						<sci:value>Add Protocol Comment Here</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
						<sci:value>COMPONENTNODE</sci:value>
					</sci:arg>
					<sci:arg name="ComponentRevision" type="LongType" required="true" visibility="nevershow" multi="false">
						<sci:help>Component Revision</sci:help>
						<sci:value>100</sci:value>
					</sci:arg>
					<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The component this component is based upon.</sci:help>
						<sci:value>SubProtocol</sci:value>
					</sci:arg>
					<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>{17001C74-63CE-4B4B-B37C-F0EAA19CE4AA}</sci:value>
					</sci:arg>
					<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>1590 -995</sci:value>
					</sci:arg>
					<sci:arg name="ByReference" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>By Ref</sci:help>
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
						<sci:value>100</sci:value>
						<sci:value>Builds subprotocols in Pipeline Pilot.</sci:value>
						<sci:value>Use a subprotocol to collapse one or more components into a single item. Open a subprotocol to view or edit its contents. 

To define input and output ports, right-click and select Edit. You can save subprotocols and reuse them. For more information, see the User Guide help for &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/subprots/subprot_overview.htm&apos;)&quot;&gt;Subprotocols Overview&lt;/a&gt;.

Tip: Any component can be made into a shortcut, so that the latest version is always used. For more information, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/subprots/shortcuts.htm&apos;)&quot;&gt;Creating Shortcuts&lt;/a&gt;.</sci:value>
						<sci:value>Generic</sci:value>
						<sci:value/>
						<sci:value>None</sci:value>
						<sci:value>Records passing out of any unconnected pass ports of components inside the subprotocol</sci:value>
						<sci:value>None</sci:value>
						<sci:value>Records passing out of any unconnected fail ports of components inside the subprotocol</sci:value>
					</sci:arg>
					<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The server version when this component was registered</sci:help>
						<sci:value>6.1.0.10</sci:value>
					</sci:arg>
					<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>%VERSION 3%</sci:value>
						<sci:value>2245 -1445 576 352</sci:value>
						<sci:value>255 255 0</sci:value>
						<sci:value>For PDB related database, creates HspSCOPs.txt and HspLigands.txt to store SCOP and ligand information for each BLAST hit. Also creats PDBResolution.txt to store PDB structure resolution.</sci:value>
					</sci:arg>
					<sci:arg name="Protocol Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Sticky Notes</sci:help>
					</sci:arg>
					<sci:arg name="ProtocolScale2" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Scale</sci:help>
						<sci:value>100</sci:value>
					</sci:arg>
					<sci:arg name="Protocol Options" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Options</sci:help>
						<sci:legalval>Make Shortcut by Default</sci:legalval>
						<sci:legalval>Owner Access Only</sci:legalval>
					</sci:arg>
					<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The user who registered this component.</sci:help>
						<sci:value>scitegic/core</sci:value>
					</sci:arg>
					<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The date this component was registered.</sci:help>
						<sci:value>Thu Mar 08 14:43:51 2007</sci:value>
					</sci:arg>
					<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:help>Local Component Identifier</sci:help>
						<sci:value>9</sci:value>
					</sci:arg>
					<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The original path within the database of this component.</sci:help>
						<sci:value>Components\Data Access and Manipulation\Utilities\Subprotocol Utilities\Subprotocol</sci:value>
					</sci:arg>
				</sci:component>
				<sci:protocol>
					<sci:data object="SciTegic.Protocol.1">
						<sci:component name="Find SCOP Families of PDB Domain" version="2">
							<sci:arg name="PDB Code Property" type="StringType" required="true" visibility="visible" multi="false">
								<sci:value>PDBCode</sci:value>
							</sci:arg>
							<sci:arg name="Domain Property" type="StringType" required="true" visibility="visible" multi="false">
								<sci:value>Domain</sci:value>
							</sci:arg>
							<sci:arg name="SCOP Families Property" type="StringType" required="true" visibility="visible" multi="false">
								<sci:value>SCOPFamilies</sci:value>
							</sci:arg>
							<sci:arg name="Residue Sequence Number" type="StringType" required="true" visibility="visible" multi="false">
								<sci:legalval>By PDB</sci:legalval>
								<sci:legalval selected="true">By Sequence</sci:legalval>
							</sci:arg>
							<sci:arg name="Tempfiles" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
								<sci:help>Temporary files converted by the network to true temporary filenames</sci:help>
							</sci:arg>
							<sci:arg name="DeclareLocal" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
								<sci:help>Lists a set of properties (without the @) to create on the property list for this protocol. Other properties are created on the global property list and are accessible from all protocols.</sci:help>
							</sci:arg>
							<sci:arg name="RunToCompletion" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
								<sci:help>When the network runs, processes once or until done for each process call</sci:help>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
								<sci:help>Component Attributes</sci:help>
								<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsFail</sci:legalval>
								<sci:legalval>ComponentRunsLocal</sci:legalval>
							</sci:arg>
							<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Custom Error Message</sci:help>
							</sci:arg>
							<sci:arg name="ComponentComment" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Comment</sci:help>
								<sci:value>Defines a subprotocol in a pipeline. When you are creating a pipeline that requires a subprotocol as a component, drag this component into the pipeline, open it, and add components to it.</sci:value>
							</sci:arg>
							<sci:arg name="ComponentUsage" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Usage</sci:help>
								<sci:value>When you are creating a pipeline which requires a subprotocol as 
a component, you can drag this SubProtocol component into the 
pipeline, open it, and add components into it.</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Display Name</sci:help>
								<sci:value>Find SCOP Families of PDB Domain</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolAutoLayout" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol AutoLayout</sci:help>
								<sci:value>1</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolShowComment" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol ShowComment</sci:help>
								<sci:value>true</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolComment" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Add Protocol Comment Here</sci:help>
								<sci:value>Add Protocol Comment Here</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Disabled</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:help>Component Icon</sci:help>
								<sci:value>COMPONENTNODE</sci:value>
							</sci:arg>
							<sci:arg name="ComponentRevision" type="LongType" required="true" visibility="nevershow" multi="false">
								<sci:help>Component Revision</sci:help>
								<sci:value>100</sci:value>
							</sci:arg>
							<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The component this component is based upon.</sci:help>
								<sci:value>SubProtocol</sci:value>
							</sci:arg>
							<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>GUID</sci:help>
								<sci:value>{A517D98A-3430-41DD-80AA-F311996827F6}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Point</sci:help>
								<sci:value>938 -50</sci:value>
							</sci:arg>
							<sci:arg name="ByReference" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>By Ref</sci:help>
								<sci:value>1</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:help>Fancy Help</sci:help>
								<sci:value>100</sci:value>
								<sci:value>Finds SCOP families of a PDB domain</sci:value>
								<sci:value>Use the property defined by &lt;i&gt;PDB Code Property&lt;/i&gt; to specify a PDB code. Use the property defined by &lt;i&gt;Domain Property&lt;/i&gt; to specify a domain in a format of &lt;b&gt;[chain]:[start residue number]-[end residue number]&lt;/b&gt; or simply &lt;b&gt;[chain]:&lt;/b&gt;. Use &lt;i&gt;Residue Sequence Number&lt;/i&gt; to specify whether the residue numbers are from PDB residue sequence numbers or sequential numbers. A pre-compiled SCOP database is used for this searching. A new property defined by &lt;i&gt;SCOP Families Property&lt;/i&gt; will be generated to output the names of the found SCOP families.</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>Generic</sci:value>
								<sci:value>Records passing out of any unconnected pass ports of components inside the subprotocol</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value>Records passing out of any unconnected fail ports of components inside the subprotocol</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The server version when this component was registered</sci:help>
								<sci:value>6.1.2.7</sci:value>
							</sci:arg>
							<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Sticky Notes</sci:help>
							</sci:arg>
							<sci:arg name="Protocol Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Sticky Notes</sci:help>
							</sci:arg>
							<sci:arg name="ComponentRunTimeID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Runtime Identifier</sci:help>
								<sci:value>9:0</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolScale2" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Scale</sci:help>
								<sci:value>100</sci:value>
							</sci:arg>
							<sci:arg name="Protocol Options" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Options</sci:help>
								<sci:legalval>Make Shortcut by Default</sci:legalval>
								<sci:legalval>Owner Access Only</sci:legalval>
							</sci:arg>
							<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/dscore</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The date this component was registered.</sci:help>
								<sci:value>Tue Sep 04 10:30:44 2007</sci:value>
							</sci:arg>
							<sci:arg name="SubProtocolMadeLinkIntoCopy" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>Subprotocol Made Link Into Copy</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Location of the component in the database</sci:help>
								<sci:value>Components\Accelrys Discovery Studio\Protein Modeling\Utilities\Find SCOP Families of PDB Domain</sci:value>
							</sci:arg>
							<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Local Component Identifier</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
						</sci:component>
						<sci:protocol/>
					</sci:data>
					<sci:data object="SciTegic.EvaluateExpression.1">
						<sci:component name="Custom Manipulator (PilotScript)" version="2">
							<sci:arg name="Expression" type="ExpressionType" required="true" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>Expression (or list of expressions separated by semi-colons) to evaluate</sci:help>
								<sci:member>Initial Expression</sci:member>
								<sci:member>Final Expression</sci:member>
								<sci:member>Keep Calculated Properties</sci:member>
								<sci:value>PDBSCOPs := PDBCode.&apos;:&apos;.Domain.&apos;=&gt;&apos;.SCOPFamilies;
</sci:value>
							</sci:arg>
							<sci:arg name="Initial Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>This expression is executed only the first time data passes into the component. (Since there is no data available at initialization time, only expressions referencing global properties are allowed.)</sci:help>
							</sci:arg>
							<sci:arg name="Final Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>This expression is executed only at finalization (after the last data passes out of the component). 
 (Since there is no data available at finalization time, only expressions referencing global properties are allowed.)</sci:help>
							</sci:arg>
							<sci:arg name="Keep Calculated Properties" type="BoolType" required="true" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>Adds any properties calculated in this component to a molecule&apos;s property list</sci:help>
								<sci:legalval selected="true">True</sci:legalval>
								<sci:legalval>False</sci:legalval>
							</sci:arg>
							<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
								<sci:help>Component Attributes</sci:help>
								<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
								<sci:legalval>ComponentReturnsFail</sci:legalval>
								<sci:legalval>ComponentRunsLocal</sci:legalval>
							</sci:arg>
							<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Custom Error Message</sci:help>
							</sci:arg>
							<sci:arg name="Do Screen" type="BoolType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>When TRUE, controls which exit port is used for
each data record by evaluating the final expression
(or only one) listed in the &quot;Expression&quot; parameter.
   -Pass (green) port when expression true
   -Fail (red) port when expression false</sci:help>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="ExpressionVersion" type="LongType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>Version of expression parser to use.</sci:help>
								<sci:value>2</sci:value>
							</sci:arg>
							<sci:arg name="ComponentComment" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Comment</sci:help>
								<sci:value>Processes commands expressed in PilotScript syntax to apply rapid
manipulations to data record properties. In this way, the component may be
customized to build a new, specialized data manipulation component.</sci:value>
							</sci:arg>
							<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/core</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The date this component was registered.</sci:help>
								<sci:value>Mon Dec 11 10:20:05 2006</sci:value>
							</sci:arg>
							<sci:arg name="ComponentUsage" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Usage</sci:help>
								<sci:value>The &apos;Expression&apos;  is evaluated for each data record, and may alter and manipulate the properties of the data objects. The &apos;Initial expression&apos; is evaluated the first time data passes into the component and is typically used for initializing global variables. See the online documentation for full details of PilotScript expression syntax.

Input             - Data records
Output Pass  - All Data records</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Display Name</sci:help>
								<sci:value>PDBSCOPs</sci:value>
							</sci:arg>
							<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The component this component is based upon.</sci:help>
								<sci:value>Custom Manipulator (PilotScript)</sci:value>
							</sci:arg>
							<sci:arg name="ComponentRunTimeID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component RunTimeID</sci:help>
								<sci:value>9:1</sci:value>
							</sci:arg>
							<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:help>Component Icon</sci:help>
								<sci:value>EXPRESSIONNODE</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Disabled</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>GUID</sci:help>
								<sci:value>{0995D675-7EE2-432C-95DF-E91C14052B22}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Point</sci:help>
								<sci:value>1238 -50</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:help>Fancy Help</sci:help>
								<sci:value>100</sci:value>
								<sci:value>Applies a PilotScript expression to each data record
</sci:value>
								<sci:value>&lt;p&gt;PilotScript is the native scripting language in Pipeline Pilot.  It is based on PL/SQL and allows you to query or alter the properties on data records.  For example, the expression:

&lt;blockquote&gt;
&lt;code&gt;A := 10;&lt;/code&gt;
&lt;/blockquote&gt;
creates a property named &quot;A&quot; and sets the value to &quot;10&quot;.&lt;/p&gt;

&lt;p&gt;For each incoming data record the PilotScript statements in &lt;i&gt;Expression&lt;/i&gt; are evaluated.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To initialize global variables such as counters, use &lt;i&gt;Initial Expression&lt;/i&gt;.&lt;/li&gt; 
&lt;li&gt;To clean up global variables or calculate final results use &lt;i&gt;Final Expression&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Parameters on Custom Manipulators do not become global variables that can be accessed via &lt;i&gt;@ParameterName&lt;/i&gt; syntax and can only be accessed by token substitution via &lt;i&gt;$(ParameterName)&lt;/i&gt; syntax.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;See Also:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For more information on PilotScript, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/pscript/pscript_overview.htm&apos;)&quot;&gt;PilotScript Overview&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To use PilotScript to filter data records use &lt;a href=&quot;javascript:DoLink(&apos;{DD58ECD1-516F-48FE-A5DB-8328AED680F2}&apos;)&quot;&gt;Custom Filter (PilotScript)&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>None</sci:value>
								<sci:value/>
							</sci:arg>
							<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The server version when this component was registered</sci:help>
								<sci:value>6.0.2.0</sci:value>
							</sci:arg>
							<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Sticky Notes</sci:help>
							</sci:arg>
							<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Location of the component in the database</sci:help>
								<sci:value>Components\Generic\Manipulators\Custom Manipulator (PilotScript)</sci:value>
							</sci:arg>
							<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Local Component Identifier</sci:help>
								<sci:value>1</sci:value>
							</sci:arg>
						</sci:component>
					</sci:data>
					<sci:data object="SciTegic.PropertyFunctions.1">
						<sci:component name="Keep Properties" version="2">
							<sci:arg name="PropertyList" type="StringType" required="true" visibility="visible" multi="false">
								<sci:help>Comma-separated list of property names to keep</sci:help>
								<sci:member>RenameList</sci:member>
								<sci:value>PDBSCOPs</sci:value>
							</sci:arg>
							<sci:arg name="RenameList" type="StringType" required="false" visibility="visible" multi="false">
								<sci:help>If provided, it causes the properties given in PropertyList to be 
renamed to the corresponding name in this list.  If not provided, then no properties are renamed.</sci:help>
							</sci:arg>
							<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
								<sci:help>Component Attributes</sci:help>
								<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
								<sci:legalval>ComponentReturnsFail</sci:legalval>
								<sci:legalval>ComponentRunsLocal</sci:legalval>
							</sci:arg>
							<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Custom Error Message</sci:help>
							</sci:arg>
							<sci:arg name="Action" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:help>the action to perform</sci:help>
								<sci:value>Keep</sci:value>
							</sci:arg>
							<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/core</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The date this component was registered.</sci:help>
								<sci:value>Tue Oct 17 16:03:31 2006</sci:value>
							</sci:arg>
							<sci:arg name="ComponentComment" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Comment</sci:help>
								<sci:value>Removes all but the specified properties from the property list.</sci:value>
							</sci:arg>
							<sci:arg name="ComponentUsage" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Usage</sci:help>
								<sci:value>&apos;PropertyList&apos; contains a comma-separated list of the property names that you wish to keep.  All other properties will be removed.

Input             - Data records
Output Pass  - All Data records</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Display Name</sci:help>
								<sci:value>Keep Properties</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolAutoLayout" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol AutoLayout</sci:help>
								<sci:value>true</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolShowComment" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol ShowComment</sci:help>
								<sci:value>false</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolComment" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Add Protocol Comment Here</sci:help>
								<sci:value>Add Protocol Comment Here</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Disabled</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:help>Component Icon</sci:help>
								<sci:value>EXPRESSIONNODE</sci:value>
							</sci:arg>
							<sci:arg name="ComponentRevision" type="LongType" required="true" visibility="nevershow" multi="false">
								<sci:help>Component Revision</sci:help>
								<sci:value>100</sci:value>
							</sci:arg>
							<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The component this component is based upon.</sci:help>
								<sci:value>SubProtocol</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolScale" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Scale</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Point</sci:help>
								<sci:value>1538 -50</sci:value>
							</sci:arg>
							<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>GUID</sci:help>
								<sci:value>{456195EF-9708-4367-B3DD-21EBF3796604}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:help>Fancy Help</sci:help>
								<sci:value>100</sci:value>
								<sci:value>Keeps only the specified properties
</sci:value>
								<sci:value>For each incoming data record, retains only the properties found in the list of property names specified by &lt;i&gt;PropertyList&lt;/i&gt;.  All other properties are removed.

&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Use &lt;i&gt;RenameList&lt;/i&gt; if you wish to change the names of the retained properties.
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;See Also:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;To remove specified properties from each data record, use 
&lt;a href=&quot;javascript:DoLink(&apos;{C2ED35FF-5397-4877-AADB-10F1A15D60E2}&apos;)&quot;&gt;Remove Properties&lt;/a&gt;.
&lt;/ul&gt;
</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>Generic</sci:value>
								<sci:value>With only the specified properties remaining</sci:value>
								<sci:value>None</sci:value>
								<sci:value/>
							</sci:arg>
							<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The server version when this component was registered</sci:help>
								<sci:value>6.0.1.4</sci:value>
							</sci:arg>
							<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Sticky Notes</sci:help>
							</sci:arg>
							<sci:arg name="ByReference" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>By Ref</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="Protocol Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Sticky Notes</sci:help>
							</sci:arg>
							<sci:arg name="ComponentRunTimeID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Runtime Identifier</sci:help>
								<sci:value>9:2</sci:value>
							</sci:arg>
							<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Location of the component in the database</sci:help>
								<sci:value>Components\Generic\Manipulators\Keep Properties</sci:value>
							</sci:arg>
							<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Local Component Identifier</sci:help>
								<sci:value>2</sci:value>
							</sci:arg>
						</sci:component>
					</sci:data>
					<sci:data object="SciTegic.DelimitedWriter.1">
						<sci:component name="Delimited Text Writer" version="2">
							<sci:arg name="Destination" type="DestinationURLType" required="true" visibility="visible" multi="false">
								<sci:help>The filename for the destination data. Be sure to specify an extension such as .txt or .xls. To save in compressed (zipped) format, add the extension .gz or .zip to the filename. </sci:help>
								<sci:member>Maximum</sci:member>
								<sci:member>IfFileExists</sci:member>
								<sci:member>CharacterEncoding</sci:member>
								<sci:value>$(RunDirectory)/HspSCOPs.txt</sci:value>
							</sci:arg>
							<sci:arg name="Maximum" type="LongType" required="false" visibility="visible" multi="false">
								<sci:help>The maximum number of data records to write (all if value is empty)</sci:help>
							</sci:arg>
							<sci:arg name="IfFileExists" type="StringType" required="true" visibility="visible" multi="false">
								<sci:help>What to do if the given destination file already exists</sci:help>
								<sci:legalval selected="true">Overwrite</sci:legalval>
								<sci:legalval>Append</sci:legalval>
								<sci:legalval>Halt</sci:legalval>
							</sci:arg>
							<sci:arg name="CharacterEncoding" type="StringType" required="false" visibility="visible" multi="false">
								<sci:help>&lt;p&gt;Indicates the character set that will be used within the file.&lt;/p&gt;
 
&lt;p&gt;ANSI is the default and specifies a character set where each character is defined by a single byte.  This allows the Latin-1 (ISO-8859-1) character set to be written to the file.  Virtually all applications can read these files.&lt;/p&gt;
 
&lt;p&gt;UTF-8 specifies a variable length character set.  Each character is represented by 1 to 6 bytes.  This allows writing out all extended characters specified in the Unicode character sets while maintaining reasonably lengthed files.  Many applications do not support UTF-8 files.&lt;/p&gt;
 
&lt;p&gt;&quot;Unicode&quot; and &quot;Unicode big endian&quot; are sets where each character is represented by exactly 2 bytes (also known as UCS-2).  Depending on which is used will determine the order in which the bytes appear for each character. Many applications do not support Unicode or Unicode big endian files.&lt;/p&gt;
 
&lt;p&gt;For more information about each of these ecoding styles, go to &lt;a href=&quot;javascript:DoLink(&apos;http://www.unicode.org&apos;)&quot;&gt;http://www.unicode.org&lt;/a&gt;&lt;/p&gt;</sci:help>
								<sci:legalval selected="true">ANSI</sci:legalval>
								<sci:legalval>UTF-8</sci:legalval>
								<sci:legalval>Unicode</sci:legalval>
								<sci:legalval>Unicode big endian</sci:legalval>
							</sci:arg>
							<sci:arg name="Delimiter" type="StringType" required="true" visibility="visible" multi="false">
								<sci:help>Specifies the character to use to separate
the fields in the file.  (Whole records are separated by line breaks.) Make sure you use a different
MultiValueDelimiter than Delimiter!</sci:help>
								<sci:member>MultipleValueDelimiter</sci:member>
								<sci:legalval selected="true">Tab</sci:legalval>
								<sci:legalval>Space</sci:legalval>
								<sci:legalval>Comma</sci:legalval>
								<sci:legalval>Colon</sci:legalval>
								<sci:legalval>Semicolon</sci:legalval>
							</sci:arg>
							<sci:arg name="MultipleValueDelimiter" type="StringType" required="true" visibility="visible" multi="false">
								<sci:help>The delimiter to use between multiple value on a single property. If &quot;None&quot;, 
multiple values are separated into their own columns.</sci:help>
								<sci:legalval selected="true">None</sci:legalval>
								<sci:legalval>Semicolon</sci:legalval>
								<sci:legalval>Colon</sci:legalval>
								<sci:legalval>Comma</sci:legalval>
								<sci:legalval>Linefeed</sci:legalval>
							</sci:arg>
							<sci:arg name="Format Options" type="GroupType" required="false" visibility="visible" multi="false">
								<sci:member>OutputColumnNames</sci:member>
								<sci:member>OutputColumnTypes</sci:member>
								<sci:member>OutputRowNumber</sci:member>
								<sci:member>UndefinedString</sci:member>
								<sci:member>MissingValue Format</sci:member>
							</sci:arg>
							<sci:arg name="UndefinedString" type="StringType" required="false" visibility="visible" multi="false">
								<sci:help>Text to output when data for a given column is not present (leave empty or enter text of choice)</sci:help>
							</sci:arg>
							<sci:arg name="OutputColumnNames" type="BoolType" required="true" visibility="visible" multi="false">
								<sci:help>Output column names</sci:help>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="OutputColumnTypes" type="StringType" required="true" visibility="visible" multi="false">
								<sci:help>Output a row that includes column types</sci:help>
								<sci:legalval selected="true">None</sci:legalval>
								<sci:legalval>SpotfireFormat</sci:legalval>
								<sci:legalval>NDIFormat</sci:legalval>
							</sci:arg>
							<sci:arg name="OutputRowNumber" type="BoolType" required="true" visibility="visible" multi="false">
								<sci:help>Includes the number of the record as the first field for each record</sci:help>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="MissingValue Format" type="StringType" required="true" visibility="visible" multi="false">
								<sci:help>How to write out explicitly-defined MissingValue properties. Each missing value property
contains a string that may provide information about the reason the value is missing.  You can ask to 
see either the missing value text containing this string, or use the undefined string to write out missing values.</sci:help>
								<sci:legalval selected="true">Use MissingValue Text</sci:legalval>
								<sci:legalval>Use UndefinedString</sci:legalval>
							</sci:arg>
							<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
								<sci:help>Component Attributes</sci:help>
								<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
								<sci:legalval>ComponentReturnsPass</sci:legalval>
								<sci:legalval>ComponentReturnsFail</sci:legalval>
								<sci:legalval>ComponentRunsLocal</sci:legalval>
							</sci:arg>
							<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Custom Error Message</sci:help>
							</sci:arg>
							<sci:arg name="ComponentComment" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Comment</sci:help>
								<sci:value>Writes data records to a text file, separating the records with a new line, and the individual fields within a record with the Delimiter character. The property names for the fields are stored as the first record. If a property has more than one value, it is written as multiple fields (for example, prop[0], prop[1] ...)</sci:value>
							</sci:arg>
							<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/core</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The date this component was registered.</sci:help>
								<sci:value>Mon Dec 11 15:05:11 2006</sci:value>
							</sci:arg>
							<sci:arg name="ComponentUsage" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Usage</sci:help>
								<sci:value>Writes data records to a text file, separating the records with a new line and the individual fields within a record with the &apos;Delimiter&apos; character.  The property names for the fields will be stored as the first line.  

&apos;MultipleValueDelimiter&apos; controls properties with more than one value. If None, then they are written as multiple fields (e.g., prop[1], prop[2] ...). Else, they are written into a single value separated by the chosen delimiter.

&apos;UndefinedString&apos; is the string to write out to represent undefined values.

Input - Data records

Advanced Parameters:

&apos;OutputColumnNames&apos; determines whether the first line of the file will be the column names.

&apos;OutputColumnTypes&apos; determines whether the next line of the file will be column type designations.

&apos;OutputRowNumber&apos; determines whether the first column of the file will be reserved for the Row number.</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Display Name</sci:help>
								<sci:value>Delimited Text Writer</sci:value>
							</sci:arg>
							<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The component this component is based upon.</sci:help>
								<sci:value>Delimited Writer</sci:value>
							</sci:arg>
							<sci:arg name="ComponentRunTimeID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component RunTimeID</sci:help>
								<sci:value>9:3</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Disabled</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:help>Component Icon</sci:help>
								<sci:value>DOCUMENTNODE</sci:value>
							</sci:arg>
							<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>GUID</sci:help>
								<sci:value>{9B0081A4-6085-4FF0-BD12-AEB8B7BD9CB5}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Point</sci:help>
								<sci:value>1813 -50</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:help>Fancy Help</sci:help>
								<sci:value>100</sci:value>
								<sci:value>Writes data records to a text file with one data record per line and data separated by delimiters
</sci:value>
								<sci:value>&lt;p&gt;Data records are separated with a new line and the individual properties within each record are separated with the character specified by &lt;i&gt;Delimiter&lt;/I&gt;. The property names for the fields are stored as the first line of the file. 
&lt;p&gt;
&lt;b&gt;Note:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Use &lt;i&gt;MultipleValueDelimiter&lt;/i&gt; to control the output format for properties 
  with more than one value (array properties).
&lt;/ul&gt;
</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>None</sci:value>
								<sci:value/>
								<sci:value>None</sci:value>
								<sci:value/>
							</sci:arg>
							<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The server version when this component was registered</sci:help>
								<sci:value>6.0.2.0</sci:value>
							</sci:arg>
							<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Sticky Notes</sci:help>
							</sci:arg>
							<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Location of the component in the database</sci:help>
								<sci:value>Components\Generic\Writers\Delimited Text Writer</sci:value>
							</sci:arg>
							<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Local Component Identifier</sci:help>
								<sci:value>3</sci:value>
							</sci:arg>
						</sci:component>
					</sci:data>
					<sci:data object="SciTegic.UnpackChildren.1">
						<sci:component name="Unpack Children" version="2">
							<sci:arg name="Location To Unpack" type="StringType" required="true" visibility="visible" multi="false">
								<sci:help>The location of a node in the hierarchy; the children of this node will be unpacked, and
passed out the Pass port, annotated with properties PackId and Location. The remaining parts of the data record 
will be passed out the Fail port, annotated with PackId.</sci:help>
								<sci:value>/SciTegic.Sequence/SciTegic.HighScoringPairGroup/</sci:value>
							</sci:arg>
							<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
								<sci:help>Component Attributes</sci:help>
								<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsFail</sci:legalval>
								<sci:legalval>ComponentRunsLocal</sci:legalval>
							</sci:arg>
							<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Custom Error Message</sci:help>
							</sci:arg>
							<sci:arg name="What to Output" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:help>Whether to output the parent structure or the children</sci:help>
								<sci:legalval>Parent</sci:legalval>
								<sci:legalval selected="true">Children</sci:legalval>
							</sci:arg>
							<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/core</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The date this component was registered.</sci:help>
								<sci:value>Fri Nov 19 09:32:47 2004</sci:value>
							</sci:arg>
							<sci:arg name="ComponentUsage" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Usage</sci:help>
								<sci:value>A new property (TagName) is created for each incoming data record, and it is defined with the value of true.  Records tagged in this way can easily be identified in future components by evaluating whether the new property is defined.   This is useful for marking a data stream for learning, substructure search, and other components.

Input             - Data records
Output Pass  - Data records with the tag defined.</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Display Name</sci:help>
								<sci:value>Unpack Children</sci:value>
							</sci:arg>
							<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:help>Component Icon</sci:help>
								<sci:value>ComponentNode</sci:value>
							</sci:arg>
							<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The component this component is based upon.</sci:help>
								<sci:value>Evaluate Expression</sci:value>
							</sci:arg>
							<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>GUID</sci:help>
								<sci:value>{ACCDEEEF-1ED7-4B27-B263-BA531EABFC9C}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Point</sci:help>
								<sci:value>363 -250</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Disabled</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:help>Fancy Help</sci:help>
								<sci:value>100</sci:value>
								<sci:value>Unpacks the children beneath a specified location in the hierarchy into individual nodes</sci:value>
								<sci:value>This component unpacks the children (if any) underneath the specified node and returns them through the Pass port.  If the location is not found, the data record is passed unchanged through the Fail port.

The property &lt;I&gt;PackId&lt;/I&gt; will be defined on the children.  It will contain a number that is the sequence number of the original incoming data record.  (If &lt;i&gt;PackId&lt;/i&gt; is already defined on the incoming data record, then the current sequence number will be added as another element in the &lt;i&gt;PackId&lt;/i&gt; array.  This is useful in multiple unpack/repack steps.)

The property &lt;I&gt;Location&lt;/I&gt; will be defined on the children, and will contain the location in the original record where it was detached from. (If &lt;i&gt;Location&lt;/i&gt; is already defined, then the current location will be added as another element in the &lt;i&gt;Location&lt;/i&gt; array.  This is useful in multiple unpack/repack steps.)

These annotations give the information needed to repack the children back onto a copy of the parent (which can be gotten using a Delete Children component with the same location, in parallel).

See also &lt;a href=&quot;javascript:DoLink(&apos;{ACCDEEEF-FEED-4B27-B263-BA531EABFC9C}&apos;)&quot;&gt;Delete Children&lt;/a&gt; and &lt;a href=&quot;javascript:DoLink(&apos;{FEFEAAAA-1ED7-4B27-B263-BA531EABFC9C}&apos;)&quot;&gt;Pack Children&lt;/a&gt;.</sci:value>
								<sci:value>Generic Data</sci:value>
								<sci:value>Hierarchical data records</sci:value>
								<sci:value>Generic Data</sci:value>
								<sci:value>Data records containing the children nodes</sci:value>
								<sci:value>Generic Data</sci:value>
								<sci:value>The remaining data record after removing the children</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The server version when this component was registered</sci:help>
								<sci:value>4.5.2.0</sci:value>
							</sci:arg>
							<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Sticky Notes</sci:help>
							</sci:arg>
							<sci:arg name="ComponentRunTimeID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Runtime Identifier</sci:help>
								<sci:value>9:4</sci:value>
							</sci:arg>
							<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Location of the component in the database</sci:help>
								<sci:value>Components\Generic\Utilities\Data Tree Manipulators\Unpack Children</sci:value>
							</sci:arg>
							<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Local Component Identifier</sci:help>
								<sci:value>4</sci:value>
							</sci:arg>
						</sci:component>
					</sci:data>
					<sci:data object="SciTegic.EvaluateExpression.1">
						<sci:component name="Custom Filter (PilotScript)" version="2">
							<sci:arg name="Expression" type="ExpressionType" required="true" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
								<sci:help>The PilotScript expression used to filter the data.</sci:help>
								<sci:member>Initial Expression</sci:member>
								<sci:member>Final Expression</sci:member>
								<sci:member>Keep Calculated Properties</sci:member>
								<sci:value>if hspHitStart defined then 
	#from := hspHitStart;
elsif property(&apos;hit-from&apos;) defined then
	#from := property(&apos;hit-from&apos;);
end if;

if hspHitEnd defined then 
	#to := hspHitEnd;
elsif property(&apos;hit-to&apos;) defined then
	#to := property(&apos;hit-to&apos;); 
end if;

if (#from defined) and (#to defined) then 
	PDBCode := @PDBCode;
	Domain := @PDBChain.&apos;:&apos;.#from.&apos;-&apos;.#to;
	True;
else
	False;
end if;	

</sci:value>
							</sci:arg>
							<sci:arg name="Initial Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
								<sci:help>An expression evaluated only when the component
is first inialized (when the first data record enters).
  (Since there is no data available at initialization
   time, only expressions referencing global
   properties are allowed.)</sci:help>
							</sci:arg>
							<sci:arg name="Final Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
								<sci:help>An expression evaluated only when the
component is finalized (once the last data
record has passed).
*Since there is no data available at finalization
  time, only expressions referencing global 
  properties are allowed.</sci:help>
							</sci:arg>
							<sci:arg name="Keep Calculated Properties" type="BoolType" required="true" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
								<sci:help>Allows any properties that were calculated in
&quot;Expression&quot; to be included with the exiting
record.
Otherwise, these properties are removed after
the evaluation is complete.</sci:help>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
								<sci:help>Component Attributes</sci:help>
								<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsFail</sci:legalval>
								<sci:legalval>ComponentRunsLocal</sci:legalval>
							</sci:arg>
							<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Custom Error Message</sci:help>
							</sci:arg>
							<sci:arg name="ExpressionVersion" type="LongType" required="false" visibility="nevershow" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
								<sci:help>Version of expression parser to use.</sci:help>
								<sci:value>2</sci:value>
							</sci:arg>
							<sci:arg name="ComponentComment" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Comment</sci:help>
								<sci:value>Allows you to filter using the result from a PilotScript expression. The expression you specify is evaluated for each incoming data record, and is evaluated to a True or False value. If multiple statements are present, then the value of the last statement is used.</sci:value>
							</sci:arg>
							<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/core</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The date this component was registered.</sci:help>
								<sci:value>Mon Dec 11 10:20:18 2006</sci:value>
							</sci:arg>
							<sci:arg name="ComponentUsage" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Usage</sci:help>
								<sci:value>The &apos;Expression&apos; is evaluated for each incoming data record.  The last statement in the expression evaluates to a boolean value  (true/false or nonzero/zero) and determines the fate of the data record:  Records which evaluate to &apos;true&apos; are passed out the Pass port; those which evaluate to &apos;false&apos; are passed out the &apos;Fail&apos; port.

Input             - Data records
Output Pass  - Data records which evaluate &apos;true&apos;
Output Fail    - Data records which evaluate &apos;false&apos;</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Display Name</sci:help>
								<sci:value>Hit from and to</sci:value>
							</sci:arg>
							<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:help>Component Icon</sci:help>
								<sci:value>FILTERNODE</sci:value>
							</sci:arg>
							<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The component this component is based upon.</sci:help>
								<sci:value>Custom Filter (PilotScript)</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Disabled</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>GUID</sci:help>
								<sci:value>{DD58ECD1-516F-48FE-A5DB-8328AED680F2}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Point</sci:help>
								<sci:value>663 -250</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:help>Fancy Help</sci:help>
								<sci:value>100</sci:value>
								<sci:value>Passes data records for which a PilotScript expression evaluates to True

</sci:value>
								<sci:value>&lt;p&gt;For each incoming data record, the PilotScript statements in &lt;i&gt;Expression&lt;/i&gt; are evaluated. If the last statement in the expression evaluates to True or non-zero, the record is sent out the Pass port. Otherwise it is sent out the Fail port.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To initialize global variables such as counters, use &lt;i&gt;Initial Expression&lt;/i&gt;.&lt;/li&gt; 
&lt;li&gt;To clean up global variables or calculate final results use &lt;i&gt;Final Expression&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Parameters on Custom Manipulators do not become global variables that can be accessed via &lt;i&gt;@ParameterName&lt;/i&gt; syntax and can only be accessed by token substitution via &lt;i&gt;$(ParameterName)&lt;/i&gt; syntax.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>Generic</sci:value>
								<sci:value>Data records for which the final expression in the PilotScript evaluates to True or non-zero</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value>Data records for which the final expression in the PilotScript evaluates to False or zero</sci:value>
							</sci:arg>
							<sci:arg name="ComponentRunTimeID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Runtime Identifier</sci:help>
								<sci:value>9:5</sci:value>
							</sci:arg>
							<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
							<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Location of the component in the database</sci:help>
								<sci:value>Components\Generic\Filters\Custom Filter (PilotScript)</sci:value>
							</sci:arg>
							<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Local Component Identifier</sci:help>
								<sci:value>5</sci:value>
							</sci:arg>
						</sci:component>
						<sci:proplist>
							<sci:propval name="RegistrationVersion">6.0.2.0</sci:propval>
						</sci:proplist>
					</sci:data>
					<sci:data object="SciTegic.EvaluateExpression.1">
						<sci:component name="Custom Filter (PilotScript)" version="2">
							<sci:arg name="Expression" type="ExpressionType" required="true" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
								<sci:help>The PilotScript expression used to filter the data.</sci:help>
								<sci:member>Initial Expression</sci:member>
								<sci:member>Final Expression</sci:member>
								<sci:member>Keep Calculated Properties</sci:member>
								<sci:value>/* gi|3402063|pdb|1A6V|L */

#hitid := RSPLIT(accessionNumber, &apos;\|&apos;,&apos;g&apos;);

if(numvalues(#hitid) == 5) and (#hitid[3] eq &apos;PDB&apos;) then 
	@PDBCode := #hitid[4];
	@PDBChain := #hitid[5];
	if(@PDBChain eq &apos; &apos;) then 
		@PDBChain := &apos;&apos;;
	end if;
	True;
else 
	False;
end if;	
</sci:value>
							</sci:arg>
							<sci:arg name="Initial Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
								<sci:help>An expression evaluated only when the component
is first inialized (when the first data record enters).
  (Since there is no data available at initialization
   time, only expressions referencing global
   properties are allowed.)</sci:help>
							</sci:arg>
							<sci:arg name="Final Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
								<sci:help>An expression evaluated only when the
component is finalized (once the last data
record has passed).
*Since there is no data available at finalization
  time, only expressions referencing global 
  properties are allowed.</sci:help>
							</sci:arg>
							<sci:arg name="Keep Calculated Properties" type="BoolType" required="true" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
								<sci:help>Allows any properties that were calculated in
&quot;Expression&quot; to be included with the exiting
record.
Otherwise, these properties are removed after
the evaluation is complete.</sci:help>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
								<sci:help>Component Attributes</sci:help>
								<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsFail</sci:legalval>
								<sci:legalval>ComponentRunsLocal</sci:legalval>
							</sci:arg>
							<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Custom Error Message</sci:help>
							</sci:arg>
							<sci:arg name="ExpressionVersion" type="LongType" required="false" visibility="nevershow" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
								<sci:help>Version of expression parser to use.</sci:help>
								<sci:value>2</sci:value>
							</sci:arg>
							<sci:arg name="ComponentComment" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Comment</sci:help>
								<sci:value>Allows you to filter using the result from a PilotScript expression. The expression you specify is evaluated for each incoming data record, and is evaluated to a True or False value. If multiple statements are present, then the value of the last statement is used.</sci:value>
							</sci:arg>
							<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/core</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The date this component was registered.</sci:help>
								<sci:value>Mon Dec 11 10:20:18 2006</sci:value>
							</sci:arg>
							<sci:arg name="ComponentUsage" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Usage</sci:help>
								<sci:value>The &apos;Expression&apos; is evaluated for each incoming data record.  The last statement in the expression evaluates to a boolean value  (true/false or nonzero/zero) and determines the fate of the data record:  Records which evaluate to &apos;true&apos; are passed out the Pass port; those which evaluate to &apos;false&apos; are passed out the &apos;Fail&apos; port.

Input             - Data records
Output Pass  - Data records which evaluate &apos;true&apos;
Output Fail    - Data records which evaluate &apos;false&apos;</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Display Name</sci:help>
								<sci:value>set PDBCode and PDBChain</sci:value>
							</sci:arg>
							<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:help>Component Icon</sci:help>
								<sci:value>FILTERNODE</sci:value>
							</sci:arg>
							<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The component this component is based upon.</sci:help>
								<sci:value>Custom Filter (PilotScript)</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Disabled</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>GUID</sci:help>
								<sci:value>{DD58ECD1-516F-48FE-A5DB-8328AED680F2}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Point</sci:help>
								<sci:value>88 -425</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:help>Fancy Help</sci:help>
								<sci:value>100</sci:value>
								<sci:value>Passes data records for which a PilotScript expression evaluates to True

</sci:value>
								<sci:value>&lt;p&gt;For each incoming data record, the PilotScript statements in &lt;i&gt;Expression&lt;/i&gt; are evaluated. If the last statement in the expression evaluates to True or non-zero, the record is sent out the Pass port. Otherwise it is sent out the Fail port.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To initialize global variables such as counters, use &lt;i&gt;Initial Expression&lt;/i&gt;.&lt;/li&gt; 
&lt;li&gt;To clean up global variables or calculate final results use &lt;i&gt;Final Expression&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Parameters on Custom Manipulators do not become global variables that can be accessed via &lt;i&gt;@ParameterName&lt;/i&gt; syntax and can only be accessed by token substitution via &lt;i&gt;$(ParameterName)&lt;/i&gt; syntax.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>Generic</sci:value>
								<sci:value>Data records for which the final expression in the PilotScript evaluates to True or non-zero</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value>Data records for which the final expression in the PilotScript evaluates to False or zero</sci:value>
							</sci:arg>
							<sci:arg name="ComponentRunTimeID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Runtime Identifier</sci:help>
								<sci:value>9:6</sci:value>
							</sci:arg>
							<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
							<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Location of the component in the database</sci:help>
								<sci:value>Components\Generic\Filters\Custom Filter (PilotScript)</sci:value>
							</sci:arg>
							<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Local Component Identifier</sci:help>
								<sci:value>6</sci:value>
							</sci:arg>
						</sci:component>
						<sci:proplist>
							<sci:propval name="RegistrationVersion">6.0.2.0</sci:propval>
						</sci:proplist>
					</sci:data>
					<sci:data object="SciTegic.Protocol.1">
						<sci:component name="Find Ligands of PDB Domain" version="2">
							<sci:arg name="PDB Code Property" type="StringType" required="true" visibility="visible" multi="false">
								<sci:value>PDBCode</sci:value>
							</sci:arg>
							<sci:arg name="Domain Property" type="StringType" required="true" visibility="visible" multi="false">
								<sci:value>Domain</sci:value>
							</sci:arg>
							<sci:arg name="Ligands Property" type="StringType" required="true" visibility="visible" multi="false">
								<sci:value>Ligands</sci:value>
							</sci:arg>
							<sci:arg name="Residue Sequence Number" type="StringType" required="true" visibility="visible" multi="false">
								<sci:legalval>By PDB</sci:legalval>
								<sci:legalval selected="true">By Sequence</sci:legalval>
							</sci:arg>
							<sci:arg name="Tempfiles" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
								<sci:help>Temporary files converted by the network to true temporary filenames</sci:help>
							</sci:arg>
							<sci:arg name="DeclareLocal" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
								<sci:help>Lists a set of properties (without the @) to create on the property list for this protocol. Other properties are created on the global property list and are accessible from all protocols.</sci:help>
							</sci:arg>
							<sci:arg name="RunToCompletion" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
								<sci:help>When the network runs, processes once or until done for each process call</sci:help>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
								<sci:help>Component Attributes</sci:help>
								<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsFail</sci:legalval>
								<sci:legalval>ComponentRunsLocal</sci:legalval>
							</sci:arg>
							<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Custom Error Message</sci:help>
							</sci:arg>
							<sci:arg name="ComponentComment" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Comment</sci:help>
								<sci:value>Defines a subprotocol in a pipeline. When you are creating a pipeline that requires a subprotocol as a component, drag this component into the pipeline, open it, and add components to it.</sci:value>
							</sci:arg>
							<sci:arg name="ComponentUsage" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Usage</sci:help>
								<sci:value>When you are creating a pipeline which requires a subprotocol as 
a component, you can drag this SubProtocol component into the 
pipeline, open it, and add components into it.</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Display Name</sci:help>
								<sci:value>Find Ligands of PDB Domain</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolAutoLayout" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol AutoLayout</sci:help>
								<sci:value>1</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolShowComment" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol ShowComment</sci:help>
								<sci:value>true</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolComment" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Add Protocol Comment Here</sci:help>
								<sci:value>Add Protocol Comment Here</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Disabled</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:help>Component Icon</sci:help>
								<sci:value>COMPONENTNODE</sci:value>
							</sci:arg>
							<sci:arg name="ComponentRevision" type="LongType" required="true" visibility="nevershow" multi="false">
								<sci:help>Component Revision</sci:help>
								<sci:value>100</sci:value>
							</sci:arg>
							<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The component this component is based upon.</sci:help>
								<sci:value>SubProtocol</sci:value>
							</sci:arg>
							<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>GUID</sci:help>
								<sci:value>{45CB5E7D-4034-4BC3-AE25-4E82B9D85383}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Point</sci:help>
								<sci:value>938 -425</sci:value>
							</sci:arg>
							<sci:arg name="ByReference" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>By Ref</sci:help>
								<sci:value>1</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:help>Fancy Help</sci:help>
								<sci:value>100</sci:value>
								<sci:value>Finds ligands within 5 &amp;Aring of a PDB domain</sci:value>
								<sci:value>Use the property defined by &lt;i&gt;PDB Code Property&lt;/i&gt; to specify a PDB code. Use the property defined by &lt;i&gt;Domain Property&lt;/i&gt; to specify a domain in a format of &lt;b&gt;[chain]:[start residue number]-[end residue number]&lt;/b&gt; or simply &lt;b&gt;[chain]:&lt;/b&gt;. Use &lt;i&gt;Residue Sequence Number&lt;/i&gt; to specify whether the residue numbers are from PDB residue sequence numbers or sequential numbers. A ligand database pre-compiled from all PDB files is used for this searching. A new property defined by &lt;i&gt;Ligands Property&lt;/i&gt; will be generated to output the names of the found ligands.</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>Generic</sci:value>
								<sci:value>Records passing out of any unconnected pass ports of components inside the subprotocol</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value>Records passing out of any unconnected fail ports of components inside the subprotocol</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The server version when this component was registered</sci:help>
								<sci:value>6.1.2.7</sci:value>
							</sci:arg>
							<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Sticky Notes</sci:help>
							</sci:arg>
							<sci:arg name="Protocol Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Sticky Notes</sci:help>
							</sci:arg>
							<sci:arg name="ComponentRunTimeID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Runtime Identifier</sci:help>
								<sci:value>9:7</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolScale2" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Scale</sci:help>
								<sci:value>100</sci:value>
							</sci:arg>
							<sci:arg name="Protocol Options" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Options</sci:help>
								<sci:legalval>Make Shortcut by Default</sci:legalval>
								<sci:legalval>Owner Access Only</sci:legalval>
							</sci:arg>
							<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/dscore</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The date this component was registered.</sci:help>
								<sci:value>Tue Sep 04 10:30:40 2007</sci:value>
							</sci:arg>
							<sci:arg name="SubProtocolMadeLinkIntoCopy" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>Subprotocol Made Link Into Copy</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Location of the component in the database</sci:help>
								<sci:value>Components\Accelrys Discovery Studio\Protein Modeling\Utilities\Find Ligands of PDB Domain</sci:value>
							</sci:arg>
							<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Local Component Identifier</sci:help>
								<sci:value>7</sci:value>
							</sci:arg>
						</sci:component>
						<sci:protocol/>
					</sci:data>
					<sci:data object="SciTegic.EvaluateExpression.1">
						<sci:component name="Custom Manipulator (PilotScript)" version="2">
							<sci:arg name="Expression" type="ExpressionType" required="true" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>Expression (or list of expressions separated by semi-colons) to evaluate</sci:help>
								<sci:member>Initial Expression</sci:member>
								<sci:member>Final Expression</sci:member>
								<sci:member>Keep Calculated Properties</sci:member>
								<sci:value>PDBLigands := PDBCode.&apos;:&apos;.Domain.&apos;=&gt;&apos;.Ligands;
</sci:value>
							</sci:arg>
							<sci:arg name="Initial Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>This expression is executed only the first time data passes into the component. (Since there is no data available at initialization time, only expressions referencing global properties are allowed.)</sci:help>
							</sci:arg>
							<sci:arg name="Final Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>This expression is executed only at finalization (after the last data passes out of the component). 
 (Since there is no data available at finalization time, only expressions referencing global properties are allowed.)</sci:help>
							</sci:arg>
							<sci:arg name="Keep Calculated Properties" type="BoolType" required="true" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>Adds any properties calculated in this component to a molecule&apos;s property list</sci:help>
								<sci:legalval selected="true">True</sci:legalval>
								<sci:legalval>False</sci:legalval>
							</sci:arg>
							<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
								<sci:help>Component Attributes</sci:help>
								<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
								<sci:legalval>ComponentReturnsFail</sci:legalval>
								<sci:legalval>ComponentRunsLocal</sci:legalval>
							</sci:arg>
							<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Custom Error Message</sci:help>
							</sci:arg>
							<sci:arg name="Do Screen" type="BoolType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>When TRUE, controls which exit port is used for
each data record by evaluating the final expression
(or only one) listed in the &quot;Expression&quot; parameter.
   -Pass (green) port when expression true
   -Fail (red) port when expression false</sci:help>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="ExpressionVersion" type="LongType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>Version of expression parser to use.</sci:help>
								<sci:value>2</sci:value>
							</sci:arg>
							<sci:arg name="ComponentComment" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Comment</sci:help>
								<sci:value>Processes commands expressed in PilotScript syntax to apply rapid
manipulations to data record properties. In this way, the component may be
customized to build a new, specialized data manipulation component.</sci:value>
							</sci:arg>
							<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/core</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The date this component was registered.</sci:help>
								<sci:value>Mon Dec 11 10:20:05 2006</sci:value>
							</sci:arg>
							<sci:arg name="ComponentUsage" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Usage</sci:help>
								<sci:value>The &apos;Expression&apos;  is evaluated for each data record, and may alter and manipulate the properties of the data objects. The &apos;Initial expression&apos; is evaluated the first time data passes into the component and is typically used for initializing global variables. See the online documentation for full details of PilotScript expression syntax.

Input             - Data records
Output Pass  - All Data records</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Display Name</sci:help>
								<sci:value>PDBLigands</sci:value>
							</sci:arg>
							<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The component this component is based upon.</sci:help>
								<sci:value>Custom Manipulator (PilotScript)</sci:value>
							</sci:arg>
							<sci:arg name="ComponentRunTimeID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component RunTimeID</sci:help>
								<sci:value>9:8</sci:value>
							</sci:arg>
							<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:help>Component Icon</sci:help>
								<sci:value>EXPRESSIONNODE</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Disabled</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>GUID</sci:help>
								<sci:value>{0995D675-7EE2-432C-95DF-E91C14052B22}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Point</sci:help>
								<sci:value>1238 -425</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:help>Fancy Help</sci:help>
								<sci:value>100</sci:value>
								<sci:value>Applies a PilotScript expression to each data record
</sci:value>
								<sci:value>&lt;p&gt;PilotScript is the native scripting language in Pipeline Pilot.  It is based on PL/SQL and allows you to query or alter the properties on data records.  For example, the expression:

&lt;blockquote&gt;
&lt;code&gt;A := 10;&lt;/code&gt;
&lt;/blockquote&gt;
creates a property named &quot;A&quot; and sets the value to &quot;10&quot;.&lt;/p&gt;

&lt;p&gt;For each incoming data record the PilotScript statements in &lt;i&gt;Expression&lt;/i&gt; are evaluated.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To initialize global variables such as counters, use &lt;i&gt;Initial Expression&lt;/i&gt;.&lt;/li&gt; 
&lt;li&gt;To clean up global variables or calculate final results use &lt;i&gt;Final Expression&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Parameters on Custom Manipulators do not become global variables that can be accessed via &lt;i&gt;@ParameterName&lt;/i&gt; syntax and can only be accessed by token substitution via &lt;i&gt;$(ParameterName)&lt;/i&gt; syntax.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;See Also:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For more information on PilotScript, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/pscript/pscript_overview.htm&apos;)&quot;&gt;PilotScript Overview&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To use PilotScript to filter data records use &lt;a href=&quot;javascript:DoLink(&apos;{DD58ECD1-516F-48FE-A5DB-8328AED680F2}&apos;)&quot;&gt;Custom Filter (PilotScript)&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>None</sci:value>
								<sci:value/>
							</sci:arg>
							<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The server version when this component was registered</sci:help>
								<sci:value>6.0.2.0</sci:value>
							</sci:arg>
							<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Sticky Notes</sci:help>
							</sci:arg>
							<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Location of the component in the database</sci:help>
								<sci:value>Components\Generic\Manipulators\Custom Manipulator (PilotScript)</sci:value>
							</sci:arg>
							<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Local Component Identifier</sci:help>
								<sci:value>8</sci:value>
							</sci:arg>
						</sci:component>
					</sci:data>
					<sci:data object="SciTegic.PropertyFunctions.1">
						<sci:component name="Keep Properties" version="2">
							<sci:arg name="PropertyList" type="StringType" required="true" visibility="visible" multi="false">
								<sci:help>Comma-separated list of property names to keep</sci:help>
								<sci:member>RenameList</sci:member>
								<sci:value>PDBLigands</sci:value>
							</sci:arg>
							<sci:arg name="RenameList" type="StringType" required="false" visibility="visible" multi="false">
								<sci:help>If provided, it causes the properties given in PropertyList to be 
renamed to the corresponding name in this list.  If not provided, then no properties are renamed.</sci:help>
							</sci:arg>
							<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
								<sci:help>Component Attributes</sci:help>
								<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
								<sci:legalval>ComponentReturnsFail</sci:legalval>
								<sci:legalval>ComponentRunsLocal</sci:legalval>
							</sci:arg>
							<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Custom Error Message</sci:help>
							</sci:arg>
							<sci:arg name="Action" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:help>the action to perform</sci:help>
								<sci:value>Keep</sci:value>
							</sci:arg>
							<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/core</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The date this component was registered.</sci:help>
								<sci:value>Tue Oct 17 16:03:31 2006</sci:value>
							</sci:arg>
							<sci:arg name="ComponentComment" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Comment</sci:help>
								<sci:value>Removes all but the specified properties from the property list.</sci:value>
							</sci:arg>
							<sci:arg name="ComponentUsage" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Usage</sci:help>
								<sci:value>&apos;PropertyList&apos; contains a comma-separated list of the property names that you wish to keep.  All other properties will be removed.

Input             - Data records
Output Pass  - All Data records</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Display Name</sci:help>
								<sci:value>Keep Properties</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolAutoLayout" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol AutoLayout</sci:help>
								<sci:value>true</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolShowComment" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol ShowComment</sci:help>
								<sci:value>false</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolComment" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Add Protocol Comment Here</sci:help>
								<sci:value>Add Protocol Comment Here</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Disabled</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:help>Component Icon</sci:help>
								<sci:value>EXPRESSIONNODE</sci:value>
							</sci:arg>
							<sci:arg name="ComponentRevision" type="LongType" required="true" visibility="nevershow" multi="false">
								<sci:help>Component Revision</sci:help>
								<sci:value>100</sci:value>
							</sci:arg>
							<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The component this component is based upon.</sci:help>
								<sci:value>SubProtocol</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolScale" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Scale</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Point</sci:help>
								<sci:value>1538 -425</sci:value>
							</sci:arg>
							<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>GUID</sci:help>
								<sci:value>{456195EF-9708-4367-B3DD-21EBF3796604}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:help>Fancy Help</sci:help>
								<sci:value>100</sci:value>
								<sci:value>Keeps only the specified properties
</sci:value>
								<sci:value>For each incoming data record, retains only the properties found in the list of property names specified by &lt;i&gt;PropertyList&lt;/i&gt;.  All other properties are removed.

&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Use &lt;i&gt;RenameList&lt;/i&gt; if you wish to change the names of the retained properties.
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;See Also:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;To remove specified properties from each data record, use 
&lt;a href=&quot;javascript:DoLink(&apos;{C2ED35FF-5397-4877-AADB-10F1A15D60E2}&apos;)&quot;&gt;Remove Properties&lt;/a&gt;.
&lt;/ul&gt;
</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>Generic</sci:value>
								<sci:value>With only the specified properties remaining</sci:value>
								<sci:value>None</sci:value>
								<sci:value/>
							</sci:arg>
							<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The server version when this component was registered</sci:help>
								<sci:value>6.0.1.4</sci:value>
							</sci:arg>
							<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Sticky Notes</sci:help>
							</sci:arg>
							<sci:arg name="ByReference" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>By Ref</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="Protocol Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Sticky Notes</sci:help>
							</sci:arg>
							<sci:arg name="ComponentRunTimeID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Runtime Identifier</sci:help>
								<sci:value>9:9</sci:value>
							</sci:arg>
							<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Location of the component in the database</sci:help>
								<sci:value>Components\Generic\Manipulators\Keep Properties</sci:value>
							</sci:arg>
							<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Local Component Identifier</sci:help>
								<sci:value>9</sci:value>
							</sci:arg>
						</sci:component>
					</sci:data>
					<sci:data object="SciTegic.DelimitedWriter.1">
						<sci:component name="Delimited Text Writer" version="2">
							<sci:arg name="Destination" type="DestinationURLType" required="true" visibility="visible" multi="false">
								<sci:help>The filename for the destination data. Be sure to specify an extension such as .txt or .xls. To save in compressed (zipped) format, add the extension .gz or .zip to the filename. </sci:help>
								<sci:member>Maximum</sci:member>
								<sci:member>IfFileExists</sci:member>
								<sci:member>CharacterEncoding</sci:member>
								<sci:value>$(RunDirectory)/HspLigands.txt</sci:value>
							</sci:arg>
							<sci:arg name="Maximum" type="LongType" required="false" visibility="visible" multi="false">
								<sci:help>The maximum number of data records to write (all if value is empty)</sci:help>
							</sci:arg>
							<sci:arg name="IfFileExists" type="StringType" required="true" visibility="visible" multi="false">
								<sci:help>What to do if the given destination file already exists</sci:help>
								<sci:legalval selected="true">Overwrite</sci:legalval>
								<sci:legalval>Append</sci:legalval>
								<sci:legalval>Halt</sci:legalval>
							</sci:arg>
							<sci:arg name="CharacterEncoding" type="StringType" required="false" visibility="visible" multi="false">
								<sci:help>&lt;p&gt;Indicates the character set that will be used within the file.&lt;/p&gt;
 
&lt;p&gt;ANSI is the default and specifies a character set where each character is defined by a single byte.  This allows the Latin-1 (ISO-8859-1) character set to be written to the file.  Virtually all applications can read these files.&lt;/p&gt;
 
&lt;p&gt;UTF-8 specifies a variable length character set.  Each character is represented by 1 to 6 bytes.  This allows writing out all extended characters specified in the Unicode character sets while maintaining reasonably lengthed files.  Many applications do not support UTF-8 files.&lt;/p&gt;
 
&lt;p&gt;&quot;Unicode&quot; and &quot;Unicode big endian&quot; are sets where each character is represented by exactly 2 bytes (also known as UCS-2).  Depending on which is used will determine the order in which the bytes appear for each character. Many applications do not support Unicode or Unicode big endian files.&lt;/p&gt;
 
&lt;p&gt;For more information about each of these ecoding styles, go to &lt;a href=&quot;javascript:DoLink(&apos;http://www.unicode.org&apos;)&quot;&gt;http://www.unicode.org&lt;/a&gt;&lt;/p&gt;</sci:help>
								<sci:legalval selected="true">ANSI</sci:legalval>
								<sci:legalval>UTF-8</sci:legalval>
								<sci:legalval>Unicode</sci:legalval>
								<sci:legalval>Unicode big endian</sci:legalval>
							</sci:arg>
							<sci:arg name="Delimiter" type="StringType" required="true" visibility="visible" multi="false">
								<sci:help>Specifies the character to use to separate
the fields in the file.  (Whole records are separated by line breaks.) Make sure you use a different
MultiValueDelimiter than Delimiter!</sci:help>
								<sci:member>MultipleValueDelimiter</sci:member>
								<sci:legalval selected="true">Tab</sci:legalval>
								<sci:legalval>Space</sci:legalval>
								<sci:legalval>Comma</sci:legalval>
								<sci:legalval>Colon</sci:legalval>
								<sci:legalval>Semicolon</sci:legalval>
							</sci:arg>
							<sci:arg name="MultipleValueDelimiter" type="StringType" required="true" visibility="visible" multi="false">
								<sci:help>The delimiter to use between multiple value on a single property. If &quot;None&quot;, 
multiple values are separated into their own columns.</sci:help>
								<sci:legalval selected="true">None</sci:legalval>
								<sci:legalval>Semicolon</sci:legalval>
								<sci:legalval>Colon</sci:legalval>
								<sci:legalval>Comma</sci:legalval>
								<sci:legalval>Linefeed</sci:legalval>
							</sci:arg>
							<sci:arg name="Format Options" type="GroupType" required="false" visibility="visible" multi="false">
								<sci:member>OutputColumnNames</sci:member>
								<sci:member>OutputColumnTypes</sci:member>
								<sci:member>OutputRowNumber</sci:member>
								<sci:member>UndefinedString</sci:member>
								<sci:member>MissingValue Format</sci:member>
							</sci:arg>
							<sci:arg name="UndefinedString" type="StringType" required="false" visibility="visible" multi="false">
								<sci:help>Text to output when data for a given column is not present (leave empty or enter text of choice)</sci:help>
							</sci:arg>
							<sci:arg name="OutputColumnNames" type="BoolType" required="true" visibility="visible" multi="false">
								<sci:help>Output column names</sci:help>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="OutputColumnTypes" type="StringType" required="true" visibility="visible" multi="false">
								<sci:help>Output a row that includes column types</sci:help>
								<sci:legalval selected="true">None</sci:legalval>
								<sci:legalval>SpotfireFormat</sci:legalval>
								<sci:legalval>NDIFormat</sci:legalval>
							</sci:arg>
							<sci:arg name="OutputRowNumber" type="BoolType" required="true" visibility="visible" multi="false">
								<sci:help>Includes the number of the record as the first field for each record</sci:help>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="MissingValue Format" type="StringType" required="true" visibility="visible" multi="false">
								<sci:help>How to write out explicitly-defined MissingValue properties. Each missing value property
contains a string that may provide information about the reason the value is missing.  You can ask to 
see either the missing value text containing this string, or use the undefined string to write out missing values.</sci:help>
								<sci:legalval selected="true">Use MissingValue Text</sci:legalval>
								<sci:legalval>Use UndefinedString</sci:legalval>
							</sci:arg>
							<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
								<sci:help>Component Attributes</sci:help>
								<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
								<sci:legalval>ComponentReturnsPass</sci:legalval>
								<sci:legalval>ComponentReturnsFail</sci:legalval>
								<sci:legalval>ComponentRunsLocal</sci:legalval>
							</sci:arg>
							<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Custom Error Message</sci:help>
							</sci:arg>
							<sci:arg name="ComponentComment" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Comment</sci:help>
								<sci:value>Writes data records to a text file, separating the records with a new line, and the individual fields within a record with the Delimiter character. The property names for the fields are stored as the first record. If a property has more than one value, it is written as multiple fields (for example, prop[0], prop[1] ...)</sci:value>
							</sci:arg>
							<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/core</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The date this component was registered.</sci:help>
								<sci:value>Mon Dec 11 15:05:11 2006</sci:value>
							</sci:arg>
							<sci:arg name="ComponentUsage" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Usage</sci:help>
								<sci:value>Writes data records to a text file, separating the records with a new line and the individual fields within a record with the &apos;Delimiter&apos; character.  The property names for the fields will be stored as the first line.  

&apos;MultipleValueDelimiter&apos; controls properties with more than one value. If None, then they are written as multiple fields (e.g., prop[1], prop[2] ...). Else, they are written into a single value separated by the chosen delimiter.

&apos;UndefinedString&apos; is the string to write out to represent undefined values.

Input - Data records

Advanced Parameters:

&apos;OutputColumnNames&apos; determines whether the first line of the file will be the column names.

&apos;OutputColumnTypes&apos; determines whether the next line of the file will be column type designations.

&apos;OutputRowNumber&apos; determines whether the first column of the file will be reserved for the Row number.</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Display Name</sci:help>
								<sci:value>Delimited Text Writer</sci:value>
							</sci:arg>
							<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The component this component is based upon.</sci:help>
								<sci:value>Delimited Writer</sci:value>
							</sci:arg>
							<sci:arg name="ComponentRunTimeID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component RunTimeID</sci:help>
								<sci:value>9:10</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Disabled</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:help>Component Icon</sci:help>
								<sci:value>DOCUMENTNODE</sci:value>
							</sci:arg>
							<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>GUID</sci:help>
								<sci:value>{9B0081A4-6085-4FF0-BD12-AEB8B7BD9CB5}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Point</sci:help>
								<sci:value>1813 -425</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:help>Fancy Help</sci:help>
								<sci:value>100</sci:value>
								<sci:value>Writes data records to a text file with one data record per line and data separated by delimiters
</sci:value>
								<sci:value>&lt;p&gt;Data records are separated with a new line and the individual properties within each record are separated with the character specified by &lt;i&gt;Delimiter&lt;/I&gt;. The property names for the fields are stored as the first line of the file. 
&lt;p&gt;
&lt;b&gt;Note:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Use &lt;i&gt;MultipleValueDelimiter&lt;/i&gt; to control the output format for properties 
  with more than one value (array properties).
&lt;/ul&gt;
</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>None</sci:value>
								<sci:value/>
								<sci:value>None</sci:value>
								<sci:value/>
							</sci:arg>
							<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The server version when this component was registered</sci:help>
								<sci:value>6.0.2.0</sci:value>
							</sci:arg>
							<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Sticky Notes</sci:help>
							</sci:arg>
							<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Location of the component in the database</sci:help>
								<sci:value>Components\Generic\Writers\Delimited Text Writer</sci:value>
							</sci:arg>
							<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Local Component Identifier</sci:help>
								<sci:value>10</sci:value>
							</sci:arg>
						</sci:component>
					</sci:data>
					<sci:data object="SciTegic.EvaluateExpression.1">
						<sci:component name="Custom Manipulator (PilotScript)" version="2">
							<sci:arg name="Expression" type="ExpressionType" required="true" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>Expression (or list of expressions separated by semi-colons) to evaluate.</sci:help>
								<sci:member>Initial Expression</sci:member>
								<sci:member>Final Expression</sci:member>
								<sci:member>Keep Calculated Properties</sci:member>
								<sci:value>PDBCode := @PDBCode;</sci:value>
							</sci:arg>
							<sci:arg name="Initial Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>&lt;p&gt;
This expression is executed only the first time data passes into the component.
&lt;p/&gt; 
Since there is no data available at initialization time, only expressions referencing global properties are allowed.
&lt;/p&gt;</sci:help>
							</sci:arg>
							<sci:arg name="Final Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>&lt;p&gt;
This expression is executed only at finalization (after the last data passes out of the component).
&lt;p/&gt; 
Since there is no data available at finalization time, only expressions referencing global properties are allowed.
&lt;/p&gt;</sci:help>
							</sci:arg>
							<sci:arg name="Keep Calculated Properties" type="BoolType" required="true" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>Adds any properties calculated in this component to a data record&apos;s property list.</sci:help>
								<sci:legalval selected="true">True</sci:legalval>
								<sci:legalval>False</sci:legalval>
							</sci:arg>
							<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
								<sci:help>Component Attributes</sci:help>
								<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
								<sci:legalval>ComponentReturnsFail</sci:legalval>
								<sci:legalval>ComponentRunsLocal</sci:legalval>
							</sci:arg>
							<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Custom Error Message</sci:help>
							</sci:arg>
							<sci:arg name="Do Screen" type="BoolType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>When TRUE, controls which exit port is used for
each data record by evaluating the final expression
(or only one) listed in the &quot;Expression&quot; parameter.
   -Pass (green) port when expression true
   -Fail (red) port when expression false</sci:help>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="ExpressionVersion" type="LongType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>Version of expression parser to use.</sci:help>
								<sci:value>2</sci:value>
							</sci:arg>
							<sci:arg name="ComponentComment" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Comment</sci:help>
								<sci:value>Processes commands expressed in PilotScript syntax to apply rapid
manipulations to data record properties. In this way, the component may be
customized to build a new, specialized data manipulation component.</sci:value>
							</sci:arg>
							<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/core</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The date this component was registered.</sci:help>
								<sci:value>Mon Apr 23 12:20:45 2007</sci:value>
							</sci:arg>
							<sci:arg name="ComponentUsage" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Usage</sci:help>
								<sci:value>The &apos;Expression&apos;  is evaluated for each data record, and may alter and manipulate the properties of the data objects. The &apos;Initial expression&apos; is evaluated the first time data passes into the component and is typically used for initializing global variables. See the online documentation for full details of PilotScript expression syntax.

Input             - Data records
Output Pass  - All Data records</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Display Name</sci:help>
								<sci:value>Custom Manipulator (PilotScript)</sci:value>
							</sci:arg>
							<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The component this component is based upon.</sci:help>
								<sci:value>Custom Manipulator (PilotScript)</sci:value>
							</sci:arg>
							<sci:arg name="ComponentRunTimeID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component RunTimeID</sci:help>
								<sci:value>9:11</sci:value>
							</sci:arg>
							<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:help>Component Icon</sci:help>
								<sci:value>EXPRESSIONNODE</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Disabled</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>GUID</sci:help>
								<sci:value>{0995D675-7EE2-432C-95DF-E91C14052B22}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Point</sci:help>
								<sci:value>363 -775</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:help>Fancy Help</sci:help>
								<sci:value>100</sci:value>
								<sci:value>Applies a PilotScript expression to each data record
</sci:value>
								<sci:value>&lt;p&gt;PilotScript is the native scripting language in Pipeline Pilot.  It is based on PL/SQL and allows you to query or alter the properties on data records.  For example, the expression:

&lt;blockquote&gt;
&lt;code&gt;A := 10;&lt;/code&gt;
&lt;/blockquote&gt;
creates a property named &quot;A&quot; and sets the value to &quot;10&quot;.&lt;/p&gt;

&lt;p&gt;For each incoming data record the PilotScript statements in &lt;i&gt;Expression&lt;/i&gt; are evaluated.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To initialize global variables such as counters, use &lt;i&gt;Initial Expression&lt;/i&gt;.&lt;/li&gt; 
&lt;li&gt;To clean up global variables or calculate final results use &lt;i&gt;Final Expression&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Parameters on Custom Manipulators do not become global variables that can be accessed via &lt;i&gt;@ParameterName&lt;/i&gt; syntax and can only be accessed by token substitution via &lt;i&gt;$(ParameterName)&lt;/i&gt; syntax.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;See Also:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For more information on PilotScript, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/pscript/pscript_overview.htm&apos;)&quot;&gt;PilotScript Overview&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To use PilotScript to filter data records use &lt;a href=&quot;javascript:DoLink(&apos;{DD58ECD1-516F-48FE-A5DB-8328AED680F2}&apos;)&quot;&gt;Custom Filter (PilotScript)&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>None</sci:value>
								<sci:value/>
							</sci:arg>
							<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The server version when this component was registered</sci:help>
								<sci:value>6.1.0.17</sci:value>
							</sci:arg>
							<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Sticky Notes</sci:help>
							</sci:arg>
							<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Location of the component in the database</sci:help>
								<sci:value>Components\Generic\Manipulators\Custom Manipulator (PilotScript)</sci:value>
							</sci:arg>
							<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Local Component Identifier</sci:help>
								<sci:value>11</sci:value>
							</sci:arg>
						</sci:component>
					</sci:data>
					<sci:data object="SciTegic.Protocol.1">
						<sci:component name="Find PDB Resolution" version="2">
							<sci:arg name="PDB Code Property" type="StringType" required="true" visibility="visible" multi="false" uimpl="false">
								<sci:value>PDBCode</sci:value>
							</sci:arg>
							<sci:arg name="Resolution Property" type="StringType" required="true" visibility="visible" multi="false" uimpl="false">
								<sci:value>Resolution</sci:value>
							</sci:arg>
							<sci:arg name="Tempfiles" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
								<sci:help>&lt;/p&gt;A comma delimited list of global properties, each of which will automatically hold the name of a file in the job&apos;s temporary folder, whose name is guaranteed to be unique.&lt;p/&gt;For each global name, an additional global is created (with the suffix &lt;i&gt;_Filename&lt;/i&gt;) that hold just the leaf file name of the temporary file.&lt;p/&gt;</sci:help>
							</sci:arg>
							<sci:arg name="DeclareLocal" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
								<sci:help>&lt;p&gt;Lists a set of properties (without the @) to create on the global property list for this subprotocol. Such properties can only be accessed within the scope of this subprotocol and its descendent subprotocols.&lt;p/&gt;Any global property not declared in this way is created on the top level global property list and is accessible from all protocols, but may collide with another property of the same name.&lt;p/&gt;Scoping global properties to the subprotocol where they are used is highly recommended.&lt;/p&gt;</sci:help>
							</sci:arg>
							<sci:arg name="RunToCompletion" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
								<sci:help>When RunToCompletion is set to True, the subprotocol is re-initialized and executed in its entirety for each record it processes.</sci:help>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="Parallel Processing Options" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
								<sci:help>&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; This is a prototype feature, which we are making available
because we feel it is a useful technique to improve data throughput speeds in many situations. In particular, it can help to optimize resource use on multi-CPU and multi-core machines and on server clusters.
We welcome your feedback on scenarios where it works well, scenarios where it does not, and any other opinions you have about this utility.
&lt;/p&gt;&lt;hr/&gt;&lt;p&gt;
When set to True, this set of options allow the subprotocol to execute in parallel on one or more independent Pipeline Pilot servers, running local or remote.  Additional parameters control the number of data records to send in each process batch, the list of Pipeline Pilot servers to use, the number of protocol processes that can be executed on each server, and whether to preserve the order of the processed data records.
&lt;/p&gt;&lt;p&gt;
Use this option judiciously, since it will not increase throughput in all circumstances. In general, it will yield improved performance when the parallelization benefits outweigh the data transfer overhead for the specified batch size.
&lt;/p&gt;&lt;p&gt;
For more information on the parallel subprotocol options, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/subprots/subprot_parallel_processing.htm&apos;)&quot;&gt;Parallel Processing Subprotocols&lt;/a&gt;.
&lt;/p&gt;
</sci:help>
								<sci:member>Parallel Processing Options Batch Size</sci:member>
								<sci:member>Parallel Processing Options Server</sci:member>
								<sci:member>Parallel Processing Options Preserve Order</sci:member>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="Parallel Processing Options Batch Size" type="LongType" required="true" visibility="visible" multi="false" uimpl="true">
								<sci:help>The number of records to send to the remote server(s) for each subprotocol execution.  In general, performance is optimized when the amount of time required to process each batch is at least 10 seconds (note that this can vary depending on the characteristics of the remote server&apos;s hardware)</sci:help>
								<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
								<sci:value>25</sci:value>
							</sci:arg>
							<sci:arg name="Parallel Processing Options Server" type="StringType" required="false" visibility="visible" multi="true" legalvalsenforced="false" uimpl="true">
								<sci:help>&lt;p&gt;
Comma separated list of Pipeline Pilot servers on which to execute the parallel subprotocol.  The server names should be in the same format as the Pipeline Pilot Client&apos;s change server dialog (server-name:port-number).
&lt;/p&gt;&lt;p&gt;
Specifying &lt;b&gt;localhost&lt;/b&gt; as a server will cause the subprotocol to use its own Pipeline Pilot server.  This can be helpful on multi-CPU/multi-core systems (where the subprotocol jobs are spawned on the same machine) and Pipeline Pilot Linux clusters (where &apos;localhost&apos; requests spawning the subprotocol jobs on the same cluster).
&lt;/p&gt;</sci:help>
								<sci:member>Parallel Processing Options Server Processes</sci:member>
								<sci:validscript>SetInvalidDetails(&apos;This parameter is required.&apos;);
Parameter() ne &apos;&apos;;</sci:validscript>
								<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
							</sci:arg>
							<sci:arg name="Parallel Processing Options Server Processes" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
								<sci:help>Comma separated list of maximum number of batches that can be simultaneously executed on each remote server.  The number of entries in this parameter must equal the number of servers. If &apos;*&apos; is specified as the number of processes, then that server will only launch as many batches as the administrator of the remote server has permitted.</sci:help>
								<sci:validscript>/* Server Processes must have the same number of comma separated entries as the Server parameter and must have a value*/
#processes := parameter();
expand(&apos;,&apos;, #processes);
#servers := parameter(&apos;Parallel Processing Options Server&apos;);
expand(&apos;,&apos;, #servers);

if (numvalues(#processes) == 0) then
	SetInvalidDetails(&apos;This parameter is required.&apos;);
else
	SetInvalidDetails(&apos;The number of server processes (&apos; . numvalues(#processes) . &apos;) must equal the number of servers (&apos; . numvalues(#servers) . &apos;).&apos;);
end if;
numvalues(#processes) &gt; 0 and numvalues(#processes) == numvalues(#servers);</sci:validscript>
								<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
							</sci:arg>
							<sci:arg name="Parallel Processing Options Preserve Order" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
								<sci:help>Whether to preserve the order of the data as it enters and leaves the remote subprotocol.</sci:help>
								<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
								<sci:legalval selected="true">True</sci:legalval>
								<sci:legalval>False</sci:legalval>
							</sci:arg>
							<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
								<sci:help>Component Attributes</sci:help>
								<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsFail</sci:legalval>
								<sci:legalval>ComponentRunsLocal</sci:legalval>
							</sci:arg>
							<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Custom Error Message</sci:help>
							</sci:arg>
							<sci:arg name="ComponentComment" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Comment</sci:help>
								<sci:value>Defines a subprotocol in a pipeline. When you are creating a pipeline that requires a subprotocol as a component, drag this component into the pipeline, open it, and add components to it.</sci:value>
							</sci:arg>
							<sci:arg name="ComponentUsage" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Usage</sci:help>
								<sci:value>When you are creating a pipeline which requires a subprotocol as 
a component, you can drag this SubProtocol component into the 
pipeline, open it, and add components into it.</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Display Name</sci:help>
								<sci:value>Find PDB Resolution</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolAutoLayout" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol AutoLayout</sci:help>
								<sci:value>1</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolShowComment" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol ShowComment</sci:help>
								<sci:value>true</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolComment" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Add Protocol Comment Here</sci:help>
								<sci:value>Add Protocol Comment Here</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Disabled</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:help>Component Icon</sci:help>
								<sci:value>COMPONENTNODE</sci:value>
							</sci:arg>
							<sci:arg name="ComponentRevision" type="LongType" required="true" visibility="nevershow" multi="false">
								<sci:help>Component Revision</sci:help>
								<sci:value>100</sci:value>
							</sci:arg>
							<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The component this component is based upon.</sci:help>
								<sci:value>SubProtocol</sci:value>
							</sci:arg>
							<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>GUID</sci:help>
								<sci:value>{F63A6BAA-E323-48FF-B5C3-532CF82DEA23}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Point</sci:help>
								<sci:value>663 -775</sci:value>
							</sci:arg>
							<sci:arg name="ByReference" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>By Ref</sci:help>
								<sci:value>1</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:help>Fancy Help</sci:help>
								<sci:value>100</sci:value>
								<sci:value>Finds the resolution of a PDB Code</sci:value>
								<sci:value>Use the property defined by &lt;i&gt;PDB Code Property&lt;/i&gt; to specify a PDB code. A new property defined by &lt;i&gt;Resolution Property&lt;/i&gt; will be generated to output the resolution of the PDB code.</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>Generic</sci:value>
								<sci:value>Records passing out of any unconnected pass ports of components inside the subprotocol</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value>Records passing out of any unconnected fail ports of components inside the subprotocol</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The server version when this component was registered</sci:help>
								<sci:value>6.1.2.7</sci:value>
							</sci:arg>
							<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Sticky Notes</sci:help>
							</sci:arg>
							<sci:arg name="Protocol Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Sticky Notes</sci:help>
							</sci:arg>
							<sci:arg name="ProtocolScale2" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Scale</sci:help>
								<sci:value>100</sci:value>
							</sci:arg>
							<sci:arg name="Protocol Options" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Options</sci:help>
								<sci:legalval>Make Shortcut by Default</sci:legalval>
								<sci:legalval>Owner Access Only</sci:legalval>
							</sci:arg>
							<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/dscore</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The date this component was registered.</sci:help>
								<sci:value>Fri Aug 31 18:40:51 2007</sci:value>
							</sci:arg>
							<sci:arg name="ComponentRunTimeID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Runtime Identifier</sci:help>
								<sci:value>9:12</sci:value>
							</sci:arg>
							<sci:arg name="SubProtocolMadeLinkIntoCopy" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>Subprotocol Made Link Into Copy</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Location of the component in the database</sci:help>
								<sci:value>Components\Accelrys Discovery Studio\Protein Modeling\Utilities\Find PDB Resolution</sci:value>
							</sci:arg>
							<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Local Component Identifier</sci:help>
								<sci:value>12</sci:value>
							</sci:arg>
						</sci:component>
						<sci:protocol/>
					</sci:data>
					<sci:data object="SciTegic.EvaluateExpression.1">
						<sci:component name="Custom Manipulator (PilotScript)" version="2">
							<sci:arg name="Expression" type="ExpressionType" required="true" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>Expression (or list of expressions separated by semi-colons) to evaluate</sci:help>
								<sci:member>Initial Expression</sci:member>
								<sci:member>Final Expression</sci:member>
								<sci:member>Keep Calculated Properties</sci:member>
								<sci:value>PDBResolution := PDBCode.&apos;=&gt;&apos;.Resolution;
</sci:value>
							</sci:arg>
							<sci:arg name="Initial Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>This expression is executed only the first time data passes into the component. (Since there is no data available at initialization time, only expressions referencing global properties are allowed.)</sci:help>
							</sci:arg>
							<sci:arg name="Final Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>This expression is executed only at finalization (after the last data passes out of the component). 
 (Since there is no data available at finalization time, only expressions referencing global properties are allowed.)</sci:help>
							</sci:arg>
							<sci:arg name="Keep Calculated Properties" type="BoolType" required="true" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>Adds any properties calculated in this component to a molecule&apos;s property list</sci:help>
								<sci:legalval selected="true">True</sci:legalval>
								<sci:legalval>False</sci:legalval>
							</sci:arg>
							<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
								<sci:help>Component Attributes</sci:help>
								<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
								<sci:legalval>ComponentReturnsFail</sci:legalval>
								<sci:legalval>ComponentRunsLocal</sci:legalval>
							</sci:arg>
							<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Custom Error Message</sci:help>
							</sci:arg>
							<sci:arg name="Do Screen" type="BoolType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>When TRUE, controls which exit port is used for
each data record by evaluating the final expression
(or only one) listed in the &quot;Expression&quot; parameter.
   -Pass (green) port when expression true
   -Fail (red) port when expression false</sci:help>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="ExpressionVersion" type="LongType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>Version of expression parser to use.</sci:help>
								<sci:value>2</sci:value>
							</sci:arg>
							<sci:arg name="ComponentComment" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Comment</sci:help>
								<sci:value>Processes commands expressed in PilotScript syntax to apply rapid
manipulations to data record properties. In this way, the component may be
customized to build a new, specialized data manipulation component.</sci:value>
							</sci:arg>
							<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/core</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The date this component was registered.</sci:help>
								<sci:value>Mon Dec 11 10:20:05 2006</sci:value>
							</sci:arg>
							<sci:arg name="ComponentUsage" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Usage</sci:help>
								<sci:value>The &apos;Expression&apos;  is evaluated for each data record, and may alter and manipulate the properties of the data objects. The &apos;Initial expression&apos; is evaluated the first time data passes into the component and is typically used for initializing global variables. See the online documentation for full details of PilotScript expression syntax.

Input             - Data records
Output Pass  - All Data records</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Display Name</sci:help>
								<sci:value>Resolution</sci:value>
							</sci:arg>
							<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The component this component is based upon.</sci:help>
								<sci:value>Custom Manipulator (PilotScript)</sci:value>
							</sci:arg>
							<sci:arg name="ComponentRunTimeID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component RunTimeID</sci:help>
								<sci:value>9:13</sci:value>
							</sci:arg>
							<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:help>Component Icon</sci:help>
								<sci:value>EXPRESSIONNODE</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Disabled</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>GUID</sci:help>
								<sci:value>{0995D675-7EE2-432C-95DF-E91C14052B22}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Point</sci:help>
								<sci:value>938 -775</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:help>Fancy Help</sci:help>
								<sci:value>100</sci:value>
								<sci:value>Applies a PilotScript expression to each data record
</sci:value>
								<sci:value>&lt;p&gt;PilotScript is the native scripting language in Pipeline Pilot.  It is based on PL/SQL and allows you to query or alter the properties on data records.  For example, the expression:

&lt;blockquote&gt;
&lt;code&gt;A := 10;&lt;/code&gt;
&lt;/blockquote&gt;
creates a property named &quot;A&quot; and sets the value to &quot;10&quot;.&lt;/p&gt;

&lt;p&gt;For each incoming data record the PilotScript statements in &lt;i&gt;Expression&lt;/i&gt; are evaluated.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To initialize global variables such as counters, use &lt;i&gt;Initial Expression&lt;/i&gt;.&lt;/li&gt; 
&lt;li&gt;To clean up global variables or calculate final results use &lt;i&gt;Final Expression&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Parameters on Custom Manipulators do not become global variables that can be accessed via &lt;i&gt;@ParameterName&lt;/i&gt; syntax and can only be accessed by token substitution via &lt;i&gt;$(ParameterName)&lt;/i&gt; syntax.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;See Also:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For more information on PilotScript, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/pscript/pscript_overview.htm&apos;)&quot;&gt;PilotScript Overview&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To use PilotScript to filter data records use &lt;a href=&quot;javascript:DoLink(&apos;{DD58ECD1-516F-48FE-A5DB-8328AED680F2}&apos;)&quot;&gt;Custom Filter (PilotScript)&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>None</sci:value>
								<sci:value/>
							</sci:arg>
							<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The server version when this component was registered</sci:help>
								<sci:value>6.0.2.0</sci:value>
							</sci:arg>
							<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Sticky Notes</sci:help>
							</sci:arg>
							<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Location of the component in the database</sci:help>
								<sci:value>Components\Generic\Manipulators\Custom Manipulator (PilotScript)</sci:value>
							</sci:arg>
							<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Local Component Identifier</sci:help>
								<sci:value>13</sci:value>
							</sci:arg>
						</sci:component>
					</sci:data>
					<sci:data object="SciTegic.PropertyFunctions.1">
						<sci:component name="Keep Properties" version="2">
							<sci:arg name="PropertyList" type="StringType" required="true" visibility="visible" multi="false">
								<sci:help>Comma-separated list of property names to keep</sci:help>
								<sci:member>RenameList</sci:member>
								<sci:value>PDBResolution</sci:value>
							</sci:arg>
							<sci:arg name="RenameList" type="StringType" required="false" visibility="visible" multi="false">
								<sci:help>If provided, it causes the properties given in PropertyList to be 
renamed to the corresponding name in this list.  If not provided, then no properties are renamed.</sci:help>
							</sci:arg>
							<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
								<sci:help>Component Attributes</sci:help>
								<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
								<sci:legalval>ComponentReturnsFail</sci:legalval>
								<sci:legalval>ComponentRunsLocal</sci:legalval>
							</sci:arg>
							<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Custom Error Message</sci:help>
							</sci:arg>
							<sci:arg name="Action" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:help>the action to perform</sci:help>
								<sci:value>Keep</sci:value>
							</sci:arg>
							<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/core</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The date this component was registered.</sci:help>
								<sci:value>Tue Oct 17 16:03:31 2006</sci:value>
							</sci:arg>
							<sci:arg name="ComponentComment" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Comment</sci:help>
								<sci:value>Removes all but the specified properties from the property list.</sci:value>
							</sci:arg>
							<sci:arg name="ComponentUsage" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Usage</sci:help>
								<sci:value>&apos;PropertyList&apos; contains a comma-separated list of the property names that you wish to keep.  All other properties will be removed.

Input             - Data records
Output Pass  - All Data records</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Display Name</sci:help>
								<sci:value>Keep Properties</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolAutoLayout" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol AutoLayout</sci:help>
								<sci:value>true</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolShowComment" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol ShowComment</sci:help>
								<sci:value>false</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolComment" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Add Protocol Comment Here</sci:help>
								<sci:value>Add Protocol Comment Here</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Disabled</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:help>Component Icon</sci:help>
								<sci:value>EXPRESSIONNODE</sci:value>
							</sci:arg>
							<sci:arg name="ComponentRevision" type="LongType" required="true" visibility="nevershow" multi="false">
								<sci:help>Component Revision</sci:help>
								<sci:value>100</sci:value>
							</sci:arg>
							<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The component this component is based upon.</sci:help>
								<sci:value>SubProtocol</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolScale" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Scale</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Point</sci:help>
								<sci:value>1238 -775</sci:value>
							</sci:arg>
							<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>GUID</sci:help>
								<sci:value>{456195EF-9708-4367-B3DD-21EBF3796604}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:help>Fancy Help</sci:help>
								<sci:value>100</sci:value>
								<sci:value>Keeps only the specified properties
</sci:value>
								<sci:value>For each incoming data record, retains only the properties found in the list of property names specified by &lt;i&gt;PropertyList&lt;/i&gt;.  All other properties are removed.

&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Use &lt;i&gt;RenameList&lt;/i&gt; if you wish to change the names of the retained properties.
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;See Also:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;To remove specified properties from each data record, use 
&lt;a href=&quot;javascript:DoLink(&apos;{C2ED35FF-5397-4877-AADB-10F1A15D60E2}&apos;)&quot;&gt;Remove Properties&lt;/a&gt;.
&lt;/ul&gt;
</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>Generic</sci:value>
								<sci:value>With only the specified properties remaining</sci:value>
								<sci:value>None</sci:value>
								<sci:value/>
							</sci:arg>
							<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The server version when this component was registered</sci:help>
								<sci:value>6.0.1.4</sci:value>
							</sci:arg>
							<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Sticky Notes</sci:help>
							</sci:arg>
							<sci:arg name="ByReference" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>By Ref</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="Protocol Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Sticky Notes</sci:help>
							</sci:arg>
							<sci:arg name="ComponentRunTimeID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Runtime Identifier</sci:help>
								<sci:value>9:14</sci:value>
							</sci:arg>
							<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Location of the component in the database</sci:help>
								<sci:value>Components\Generic\Manipulators\Keep Properties</sci:value>
							</sci:arg>
							<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Local Component Identifier</sci:help>
								<sci:value>14</sci:value>
							</sci:arg>
						</sci:component>
					</sci:data>
					<sci:data object="SciTegic.DelimitedWriter.1">
						<sci:component name="Delimited Text Writer" version="2">
							<sci:arg name="Destination" type="DestinationURLType" required="true" visibility="visible" multi="false">
								<sci:help>The filename for the destination data. Be sure to specify an extension such as .txt or .xls. To save in compressed (zipped) format, add the extension .gz or .zip to the filename. </sci:help>
								<sci:member>Maximum</sci:member>
								<sci:member>IfFileExists</sci:member>
								<sci:member>CharacterEncoding</sci:member>
								<sci:value>$(RunDirectory)/PDBResolution.txt</sci:value>
							</sci:arg>
							<sci:arg name="Maximum" type="LongType" required="false" visibility="visible" multi="false">
								<sci:help>The maximum number of data records to write (all if value is empty)</sci:help>
							</sci:arg>
							<sci:arg name="IfFileExists" type="StringType" required="true" visibility="visible" multi="false">
								<sci:help>What to do if the given destination file already exists</sci:help>
								<sci:legalval selected="true">Overwrite</sci:legalval>
								<sci:legalval>Append</sci:legalval>
								<sci:legalval>Halt</sci:legalval>
							</sci:arg>
							<sci:arg name="CharacterEncoding" type="StringType" required="false" visibility="visible" multi="false">
								<sci:help>&lt;p&gt;Indicates the character set that will be used within the file.&lt;/p&gt;
 
&lt;p&gt;ANSI is the default and specifies a character set where each character is defined by a single byte.  This allows the Latin-1 (ISO-8859-1) character set to be written to the file.  Virtually all applications can read these files.&lt;/p&gt;
 
&lt;p&gt;UTF-8 specifies a variable length character set.  Each character is represented by 1 to 6 bytes.  This allows writing out all extended characters specified in the Unicode character sets while maintaining reasonably lengthed files.  Many applications do not support UTF-8 files.&lt;/p&gt;
 
&lt;p&gt;&quot;Unicode&quot; and &quot;Unicode big endian&quot; are sets where each character is represented by exactly 2 bytes (also known as UCS-2).  Depending on which is used will determine the order in which the bytes appear for each character. Many applications do not support Unicode or Unicode big endian files.&lt;/p&gt;
 
&lt;p&gt;For more information about each of these ecoding styles, go to &lt;a href=&quot;javascript:DoLink(&apos;http://www.unicode.org&apos;)&quot;&gt;http://www.unicode.org&lt;/a&gt;&lt;/p&gt;</sci:help>
								<sci:legalval selected="true">ANSI</sci:legalval>
								<sci:legalval>UTF-8</sci:legalval>
								<sci:legalval>Unicode</sci:legalval>
								<sci:legalval>Unicode big endian</sci:legalval>
							</sci:arg>
							<sci:arg name="Delimiter" type="StringType" required="true" visibility="visible" multi="false">
								<sci:help>Specifies the character to use to separate
the fields in the file.  (Whole records are separated by line breaks.) Make sure you use a different
MultiValueDelimiter than Delimiter!</sci:help>
								<sci:member>MultipleValueDelimiter</sci:member>
								<sci:legalval selected="true">Tab</sci:legalval>
								<sci:legalval>Space</sci:legalval>
								<sci:legalval>Comma</sci:legalval>
								<sci:legalval>Colon</sci:legalval>
								<sci:legalval>Semicolon</sci:legalval>
							</sci:arg>
							<sci:arg name="MultipleValueDelimiter" type="StringType" required="true" visibility="visible" multi="false">
								<sci:help>The delimiter to use between multiple value on a single property. If &quot;None&quot;, 
multiple values are separated into their own columns.</sci:help>
								<sci:legalval selected="true">None</sci:legalval>
								<sci:legalval>Semicolon</sci:legalval>
								<sci:legalval>Colon</sci:legalval>
								<sci:legalval>Comma</sci:legalval>
								<sci:legalval>Linefeed</sci:legalval>
							</sci:arg>
							<sci:arg name="Format Options" type="GroupType" required="false" visibility="visible" multi="false">
								<sci:member>OutputColumnNames</sci:member>
								<sci:member>OutputColumnTypes</sci:member>
								<sci:member>OutputRowNumber</sci:member>
								<sci:member>UndefinedString</sci:member>
								<sci:member>MissingValue Format</sci:member>
							</sci:arg>
							<sci:arg name="UndefinedString" type="StringType" required="false" visibility="visible" multi="false">
								<sci:help>Text to output when data for a given column is not present (leave empty or enter text of choice)</sci:help>
							</sci:arg>
							<sci:arg name="OutputColumnNames" type="BoolType" required="true" visibility="visible" multi="false">
								<sci:help>Output column names</sci:help>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="OutputColumnTypes" type="StringType" required="true" visibility="visible" multi="false">
								<sci:help>Output a row that includes column types</sci:help>
								<sci:legalval selected="true">None</sci:legalval>
								<sci:legalval>SpotfireFormat</sci:legalval>
								<sci:legalval>NDIFormat</sci:legalval>
							</sci:arg>
							<sci:arg name="OutputRowNumber" type="BoolType" required="true" visibility="visible" multi="false">
								<sci:help>Includes the number of the record as the first field for each record</sci:help>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="MissingValue Format" type="StringType" required="true" visibility="visible" multi="false">
								<sci:help>How to write out explicitly-defined MissingValue properties. Each missing value property
contains a string that may provide information about the reason the value is missing.  You can ask to 
see either the missing value text containing this string, or use the undefined string to write out missing values.</sci:help>
								<sci:legalval selected="true">Use MissingValue Text</sci:legalval>
								<sci:legalval>Use UndefinedString</sci:legalval>
							</sci:arg>
							<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
								<sci:help>Component Attributes</sci:help>
								<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
								<sci:legalval>ComponentReturnsPass</sci:legalval>
								<sci:legalval>ComponentReturnsFail</sci:legalval>
								<sci:legalval>ComponentRunsLocal</sci:legalval>
							</sci:arg>
							<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Custom Error Message</sci:help>
							</sci:arg>
							<sci:arg name="ComponentComment" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Comment</sci:help>
								<sci:value>Writes data records to a text file, separating the records with a new line, and the individual fields within a record with the Delimiter character. The property names for the fields are stored as the first record. If a property has more than one value, it is written as multiple fields (for example, prop[0], prop[1] ...)</sci:value>
							</sci:arg>
							<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/core</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The date this component was registered.</sci:help>
								<sci:value>Mon Dec 11 15:05:11 2006</sci:value>
							</sci:arg>
							<sci:arg name="ComponentUsage" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Usage</sci:help>
								<sci:value>Writes data records to a text file, separating the records with a new line and the individual fields within a record with the &apos;Delimiter&apos; character.  The property names for the fields will be stored as the first line.  

&apos;MultipleValueDelimiter&apos; controls properties with more than one value. If None, then they are written as multiple fields (e.g., prop[1], prop[2] ...). Else, they are written into a single value separated by the chosen delimiter.

&apos;UndefinedString&apos; is the string to write out to represent undefined values.

Input - Data records

Advanced Parameters:

&apos;OutputColumnNames&apos; determines whether the first line of the file will be the column names.

&apos;OutputColumnTypes&apos; determines whether the next line of the file will be column type designations.

&apos;OutputRowNumber&apos; determines whether the first column of the file will be reserved for the Row number.</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Display Name</sci:help>
								<sci:value>Delimited Text Writer</sci:value>
							</sci:arg>
							<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The component this component is based upon.</sci:help>
								<sci:value>Delimited Writer</sci:value>
							</sci:arg>
							<sci:arg name="ComponentRunTimeID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component RunTimeID</sci:help>
								<sci:value>9:15</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Disabled</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:help>Component Icon</sci:help>
								<sci:value>DOCUMENTNODE</sci:value>
							</sci:arg>
							<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>GUID</sci:help>
								<sci:value>{9B0081A4-6085-4FF0-BD12-AEB8B7BD9CB5}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Point</sci:help>
								<sci:value>1538 -775</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:help>Fancy Help</sci:help>
								<sci:value>100</sci:value>
								<sci:value>Writes data records to a text file with one data record per line and data separated by delimiters
</sci:value>
								<sci:value>&lt;p&gt;Data records are separated with a new line and the individual properties within each record are separated with the character specified by &lt;i&gt;Delimiter&lt;/I&gt;. The property names for the fields are stored as the first line of the file. 
&lt;p&gt;
&lt;b&gt;Note:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Use &lt;i&gt;MultipleValueDelimiter&lt;/i&gt; to control the output format for properties 
  with more than one value (array properties).
&lt;/ul&gt;
</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>None</sci:value>
								<sci:value/>
								<sci:value>None</sci:value>
								<sci:value/>
							</sci:arg>
							<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The server version when this component was registered</sci:help>
								<sci:value>6.0.2.0</sci:value>
							</sci:arg>
							<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Sticky Notes</sci:help>
							</sci:arg>
							<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Location of the component in the database</sci:help>
								<sci:value>Components\Generic\Writers\Delimited Text Writer</sci:value>
							</sci:arg>
							<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Local Component Identifier</sci:help>
								<sci:value>15</sci:value>
							</sci:arg>
						</sci:component>
					</sci:data>
					<sci:connectid from="0" to="1" type="true"/>
					<sci:connectid from="1" to="2" type="true"/>
					<sci:connectid from="2" to="3" type="true"/>
					<sci:connectid from="4" to="5" type="true"/>
					<sci:connectid from="5" to="0" type="true"/>
					<sci:connectid from="5" to="7" type="true"/>
					<sci:connectid from="6" to="4" type="true"/>
					<sci:connectid from="6" to="11" type="true"/>
					<sci:connectid from="7" to="8" type="true"/>
					<sci:connectid from="8" to="9" type="true"/>
					<sci:connectid from="9" to="10" type="true"/>
					<sci:connectid from="11" to="12" type="true"/>
					<sci:connectid from="12" to="13" type="true"/>
					<sci:connectid from="13" to="14" type="true"/>
					<sci:connectid from="14" to="15" type="true"/>
				</sci:protocol>
			</sci:data>
			<sci:data object="SciTegic.Protocol.1">
				<sci:component name="Subprotocol" version="2">
					<sci:arg name="Tempfiles" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>&lt;p&gt;A comma delimited list of global properties, each of which will automatically hold the name of a file in the job&apos;s temporary folder, whose name is guaranteed to be unique.&lt;p/&gt;For each global name, an additional global is created (with the suffix &lt;i&gt;_Filename&lt;/i&gt;) that hold just the leaf file name of the temporary file.&lt;/p&gt;</sci:help>
					</sci:arg>
					<sci:arg name="DeclareLocal" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>&lt;p&gt;Lists a set of properties (without the @) to create on the global property list for this subprotocol. Such properties can only be accessed within the scope of this subprotocol and its descendent subprotocols.&lt;p/&gt;Any global property not declared in this way is created on the top level global property list and is accessible from all protocols, but may collide with another property of the same name.&lt;/p&gt;&lt;p&gt;Scoping global properties to the subprotocol where they are used is highly recommended.&lt;/p&gt;</sci:help>
					</sci:arg>
					<sci:arg name="RunToCompletion" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>When &lt;i&gt;RunToCompletion&lt;/i&gt; is set to &quot;True - For Each Data Record&quot;, the subprotocol is re-initialized and executed in its entirety for each individual data record it processes.
&lt;p&gt;
When set to &quot;True - For Each Category&quot;, the data records are divided into categories based on the value of the Categorize Using parameter and then the subprotocol is re-initialized and executed in its entirety for each category of data records. When used in conjunction with &lt;i&gt;Parallel Processing Options&lt;/i&gt;, each category of data records will be sent to the remote server as part of one single batch.</sci:help>
						<sci:member>RunToCompletion Categorize Using</sci:member>
						<sci:legalval selected="true">False</sci:legalval>
						<sci:legalval>True - For Each Data Record</sci:legalval>
						<sci:legalval>True - For Each Category</sci:legalval>
					</sci:arg>
					<sci:arg name="RunToCompletion Categorize Using" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Required when RunToCompletion is set to &lt;i&gt;True - For Each Category&lt;/i&gt;, this parameter specifies the property or properties used to define the categories.</sci:help>
						<sci:validscript>SetInvalidDetails(&apos;This parameter is required when RunToCompletion is set to True - For Each Category&apos;);
Parameter() ne &apos;&apos;;</sci:validscript>
						<sci:enabledscript>SetDisabledDetails(&apos;To Enable, Set RunToCompletion to True - For Each Category&apos;);
Parameter(&apos;RunToCompletion&apos;) eq &apos;True - For Each Category&apos;;</sci:enabledscript>
					</sci:arg>
					<sci:arg name="Parallel Processing Options" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>&lt;p&gt;
When set to True, this set of options allow the subprotocol to execute in parallel on one or more independent Pipeline Pilot servers, running local or remote.  Additional parameters control the number of data records to send in each process batch, the list of Pipeline Pilot servers to use, the number of protocol processes that can be executed on each server, and whether to preserve the order of the processed data records.
&lt;/p&gt;&lt;p&gt;
Use this option judiciously, since it will not increase throughput in all circumstances. In general, it will yield improved performance when the parallelization benefits outweigh the data transfer overhead for the specified batch size.  As a rough guide, performance can be improved when each individual batch requires at least 10 seconds to execute, although this can be affected by the size of each data record.
&lt;/p&gt;&lt;p&gt;
When running the protocol with debugging, the subprotocol will provide debugging messages to detail each of the various steps of execution.  Also, components located within the parallel subprotocol will display their debugging messages as well.
&lt;/p&gt;&lt;p&gt;
For more information on the parallel subprotocol options, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/subprots/subprot_parallel_processing.htm&apos;)&quot;&gt;Parallel Processing Subprotocols&lt;/a&gt;.
&lt;/p&gt;
</sci:help>
						<sci:member>Parallel Processing Options Batch Size</sci:member>
						<sci:member>Parallel Processing Options Server</sci:member>
						<sci:member>Parallel Processing Options Preserve Order</sci:member>
						<sci:legalval>True</sci:legalval>
						<sci:legalval selected="true">False</sci:legalval>
					</sci:arg>
					<sci:arg name="Parallel Processing Options Batch Size" type="LongType" required="true" visibility="visible" multi="false" uimpl="true">
						<sci:help>&lt;p&gt;The number of records to send to the remote server(s) for each subprotocol execution.  In general, performance is optimized when the amount of time required to process each batch is at least 10 seconds (note that this can vary depending on the characteristics of the remote server&apos;s hardware).  Use a batch size of -1 to pass all data in a single batch.&lt;/p&gt;
&lt;p&gt;When &lt;i&gt;RunToCompletion&lt;/i&gt; is set to &quot;True - for each category&quot;, the batch sizes will be determined by the number of records in each individual category.  Therefore, the &lt;i&gt;Batch Size&lt;/i&gt; parameter is not applicable.</sci:help>
						<sci:enabledscript>#parallel := Parameter(&apos;Parallel Processing Options&apos;);
#rtcForEachCategory := (Parameter(&apos;RunToCompletion&apos;) eq &apos;True - For Each Category&apos;);
if (not #parallel) then
	SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
elsif (#rtcForEachCategory) then
	SetDisabledDetails(&quot;This parameter is not applicable when &apos;RunToCompletion&apos; is set to &apos;True - For Each Category&apos;&quot;);
end if;
#parallel and not #rtcForEachCategory;</sci:enabledscript>
					</sci:arg>
					<sci:arg name="Parallel Processing Options Server" type="StringType" required="false" visibility="visible" multi="true" expanded="true" legalvalsenforced="false" uimpl="true">
						<sci:help>&lt;p&gt;
Comma separated list of Pipeline Pilot servers on which to execute the parallel subprotocol.  The server names should be in the same format as the Pipeline Pilot Client&apos;s change server dialog (server-name:port-number).
&lt;/p&gt;&lt;p&gt;
Specifying &lt;b&gt;localhost&lt;/b&gt; as a server will cause the subprotocol to use its own Pipeline Pilot server.  This can be helpful on multi-CPU/multi-core systems (where the subprotocol jobs are spawned on the same machine) and Pipeline Pilot Linux clusters (where &apos;localhost&apos; requests spawning the subprotocol jobs on the same cluster).
&lt;/p&gt;</sci:help>
						<sci:member>Parallel Processing Options Server Processes</sci:member>
						<sci:member>Parallel Processing Options Server Run On Grid</sci:member>
						<sci:validscript>SetInvalidDetails(&apos;This parameter is required.&apos;);
Parameter() ne &apos;&apos;;</sci:validscript>
						<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
					</sci:arg>
					<sci:arg name="Parallel Processing Options Server Processes" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Comma separated list of maximum number of batches that can be simultaneously executed on each remote server.  The number of entries in this parameter must equal the number of servers. If &apos;*&apos; is specified as the number of processes, then that server will only launch as many batches as the administrator of the remote server has permitted.</sci:help>
						<sci:validscript>/* Server Processes must have the same number of comma separated entries as the Server parameter and must have a value*/
#processes := parameter();
expand(&apos;,&apos;, #processes);
#servers := parameter(&apos;Parallel Processing Options Server&apos;);
expand(&apos;,&apos;, #servers);

if (numvalues(#processes) == 0) then
	SetInvalidDetails(&apos;This parameter is required.&apos;);
else
	SetInvalidDetails(&apos;The number of server processes (&apos; . numvalues(#processes) . &apos;) must equal the number of servers (&apos; . numvalues(#servers) . &apos;).&apos;);
end if;
numvalues(#processes) &gt; 0 and numvalues(#processes) == numvalues(#servers);</sci:validscript>
						<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
					</sci:arg>
					<sci:arg name="Parallel Processing Options Server Run On Grid" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Run subprotocol on grid engine if available.</sci:help>
						<sci:member>Parallel Processing Options Server Run On Grid Queue Name</sci:member>
						<sci:enabledscript>parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
						<sci:legalval selected="true">True</sci:legalval>
						<sci:legalval>False</sci:legalval>
					</sci:arg>
					<sci:arg name="Parallel Processing Options Server Run On Grid Queue Name" type="StringType" required="false" visibility="visible" multi="false" legalvalsenforced="false" uimpl="true">
						<sci:help>Select the queue name on the grid to submit jobs to. Leave blank to use default queue name.</sci:help>
						<sci:enabledscript>parameter(&apos;Parallel Processing Options Server Run On Grid&apos;);</sci:enabledscript>
					</sci:arg>
					<sci:arg name="Parallel Processing Options Preserve Order" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Whether to preserve the order of the data as it enters and leaves the remote subprotocol.</sci:help>
						<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
						<sci:legalval selected="true">True</sci:legalval>
						<sci:legalval>False</sci:legalval>
					</sci:arg>
					<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
						<sci:help>Component Attributes</sci:help>
						<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
						<sci:legalval>ComponentReturnsPass</sci:legalval>
						<sci:legalval selected="true">ComponentReturnsFail</sci:legalval>
						<sci:legalval>ComponentRunsLocal</sci:legalval>
					</sci:arg>
					<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>Generate Sequence Profile from Hits</sci:value>
					</sci:arg>
					<sci:arg name="ProtocolAutoLayout" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol AutoLayout</sci:help>
						<sci:value>1</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
						<sci:value>SUBPROTOCOLNODE</sci:value>
					</sci:arg>
					<sci:arg name="ComponentRevision" type="LongType" required="true" visibility="nevershow" multi="false">
						<sci:help>Component Revision</sci:help>
						<sci:value>790</sci:value>
					</sci:arg>
					<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>{17001C74-63CE-4B4B-B37C-F0EAA19CE4AA}</sci:value>
					</sci:arg>
					<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>1290 -1355</sci:value>
					</sci:arg>
					<sci:arg name="ByReference" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>By Ref</sci:help>
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
						<sci:value>100</sci:value>
						<sci:value>Builds subprotocols in Pipeline Pilot.</sci:value>
						<sci:value>&lt;p&gt;
Use a subprotocol to collapse one or more components into a single item. Open a subprotocol to view or edit its contents. 
&lt;/p&gt;&lt;p&gt;
To define input and output ports, display icon, and parameter settings, right-click and select Edit. You can save subprotocols and reuse them. For more information, see the User Guide help for &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/subprots/subprot_overview.htm&apos;)&quot;&gt;Subprotocols Overview&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;
For more information on the parallel subprotocol options, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/subprots/subprot_parallel_processing.htm&apos;)&quot;&gt;Parallel Processing Subprotocols&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;
Tip: Any component can be made into a shortcut, so that the latest version is always used. For more information, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/subprots/shortcuts.htm&apos;)&quot;&gt;Creating Shortcuts&lt;/a&gt;.
&lt;/p&gt;</sci:value>
						<sci:value>Generic</sci:value>
						<sci:value/>
						<sci:value>None</sci:value>
						<sci:value>Records passing out of any unconnected pass ports of components inside the subprotocol</sci:value>
						<sci:value>Generic</sci:value>
						<sci:value>Records passing out of any unconnected fail ports of components inside the subprotocol</sci:value>
					</sci:arg>
					<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The server version when this component was registered</sci:help>
						<sci:value>7.9.0.30</sci:value>
					</sci:arg>
					<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="Protocol Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Sticky Notes</sci:help>
					</sci:arg>
					<sci:arg name="ProtocolScale2" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Scale</sci:help>
						<sci:value>100</sci:value>
					</sci:arg>
					<sci:arg name="Protocol Options" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Options</sci:help>
						<sci:legalval>Owner Access Only</sci:legalval>
					</sci:arg>
					<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The user who registered this component.</sci:help>
						<sci:value>scitegic/coreutils</sci:value>
					</sci:arg>
					<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The date this component was registered.</sci:help>
						<sci:value>Tue Jan 26 10:02:05 2010</sci:value>
					</sci:arg>
					<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:help>Local Component Identifier</sci:help>
						<sci:value>30</sci:value>
					</sci:arg>
					<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The original path within the database of this component.</sci:help>
						<sci:value>Components\Data Access and Manipulation\Utilities\Subprotocol Utilities\Subprotocol</sci:value>
					</sci:arg>
				</sci:component>
				<sci:protocol>
					<sci:data object="SciTegic.Protocol.1">
						<sci:component name="Convert All Hits to Alignment" version="2">
							<sci:arg name="Hit Number" type="LongType" required="false" visibility="visible" multi="false" uimpl="false">
								<sci:help>The number of top hits to be included into the alignment. Use an empty value to include all hits.</sci:help>
							</sci:arg>
							<sci:arg name="Remove Gaps" type="BoolType" required="false" visibility="visible" multi="false">
								<sci:help>If True, the gaps in query sequence and their corresponding residues or bases in hit sequences are removed out of the output alignment, which, then, can be used as a profile of the query sequence.</sci:help>
								<sci:legalval selected="true">True</sci:legalval>
								<sci:legalval>False</sci:legalval>
							</sci:arg>
							<sci:arg name="Tempfiles" type="StringType" required="false" visibility="visible" multi="false" implbase="{17001C74-63CE-4B4B-B37C-F0EAA19CE4AA}" uimpl="true">
								<sci:help>Temporary files converted by the network to true temporary filenames</sci:help>
								<sci:value>tmpFasta</sci:value>
							</sci:arg>
							<sci:arg name="DeclareLocal" type="StringType" required="false" visibility="visible" multi="false" implbase="{17001C74-63CE-4B4B-B37C-F0EAA19CE4AA}" uimpl="true">
								<sci:help>Lists a set of properties (without the @) to create on the property list for this protocol. Other properties are created on the global property list and are accessible from all protocols.</sci:help>
								<sci:value>QuerySequence, QueryName, QueryDescription,  JoinProperty, tmpCache</sci:value>
							</sci:arg>
							<sci:arg name="RunToCompletion" type="BoolType" required="false" visibility="visible" multi="false" implbase="{17001C74-63CE-4B4B-B37C-F0EAA19CE4AA}" uimpl="true">
								<sci:help>When the network runs, processes once or until done for each process call</sci:help>
								<sci:legalval selected="true">True</sci:legalval>
								<sci:legalval>False</sci:legalval>
							</sci:arg>
							<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
								<sci:help>Component Attributes</sci:help>
								<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsFail</sci:legalval>
								<sci:legalval>ComponentRunsLocal</sci:legalval>
							</sci:arg>
							<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
							<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/seqanal</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The date this component was registered.</sci:help>
								<sci:value>Tue Oct 05 16:10:15 2010</sci:value>
							</sci:arg>
							<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>{8254E352-764A-427E-B771-9908C4F7CD13}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>Convert All Hits to Alignment</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolAutoLayout" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol AutoLayout</sci:help>
								<sci:value>true</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:value>COMPONENTNODE</sci:value>
							</sci:arg>
							<sci:arg name="ComponentRevision" type="LongType" required="true" visibility="nevershow" multi="false">
								<sci:help>Component Revision</sci:help>
								<sci:value>100</sci:value>
							</sci:arg>
							<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The component this component is based upon.</sci:help>
								<sci:value>SubProtocol</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>90 -95</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolScale" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Scale</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ByReference" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>By Ref</sci:help>
								<sci:value>1</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:value>100</sci:value>
								<sci:value>Converts all BLAST hits to an alignment.</sci:value>
								<sci:value>Reads a BLAST data record and convert all hits into an alignment data record with the BLAST query sequence put at the first sequence.</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value>BLAST data record</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value>Alignment data record</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value>Records passing out of any unconnected fail ports of components inside the subprotocol</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The server version when this component was registered</sci:help>
								<sci:value>7.5.0.10</sci:value>
							</sci:arg>
							<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
							<sci:arg name="Protocol Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Sticky Notes</sci:help>
							</sci:arg>
							<sci:arg name="Protocol Options" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Options</sci:help>
							</sci:arg>
							<sci:arg name="ProtocolScale2" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Scale</sci:help>
								<sci:value>100</sci:value>
							</sci:arg>
							<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Local Component Identifier</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>Components\Biology\Sequence Analysis\Search and Similarity\Manipulators\Convert All Hits to Alignment</sci:value>
							</sci:arg>
						</sci:component>
						<sci:protocol/>
					</sci:data>
					<sci:data object="SciTegic.Protocol.1">
						<sci:component name="DS Alignment Writer" version="2">
							<sci:arg name="Destination" type="URLType" required="true" visibility="visible" multi="false">
								<sci:help>The name of the aligmment file to generate</sci:help>
								<sci:member>Keep Chain Breaks</sci:member>
								<sci:member>If File Exists</sci:member>
								<sci:member>Maximum</sci:member>
								<sci:member>File Format</sci:member>
								<sci:member>Keep Features</sci:member>
								<sci:value>$(RunDirectory)/$(SequenceFileName)_profile.pir</sci:value>
							</sci:arg>
							<sci:arg name="File Format" type="StringType" required="true" visibility="visible" multi="false" uimpl="false">
								<sci:help>The file format to use</sci:help>
								<sci:legalval>Fasta</sci:legalval>
								<sci:legalval selected="true">PIR</sci:legalval>
								<sci:legalval>BSML</sci:legalval>
							</sci:arg>
							<sci:arg name="Keep Chain Breaks" type="BoolType" required="false" visibility="visible" multi="false">
								<sci:help>Whether to keep chain breaks or not</sci:help>
								<sci:legalval selected="true">True</sci:legalval>
								<sci:legalval>False</sci:legalval>
							</sci:arg>
							<sci:arg name="Keep Features" type="BoolType" required="false" visibility="visible" multi="false" uimpl="false">
								<sci:help>Keep sequence features in the output file generated.</sci:help>
								<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;File Format&apos; is &apos;BSML&apos;&quot;);

Parameter(&apos;File Format&apos;) eq &apos;BSML&apos;;</sci:enabledscript>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="If File Exists" type="StringType" required="true" visibility="visible" multi="false">
								<sci:help>What to do if the given destination file already exists</sci:help>
								<sci:legalval selected="true">Overwrite</sci:legalval>
								<sci:legalval>Append</sci:legalval>
								<sci:legalval>Halt</sci:legalval>
							</sci:arg>
							<sci:arg name="Maximum" type="LongType" required="false" visibility="visible" multi="false">
								<sci:help>The maximum number of alignments to write (all if value is empty)</sci:help>
							</sci:arg>
							<sci:arg name="Tempfiles" type="StringType" required="false" visibility="visible" multi="false" implbase="{17001C74-63CE-4B4B-B37C-F0EAA19CE4AA}" uimpl="true">
								<sci:help>Temporary files converted by the network to true temporary filenames</sci:help>
								<sci:value>tmpFasta, TmpGFF, tmpPir,tmpBSMLDir</sci:value>
							</sci:arg>
							<sci:arg name="DeclareLocal" type="StringType" required="false" visibility="visible" multi="false" implbase="{17001C74-63CE-4B4B-B37C-F0EAA19CE4AA}" uimpl="true">
								<sci:help>Lists a set of properties (without the @) to create on the property list for this protocol. Other properties are created on the global property list and are accessible from all protocols.</sci:help>
								<sci:value>originalFastaIDs, DisplayIDs</sci:value>
							</sci:arg>
							<sci:arg name="RunToCompletion" type="BoolType" required="false" visibility="visible" multi="false" implbase="{17001C74-63CE-4B4B-B37C-F0EAA19CE4AA}" uimpl="true">
								<sci:help>When the network runs, processes once or until done for each process call</sci:help>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
								<sci:help>Component Attributes</sci:help>
								<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
								<sci:legalval>ComponentReturnsPass</sci:legalval>
								<sci:legalval>ComponentReturnsFail</sci:legalval>
								<sci:legalval>ComponentRunsLocal</sci:legalval>
							</sci:arg>
							<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
							<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/dscore</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The date this component was registered.</sci:help>
								<sci:value>Tue Aug 16 13:07:35 2011</sci:value>
							</sci:arg>
							<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>{38EDF8BA-DA22-40FE-9F92-6F0F5767E9DA}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentComment" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Comment</sci:help>
								<sci:value>Defines a subprotocol in a pipeline. When you are creating a pipeline that requires a subprotocol as a component, drag this component into the pipeline, open it, and add components to it.</sci:value>
							</sci:arg>
							<sci:arg name="ComponentUsage" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Usage</sci:help>
								<sci:value>When you are creating a pipeline which requires a subprotocol as 
a component, you can drag this SubProtocol component into the 
pipeline, open it, and add components into it.</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>DS Alignment Writer</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolAutoLayout" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol AutoLayout</sci:help>
								<sci:value>true</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolShowComment" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol ShowComment</sci:help>
								<sci:value>true</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolComment" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Add Protocol Comment Here</sci:help>
								<sci:value>Add Protocol Comment Here</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:value>DOCUMENTNODE</sci:value>
							</sci:arg>
							<sci:arg name="ComponentRevision" type="LongType" required="true" visibility="nevershow" multi="false">
								<sci:help>Component Revision</sci:help>
								<sci:value>100</sci:value>
							</sci:arg>
							<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The component this component is based upon.</sci:help>
								<sci:value>SubProtocol</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>378 -95</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolScale" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Scale</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ByReference" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>By Ref</sci:help>
								<sci:value>1</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:value>100</sci:value>
								<sci:value>Writes a alignment file</sci:value>
								<sci:value>Save input alignment records as entries in the flat file specified in &lt;i&gt;Destination&lt;/i&gt;. The available formats include PIR, BSML and Fasta, as specified in &lt;i&gt;File Format&lt;/i&gt;.</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value>Alignment data record</sci:value>
								<sci:value>None</sci:value>
								<sci:value>Records passing out of any unconnected pass ports of components inside the subprotocol</sci:value>
								<sci:value>None</sci:value>
								<sci:value>Records passing out of any unconnected fail ports of components inside the subprotocol</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The server version when this component was registered</sci:help>
								<sci:value>8.5.0.200</sci:value>
							</sci:arg>
							<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
							<sci:arg name="Protocol Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Sticky Notes</sci:help>
							</sci:arg>
							<sci:arg name="Protocol Options" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Options</sci:help>
								<sci:legalval>Make Shortcut by Default</sci:legalval>
								<sci:legalval>Owner Access Only</sci:legalval>
							</sci:arg>
							<sci:arg name="ProtocolScale2" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Scale</sci:help>
								<sci:value>100</sci:value>
							</sci:arg>
							<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Local Component Identifier</sci:help>
								<sci:value>1</sci:value>
							</sci:arg>
							<sci:arg name="SubProtocolMadeLinkIntoCopy" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>Subprotocol Made Link Into Copy</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>Components\Biology\Protein Modeling\Writers\DS Alignment Writer</sci:value>
							</sci:arg>
						</sci:component>
						<sci:protocol/>
					</sci:data>
					<sci:connectid from="0" to="1" type="true"/>
				</sci:protocol>
			</sci:data>
			<sci:data object="SciTegic.Protocol.1">
				<sci:component name="DS Messaging" version="2">
					<sci:arg name="Client Message" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>Short message send to the client.</sci:help>
						<sci:member>Client Message Final</sci:member>
					</sci:arg>
					<sci:arg name="Client Message Final" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>Final Message reported to the DS Client</sci:help>
					</sci:arg>
					<sci:arg name="Report" type="GroupType" required="false" visibility="visible" multi="false" expanded="true">
						<sci:help>Options controlling the DS report page</sci:help>
						<sci:member>Report Error</sci:member>
						<sci:member>Report Summary</sci:member>
						<sci:member>Remove Duplicates from Summary</sci:member>
						<sci:member>Report Warning</sci:member>
						<sci:member>Report Detail</sci:member>
					</sci:arg>
					<sci:arg name="Report Summary" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>Message added to &lt;strong&gt;Summary&lt;/strong&gt; section in DS report</sci:help>
					</sci:arg>
					<sci:arg name="Report Detail" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>Message added to &lt;strong&gt;Detail&lt;/strong&gt; section in DS report</sci:help>
					</sci:arg>
					<sci:arg name="Report Warning" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>Message added to &lt;strong&gt;Warning&lt;/strong&gt; section in DS report</sci:help>
					</sci:arg>
					<sci:arg name="Report Error" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>Message added to &lt;strong&gt;Error&lt;/strong&gt; section in DS report</sci:help>
						<sci:value>Fail to generate sequence profile from hits</sci:value>
					</sci:arg>
					<sci:arg name="Remove Duplicates from Summary" type="BoolType" required="true" visibility="visible" multi="false" uimpl="false">
						<sci:help>When set to True, all duplicate &lt;strong&gt;Summary&lt;/strong&gt; lines in the DS report are removed. </sci:help>
						<sci:legalval>True</sci:legalval>
						<sci:legalval selected="true">False</sci:legalval>
					</sci:arg>
					<sci:arg name="Advanced" type="GroupType" required="false" visibility="visible" multi="false" expanded="true" uimpl="true">
						<sci:help>Contains less commonly used parameters.</sci:help>
						<sci:member>Debug Level</sci:member>
						<sci:member>Debug Message</sci:member>
					</sci:arg>
					<sci:arg name="Debug Message" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Message to send to the log file (if log is specified)</sci:help>
					</sci:arg>
					<sci:arg name="Debug Level" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>User can set the debug level for the debug message.</sci:help>
						<sci:legalval selected="true">1</sci:legalval>
						<sci:legalval>2</sci:legalval>
					</sci:arg>
					<sci:arg name="Tempfiles" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Temporary files converted by the network to true temporary filenames</sci:help>
					</sci:arg>
					<sci:arg name="DeclareLocal" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Lists a set of properties (without the @) to create on the property list for this protocol. Other properties are created on the global property list and are accessible from all protocols.</sci:help>
					</sci:arg>
					<sci:arg name="RunToCompletion" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>When the network runs, processes once or until done for each process call</sci:help>
						<sci:legalval>True</sci:legalval>
						<sci:legalval selected="true">False</sci:legalval>
					</sci:arg>
					<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
						<sci:help>Component Attributes</sci:help>
						<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
						<sci:legalval>ComponentReturnsPass</sci:legalval>
						<sci:legalval>ComponentReturnsFail</sci:legalval>
						<sci:legalval>ComponentRunsLocal</sci:legalval>
					</sci:arg>
					<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The date this component was registered.</sci:help>
						<sci:value>Mon Feb 26 16:26:52 2018</sci:value>
					</sci:arg>
					<sci:arg name="ComponentComment" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Component Comment</sci:help>
						<sci:value>Defines a subprotocol in a pipeline. When you are creating a pipeline that requires a subprotocol as a component, drag this component into the pipeline, open it, and add components to it.</sci:value>
					</sci:arg>
					<sci:arg name="ComponentUsage" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Component Usage</sci:help>
						<sci:value>When you are creating a pipeline which requires a subprotocol as 
a component, you can drag this SubProtocol component into the 
pipeline, open it, and add components into it.</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>DS Messaging</sci:value>
					</sci:arg>
					<sci:arg name="ProtocolAutoLayout" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol AutoLayout</sci:help>
						<sci:value>1</sci:value>
					</sci:arg>
					<sci:arg name="ProtocolShowComment" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol ShowComment</sci:help>
						<sci:value>true</sci:value>
					</sci:arg>
					<sci:arg name="ProtocolComment" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Add Protocol Comment Here</sci:help>
						<sci:value>Add Protocol Comment Here</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
						<sci:value>COMPONENTNODE</sci:value>
					</sci:arg>
					<sci:arg name="ComponentRevision" type="LongType" required="true" visibility="nevershow" multi="false">
						<sci:help>Component Revision</sci:help>
						<sci:value>100</sci:value>
					</sci:arg>
					<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The component this component is based upon.</sci:help>
						<sci:value>SubProtocol</sci:value>
					</sci:arg>
					<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>{8F288684-93BC-4712-BC9A-73930339BDEB}</sci:value>
					</sci:arg>
					<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>1590 -1355</sci:value>
					</sci:arg>
					<sci:arg name="ByReference" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>By Ref</sci:help>
						<sci:value>1</sci:value>
					</sci:arg>
					<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
						<sci:value>100</sci:value>
						<sci:value>Sends text to the client and/or to the DS report</sci:value>
						<sci:value>&lt;p&gt;Messages can be sent to the client or text can be specified for the DS report.&lt;/p&gt;
</sci:value>
						<sci:value>None</sci:value>
						<sci:value/>
						<sci:value>None</sci:value>
						<sci:value>Records passing out of any unconnected pass ports of components inside the subprotocol</sci:value>
						<sci:value>None</sci:value>
						<sci:value>Records passing out of any unconnected fail ports of components inside the subprotocol</sci:value>
					</sci:arg>
					<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The server version when this component was registered</sci:help>
						<sci:value>18.1.0.1604</sci:value>
					</sci:arg>
					<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="Protocol Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Sticky Notes</sci:help>
					</sci:arg>
					<sci:arg name="ProtocolScale2" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Scale</sci:help>
						<sci:value>100</sci:value>
					</sci:arg>
					<sci:arg name="Protocol Options" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Options</sci:help>
						<sci:legalval>Make Shortcut by Default</sci:legalval>
						<sci:legalval>Owner Access Only</sci:legalval>
					</sci:arg>
					<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The user who registered this component.</sci:help>
						<sci:value>scitegic/dscore</sci:value>
					</sci:arg>
					<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:help>Local Component Identifier</sci:help>
						<sci:value>20</sci:value>
					</sci:arg>
					<sci:arg name="SubProtocolMadeLinkIntoCopy" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Subprotocol Made Link Into Copy</sci:help>
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="SubProtocolModified" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Subprotocol Modified</sci:help>
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The original path within the database of this component.</sci:help>
						<sci:value>Components\Chemistry\Utilities\Discovery Studio\DS Messaging</sci:value>
					</sci:arg>
				</sci:component>
				<sci:protocol/>
			</sci:data>
			<sci:data object="SciTegic.Protocol.1">
				<sci:component name="DS Protein Sequence Reader" version="2">
					<sci:arg name="Source" type="URLType" required="true" visibility="visible" multi="false" uimpl="false">
						<sci:help>The protein sequence file(s) to read

&lt;!-- &lt;DSClientParameterType=AasequenceType&gt; --&gt;</sci:help>
						<sci:member>SourceTag</sci:member>
						<sci:member>Maximum</sci:member>
						<sci:member>Keep Features</sci:member>
						<sci:value>$(Input Sequence)</sci:value>
					</sci:arg>
					<sci:arg name="Maximum" type="LongType" required="false" visibility="visible" multi="false" uimpl="false">
						<sci:help>The maximum number of data records to read (all if value is empty).</sci:help>
						<sci:value>1</sci:value>
					</sci:arg>
					<sci:arg name="SourceTag" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
						<sci:help>&lt;p&gt;The type of tag to create to identify the source of data records. A property called &lt;b&gt;SourceTag&lt;/b&gt; is created and holds the value indicated.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;None&lt;/b&gt;: No SourceTag property is created and any existing ones are removed.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Filename&lt;/b&gt;: The name of the file read.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;FilenameAndExtension&lt;/b&gt;: The name of the file read with its file extension.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;FullFilename&lt;/b&gt;: The name of the file read, including the directory path.&lt;/li&gt;
&lt;/ul&gt;</sci:help>
						<sci:legalval>None</sci:legalval>
						<sci:legalval>Filename</sci:legalval>
						<sci:legalval>FilenameAndExtension</sci:legalval>
						<sci:legalval selected="true">FullFilename</sci:legalval>
					</sci:arg>
					<sci:arg name="Keep Features" type="BoolType" required="false" visibility="visible" multi="false" uimpl="false">
						<sci:help>Read the features and annotations or just the sequence data, description, accession number and residue identifiers?

</sci:help>
						<sci:legalval>True</sci:legalval>
						<sci:legalval selected="true">False</sci:legalval>
					</sci:arg>
					<sci:arg name="Tempfiles" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Temporary files converted by the network to true temporary filenames</sci:help>
					</sci:arg>
					<sci:arg name="DeclareLocal" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Lists a set of properties (without the @) to create on the property list for this protocol. Other properties are created on the global property list and are accessible from all protocols.</sci:help>
					</sci:arg>
					<sci:arg name="RunToCompletion" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>When the network runs, processes once or until done for each process call</sci:help>
						<sci:legalval>True</sci:legalval>
						<sci:legalval selected="true">False</sci:legalval>
					</sci:arg>
					<sci:arg name="Parallel Processing Options" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>&lt;p&gt;Execute this protocol in parallel on Pipeline Pilot servers. You can set the number of data records sent in each process batch, the name of the servers, the number of protocol processes executed on each server, and whether to preserve the order of the processed data records.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Notes&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Not all parts of the protocol are run in parallel, which may affect scaling. In general, performance improves when the parallelization benefits outweigh the data transfer overhead for the specified batch size.&lt;/li&gt;
&lt;li&gt;By default, Pipeline Pilot servers are configured to allow a maximum of four processes per protocol. You can adjust this on the Pipeline Pilot Server Administration Portal.&lt;/li&gt;
&lt;/ul&gt;</sci:help>
						<sci:member>Batch Size</sci:member>
						<sci:member>Server</sci:member>
						<sci:member>Preserve Order</sci:member>
						<sci:legalval>True</sci:legalval>
						<sci:legalval selected="true">False</sci:legalval>
					</sci:arg>
					<sci:arg name="Batch Size" type="LongType" required="true" visibility="visible" multi="false" uimpl="true">
						<sci:help>The number of records to send to the remote server(s) for each subprotocol execution.</sci:help>
						<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
						<sci:value>25</sci:value>
					</sci:arg>
					<sci:arg name="Server" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Comma separated list of servers on which to execute the remote subprotocol.  The server names should be in the same format as the Pipeline Pilot Client&apos;s change server dialog.  However, specifying &lt;b&gt;&apos;localhost&apos;&lt;/b&gt; as a server will cause the subprotocol to use its own server.  This can be helpful on multi-CPU systems and Linux clusters.</sci:help>
						<sci:member>Server Processes</sci:member>
						<sci:validscript>SetInvalidDetails(&apos;This parameter is required.&apos;);
Parameter() ne &apos;&apos;;</sci:validscript>
						<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
					</sci:arg>
					<sci:arg name="Server Processes" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Optional comma separated list of maximum number of batches that can simultaneously execute on each remote server.  The number of entries in this parameter must equal the number of servers. </sci:help>
						<sci:validscript>#processes := parameter();
expand(&apos;,&apos;, #processes);
if (numvalues(#processes) &gt; 0) then
	#servers := parameter(&apos;Server&apos;);
	expand(&apos;,&apos;, #servers);
end if;
SetInvalidDetails(&apos;The number of server processes (&apos; . numvalues(#processes) . &apos;) must equal the number of servers (&apos; . numvalues(#servers) . &apos;)&apos;);
numvalues(#processes) == 0 or numvalues(#processes) == numvalues(#servers);</sci:validscript>
					</sci:arg>
					<sci:arg name="Preserve Order" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Whether to preserve the order of the data as it enters and leaves the remote subprotocol.</sci:help>
						<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
						<sci:legalval selected="true">True</sci:legalval>
						<sci:legalval>False</sci:legalval>
					</sci:arg>
					<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
						<sci:help>Component Attributes</sci:help>
						<sci:legalval>ComponentTakesInput</sci:legalval>
						<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
						<sci:legalval>ComponentReturnsFail</sci:legalval>
						<sci:legalval>ComponentRunsLocal</sci:legalval>
					</sci:arg>
					<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="ComponentComment" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Component Comment</sci:help>
						<sci:value>Defines a subprotocol in a pipeline. When you are creating a pipeline that requires a subprotocol as a component, drag this component into the pipeline, open it, and add components to it.</sci:value>
					</sci:arg>
					<sci:arg name="ComponentUsage" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Component Usage</sci:help>
						<sci:value>When you are creating a pipeline which requires a subprotocol as 
a component, you can drag this SubProtocol component into the 
pipeline, open it, and add components into it.</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>DS Protein Sequence Reader</sci:value>
					</sci:arg>
					<sci:arg name="ProtocolAutoLayout" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol AutoLayout</sci:help>
						<sci:value>1</sci:value>
					</sci:arg>
					<sci:arg name="ProtocolShowComment" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol ShowComment</sci:help>
						<sci:value>true</sci:value>
					</sci:arg>
					<sci:arg name="ProtocolComment" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Add Protocol Comment Here</sci:help>
						<sci:value>Add Protocol Comment Here</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
						<sci:value>DOCUMENTNODE</sci:value>
					</sci:arg>
					<sci:arg name="ComponentRevision" type="LongType" required="true" visibility="nevershow" multi="false">
						<sci:help>Component Revision</sci:help>
						<sci:value>100</sci:value>
					</sci:arg>
					<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The component this component is based upon.</sci:help>
						<sci:value>SubProtocol</sci:value>
					</sci:arg>
					<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>{D39A438D-0E20-4482-8B05-3953159EFC19}</sci:value>
					</sci:arg>
					<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>90 -1535</sci:value>
					</sci:arg>
					<sci:arg name="ByReference" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>By Ref</sci:help>
						<sci:value>1</sci:value>
					</sci:arg>
					<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
						<sci:value>100</sci:value>
						<sci:value>Reads protein sequence file(s)</sci:value>
						<sci:value>Creates a sequence data record for each protein sequence represented in the &lt;i&gt;Source&lt;/i&gt; file(s). Sequence file formats supported by Discovery Studio, like BSML, PIR, FASTA, and etc, can be used.

Internally the PIR format is used. Only features supported by that file format will be included in the data record. </sci:value>
						<sci:value>None</sci:value>
						<sci:value/>
						<sci:value>Generic</sci:value>
						<sci:value>Sequence data record(s)</sci:value>
						<sci:value>None</sci:value>
						<sci:value>Records passing out of any unconnected fail ports of components inside the subprotocol</sci:value>
					</sci:arg>
					<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The server version when this component was registered</sci:help>
						<sci:value>8.5.0.200</sci:value>
					</sci:arg>
					<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="Protocol Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Sticky Notes</sci:help>
					</sci:arg>
					<sci:arg name="ProtocolScale2" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Scale</sci:help>
						<sci:value>100</sci:value>
					</sci:arg>
					<sci:arg name="Protocol Options" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Options</sci:help>
						<sci:legalval>Make Shortcut by Default</sci:legalval>
						<sci:legalval>Owner Access Only</sci:legalval>
					</sci:arg>
					<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The user who registered this component.</sci:help>
						<sci:value>scitegic/dscore</sci:value>
					</sci:arg>
					<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The date this component was registered.</sci:help>
						<sci:value>Mon Feb 06 13:02:46 2012</sci:value>
					</sci:arg>
					<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:help>Local Component Identifier</sci:help>
						<sci:value>1</sci:value>
					</sci:arg>
					<sci:arg name="SubProtocolMadeLinkIntoCopy" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Subprotocol Made Link Into Copy</sci:help>
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The original path within the database of this component.</sci:help>
						<sci:value>Components\Biology\Protein Modeling\Readers\DS Protein Sequence Reader</sci:value>
					</sci:arg>
				</sci:component>
				<sci:protocol/>
			</sci:data>
			<sci:data object="SciTegic.ComponentPerlPlugin.1">
				<sci:component name="Perl (on Server)" version="2">
					<sci:arg name="Script" type="PerlScriptType" required="true" visibility="visible" multi="false" implbase="{6C9F19F9-6CF3-4BB9-8F61-89C89D9CDCBB}">
						<sci:help>&lt;p&gt;Perl script to execute.  Pipeline Pilot executes the following three subroutines:

&lt;ul&gt;
&lt;li&gt;onInitialize: the subroutine that executes before the first data record is processed.&lt;/li&gt;
&lt;li&gt;onProcess: the subroutine that executes for each data record.&lt;/li&gt;
&lt;li&gt;onFinalize: the subroutine that executes after the last data record has been processed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
The usual Perl scoping rules apply to variables.  To pass a variable between the three required subroutines use package level variables, e.g., &lt;code&gt;$::variable&lt;/code&gt; or &lt;code&gt;my $variable&lt;/code&gt; declared outside the subroutines.
&lt;/p&gt;

&lt;p&gt;
The &lt;i&gt;onInitialize&lt;/i&gt; and &lt;i&gt;onFinalize&lt;/i&gt; subroutines both receive the &lt;code&gt;pilot::Context Perl&lt;/code&gt; object as the only argument.  The &lt;i&gt;onProcess&lt;/i&gt; subroutine receives the &lt;code&gt;pilot::Context&lt;/code&gt; and &lt;code&gt;pilot::DataRecord&lt;/code&gt; Perl objects as its two arguments.
&lt;/p&gt;

&lt;p&gt;
pilot::Context provides access to globals and parameters.  A common way to get these is via a Perl hash reference.  For example, to get a &lt;i&gt;Source&lt;/i&gt; parameter value use
&lt;/p&gt;

&lt;pre&gt;
my $parametersHashRef = $context-&gt;getComponentParameters()-&gt;getHashRef();
my $source = $parametersHashRef-&gt;{&quot;Source&quot;};
&lt;/pre&gt;

&lt;p&gt;
To obtain the value of a global property called &lt;i&gt;Old&lt;/i&gt; and set a new global property called &lt;i&gt;New&lt;/i&gt; use
&lt;/p&gt;

&lt;pre&gt;
my $globalsHashRef = $context-&gt;getGlobalProperties()-&gt;getHashRef();
my $value = $globalsHashRef-&gt;{&quot;Old&quot;};
$globalsHashRef-&gt;{&quot;New&quot;} = &quot;newValue&quot;;
&lt;/pre&gt;

&lt;p&gt;
Top level properties in a data record are accessed similarly.
&lt;/p&gt;

&lt;pre&gt;
my $node = $data-&gt;getRoot();
my $propertiesHashRef = $node-&gt;getProperties()-&gt;getHashRef();
my $value = $propertiesHashRef-&gt;{&quot;Old&quot;};
$propertiesHashRef-&gt;{&quot;New&quot;} = &quot;newValue&quot;;
&lt;/pre&gt;

&lt;p&gt;
&lt;i&gt;onInitialize&lt;/i&gt; and &lt;i&gt;onProcess&lt;/i&gt; must return one of the following component state values:
&lt;ul&gt;
&lt;li&gt;pilot::READYFORINPUTDATA
&lt;li&gt;pilot::DONEPROCESSINGDATA
&lt;li&gt;pilot::READYFORNEWDATA
&lt;li&gt;pilot::READYFORINPUTTHENNEWDATA
&lt;/ul&gt;
&lt;/p&gt;

&lt;p&gt;
To explicitly route a data record to a port use
&lt;/p&gt;

&lt;pre&gt;
$data-&gt;routeTo($pilot::PassPort);
&lt;/pre&gt;

&lt;p&gt;
or
&lt;/p&gt;

&lt;pre&gt;
$data-&gt;routeTo($pilot::FailPort);
&lt;/pre&gt;

&lt;p&gt;
Data records can also be terminated internally by routing to &lt;code&gt;$pilot::NoPort&lt;/code&gt;.
&lt;/p&gt;</sci:help>
						<sci:value>use strict;

use Utilities::FileUtils;

sub onInitialize {
	my $context = shift;
	
	return pilot::READYFORINPUTDATA;
}

sub onProcess {
	my $context = shift;
	my $data = shift;

	# fasta sequence id
	my $fastaID = $data-&gt;getProperties-&gt;getHashRef-&gt;{originalFastaID};
	
	$fastaID = $data-&gt;getProperties-&gt;getHashRef-&gt;{displayID} if(!$fastaID);
		
    $context-&gt;getGlobalProperties-&gt;getHashRef-&gt;{SequenceName} = $fastaID;
		
	# remove inappropriate letters for file name
    $context-&gt;getGlobalProperties-&gt;getHashRef-&gt;{SequenceFileName}=Utilities::FileUtils::replaceBadFileChars($fastaID);

	return pilot::READYFORINPUTDATA;
}

sub onFinalize {
	my $context = shift;

}</sci:value>
					</sci:arg>
					<sci:arg name="Use Package" type="StringType" required="false" visibility="visible" multi="false" implbase="{6C9F19F9-6CF3-4BB9-8F61-89C89D9CDCBB}">
						<sci:help>The name of an application package that contains Perl modules referenced by this component. By defining this package name, a package-specific module may be referenced with the &apos;use modulename;&apos; syntax.</sci:help>
						<sci:value>scitegic/dscore</sci:value>
					</sci:arg>
					<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
						<sci:help>Component Attributes</sci:help>
						<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
						<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
						<sci:legalval>ComponentReturnsFail</sci:legalval>
						<sci:legalval>ComponentRunsLocal</sci:legalval>
					</sci:arg>
					<sci:arg name="RebuildInRTC" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>If True, the Perl interpreter instance for the component is terminated in the onFinalize event.</sci:help>
						<sci:legalval selected="true">True</sci:legalval>
						<sci:legalval>False</sci:legalval>
					</sci:arg>
					<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The user who registered this component.</sci:help>
						<sci:value>scitegic/integration</sci:value>
					</sci:arg>
					<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The date this component was registered.</sci:help>
						<sci:value>Mon Nov 06 19:45:37 2006</sci:value>
					</sci:arg>
					<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>{6C9F19F9-6CF3-4BB9-8F61-89C89D9CDCBB}</sci:value>
					</sci:arg>
					<sci:arg name="ComponentComment" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Comment</sci:help>
						<sci:value>Loads a class to provide component behavior.</sci:value>
					</sci:arg>
					<sci:arg name="ComponentUsage" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Component Usage</sci:help>
						<sci:value>Loads a class to provide component behavior.

Set the ports and icon as appropriate.</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>Set SequenceName and SequenceFileName</sci:value>
					</sci:arg>
					<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>390 -1535</sci:value>
					</sci:arg>
					<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
						<sci:value>COMPONENTNODE</sci:value>
					</sci:arg>
					<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The component this component is based upon.</sci:help>
						<sci:value>Plug In</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
						<sci:value>100</sci:value>
						<sci:value>Executes Perl code on the server</sci:value>
						<sci:value>&lt;p&gt;Allows a Perl script to manipulate a data record&apos;s property list, the global
property list, and component behavior. The &lt;em&gt;Script&lt;/em&gt; parameter contains
the script that implements the component behavior, encoded in Perl. The following
subroutines must be defined in this text parameter (all three methods need to
be declared in the main scope): &lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;onInitialize: &lt;/em&gt;Invoked once before the any data records
    arrive. This method receives one argument, a pilot::Context object. Also,
    it must return a component state, one of $pilot::ReadyForInputData, $pilot::DoneProcessingData, $pilot::ReadyForNewData or $pilot::ReadyForInputThenNewData. &lt;/li&gt;
  &lt;li&gt;&lt;em&gt;onProcess&lt;/em&gt;: Called once per data record. This method
    receives two arguments, a pilot::Context and a pilot::DataRecord object and
    return a component state. &lt;/li&gt;
  &lt;li&gt;&lt;em&gt;onFinalize&lt;/em&gt;: Called when no more data records are available.
    This method receives one argument, a pilot::Context object. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;i&gt;onInitialize&lt;/i&gt; and &lt;i&gt;onProcess&lt;/i&gt; must
return one of the following component state values:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;pilot::READYFORINPUTDATA
&lt;li&gt;pilot::DONEPROCESSINGDATA
&lt;li&gt;pilot::READYFORNEWDATA
&lt;li&gt;pilot::READYFORINPUTTHENNEWDATA
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Notes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Any script outside of the subroutines is executed just prior to calling
    onInitialize.&lt;/li&gt;
	&lt;li&gt;The optional &lt;em&gt;Use Package&lt;/em&gt; parameter is used to identify a package
      that holds one or more Perl modules that are referenced by the component.
      In this way, much or all of a component&apos;s functionality can be maintained
      in a package module. This facilitates component upgrading, by centralizing
    the code.&lt;/li&gt;
    &lt;li&gt;The Perl include path for the library must be declared in the package.conf
      file for the named package.&lt;/li&gt;
    &lt;li&gt;Perl&apos;s &lt;em&gt;strict&lt;/em&gt; and &lt;em&gt;warnings&lt;/em&gt; directives can be very useful
      when writing scripts. To detect warnings, you need to create a handler
      to manage them, since by default, Perl sends them to STDERR, which is not
    easily accessible from within Pipeline Pilot. 
	&lt;p&gt;For example, the following
    script treats warnings as errors:&lt;/p&gt;
	&lt;p&gt;&lt;code&gt;use warnings;&lt;br /&gt;
	$SIG{__WARN__} = sub {die @_;};&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;See Also:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;javascript:DoLink(&apos;sciapps/scitegic/integration/docs/server_side/perl_api.htm&apos;)&quot;&gt;Perl Scripting Component API&lt;/a&gt;&lt;/li&gt; 
&lt;li&gt;&lt;a href=&quot;javascript:DoLink(&apos;sciapps/scitegic/integration/docs/server_side/perl_comp_dev.pdf&apos;)&quot;&gt;Perl Component Development Guide&lt;/a&gt;&lt;/li&gt;  
&lt;/ul&gt;</sci:value>
						<sci:value>Generic</sci:value>
						<sci:value/>
						<sci:value>Generic</sci:value>
						<sci:value/>
						<sci:value>Generic</sci:value>
						<sci:value/>
					</sci:arg>
					<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The server version when this component was registered</sci:help>
						<sci:value>6.0.1.4</sci:value>
					</sci:arg>
					<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:help>Local Component Identifier</sci:help>
						<sci:value>2</sci:value>
					</sci:arg>
					<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The original path within the database of this component.</sci:help>
						<sci:value>Components\Database and Application Integration\Application Integration\Programmatic Integration\Perl (on Server)</sci:value>
					</sci:arg>
				</sci:component>
			</sci:data>
			<sci:data object="SciTegic.Protocol.1">
				<sci:component name="DS Messaging" version="2">
					<sci:arg name="Client Message" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>Short message send to the client.</sci:help>
						<sci:member>Client Message Final</sci:member>
						<sci:value>step 1/1: $(SequenceName)</sci:value>
					</sci:arg>
					<sci:arg name="Client Message Final" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>Final Message reported to the DS Client</sci:help>
					</sci:arg>
					<sci:arg name="Report" type="GroupType" required="false" visibility="visible" multi="false">
						<sci:help>Options controlling the DS report page</sci:help>
						<sci:member>Report Error</sci:member>
						<sci:member>Report Summary</sci:member>
						<sci:member>Remove Duplicates from Summary</sci:member>
						<sci:member>Report Warning</sci:member>
						<sci:member>Report Detail</sci:member>
					</sci:arg>
					<sci:arg name="Report Summary" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>Message added to &lt;strong&gt;Summary&lt;/strong&gt; section in DS report</sci:help>
					</sci:arg>
					<sci:arg name="Report Detail" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>Message added to &lt;strong&gt;Detail&lt;/strong&gt; section in DS report</sci:help>
					</sci:arg>
					<sci:arg name="Report Warning" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>Message added to &lt;strong&gt;Warning&lt;/strong&gt; section in DS report</sci:help>
					</sci:arg>
					<sci:arg name="Report Error" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>Message added to &lt;strong&gt;Error&lt;/strong&gt; section in DS report</sci:help>
					</sci:arg>
					<sci:arg name="Remove Duplicates from Summary" type="BoolType" required="true" visibility="visible" multi="false" uimpl="false">
						<sci:help>When set to True, all duplicate &lt;strong&gt;Summary&lt;/strong&gt; lines in the DS report are removed. </sci:help>
						<sci:legalval>True</sci:legalval>
						<sci:legalval selected="true">False</sci:legalval>
					</sci:arg>
					<sci:arg name="Advanced" type="GroupType" required="false" visibility="visible" multi="false" expanded="true" uimpl="true">
						<sci:help>Contains less commonly used parameters.</sci:help>
						<sci:member>Debug Level</sci:member>
						<sci:member>Debug Message</sci:member>
					</sci:arg>
					<sci:arg name="Debug Message" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Message to send to the log file (if log is specified)</sci:help>
					</sci:arg>
					<sci:arg name="Debug Level" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>User can set the debug level for the debug message.</sci:help>
						<sci:legalval selected="true">1</sci:legalval>
						<sci:legalval>2</sci:legalval>
					</sci:arg>
					<sci:arg name="Tempfiles" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Temporary files converted by the network to true temporary filenames</sci:help>
					</sci:arg>
					<sci:arg name="DeclareLocal" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Lists a set of properties (without the @) to create on the property list for this protocol. Other properties are created on the global property list and are accessible from all protocols.</sci:help>
					</sci:arg>
					<sci:arg name="RunToCompletion" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>When the network runs, processes once or until done for each process call</sci:help>
						<sci:legalval>True</sci:legalval>
						<sci:legalval selected="true">False</sci:legalval>
					</sci:arg>
					<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
						<sci:help>Component Attributes</sci:help>
						<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
						<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
						<sci:legalval>ComponentReturnsFail</sci:legalval>
						<sci:legalval>ComponentRunsLocal</sci:legalval>
					</sci:arg>
					<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The date this component was registered.</sci:help>
						<sci:value>Mon Feb 26 16:26:52 2018</sci:value>
					</sci:arg>
					<sci:arg name="ComponentComment" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Component Comment</sci:help>
						<sci:value>Defines a subprotocol in a pipeline. When you are creating a pipeline that requires a subprotocol as a component, drag this component into the pipeline, open it, and add components to it.</sci:value>
					</sci:arg>
					<sci:arg name="ComponentUsage" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Component Usage</sci:help>
						<sci:value>When you are creating a pipeline which requires a subprotocol as 
a component, you can drag this SubProtocol component into the 
pipeline, open it, and add components into it.</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>DS Messaging</sci:value>
					</sci:arg>
					<sci:arg name="ProtocolAutoLayout" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol AutoLayout</sci:help>
						<sci:value>1</sci:value>
					</sci:arg>
					<sci:arg name="ProtocolShowComment" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol ShowComment</sci:help>
						<sci:value>true</sci:value>
					</sci:arg>
					<sci:arg name="ProtocolComment" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Add Protocol Comment Here</sci:help>
						<sci:value>Add Protocol Comment Here</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
						<sci:value>COMPONENTNODE</sci:value>
					</sci:arg>
					<sci:arg name="ComponentRevision" type="LongType" required="true" visibility="nevershow" multi="false">
						<sci:help>Component Revision</sci:help>
						<sci:value>100</sci:value>
					</sci:arg>
					<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The component this component is based upon.</sci:help>
						<sci:value>SubProtocol</sci:value>
					</sci:arg>
					<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>{8F288684-93BC-4712-BC9A-73930339BDEB}</sci:value>
					</sci:arg>
					<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>690 -1535</sci:value>
					</sci:arg>
					<sci:arg name="ByReference" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>By Ref</sci:help>
						<sci:value>1</sci:value>
					</sci:arg>
					<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
						<sci:value>100</sci:value>
						<sci:value>Sends text to the client and/or to the DS report</sci:value>
						<sci:value>&lt;p&gt;Messages can be sent to the client or text can be specified for the DS report.&lt;/p&gt;
</sci:value>
						<sci:value>None</sci:value>
						<sci:value/>
						<sci:value>None</sci:value>
						<sci:value>Records passing out of any unconnected pass ports of components inside the subprotocol</sci:value>
						<sci:value>None</sci:value>
						<sci:value>Records passing out of any unconnected fail ports of components inside the subprotocol</sci:value>
					</sci:arg>
					<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The server version when this component was registered</sci:help>
						<sci:value>18.1.0.1604</sci:value>
					</sci:arg>
					<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="Protocol Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Sticky Notes</sci:help>
					</sci:arg>
					<sci:arg name="ProtocolScale2" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Scale</sci:help>
						<sci:value>100</sci:value>
					</sci:arg>
					<sci:arg name="Protocol Options" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Options</sci:help>
						<sci:legalval>Make Shortcut by Default</sci:legalval>
						<sci:legalval>Owner Access Only</sci:legalval>
					</sci:arg>
					<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The user who registered this component.</sci:help>
						<sci:value>scitegic/dscore</sci:value>
					</sci:arg>
					<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:help>Local Component Identifier</sci:help>
						<sci:value>3</sci:value>
					</sci:arg>
					<sci:arg name="SubProtocolMadeLinkIntoCopy" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Subprotocol Made Link Into Copy</sci:help>
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The original path within the database of this component.</sci:help>
						<sci:value>Components\Chemistry\Utilities\Discovery Studio\DS Messaging</sci:value>
					</sci:arg>
				</sci:component>
				<sci:protocol/>
			</sci:data>
			<sci:data object="SciTegic.Protocol.1">
				<sci:component name="NCBI Online BLASTp" version="2">
					<sci:arg name="Database" type="StringType" required="true" visibility="visible" multi="false" expanded="true">
						<sci:help>Identifies the BLAST database to use:
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;nr&lt;/b&gt;:Non-redundant protein sequences.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;refseq_protein&lt;/b&gt;:Reference proteins.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;swissprot&lt;/b&gt;:Swissprot protein sequences.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;pat&lt;/b&gt;:Patented protein sequences.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;pdb&lt;/b&gt;:Protein Data Bank proteins.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;env_nr&lt;/b&gt;:Environmental samples.&lt;/li&gt;	 
&lt;/ul&gt;
</sci:help>
						<sci:member>Organism</sci:member>
						<sci:value>$(Database)</sci:value>
					</sci:arg>
					<sci:arg name="Organism" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>An organism name, for example human or Homo sapiens, to limit search.</sci:help>
						<sci:value>$(Organism)</sci:value>
					</sci:arg>
					<sci:arg name="Expectation Value" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>Sets the threshold expectation value for keeping alignments.  This is the E from the Karlin-Altschul equation.</sci:help>
						<sci:value>$(E-value Cutoff)</sci:value>
					</sci:arg>
					<sci:arg name="Maximum Hits" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>Truncate the number of database hits</sci:help>
						<sci:value>$(Maximum Hits)</sci:value>
					</sci:arg>
					<sci:arg name="Search Options" type="GroupType" required="false" visibility="visible" multi="false" expanded="true">
						<sci:member>Maximum HSPs Per Hit</sci:member>
						<sci:member>Matrix</sci:member>
						<sci:member>Gap Opening Penalty</sci:member>
						<sci:member>Gap Extension Penalty</sci:member>
						<sci:member>Word Size</sci:member>
						<sci:member>Filter Query Sequence</sci:member>
						<sci:member>Lower Case Filtering</sci:member>
						<sci:member>Gapped Alignment</sci:member>
						<sci:member>Use Composition Based Statistics</sci:member>
					</sci:arg>
					<sci:arg name="Maximum HSPs Per Hit" type="LongType" required="false" visibility="visible" multi="false">
						<sci:help>Truncate the number of HSPs (high scoring pairs) per database hit</sci:help>
						<sci:value>100</sci:value>
					</sci:arg>
					<sci:arg name="Matrix" type="StringType" required="true" visibility="visible" multi="false">
						<sci:help>Designates a protein similarity matrix</sci:help>
						<sci:value>$(Scoring Matrix)</sci:value>
					</sci:arg>
					<sci:arg name="Gap Opening Penalty" type="LongType" required="true" visibility="visible" multi="false">
						<sci:help>Penalty for opening a gap</sci:help>
						<sci:value>$(GapOpeningPenalty)</sci:value>
					</sci:arg>
					<sci:arg name="Gap Extension Penalty" type="LongType" required="true" visibility="visible" multi="false">
						<sci:help>Penalty for extending an existing gap by one character</sci:help>
						<sci:value>$(GapExtensionPenalty)</sci:value>
					</sci:arg>
					<sci:arg name="Word Size" type="StringType" required="true" visibility="visible" multi="false">
						<sci:help>Sets the word size for the initial word search</sci:help>
						<sci:value>$(Word Size)</sci:value>
					</sci:arg>
					<sci:arg name="Filter Query Sequence" type="StringType" required="true" visibility="visible" multi="false">
						<sci:help>Filter the query sequence for low-complexity subsequences.  Uses SEG.</sci:help>
						<sci:value>$(Filter Low Complexity)</sci:value>
					</sci:arg>
					<sci:arg name="Lower Case Filtering" type="BoolType" required="true" visibility="visible" multi="false">
						<sci:help>Use lower case filtering of the query sequence</sci:help>
						<sci:legalval>True</sci:legalval>
						<sci:legalval selected="true">False</sci:legalval>
					</sci:arg>
					<sci:arg name="Gapped Alignment" type="StringType" required="true" visibility="visible" multi="false">
						<sci:help>Perform gapped alignment</sci:help>
						<sci:value>$(Gapped Alignment)</sci:value>
					</sci:arg>
					<sci:arg name="Use Composition Based Statistics" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
						<sci:help>Use composition based score adjustment.</sci:help>
						<sci:value>$(Use Composition Based Statistics Flag)</sci:value>
					</sci:arg>
					<sci:arg name="Additional Options" type="GroupType" required="false" visibility="visible" multi="false">
						<sci:member>Result Text Property</sci:member>
						<sci:member>URL</sci:member>
						<sci:member>XML Output File</sci:member>
						<sci:member>Batch Search</sci:member>
						<sci:member>Polling Time</sci:member>
						<sci:member>Time Out</sci:member>
						<sci:member>Use BioPerl BLAST Parser</sci:member>
					</sci:arg>
					<sci:arg name="Use BioPerl BLAST Parser" type="BoolType" required="false" visibility="visible" multi="false" legalvalsenforced="false" uimpl="false">
						<sci:help>If True, BioPerl will be used to parse BLAST result file. If False and &lt;i&gt;File Format&lt;/i&gt; is &lt;b&gt;blastxml&lt;/b&gt;, a faster proprietary parser will be used. </sci:help>
						<sci:legalval selected="true">True</sci:legalval>
						<sci:legalval>False</sci:legalval>
					</sci:arg>
					<sci:arg name="Result Text Property" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>Name of property to hold raw result text.  Property will be added to the SearchResult node.</sci:help>
					</sci:arg>
					<sci:arg name="URL" type="StringType" required="true" visibility="visible" multi="false">
						<sci:help>URL for online BLAST server</sci:help>
						<sci:value>$(URL)</sci:value>
					</sci:arg>
					<sci:arg name="XML Output File" type="DestinationURLType" required="false" visibility="visible" multi="false" uimpl="false">
						<sci:help>The filename for BLAST XML output file.</sci:help>
						<sci:value>$(JobDir)/$(SequenceFileName).xml</sci:value>
					</sci:arg>
					<sci:arg name="Batch Search" type="BoolType" required="false" visibility="visible" multi="false" legalvalsenforced="false">
						<sci:help>If True, queries for consecutive small sequences will be sent to NCBI together in one batch search request up to 1,000 bases. If False, each query will be sent separately.</sci:help>
						<sci:legalval selected="true">True</sci:legalval>
						<sci:legalval>False</sci:legalval>
					</sci:arg>
					<sci:arg name="Polling Time" type="LongType" required="false" visibility="visible" multi="false" uimpl="false">
						<sci:help>Specifies the time in seconds to poll the job status. Do not poll more often than once a minute according to the NCBI BLAST usage guidelines.</sci:help>
						<sci:value>61</sci:value>
					</sci:arg>
					<sci:arg name="Time Out" type="DoubleType" required="false" visibility="visible" multi="false" uimpl="false">
						<sci:help>Specifies the time out in minutes. If empty, the program will wait until the results come back.</sci:help>
						<sci:value>60</sci:value>
					</sci:arg>
					<sci:arg name="RunToCompletion" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>When RunToCompletion is set to True, the subprotocol is re-initialized and executed in its entirety for each record it processes.</sci:help>
						<sci:legalval>True</sci:legalval>
						<sci:legalval selected="true">False</sci:legalval>
					</sci:arg>
					<sci:arg name="Parallel Processing Options" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>&lt;p&gt;
When set to True, this set of options allow the subprotocol to execute in parallel on one or more independent Pipeline Pilot servers, running local or remote.  Additional parameters control the number of data records to send in each process batch, the list of Pipeline Pilot servers to use, the number of protocol processes that can be executed on each server, and whether to preserve the order of the processed data records.
&lt;/p&gt;&lt;p&gt;
Use this option judiciously, since it will not increase throughput in all circumstances. In general, it will yield improved performance when the parallelization benefits outweigh the data transfer overhead for the specified batch size.  As a rough guide, performance can be improved when each individual batch requires at least 10 seconds to execute, although this can be affected by the size of each data record.
&lt;/p&gt;&lt;p&gt;
When running the protocol with debugging, the subprotocol will provide debugging messages to detail each of the various steps of execution.  Also, components located within the parallel subprotocol will display their debugging messages as well.
&lt;/p&gt;&lt;p&gt;
For more information on the parallel subprotocol options, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/subprots/subprot_parallel_processing.htm&apos;)&quot;&gt;Parallel Processing Subprotocols&lt;/a&gt;.
&lt;/p&gt;
</sci:help>
						<sci:member>Parallel Processing Options Batch Size</sci:member>
						<sci:member>Parallel Processing Options Server</sci:member>
						<sci:member>Parallel Processing Options Preserve Order</sci:member>
						<sci:legalval>True</sci:legalval>
						<sci:legalval selected="true">False</sci:legalval>
					</sci:arg>
					<sci:arg name="Parallel Processing Options Batch Size" type="LongType" required="true" visibility="visible" multi="false" uimpl="true">
						<sci:help>The number of records to send to the remote server(s) for each subprotocol execution.  In general, performance is optimized when the amount of time required to process each batch is at least 10 seconds (note that this can vary depending on the characteristics of the remote server&apos;s hardware).  Use a batch size of -1 to pass all data in a single batch.</sci:help>
						<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
						<sci:value>25</sci:value>
					</sci:arg>
					<sci:arg name="Parallel Processing Options Server" type="StringType" required="false" visibility="visible" multi="true" expanded="true" legalvalsenforced="false" uimpl="true">
						<sci:help>&lt;p&gt;
Comma separated list of Pipeline Pilot servers on which to execute the parallel subprotocol.  The server names should be in the same format as the Pipeline Pilot Client&apos;s change server dialog (server-name:port-number).
&lt;/p&gt;&lt;p&gt;
Specifying &lt;b&gt;localhost&lt;/b&gt; as a server will cause the subprotocol to use its own Pipeline Pilot server.  This can be helpful on multi-CPU/multi-core systems (where the subprotocol jobs are spawned on the same machine) and Pipeline Pilot Linux clusters (where &apos;localhost&apos; requests spawning the subprotocol jobs on the same cluster).
&lt;/p&gt;</sci:help>
						<sci:member>Parallel Processing Options Server Processes</sci:member>
						<sci:member>Parallel Processing Options Server Run On Grid</sci:member>
						<sci:validscript>SetInvalidDetails(&apos;This parameter is required.&apos;);
Parameter() ne &apos;&apos;;</sci:validscript>
						<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
					</sci:arg>
					<sci:arg name="Parallel Processing Options Server Processes" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Comma separated list of maximum number of batches that can be simultaneously executed on each remote server.  The number of entries in this parameter must equal the number of servers. If &apos;*&apos; is specified as the number of processes, then that server will only launch as many batches as the administrator of the remote server has permitted.</sci:help>
						<sci:validscript>/* Server Processes must have the same number of comma separated entries as the Server parameter and must have a value*/
#processes := parameter();
expand(&apos;,&apos;, #processes);
#servers := parameter(&apos;Parallel Processing Options Server&apos;);
expand(&apos;,&apos;, #servers);

if (numvalues(#processes) == 0) then
	SetInvalidDetails(&apos;This parameter is required.&apos;);
else
	SetInvalidDetails(&apos;The number of server processes (&apos; . numvalues(#processes) . &apos;) must equal the number of servers (&apos; . numvalues(#servers) . &apos;).&apos;);
end if;
numvalues(#processes) &gt; 0 and numvalues(#processes) == numvalues(#servers);</sci:validscript>
						<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
					</sci:arg>
					<sci:arg name="Parallel Processing Options Server Run On Grid" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Run subprotocol on grid engine if available.</sci:help>
						<sci:member>Parallel Processing Options Server Run On Grid Queue Name</sci:member>
						<sci:enabledscript>parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
						<sci:legalval selected="true">True</sci:legalval>
						<sci:legalval>False</sci:legalval>
					</sci:arg>
					<sci:arg name="Parallel Processing Options Server Run On Grid Queue Name" type="StringType" required="false" visibility="visible" multi="false" legalvalsenforced="false" uimpl="true">
						<sci:help>Select the queue name on the grid to submit jobs to. Leave blank to use default queue name.</sci:help>
						<sci:enabledscript>parameter(&apos;Parallel Processing Options Server Run On Grid&apos;);</sci:enabledscript>
					</sci:arg>
					<sci:arg name="Parallel Processing Options Preserve Order" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Whether to preserve the order of the data as it enters and leaves the remote subprotocol.</sci:help>
						<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
						<sci:legalval selected="true">True</sci:legalval>
						<sci:legalval>False</sci:legalval>
					</sci:arg>
					<sci:arg name="Entrez Query" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>An Entrez query to limit search. For example, &lt;b&gt;1000:2000[slen]&lt;/b&gt; limits the search to protein entries with lengths between 1000 to 2000 residues. Refer to &lt;a href=&quot;javascript:DoLink(&apos;http://www.ncbi.nlm.nih.gov/BLAST/blastcgihelp.shtml#entrez_query&apos;)&quot;&gt;Limit by Entrez Query&lt;/a&gt; for more details.</sci:help>
					</sci:arg>
					<sci:arg name="Tempfiles" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>&lt;/p&gt;A comma delimited list of global properties, each of which will automatically hold the name of a file in the job&apos;s temporary folder, whose name is guaranteed to be unique.&lt;p/&gt;For each global name, an additional global is created (with the suffix &lt;i&gt;_Filename&lt;/i&gt;) that hold just the leaf file name of the temporary file.&lt;p/&gt;</sci:help>
					</sci:arg>
					<sci:arg name="DeclareLocal" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>&lt;p&gt;Lists a set of properties (without the @) to create on the global property list for this subprotocol. Such properties can only be accessed within the scope of this subprotocol and its descendent subprotocols.&lt;p/&gt;Any global property not declared in this way is created on the top level global property list and is accessible from all protocols, but may collide with another property of the same name.&lt;p/&gt;Scoping global properties to the subprotocol where they are used is highly recommended.&lt;/p&gt;</sci:help>
						<sci:value>Mismatch Penalty, Match Reward, Strand, Query Genetic Code, Database Genetic Code</sci:value>
					</sci:arg>
					<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
						<sci:help>Component Attributes</sci:help>
						<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
						<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
						<sci:legalval selected="true">ComponentReturnsFail</sci:legalval>
						<sci:legalval>ComponentRunsLocal</sci:legalval>
					</sci:arg>
					<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The user who registered this component.</sci:help>
						<sci:value>scitegic/seqanal</sci:value>
					</sci:arg>
					<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The date this component was registered.</sci:help>
						<sci:value>Fri Mar  6 14:41:13 2020</sci:value>
					</sci:arg>
					<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The component this component is based upon.</sci:help>
						<sci:value>SubProtocol</sci:value>
					</sci:arg>
					<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>{0B4076D1-858D-4C25-A621-B19D3269D770}</sci:value>
					</sci:arg>
					<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>990 -1535</sci:value>
					</sci:arg>
					<sci:arg name="ByReference" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>By Ref</sci:help>
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
						<sci:value>100</sci:value>
						<sci:value>Runs blastp online at NCBI for a protein sequence.</sci:value>
						<sci:value>blastp compares incoming protein sequences with a protein database, resulting in protein alignments. This component runs blastall online at NCBI to generate BLAST results that are added to the sequence data record. A hit list data record is output for each input query sequence. The hits can be extracted from the hit list for individual manipulation using the &lt;i&gt;Extract BLAST Hits&lt;/i&gt; component. Sequences with no BLAST hits are routed to the fail port.

There are parameters for the database name and for the expectation value.
The NCBI Online BLASTp component supports the following protein databases:

&lt;table border&gt;
    &lt;caption&gt;Supported Online Protein Databases&lt;/caption&gt;
    &lt;thead&gt;
        &lt;tr&gt;
            &lt;th&gt;Abbreviation&lt;/th&gt;
            &lt;th&gt;Description&lt;/th&gt;
        &lt;/tr&gt;
    &lt;/thead&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;nr&lt;/td&gt;
            &lt;td&gt;All non-redundant GenBank CDS translations+RefSeq Proteins+PDB+SwissProt+PIR+PRF&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;refseq_protein&lt;/td&gt;
            &lt;td&gt;Reference proteins&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;swissprot&lt;/td&gt;
            &lt;td&gt;Last major release of the SWISS-PROT protein sequence database (no updates)&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;pat&lt;/td&gt;
            &lt;td&gt;Proteins from the Patent division of GenPept&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;pdb&lt;/td&gt;
            &lt;td&gt;Sequences derived from the 3-dimensional structure from Brookhaven Protein Data Bank&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;env_nr&lt;/td&gt;
            &lt;td&gt;Metagenomic proteins&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;tsa_nr&lt;/td&gt;
            &lt;td&gt;Transcriptome Shotgun Assembly proteins&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;


</sci:value>
						<sci:value>Generic</sci:value>
						<sci:value/>
						<sci:value>Generic</sci:value>
						<sci:value>Records passing out of any unconnected pass ports of components inside the subprotocol</sci:value>
						<sci:value>Generic</sci:value>
						<sci:value>Records passing out of any unconnected fail ports of components inside the subprotocol</sci:value>
					</sci:arg>
					<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The server version when this component was registered</sci:help>
						<sci:value>21.1.0.2327</sci:value>
					</sci:arg>
					<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="Protocol Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Sticky Notes</sci:help>
					</sci:arg>
					<sci:arg name="ProtocolScale2" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Scale</sci:help>
						<sci:value>100</sci:value>
					</sci:arg>
					<sci:arg name="Protocol Options" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Options</sci:help>
						<sci:legalval>Make Shortcut by Default</sci:legalval>
						<sci:legalval>Owner Access Only</sci:legalval>
					</sci:arg>
					<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>NCBI Online BLASTp</sci:value>
					</sci:arg>
					<sci:arg name="ProtocolAutoLayout" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol AutoLayout</sci:help>
						<sci:value>1</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
						<sci:value>COMPONENTNODE</sci:value>
					</sci:arg>
					<sci:arg name="ComponentRevision" type="LongType" required="true" visibility="nevershow" multi="false">
						<sci:help>Component Revision</sci:help>
						<sci:value>100</sci:value>
					</sci:arg>
					<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:help>Local Component Identifier</sci:help>
						<sci:value>4</sci:value>
					</sci:arg>
					<sci:arg name="SubProtocolMadeLinkIntoCopy" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Subprotocol Made Link Into Copy</sci:help>
						<sci:value>1</sci:value>
					</sci:arg>
					<sci:arg name="SubProtocolModified" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Subprotocol Modified</sci:help>
						<sci:value>1</sci:value>
					</sci:arg>
					<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The original path within the database of this component.</sci:help>
						<sci:value>Components\Biology\Sequence Analysis\Search and Similarity\NCBI BLAST\Online BLAST\NCBI Online BLASTp</sci:value>
					</sci:arg>
				</sci:component>
				<sci:protocol>
					<sci:data object="SciTegic.EvaluateExpression.1">
						<sci:component name="Custom Filter (PilotScript)" version="2">
							<sci:arg name="Expression" type="ExpressionType" required="true" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
								<sci:help>The PilotScript expression used to filter the data.</sci:help>
								<sci:member>Initial Expression</sci:member>
								<sci:member>Final Expression</sci:member>
								<sci:member>Keep Calculated Properties</sci:member>
								<sci:value>@&apos;Batch Search&apos;</sci:value>
							</sci:arg>
							<sci:arg name="Initial Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
								<sci:help>&lt;p&gt;
An expression evaluated only when the component
is first initialized (when the first data record enters).
&lt;p/&gt;
Since there is no data available at initialization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
							</sci:arg>
							<sci:arg name="Final Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
								<sci:help>&lt;p&gt;
An expression evaluated only when the
component is finalized (once the last data
record has passed).
&lt;p/&gt;
Since there is no data available at finalization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
							</sci:arg>
							<sci:arg name="Keep Calculated Properties" type="BoolType" required="true" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
								<sci:help>Allows any properties that were calculated in
&quot;Expression&quot; to be included with the exiting
record.
Otherwise, these properties are removed after
the evaluation is complete.</sci:help>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
								<sci:help>Component Attributes</sci:help>
								<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsFail</sci:legalval>
								<sci:legalval>ComponentRunsLocal</sci:legalval>
							</sci:arg>
							<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Custom Error Message</sci:help>
							</sci:arg>
							<sci:arg name="ExpressionVersion" type="LongType" required="false" visibility="nevershow" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
								<sci:help>Version of expression parser to use.</sci:help>
								<sci:value>2</sci:value>
							</sci:arg>
							<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/generic</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The date this component was registered.</sci:help>
								<sci:value>Mon Jan 21 09:57:16 2008</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>Batch Search?</sci:value>
							</sci:arg>
							<sci:arg name="ComponentAutoDisplayName" type="ExpressionType" required="false" visibility="nevershow" multi="false">
								<sci:help>Automatically update the component display name when the &quot;Expression&quot; property is changed. This feature is turned off after the user manually changes the display name of the component in Protocol workspace.</sci:help>
								<sci:value>#displayName := trim(Parameter(&apos;Expression&apos;, 2));
if(strlength(#displayName) &gt; 0) then	
	/* Find the first line break */
	#nl := FindSubstring(#displayName, &quot;\r&quot;);
	if #nl &lt;= 0 then
		#nl := FindSubstring(#displayName, &quot;\n&quot;);
	end if;

	/* Keep the first line only */
	if (#nl &gt; 0) then
		StrErase(#displayName, #nl);
	end if;
	
	#displayName;
else
	&quot;&quot;;
end if;</sci:value>
							</sci:arg>
							<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:value>FILTERNODE</sci:value>
							</sci:arg>
							<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The component this component is based upon.</sci:help>
								<sci:value>Custom Filter (PilotScript)</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>{DD58ECD1-516F-48FE-A5DB-8328AED680F2}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>90 -95</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:value>100</sci:value>
								<sci:value>Passes data records for which a PilotScript expression evaluates to True

</sci:value>
								<sci:value>&lt;p&gt;For each incoming data record, the PilotScript statements in &lt;i&gt;Expression&lt;/i&gt; are evaluated. If the last statement in the expression evaluates to True or non-zero, the record is sent out the Pass port. Otherwise it is sent out the Fail port.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To initialize global variables such as counters, use &lt;i&gt;Initial Expression&lt;/i&gt;.&lt;/li&gt; 
&lt;li&gt;To clean up global variables or calculate final results use &lt;i&gt;Final Expression&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Parameters on Custom Manipulators do not become global variables that can be accessed via &lt;i&gt;@ParameterName&lt;/i&gt; syntax.  They must be accessed by using the &lt;i&gt;Parameter(&apos;ParameterName&apos;)&lt;/i&gt; function or by using token substitution via &lt;i&gt;$(ParameterName)&lt;/i&gt; syntax.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>Generic</sci:value>
								<sci:value>Data records for which the final expression in the PilotScript evaluates to True or non-zero</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value>Data records for which the final expression in the PilotScript evaluates to False or zero</sci:value>
							</sci:arg>
							<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
							<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Local Component Identifier</sci:help>
								<sci:value>5</sci:value>
							</sci:arg>
							<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The original path within the database of this component.</sci:help>
								<sci:value>Components\Data Access and Manipulation\Property Filters\Custom Filter (PilotScript)</sci:value>
							</sci:arg>
						</sci:component>
						<sci:proplist>
							<sci:propval name="RegistrationVersion">7.0.0.35</sci:propval>
						</sci:proplist>
					</sci:data>
					<sci:data object="SciTegic.Protocol.1">
						<sci:component name="Internal Group Sequences by Total Length" version="2">
							<sci:arg name="Total Length" type="LongType" required="true" visibility="visible" multi="false">
								<sci:help>Consecutive sequences will be grouped as many as possible when their total length is smaller than the specified value.</sci:help>
								<sci:value>1000</sci:value>
							</sci:arg>
							<sci:arg name="RunToCompletion" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
								<sci:help>When &lt;i&gt;RunToCompletion&lt;/i&gt; is set to &quot;True - For Each Data Record&quot;, the subprotocol is re-initialized and executed in its entirety for each individual data record it processes.
&lt;p&gt;
When set to &quot;True - For Each Category&quot;, the data records are divided into categories based on the value of the Categorize Using parameter and then the subprotocol is re-initialized and executed in its entirety for each category of data records. When used in conjunction with &lt;i&gt;Parallel Processing Options&lt;/i&gt;, each category of data records will be sent to the remote server as part of one single batch.</sci:help>
								<sci:member>RunToCompletion Categorize Using</sci:member>
								<sci:legalval selected="true">False</sci:legalval>
								<sci:legalval>True - For Each Data Record</sci:legalval>
								<sci:legalval>True - For Each Category</sci:legalval>
							</sci:arg>
							<sci:arg name="RunToCompletion Categorize Using" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
								<sci:help>&lt;p&gt;
Required when RunToCompletion is set to &lt;i&gt;True - For Each Category&lt;/i&gt;, this parameter specifies the property or properties used to define the categories.
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
Note: In an expression inside the subprotocol you can identify the category property name as:
&lt;/p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;code&gt;parentproperty(&apos;RunToCompletion Categorize Using&apos;)&lt;/code&gt;
&lt;p&gt;
And so to access the value of this property on the current data record, use:
&lt;/p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;code&gt;property(parentproperty(&apos;RunToCompletion Categorize Using&apos;))&lt;/code&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</sci:help>
								<sci:validscript>SetInvalidDetails(&apos;This parameter is required when RunToCompletion is set to True - For Each Category&apos;);
Parameter() ne &apos;&apos;;</sci:validscript>
								<sci:enabledscript>SetDisabledDetails(&apos;To Enable, Set RunToCompletion to True - For Each Category&apos;);
Parameter(&apos;RunToCompletion&apos;) eq &apos;True - For Each Category&apos;;</sci:enabledscript>
							</sci:arg>
							<sci:arg name="Parallel Processing Options" type="BoolType" required="false" visibility="visible" multi="false" uimpl="false">
								<sci:help>&lt;p&gt;
When set to True, this set of options allows the subprotocol to execute in parallel on one or more independent Pipeline Pilot servers, running locally or remotely.  Additional parameters control the number of data records to send in each process batch, the list of Pipeline Pilot servers to use, the number of protocol processes that can be executed on each server, and whether to preserve the order of the processed data records.
&lt;/p&gt;&lt;p&gt;
Use this option with care, since it will not increase throughput in all circumstances. Generally speaking, it yields improved performance when the parallelization benefits outweigh the data transfer overhead for the specified batch size.  As a rough guide, performance can be improved when each individual batch requires at least 10 seconds to execute, although this can be affected by the size of each data record.
&lt;/p&gt;&lt;p&gt;
When running the protocol with debugging, the subprotocol will provide debugging messages to detail each of the various steps of execution.  Also, components located within the parallel subprotocol will display their debugging messages as well.
&lt;/p&gt;&lt;p&gt;
For more information on the parallel subprotocol options, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/subprots/subprot_parallel_processing.htm&apos;)&quot;&gt;Parallel Processing Subprotocols&lt;/a&gt;.
&lt;/p&gt;
</sci:help>
								<sci:member>Parallel Processing Options Batch Size</sci:member>
								<sci:member>Parallel Processing Options Server</sci:member>
								<sci:member>Parallel Processing Options Preserve Order</sci:member>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="Parallel Processing Options Batch Size" type="LongType" required="true" visibility="visible" multi="false" uimpl="false">
								<sci:help>&lt;p&gt;The number of records to send to the remote server(s) for each subprotocol execution.  In general, performance is optimized when the amount of time required to process each batch is at least 10 seconds (note that this can vary depending on the characteristics of the remote server&apos;s hardware).  Use a batch size of -1 to pass all data in a single batch.&lt;/p&gt;
&lt;p&gt;When &lt;i&gt;RunToCompletion&lt;/i&gt; is set to &quot;True - for each category&quot;, the batch sizes will be determined by the number of records in each individual category.  Therefore, the &lt;i&gt;Batch Size&lt;/i&gt; parameter is not applicable.</sci:help>
								<sci:enabledscript>#parallel := Parameter(&apos;Parallel Processing Options&apos;);
if (not #parallel) then
	SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
end if;
#parallel;</sci:enabledscript>
							</sci:arg>
							<sci:arg name="Parallel Processing Options Server" type="StringType" required="false" visibility="visible" multi="true" expanded="true" legalvalsenforced="false" uimpl="false">
								<sci:help>&lt;p&gt;
A comma-separated list of Pipeline Pilot servers on which to execute the parallel subprotocol.  The server names should be in the same format as the Pipeline Pilot Client&apos;s change server dialog (that is, server-name:port-number).
&lt;/p&gt;&lt;p&gt;
Specifying &lt;b&gt;localhost&lt;/b&gt; as a server will cause the subprotocol to use its own Pipeline Pilot server.  This can be useful on multi-CPU/multi-core systems (where the subprotocol jobs are spawned on the same machine) and Pipeline Pilot Linux clusters (where &apos;localhost&apos; requests spawning the subprotocol jobs on the same cluster).
&lt;/p&gt;</sci:help>
								<sci:member>Parallel Processing Options Server Processes</sci:member>
								<sci:member>Parallel Processing Options Server Run On Grid</sci:member>
								<sci:validscript>SetInvalidDetails(&apos;This parameter is required.&apos;);
Parameter() ne &apos;&apos;;</sci:validscript>
								<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
							</sci:arg>
							<sci:arg name="Parallel Processing Options Server Processes" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
								<sci:help>A comma-separated list of the maximum number of batches that can be simultaneously executed on each remote server.  The number of entries in this parameter must equal the number of servers. If &apos;*&apos; is specified as the number of processes, then that server will only launch as many batches as the administrator of the remote server has permitted.&lt;/br&gt;&lt;/br&gt;For non-Grid Engine job, the number of jobs will be limited to the value for the maximum number of simultaneous subprotocol jobs as defined in the Admin Console even if this value is higher than the value entered here or &apos;*&apos;.&lt;/br&gt;&lt;/br&gt;For Grid Engine jobs, the number of jobs will be limited to the value for the maximum number of simultaneous subprotocol grid jobs as defined in the Admin Console even if this value is higher than the value entered here or &apos;*&apos;.&lt;/br&gt;&lt;/br&gt;</sci:help>
								<sci:validscript>/* Server Processes must have the same number of comma separated entries as the Server parameter and must have a value*/
#processes := parameter();
expand(&apos;,&apos;, #processes);
#servers := parameter(&apos;Parallel Processing Options Server&apos;);
expand(&apos;,&apos;, #servers);

if (numvalues(#processes) == 0) then
	SetInvalidDetails(&apos;This parameter is required.&apos;);
else
	SetInvalidDetails(&apos;The number of server processes (&apos; . numvalues(#processes) . &apos;) must equal the number of servers (&apos; . numvalues(#servers) . &apos;).&apos;);
end if;
numvalues(#processes) &gt; 0 and numvalues(#processes) == numvalues(#servers);</sci:validscript>
								<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
							</sci:arg>
							<sci:arg name="Parallel Processing Options Server Run On Grid" type="BoolType" required="false" visibility="visible" multi="false" uimpl="false">
								<sci:help>Run subprotocol on grid engine if available.  Note: If no grid engine is configured the subprotocol will still run even if this parameter is set to true.</sci:help>
								<sci:member>Parallel Processing Options Server Run On Grid Queue Name</sci:member>
								<sci:member>Parallel Processing Options Server Run On Grid Grid Options</sci:member>
								<sci:enabledscript>parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
								<sci:legalval selected="true">True</sci:legalval>
								<sci:legalval>False</sci:legalval>
							</sci:arg>
							<sci:arg name="Parallel Processing Options Server Run On Grid Queue Name" type="StringType" required="false" visibility="visible" multi="false" legalvalsenforced="false" uimpl="false">
								<sci:help>Select the queue name on the grid to submit jobs to. Leave blank to use default queue name.</sci:help>
								<sci:enabledscript>parameter(&apos;Parallel Processing Options Server Run On Grid&apos;);</sci:enabledscript>
							</sci:arg>
							<sci:arg name="Parallel Processing Options Server Run On Grid Grid Options" type="StringType" required="false" visibility="visible" multi="true" uimpl="false">
								<sci:help>&lt;p&gt;This is an array of command line options to send to the Grid engine submit command.&lt;/p&gt;
&lt;p&gt;If you just include one line, whatever you enter will be sent &quot;as is&quot; to the submission command.&lt;/p&gt;
&lt;/br&gt;
&lt;b&gt;Example - Just sending options directly to command line - PBS&lt;/b&gt;
&lt;p&gt;-l procs=16 -l walltime=08:00:00 -A PROJECTID&lt;/p&gt;
&lt;/br&gt;
&lt;p&gt;There are a number of parameters that Pipeline Pilot will translate to the correct command line options for whichever supported Grid Engine you are using.&lt;/p&gt;
&lt;/br&gt;
&lt;b&gt;Example - Supported parameters&lt;/b&gt;
&lt;p&gt;Account=&amp;lt;Project/Account name&amp;gt;&lt;/p&gt;
&lt;p&gt;Maximum Execution Time=&amp;lt;HH:MM:SS&amp;gt; hours, minutes, seconds - LSF ignores seconds&lt;/p&gt;
&lt;p&gt;Number of Cores=&amp;lt;16&amp;gt;&lt;/p&gt;
&lt;p&gt;Parallel Environment=&amp;lt;The Parallel Environment to use&amp;gt; - Only needed for SGE&lt;/p&gt;
&lt;p&gt;Other=&amp;lt;Additional Parameters sent directly to submit command line&amp;gt;&lt;/p&gt;
&lt;/br&gt;
&lt;p&gt;Any of these options can be commented out by placing a # in front of them.&lt;/p&gt;
&lt;/br&gt;
					</sci:help>
								<sci:enabledscript>parameter(&apos;Parallel Processing Options Server Run On Grid&apos;);</sci:enabledscript>
								<sci:value>Account=</sci:value>
								<sci:value>Maximum Execution Time=</sci:value>
								<sci:value>Parallel Environment=</sci:value>
								<sci:value>Number of Cores=</sci:value>
								<sci:value>Other=</sci:value>
							</sci:arg>
							<sci:arg name="Parallel Processing Options Preserve Order" type="BoolType" required="false" visibility="visible" multi="false" uimpl="false">
								<sci:help>Whether to preserve the order of the data as it enters and leaves the remote subprotocol.</sci:help>
								<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
								<sci:legalval selected="true">True</sci:legalval>
								<sci:legalval>False</sci:legalval>
							</sci:arg>
							<sci:arg name="Tempfiles" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
								<sci:help>&lt;p&gt;A comma-delimited list of global properties, each of which is automatically populated with the name of a file in the job&apos;s temporary folder, which always has a unique name.&lt;p/&gt;For each global name, an additional global is created (with the suffix &lt;i&gt;_Filename&lt;/i&gt;) that hold only the leaf file name of the temporary file.&lt;/p&gt;</sci:help>
							</sci:arg>
							<sci:arg name="DeclareLocal" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
								<sci:help>&lt;p&gt;Lists a set of properties (without the @) to create on the global property list for this subprotocol. Separate property names with commas. Such properties can only be accessed within the scope of this subprotocol and its descendent subprotocols.&lt;p/&gt;

&lt;p&gt;Any global property not declared in this way is created on the top-level global property list and is accessible from all subprotocols, but breaks the encapsulation of the subprotocol and may collide with another property of the same name.&lt;/p&gt;

&lt;p&gt;Therefore, you should always declare a new global property in the &lt;i&gt;DeclareLocal&lt;/i&gt; parameter, to minimize the scope of the global property to the subprotocol where it is used.&lt;/p&gt;

&lt;p&gt;The example &lt;i&gt;DeclareLocal&lt;/i&gt; value below creates 3 global properties in the subprotocol scope. Note that you can initialize the declared global value with a scalar value using the &quot;:=&quot; syntax, as shown. You can surround text string values with quotes to aid clarity.&lt;/p&gt;
&lt;pre&gt;
    SubP_Counter := 0, SubP_NameHash, SubP_TitleText:=&quot;Sample 1&quot;
&lt;/pre&gt;
</sci:help>
								<sci:value>TagProperty</sci:value>
							</sci:arg>
							<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
								<sci:help>Component Attributes</sci:help>
								<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
								<sci:legalval>ComponentReturnsFail</sci:legalval>
								<sci:legalval>ComponentRunsLocal</sci:legalval>
							</sci:arg>
							<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Custom Error Message</sci:help>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>Internal Group Sequences by Total Length</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolAutoLayout" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol AutoLayout</sci:help>
								<sci:value>1</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:value>SUBPROTOCOLNODE</sci:value>
							</sci:arg>
							<sci:arg name="ComponentRevision" type="LongType" required="true" visibility="nevershow" multi="false">
								<sci:help>Component Revision</sci:help>
								<sci:value>790</sci:value>
							</sci:arg>
							<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>{B61A0ABB-9EC8-4900-86DA-8F57F6FF90A6}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>390 -95</sci:value>
							</sci:arg>
							<sci:arg name="ByReference" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>By Ref</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:value>100</sci:value>
								<sci:value>Internal Group Sequences by Total Length</sci:value>
								<sci:value/>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>Generic</sci:value>
								<sci:value>Records passing out of any unconnected pass ports of components inside the subprotocol</sci:value>
								<sci:value>None</sci:value>
								<sci:value>Records passing out of any unconnected fail ports of components inside the subprotocol</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The server version when this component was registered</sci:help>
								<sci:value>21.1.0.2327</sci:value>
							</sci:arg>
							<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
							<sci:arg name="Protocol Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Sticky Notes</sci:help>
							</sci:arg>
							<sci:arg name="ProtocolScale2" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Scale</sci:help>
								<sci:value>100</sci:value>
							</sci:arg>
							<sci:arg name="Protocol Options" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Options</sci:help>
								<sci:legalval>Owner Access Only</sci:legalval>
							</sci:arg>
							<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/seqanal</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The date this component was registered.</sci:help>
								<sci:value>Wed Mar  4 15:31:45 2020</sci:value>
							</sci:arg>
							<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Local Component Identifier</sci:help>
								<sci:value>4</sci:value>
							</sci:arg>
							<sci:arg name="SubProtocolMadeLinkIntoCopy" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>Subprotocol Made Link Into Copy</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="SubProtocolModified" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>Subprotocol Modified</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="OriginalPackage" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>OriginalPackage</sci:help>
								<sci:value>scitegic/coreutils</sci:value>
							</sci:arg>
							<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The original path within the database of this component.</sci:help>
								<sci:value>Unknown</sci:value>
							</sci:arg>
						</sci:component>
						<sci:protocol>
							<sci:data object="SciTegic.EvaluateExpression.1">
								<sci:component name="Custom Manipulator (PilotScript)" version="2">
									<sci:arg name="Expression" type="ExpressionType" required="true" visibility="visible" multi="false" expanded="true" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>Expression (or list of expressions separated by semi-colons) to evaluate.</sci:help>
										<sci:member>Initial Expression</sci:member>
										<sci:member>Final Expression</sci:member>
										<sci:member>Keep Calculated Properties</sci:member>
										<sci:value>#totalLength+=length;

if #totalLength&gt;@&apos;Total Length&apos; then
	#ndx++;
	#totalLength:=length;
end if;


property(@TagProperty):=&apos;t&apos;.#ndx;
</sci:value>
									</sci:arg>
									<sci:arg name="Initial Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>&lt;p&gt;
This expression is executed only the first time data passes into the component.
&lt;p/&gt; 
Since there is no data available at initialization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
										<sci:value>#ndx:=1;
#totalLength:=0;
@TagProperty:=&apos;t&apos;.CreateGUID(1);</sci:value>
									</sci:arg>
									<sci:arg name="Final Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>&lt;p&gt;
This expression is executed only at finalization (after the last data passes out of the component).
&lt;p/&gt; 
Since there is no data available at finalization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
									</sci:arg>
									<sci:arg name="Keep Calculated Properties" type="BoolType" required="true" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>Adds any properties calculated in this component to a data record&apos;s property list.</sci:help>
										<sci:legalval selected="true">True</sci:legalval>
										<sci:legalval>False</sci:legalval>
									</sci:arg>
									<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
										<sci:help>Component Attributes</sci:help>
										<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
										<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
										<sci:legalval>ComponentReturnsFail</sci:legalval>
										<sci:legalval>ComponentRunsLocal</sci:legalval>
									</sci:arg>
									<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>Custom Error Message</sci:help>
									</sci:arg>
									<sci:arg name="Do Screen" type="BoolType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>When TRUE, controls which exit port is used for
each data record by evaluating the final expression
(or only one) listed in the &quot;Expression&quot; parameter.
   -Pass (green) port when expression true
   -Fail (red) port when expression false</sci:help>
										<sci:legalval>True</sci:legalval>
										<sci:legalval selected="true">False</sci:legalval>
									</sci:arg>
									<sci:arg name="ExpressionVersion" type="LongType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>Version of expression parser to use.</sci:help>
										<sci:value>2</sci:value>
									</sci:arg>
									<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The user who registered this component.</sci:help>
										<sci:value>scitegic/generic</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The date this component was registered.</sci:help>
										<sci:value>Mon Jan 21 09:55:43 2008</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>Add Tag</sci:value>
									</sci:arg>
									<sci:arg name="ComponentAutoDisplayName" type="ExpressionType" required="false" visibility="nevershow" multi="false">
										<sci:help>Automatically update the component display name when the &quot;Expression&quot; property is changed. This feature is turned off after the user manually changes the display name of the component in Protocol workspace.</sci:help>
										<sci:value>#displayName := trim(Parameter(&apos;Expression&apos;, 2));
if(strlength(#displayName) &gt; 0) then	
	/* Find the first line break */
	#nl := FindSubstring(#displayName, &quot;\r&quot;);
	if #nl &lt;= 0 then
		#nl := FindSubstring(#displayName, &quot;\n&quot;);
	end if;

	/* Keep the first line only */
	if (#nl &gt; 0) then
		StrErase(#displayName, #nl);
	end if;
	
	#displayName;
else
	&quot;&quot;;
end if;</sci:value>
									</sci:arg>
									<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The component this component is based upon.</sci:help>
										<sci:value>Custom Manipulator (PilotScript)</sci:value>
									</sci:arg>
									<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:value>EXPRESSIONNODE</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>{0995D675-7EE2-432C-95DF-E91C14052B22}</sci:value>
									</sci:arg>
									<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>90 -95</sci:value>
									</sci:arg>
									<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
										<sci:value>100</sci:value>
										<sci:value>Applies a PilotScript expression to each data record
</sci:value>
										<sci:value>&lt;p&gt;PilotScript is the native scripting language in Pipeline Pilot.  It is based on PL/SQL and allows you to query or alter the properties on data records.  For example, the expression:

&lt;blockquote&gt;
&lt;code&gt;A := 10;&lt;/code&gt;
&lt;/blockquote&gt;
creates a property named &quot;A&quot; and sets the value to &quot;10&quot;.&lt;/p&gt;

&lt;p&gt;For each incoming data record the PilotScript statements in &lt;i&gt;Expression&lt;/i&gt; are evaluated.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To initialize global variables such as counters, use &lt;i&gt;Initial Expression&lt;/i&gt;.&lt;/li&gt; 
&lt;li&gt;To clean up global variables or calculate final results use &lt;i&gt;Final Expression&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Parameters on Custom Manipulators do not become global variables that can be accessed via &lt;i&gt;@ParameterName&lt;/i&gt; syntax.  They must be accessed by using the &lt;i&gt;Parameter(&apos;ParameterName&apos;)&lt;/i&gt; function or by using token substitution via &lt;i&gt;$(ParameterName)&lt;/i&gt; syntax.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;See Also:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For more information on PilotScript, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/pscript/pscript_overview.htm&apos;)&quot;&gt;PilotScript Overview&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To use PilotScript to filter data records use &lt;a href=&quot;javascript:DoLink(&apos;{DD58ECD1-516F-48FE-A5DB-8328AED680F2}&apos;)&quot;&gt;Custom Filter (PilotScript)&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

</sci:value>
										<sci:value>Generic</sci:value>
										<sci:value/>
										<sci:value>Generic</sci:value>
										<sci:value/>
										<sci:value>None</sci:value>
										<sci:value/>
									</sci:arg>
									<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The server version when this component was registered</sci:help>
										<sci:value>7.0.0.35</sci:value>
									</sci:arg>
									<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:help>Local Component Identifier</sci:help>
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The original path within the database of this component.</sci:help>
										<sci:value>Components\Data Access and Manipulation\Property Manipulators\Custom Manipulator (PilotScript)</sci:value>
									</sci:arg>
								</sci:component>
							</sci:data>
							<sci:data object="SciTegic.GroupData.1">
								<sci:component name="Group Data by Tag" version="2">
									<sci:arg name="GroupUsing" type="LinkGlobalPropertyType" required="true" visibility="visible" multi="false" expanded="true" legalvalsenforced="false">
										<sci:metaproplist>
											<sci:propval name="SCI_InitializeUsingRevertInfo" base64="UI1">Al1HAAF7VGhlIG5hbWUgb2YgYSBwcm9wZXJ0eSBvciBsaXN0IG9mIHByb3BlcnRpZXMgc2VwYXJhdGVkIGJ5IGNvbW1hcyB0aGF0IGFjdCBhcyBhIGNvbW1vbiBrZXkgZm9yIHRob3NlIHJlY29yZHMgdG8gYmUgZ3JvdXBlZAosU3RyaW5nVHlwZQAMAAAAAQEAAAEcVGhpcyBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQuBAH8AAAAAAAAAAAALEdyb3VwVXNpbmcDzFPPuwQA</sci:propval>
											<sci:propval name="SCI_InitializeUsingOrigType">StringType</sci:propval>
											<sci:propval name="SCI_EvalOnInit" boolVal="true"/>
											<sci:propval name="SCI_EvalOnInitType">StringType</sci:propval>
										</sci:metaproplist>
										<sci:help>The name of a property or list of properties separated by commas that act as a common key for those records to be grouped
</sci:help>
										<sci:member>GroupUsingListType</sci:member>
										<sci:value>TagProperty</sci:value>
									</sci:arg>
									<sci:arg name="GroupUsingListType" type="StringType" required="true" visibility="visible" multi="false">
										<sci:help>Indicates how &quot;GroupUsing&quot; properties are interpreted when  more than one property is listed:
 
    - UseFirstDefinedValue: Group using only the first property in the list with a defined value for a record.
 
  - UseAllValues: Groups using the concatentation of the values of all properties listed; a match occurs only when records share the same value for all the properties.</sci:help>
										<sci:legalval>UseFirstDefinedValue</sci:legalval>
										<sci:legalval selected="true">UseAllValues</sci:legalval>
									</sci:arg>
									<sci:arg name="Additional Options" type="GroupType" required="false" visibility="visible" multi="false">
										<sci:help>Contains less commonly used parameters</sci:help>
										<sci:member>GroupName</sci:member>
										<sci:member>Data Are Sorted</sci:member>
									</sci:arg>
									<sci:arg name="GroupName" type="StringType" required="false" visibility="visible" multi="false">
										<sci:help>If given, a new property called &quot;GroupName&quot; is created with this value. It can aid in unpacking only selected groups by name.
</sci:help>
										<sci:value>Data</sci:value>
									</sci:arg>
									<sci:arg name="Data Are Sorted" type="BoolType" required="false" visibility="visible" multi="false" uimpl="false">
										<sci:help>Specifies whether the input data are already sorted by the &lt;i&gt;GroupUsing&lt;/i&gt; properties. If so, then the grouping can be done much faster with less memory impact. Use this option only if you are certain that the input data are sorted.
&lt;p&gt;
&lt;b&gt;Note:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;If you set &lt;i&gt;Data Are Sorted&lt;/i&gt; to True and the input data are &lt;b&gt;not&lt;/b&gt; sorted, an error is generated.
&lt;/ul&gt;</sci:help>
										<sci:legalval>True</sci:legalval>
										<sci:legalval selected="true">False</sci:legalval>
									</sci:arg>
									<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
										<sci:help>Component Attributes</sci:help>
										<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
										<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
										<sci:legalval selected="true">ComponentReturnsFail</sci:legalval>
										<sci:legalval>ComponentRunsLocal</sci:legalval>
									</sci:arg>
									<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The user who registered this component.</sci:help>
										<sci:value>scitegic/generic</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The date this component was registered.</sci:help>
										<sci:value>Wed Mar 16 08:27:06 2011</sci:value>
									</sci:arg>
									<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>{3FDE8197-D86F-4EB0-99FF-82D6430AF466}</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="ComponentAutoDisplayName" type="ExpressionType" required="false" visibility="nevershow" multi="false">
										<sci:help>Automatically update the component display name when the &quot;GroupUsing&quot; property is changed. This feature is turned off after the user manually changes the display name of the component in Protocol workspace.</sci:help>
										<sci:value>if (strlength(trim(parameter(&apos;GroupUsing&apos;, 2))) &gt; 0) then
	&quot;Group on &quot; . trim(parameter(&apos;GroupUsing&apos;, 2));
else
	&quot;&quot;;
end if;</sci:value>
									</sci:arg>
									<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:value>JOINNODE</sci:value>
									</sci:arg>
									<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The component this component is based upon.</sci:help>
										<sci:value>Group Data by Tag</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>390 -95</sci:value>
									</sci:arg>
									<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
										<sci:value>100</sci:value>
										<sci:value>Groups all data records with the same property value into a single data record</sci:value>
										<sci:value>&lt;p&gt;&lt;i&gt;GroupUsing&lt;/i&gt; specifies the property or comma separated list of properties to use for determining which records will be grouped together.  These grouped data records can later be unbundled by &lt;i&gt;Ungroup Data&lt;/i&gt;.  Any records lacking the &lt;i&gt;GroupUsing&lt;/i&gt; key are sent out the Fail port.&lt;/p&gt;

&lt;p&gt;
One use of grouped data is to provide input to a subprotocol for which &lt;i&gt;RunToCompletion&lt;/i&gt; has been set to True. The subprotocol will then operate on each group independently. You would typically use &lt;i&gt;Ungroup Data&lt;/i&gt; as the first component of the subprotocol.
&lt;p&gt;

&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;No data are lost or changed when you create a grouped record from separate data records.  Grouping is simply a way to bundle records together.
&lt;li&gt;For the purpose of matching records to be grouped, the &lt;i&gt;GroupUsing&lt;/i&gt; property is treated as a string. (Thus, for example, the values &quot;1.0&quot; and &quot;1&quot; do not match.)
&lt;li&gt;The new data record has three properties defined at the top level:
	&lt;ul&gt;
	&lt;li&gt;&lt;b&gt;GroupName&lt;/b&gt; contains the name of the group as specified by the parameter &lt;i&gt;GroupName&lt;/i&gt;.&lt;/li&gt;  
	&lt;li&gt;&lt;b&gt;NumberInGroup&lt;/b&gt; contains the number of records in the group. 
	&lt;li&gt; The properties named by &lt;i&gt;GroupUsing&lt;/i&gt; contain the values of these properties shared by all members of the group.&lt;/li&gt;
	&lt;/ul&gt;
&lt;/ul&gt;
&lt;b&gt;See Also:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To group every N data records together as an alternative to using a &lt;i&gt;GroupUsing&lt;/i&gt; property, use &lt;a href=&quot;javascript:DoLink(&apos;{C3A203C2-9470-47F8-A7FF-D5C6DD1BAA67}&apos;)&quot;&gt;Group Data by Number&lt;/a&gt;
&lt;li&gt;To separate the grouped data into the original records, use &lt;a href=&quot;javascript:DoLink(&apos;{57833F08-BD53-42AE-A14C-87EED61B8FBD}&apos;)&quot;&gt;Ungroup Data&lt;/a&gt;.  You would typically use Ungroup Data as the first component of a &lt;i&gt;RunToCompletion&lt;/i&gt; subprotocol designed to operate on grouped data.
&lt;li&gt;For a different approach to combining data records, analogous to a database join operation, see &lt;a href=&quot;javascript:DoLink(&apos;{1E393621-138C-466E-8A2B-275A3FAB26E3}&apos;)&quot;&gt;Merge Data&lt;/a&gt;.
&lt;/ul&gt;

</sci:value>
										<sci:value>Generic</sci:value>
										<sci:value/>
										<sci:value>Generic</sci:value>
										<sci:value>Data records, each containing a collection of grouped records stored in a hierarchy</sci:value>
										<sci:value>Generic</sci:value>
										<sci:value>Data records that lack the &lt;i&gt;GroupUsing&lt;/i&gt; property</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The server version when this component was registered</sci:help>
										<sci:value>8.4.5.20</sci:value>
									</sci:arg>
									<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:help>Local Component Identifier</sci:help>
										<sci:value>1</sci:value>
									</sci:arg>
									<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The original path within the database of this component.</sci:help>
										<sci:value>Components\Data Access and Manipulation\Data Manipulators\Group Data by Tag</sci:value>
									</sci:arg>
								</sci:component>
							</sci:data>
							<sci:data object="SciTegic.XMLTools.1">
								<sci:component name="Apply PilotScript to Selected Nodes" version="2">
									<sci:arg name="Select" type="StringType" required="true" visibility="visible" multi="true">
										<sci:help>An XPath query or queries to determine the nodes to apply the PilotScript to. For example, &quot;//*[@ID]&quot; would select all nodes with the property &quot;ID&quot; defined; if the Expression were &quot;NewID := &apos;NewID_&apos; . ID;&quot;, then a new property NewId would be created, and consist of the old ID prepended with the string NewId_.

</sci:help>
										<sci:value>/SciTegic.data.GroupNode/*</sci:value>
									</sci:arg>
									<sci:arg name="Expression" type="ExpressionType" required="true" visibility="visible" multi="false" expanded="true" legalvalsenforced="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}" uimpl="false">
										<sci:help>Expression (or list of expressions separated by semi-colons) to evaluate for each selected node</sci:help>
										<sci:member>Initial Expression</sci:member>
										<sci:member>Final Expression</sci:member>
										<sci:value>remove(@TagProperty);</sci:value>
									</sci:arg>
									<sci:arg name="Initial Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}" uimpl="false">
										<sci:help>&lt;p&gt;
This expression is executed only the first time data passes into the component.
&lt;p/&gt; 
Since there is no data available at initialization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
									</sci:arg>
									<sci:arg name="Final Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}" uimpl="false">
										<sci:help>&lt;p&gt;
This expression is executed only at finalization (after the last data passes out of the component).
&lt;p/&gt; 
Since there is no data available at finalization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
									</sci:arg>
									<sci:arg name="Parser" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
										<sci:help>The name of the parser to use for the query. Depending on the choice of parser, different XPath features will be supported. Primarily, &quot;Simple XPath&quot; is fast but supports fewer features, and &quot;Full XPath&quot; is show but supports more XPath features.</sci:help>
										<sci:legalval selected="true">Simple XPath</sci:legalval>
										<sci:legalval>Full XPath</sci:legalval>
									</sci:arg>
									<sci:arg name="DataActionOnError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:help>When a General or DataType error occurs during processing:  
  LeaveData: The data is passed unalterd
  ClearData: The data is cleared before being passed (an empty data item)
  DeleteData: The data is deleted and not passed</sci:help>
										<sci:legalval selected="true">LeaveData</sci:legalval>
										<sci:legalval>ClearData</sci:legalval>
										<sci:legalval>DeleteData</sci:legalval>
									</sci:arg>
									<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
										<sci:help>Component Attributes</sci:help>
										<sci:value>ComponentReturnsPass</sci:value>
										<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
										<sci:legalval>ComponentReturnsPass</sci:legalval>
										<sci:legalval>ComponentReturnsFail</sci:legalval>
										<sci:legalval>ComponentRunsLocal</sci:legalval>
									</sci:arg>
									<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="Action" type="StringType" required="true" visibility="nevershow" multi="false" uimpl="true">
										<sci:value>Apply PilotScript</sci:value>
									</sci:arg>
									<sci:arg name="Properties Are" type="StringType" required="false" visibility="nevershow" multi="false" uimpl="true">
										<sci:help>&lt;p&gt;
Our view of the data record for use in the Select query.
&lt;/p&gt;</sci:help>
										<sci:legalval>Attributes</sci:legalval>
										<sci:legalval selected="true">Elements</sci:legalval>
									</sci:arg>
									<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:value>ComponentNode</sci:value>
									</sci:arg>
									<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The user who registered this component.</sci:help>
										<sci:value>scitegic/generic</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The date this component was registered.</sci:help>
										<sci:value>Fri Aug 17 08:38:14 2012</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>Remove Tag</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>{AEE34E57-CBE3-4091-AE4A-2AF22B7CF406}</sci:value>
									</sci:arg>
									<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>690 -95</sci:value>
									</sci:arg>
									<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
										<sci:value>100</sci:value>
										<sci:value>Selects a set of nodes in the data record and applies the PilotScript expression to its properties. 

</sci:value>
										<sci:value>Selects a set of nodes in the data record and applies a PilotScript expression to each. 

For example, &quot;//*[@ID]&quot; would select all nodes with the property &quot;ID&quot; defined; if the Expression were &quot;NewID := &apos;NewID_&apos; . ID;&quot;, then a new property NewId would be created, and consist of the old ID prepended with the string NewId_.
</sci:value>
										<sci:value>Generic</sci:value>
										<sci:value/>
										<sci:value>Generic</sci:value>
										<sci:value/>
										<sci:value>None</sci:value>
										<sci:value/>
									</sci:arg>
									<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:help>Local Component Identifier</sci:help>
										<sci:value>2</sci:value>
									</sci:arg>
									<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The original path within the database of this component.</sci:help>
										<sci:value>Components\Data Access and Manipulation\Utilities\Data Tree Manipulators\Apply PilotScript to Selected Nodes</sci:value>
									</sci:arg>
								</sci:component>
								<sci:proplist>
									<sci:propval name="RegistrationVersion">9.0.0.8</sci:propval>
								</sci:proplist>
							</sci:data>
							<sci:connectid from="0" to="1" type="true"/>
							<sci:connectid from="1" to="2" type="true"/>
							<sci:version iVal="1"/>
						</sci:protocol>
					</sci:data>
					<sci:data object="SciTegic.Protocol.1">
						<sci:component name="Internal Remote BLAST" version="2">
							<sci:arg name="Program" type="StringType" required="true" visibility="visible" multi="false" expanded="true">
								<sci:value>blastp</sci:value>
							</sci:arg>
							<sci:arg name="Service" type="StringType" required="false" visibility="visible" multi="false"/>
							<sci:arg name="Database" type="StringType" required="true" visibility="visible" multi="false" expanded="true">
								<sci:metaproplist>
									<sci:mpropval name="SCI_PromotedFrom" type="StringType">
										<sci:value>Database</sci:value>
									</sci:mpropval>
									<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
								</sci:metaproplist>
								<sci:help>Identifies the BLAST database to use:
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;nr&lt;/b&gt;: Nucleotide collection.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;refseq_rna&lt;/b&gt;: Reference mRNA sequences.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;refseq_genomic&lt;/b&gt;: Reference genomic sequences.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;chromosome&lt;/b&gt;: NCBI Genomes.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;est&lt;/b&gt;: Expressed sequence tags.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;est_human&lt;/b&gt;: Human subset of est.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;est_mouse&lt;/b&gt;: Mouse subset of est.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;est_others&lt;/b&gt;: Non-human, non-mouse ESTs.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;gss&lt;/b&gt;: Genomic survey sequences.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;htgs&lt;/b&gt;: High throughput genomic sequences.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;pat&lt;/b&gt;: Patent sequences.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;pdb&lt;/b&gt;: Protein Data Bank.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;alu&lt;/b&gt;: Human ALU repeat elements.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;dbsts&lt;/b&gt;: Sequence tagged sites.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;wgs&lt;/b&gt;: Whole-genome shotgun reads.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;env_nt&lt;/b&gt;: Environmental samples.&lt;/li&gt;
&lt;/ul&gt;</sci:help>
								<sci:member>Organism</sci:member>
								<sci:member>Entrez Query</sci:member>
								<sci:value>$(Database)</sci:value>
							</sci:arg>
							<sci:arg name="Organism" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
								<sci:metaproplist>
									<sci:mpropval name="SCI_PromotedFrom" type="StringType">
										<sci:value>Organism</sci:value>
									</sci:mpropval>
								</sci:metaproplist>
								<sci:help>An organism name, for example human or Homo sapiens, to limit search.</sci:help>
								<sci:value>$(Organism)</sci:value>
							</sci:arg>
							<sci:arg name="Entrez Query" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
								<sci:metaproplist>
									<sci:mpropval name="SCI_PromotedFrom" type="StringType">
										<sci:value>Entrez Query</sci:value>
									</sci:mpropval>
								</sci:metaproplist>
								<sci:help>An Entrez query to limit search. For example, &lt;b&gt;1000:2000[slen]&lt;/b&gt; limits the search to protein entries with lengths between 1000 to 2000 residues. Refer to &lt;a href=&quot;javascript:DoLink(&apos;http://www.ncbi.nlm.nih.gov/BLAST/blastcgihelp.shtml#entrez_query&apos;)&quot;&gt;Limit by Entrez Query&lt;/a&gt; for more details.</sci:help>
								<sci:value>$(Entrez Query)</sci:value>
							</sci:arg>
							<sci:arg name="Expectation Value" type="StringType" required="false" visibility="visible" multi="false">
								<sci:metaproplist>
									<sci:mpropval name="SCI_PromotedFrom" type="StringType">
										<sci:value>Expectation Value</sci:value>
									</sci:mpropval>
									<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
								</sci:metaproplist>
								<sci:help>Sets the threshold expectation value for keeping alignments.  This is the E from the Karlin-Altschul equation. Scientific notation may be used, e.g., 1e-3 or 1.5e-3.</sci:help>
								<sci:value>$(Expectation Value)</sci:value>
							</sci:arg>
							<sci:arg name="Maximum Hits" type="StringType" required="false" visibility="visible" multi="false">
								<sci:metaproplist>
									<sci:mpropval name="SCI_PromotedFrom" type="StringType">
										<sci:value>Maximum Hits</sci:value>
									</sci:mpropval>
									<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
								</sci:metaproplist>
								<sci:help>Truncate the number of database hits</sci:help>
								<sci:value>$(Maximum Hits)</sci:value>
							</sci:arg>
							<sci:arg name="Search Options" type="GroupType" required="false" visibility="visible" multi="false" expanded="true">
								<sci:metaproplist>
									<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
									<sci:mpropval name="SCI_PromotedFrom" type="StringType">
										<sci:value>Search Options</sci:value>
									</sci:mpropval>
								</sci:metaproplist>
								<sci:member>Database Genetic Code</sci:member>
								<sci:member>Query Genetic Code</sci:member>
								<sci:member>Use Composition Based Statistics</sci:member>
								<sci:member>Matrix</sci:member>
								<sci:member>Gapped Alignment</sci:member>
								<sci:member>Lower Case Filtering</sci:member>
								<sci:member>Filter Query Sequence</sci:member>
								<sci:member>Strand</sci:member>
								<sci:member>Word Size</sci:member>
								<sci:member>Match Reward</sci:member>
								<sci:member>Mismatch Penalty</sci:member>
								<sci:member>Gap Extension Penalty</sci:member>
								<sci:member>Gap Opening Penalty</sci:member>
								<sci:member>Maximum HSPs Per Hit</sci:member>
							</sci:arg>
							<sci:arg name="Maximum HSPs Per Hit" type="StringType" required="false" visibility="visible" multi="false">
								<sci:metaproplist>
									<sci:mpropval name="SCI_PromotedFrom" type="StringType">
										<sci:value>Maximum HSPs Per Hit</sci:value>
									</sci:mpropval>
									<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
								</sci:metaproplist>
								<sci:help>Truncate the number of HSPs (high scoring pairs) per database hit</sci:help>
								<sci:value>$(Maximum HSPs Per Hit)</sci:value>
							</sci:arg>
							<sci:arg name="Gap Opening Penalty" type="StringType" required="true" visibility="visible" multi="false">
								<sci:metaproplist>
									<sci:mpropval name="SCI_PromotedFrom" type="StringType">
										<sci:value>Gap Opening Penalty</sci:value>
									</sci:mpropval>
									<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
								</sci:metaproplist>
								<sci:help>Penalty for opening a gap</sci:help>
								<sci:value>$(Gap Opening Penalty)</sci:value>
							</sci:arg>
							<sci:arg name="Gap Extension Penalty" type="StringType" required="true" visibility="visible" multi="false">
								<sci:metaproplist>
									<sci:mpropval name="SCI_PromotedFrom" type="StringType">
										<sci:value>Gap Extension Penalty</sci:value>
									</sci:mpropval>
									<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
								</sci:metaproplist>
								<sci:help>Penalty for extending an existing gap by one character</sci:help>
								<sci:value>$(Gap Extension Penalty)</sci:value>
							</sci:arg>
							<sci:arg name="Mismatch Penalty" type="StringType" required="true" visibility="visible" multi="false">
								<sci:metaproplist>
									<sci:mpropval name="SCI_PromotedFrom" type="StringType">
										<sci:value>Mismatch Penalty</sci:value>
									</sci:mpropval>
									<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
								</sci:metaproplist>
								<sci:help>Sets the penalty for a nucleotide mismatch</sci:help>
								<sci:value>$(Mismatch Penalty)</sci:value>
							</sci:arg>
							<sci:arg name="Match Reward" type="StringType" required="true" visibility="visible" multi="false" expanded="true">
								<sci:metaproplist>
									<sci:mpropval name="SCI_PromotedFrom" type="StringType">
										<sci:value>Match Reward</sci:value>
									</sci:mpropval>
									<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
								</sci:metaproplist>
								<sci:help>Sets the reward for a nucleotide match</sci:help>
								<sci:value>$(Match Reward)</sci:value>
							</sci:arg>
							<sci:arg name="Word Size" type="StringType" required="true" visibility="visible" multi="false">
								<sci:metaproplist>
									<sci:mpropval name="SCI_PromotedFrom" type="StringType">
										<sci:value>Word Size</sci:value>
									</sci:mpropval>
									<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
								</sci:metaproplist>
								<sci:help>Sets the word size for the initial word search</sci:help>
								<sci:value>$(Word Size)</sci:value>
							</sci:arg>
							<sci:arg name="Strand" type="StringType" required="true" visibility="visible" multi="false">
								<sci:metaproplist>
									<sci:mpropval name="SCI_PromotedFrom" type="StringType">
										<sci:value>Strand</sci:value>
									</sci:mpropval>
									<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
								</sci:metaproplist>
								<sci:help>Chooses which strand of DNA-based queries is searched</sci:help>
								<sci:value>$(Strand)</sci:value>
							</sci:arg>
							<sci:arg name="Filter Query Sequence" type="StringType" required="true" visibility="visible" multi="false">
								<sci:metaproplist>
									<sci:mpropval name="SCI_PromotedFrom" type="StringType">
										<sci:value>Filter Query Sequence</sci:value>
									</sci:mpropval>
									<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
								</sci:metaproplist>
								<sci:help>Filter the query sequence for low-complexity subsequences.  Uses DUST.</sci:help>
								<sci:value>$(Filter Query Sequence)</sci:value>
							</sci:arg>
							<sci:arg name="Lower Case Filtering" type="StringType" required="true" visibility="visible" multi="false">
								<sci:metaproplist>
									<sci:mpropval name="SCI_PromotedFrom" type="StringType">
										<sci:value>Lower Case Filtering</sci:value>
									</sci:mpropval>
									<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
								</sci:metaproplist>
								<sci:help>Use lower case filtering of the query sequence</sci:help>
								<sci:value>$(Lower Case Filtering)</sci:value>
							</sci:arg>
							<sci:arg name="Gapped Alignment" type="StringType" required="true" visibility="visible" multi="false">
								<sci:metaproplist>
									<sci:mpropval name="SCI_PromotedFrom" type="StringType">
										<sci:value>Gapped Alignment</sci:value>
									</sci:mpropval>
									<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
								</sci:metaproplist>
								<sci:help>Perform gapped alignment</sci:help>
								<sci:value>$(Gapped Alignment)</sci:value>
							</sci:arg>
							<sci:arg name="Matrix" type="StringType" required="true" visibility="visible" multi="false" uimpl="false">
								<sci:metaproplist>
									<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
									<sci:mpropval name="SCI_PromotedFrom" type="StringType">
										<sci:value>Matrix</sci:value>
									</sci:mpropval>
								</sci:metaproplist>
								<sci:help>Designates a protein similarity matrix</sci:help>
								<sci:value>$(Matrix)</sci:value>
							</sci:arg>
							<sci:arg name="Use Composition Based Statistics" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
								<sci:metaproplist>
									<sci:mpropval name="SCI_PromotedFrom" type="StringType">
										<sci:value>Use Composition Based Statistics</sci:value>
									</sci:mpropval>
									<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
								</sci:metaproplist>
								<sci:help>Use composition based score adjustment.</sci:help>
								<sci:value>$(Use Composition Based Statistics)</sci:value>
							</sci:arg>
							<sci:arg name="Query Genetic Code" type="StringType" required="true" visibility="visible" multi="false" expanded="true" uimpl="false">
								<sci:metaproplist>
									<sci:mpropval name="SCI_PromotedFrom" type="StringType">
										<sci:value>Query Genetic Code</sci:value>
									</sci:mpropval>
									<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
								</sci:metaproplist>
								<sci:help>Genetic code to use for translation of the query nucleotide sequence</sci:help>
								<sci:value>$(Query Genetic Code)</sci:value>
							</sci:arg>
							<sci:arg name="Database Genetic Code" type="StringType" required="true" visibility="visible" multi="false" uimpl="false">
								<sci:metaproplist>
									<sci:mpropval name="SCI_PromotedFrom" type="StringType">
										<sci:value>Database Genetic Code</sci:value>
									</sci:mpropval>
									<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
								</sci:metaproplist>
								<sci:help>Genetic code to use for translation of the database nucleotide sequence</sci:help>
								<sci:value>$(Database Genetic Code)</sci:value>
							</sci:arg>
							<sci:arg name="Additional Options" type="GroupType" required="false" visibility="visible" multi="false" expanded="true">
								<sci:metaproplist>
									<sci:mpropval name="SCI_PromotedFrom" type="StringType">
										<sci:value>Additional Options</sci:value>
									</sci:mpropval>
									<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
								</sci:metaproplist>
								<sci:member>Result Text Property</sci:member>
								<sci:member>URL</sci:member>
								<sci:member>XML Output File</sci:member>
								<sci:member>Polling Time</sci:member>
								<sci:member>Time Out</sci:member>
								<sci:member>Use BioPerl BLAST Parser</sci:member>
							</sci:arg>
							<sci:arg name="Result Text Property" type="StringType" required="false" visibility="visible" multi="false">
								<sci:metaproplist>
									<sci:mpropval name="SCI_PromotedFrom" type="StringType">
										<sci:value>Result Text Property</sci:value>
									</sci:mpropval>
									<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
								</sci:metaproplist>
								<sci:help>Name of property to hold raw result text.  Property will be added to the SearchResult node.</sci:help>
								<sci:value>$(Result Text Property)</sci:value>
							</sci:arg>
							<sci:arg name="URL" type="StringType" required="false" visibility="visible" multi="false">
								<sci:metaproplist>
									<sci:mpropval name="SCI_PromotedFrom" type="StringType">
										<sci:value>URL</sci:value>
									</sci:mpropval>
									<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
								</sci:metaproplist>
								<sci:value>$(URL)</sci:value>
							</sci:arg>
							<sci:arg name="XML Output File" type="StringType" required="false" visibility="visible" multi="false">
								<sci:metaproplist>
									<sci:mpropval name="SCI_PromotedFrom" type="StringType">
										<sci:value>XML Output File</sci:value>
									</sci:mpropval>
									<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
								</sci:metaproplist>
								<sci:value>$(XML Output File)</sci:value>
							</sci:arg>
							<sci:arg name="Polling Time" type="LongType" required="false" visibility="visible" multi="false">
								<sci:help>Specifies the time in seconds to poll the job status. Do not poll more often than once a minute according to the NCBI BLAST usage guidelines.</sci:help>
								<sci:value>$(Polling Time)</sci:value>
							</sci:arg>
							<sci:arg name="Time Out" type="DoubleType" required="false" visibility="visible" multi="false" expanded="true">
								<sci:help>Specifies the time out in minutes. If empty, the program will wait until the results come back.</sci:help>
								<sci:value>$(Time Out)</sci:value>
							</sci:arg>
							<sci:arg name="RunToCompletion" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
								<sci:help>When &lt;i&gt;RunToCompletion&lt;/i&gt; is set to &quot;True - For Each Data Record&quot;, the subprotocol is re-initialized and executed in its entirety for each individual data record it processes.
&lt;p&gt;
When set to &quot;True - For Each Category&quot;, the data records are divided into categories based on the value of the Categorize Using parameter and then the subprotocol is re-initialized and executed in its entirety for each category of data records. When used in conjunction with &lt;i&gt;Parallel Processing Options&lt;/i&gt;, each category of data records will be sent to the remote server as part of one single batch.</sci:help>
								<sci:member>RunToCompletion Categorize Using</sci:member>
								<sci:legalval>False</sci:legalval>
								<sci:legalval selected="true">True - For Each Data Record</sci:legalval>
								<sci:legalval>True - For Each Category</sci:legalval>
							</sci:arg>
							<sci:arg name="RunToCompletion Categorize Using" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
								<sci:help>Required when RunToCompletion is set to &lt;i&gt;True - For Each Category&lt;/i&gt;, this parameter specifies the property or properties used to define the categories.</sci:help>
								<sci:validscript>SetInvalidDetails(&apos;This parameter is required when RunToCompletion is set to True - For Each Category&apos;);
Parameter() ne &apos;&apos;;</sci:validscript>
								<sci:enabledscript>SetDisabledDetails(&apos;To Enable, Set RunToCompletion to True - For Each Category&apos;);
Parameter(&apos;RunToCompletion&apos;) eq &apos;True - For Each Category&apos;;</sci:enabledscript>
							</sci:arg>
							<sci:arg name="Parallel Processing Options" type="BoolType" required="false" visibility="visible" multi="false" uimpl="false">
								<sci:help>&lt;p&gt;
When set to True, this set of options allows the subprotocol to execute in parallel on one or more independent Pipeline Pilot servers, running locally or remotely.  Additional parameters control the number of data records to send in each process batch, the list of Pipeline Pilot servers to use, the number of protocol processes that can be executed on each server, and whether to preserve the order of the processed data records.
&lt;/p&gt;&lt;p&gt;
Use this option with care, since it will not increase throughput in all circumstances. Generally speaking, it yields improved performance when the parallelization benefits outweigh the data transfer overhead for the specified batch size.  As a rough guide, performance can be improved when each individual batch requires at least 10 seconds to execute, although this can be affected by the size of each data record.
&lt;/p&gt;&lt;p&gt;
When running the protocol with debugging, the subprotocol will provide debugging messages to detail each of the various steps of execution.  Also, components located within the parallel subprotocol will display their debugging messages as well.
&lt;/p&gt;&lt;p&gt;
For more information on the parallel subprotocol options, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/subprots/subprot_parallel_processing.htm&apos;)&quot;&gt;Parallel Processing Subprotocols&lt;/a&gt;.
&lt;/p&gt;
</sci:help>
								<sci:member>Parallel Processing Options Batch Size</sci:member>
								<sci:member>Parallel Processing Options Server</sci:member>
								<sci:member>Parallel Processing Options Preserve Order</sci:member>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="Parallel Processing Options Batch Size" type="LongType" required="true" visibility="visible" multi="false" uimpl="false">
								<sci:help>&lt;p&gt;The number of records to send to the remote server(s) for each subprotocol execution.  In general, performance is optimized when the amount of time required to process each batch is at least 10 seconds (note that this can vary depending on the characteristics of the remote server&apos;s hardware).  Use a batch size of -1 to pass all data in a single batch.&lt;/p&gt;
&lt;p&gt;When &lt;i&gt;RunToCompletion&lt;/i&gt; is set to &quot;True - for each category&quot;, the batch sizes will be determined by the number of records in each individual category.  Therefore, the &lt;i&gt;Batch Size&lt;/i&gt; parameter is not applicable.</sci:help>
								<sci:enabledscript>#parallel := Parameter(&apos;Parallel Processing Options&apos;);
if (not #parallel) then
	SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
end if;
#parallel;</sci:enabledscript>
							</sci:arg>
							<sci:arg name="Parallel Processing Options Server" type="StringType" required="false" visibility="visible" multi="true" expanded="true" legalvalsenforced="false" uimpl="false">
								<sci:help>&lt;p&gt;
A comma-separated list of Pipeline Pilot servers on which to execute the parallel subprotocol.  The server names should be in the same format as the Pipeline Pilot Client&apos;s change server dialog (that is, server-name:port-number).
&lt;/p&gt;&lt;p&gt;
Specifying &lt;b&gt;localhost&lt;/b&gt; as a server will cause the subprotocol to use its own Pipeline Pilot server.  This can be useful on multi-CPU/multi-core systems (where the subprotocol jobs are spawned on the same machine) and Pipeline Pilot Linux clusters (where &apos;localhost&apos; requests spawning the subprotocol jobs on the same cluster).
&lt;/p&gt;</sci:help>
								<sci:member>Parallel Processing Options Server Processes</sci:member>
								<sci:member>Parallel Processing Options Server Run On Grid</sci:member>
								<sci:validscript>SetInvalidDetails(&apos;This parameter is required.&apos;);
Parameter() ne &apos;&apos;;</sci:validscript>
								<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
							</sci:arg>
							<sci:arg name="Parallel Processing Options Server Processes" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
								<sci:help>A comma-separated list of the maximum number of batches that can be simultaneously executed on each remote server.  The number of entries in this parameter must equal the number of servers. If &apos;*&apos; is specified as the number of processes, then that server will only launch as many batches as the administrator of the remote server has permitted.</sci:help>
								<sci:validscript>/* Server Processes must have the same number of comma separated entries as the Server parameter and must have a value*/
#processes := parameter();
expand(&apos;,&apos;, #processes);
#servers := parameter(&apos;Parallel Processing Options Server&apos;);
expand(&apos;,&apos;, #servers);

if (numvalues(#processes) == 0) then
	SetInvalidDetails(&apos;This parameter is required.&apos;);
else
	SetInvalidDetails(&apos;The number of server processes (&apos; . numvalues(#processes) . &apos;) must equal the number of servers (&apos; . numvalues(#servers) . &apos;).&apos;);
end if;
numvalues(#processes) &gt; 0 and numvalues(#processes) == numvalues(#servers);</sci:validscript>
								<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
							</sci:arg>
							<sci:arg name="Parallel Processing Options Server Run On Grid" type="BoolType" required="false" visibility="visible" multi="false" uimpl="false">
								<sci:help>Run subprotocol on grid engine if available.</sci:help>
								<sci:member>Parallel Processing Options Server Run On Grid Queue Name</sci:member>
								<sci:member>Parallel Processing Options Server Run On Grid Grid Options</sci:member>
								<sci:enabledscript>parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
								<sci:legalval selected="true">True</sci:legalval>
								<sci:legalval>False</sci:legalval>
							</sci:arg>
							<sci:arg name="Parallel Processing Options Server Run On Grid Queue Name" type="StringType" required="false" visibility="visible" multi="false" legalvalsenforced="false" uimpl="false">
								<sci:help>Select the queue name on the grid to submit jobs to. Leave blank to use default queue name.</sci:help>
								<sci:enabledscript>parameter(&apos;Parallel Processing Options Server Run On Grid&apos;);</sci:enabledscript>
							</sci:arg>
							<sci:arg name="Parallel Processing Options Server Run On Grid Grid Options" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
								<sci:help>Use this to specify grid engine specific command line parameters to the job submission command. Leave blank to use defaults.</sci:help>
								<sci:enabledscript>parameter(&apos;Parallel Processing Options Server Run On Grid&apos;);</sci:enabledscript>
							</sci:arg>
							<sci:arg name="Parallel Processing Options Preserve Order" type="BoolType" required="false" visibility="visible" multi="false" uimpl="false">
								<sci:help>Whether to preserve the order of the data as it enters and leaves the remote subprotocol.</sci:help>
								<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
								<sci:legalval selected="true">True</sci:legalval>
								<sci:legalval>False</sci:legalval>
							</sci:arg>
							<sci:arg name="Tempfiles" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
								<sci:help>&lt;p&gt;A comma-delimited list of global properties, each of which is automatically populated with the name of a file in the job&apos;s temporary folder, which always has a unique name.&lt;p/&gt;For each global name, an additional global is created (with the suffix &lt;i&gt;_Filename&lt;/i&gt;) that hold only the leaf file name of the temporary file.&lt;/p&gt;</sci:help>
								<sci:value>responseXML</sci:value>
							</sci:arg>
							<sci:arg name="DeclareLocal" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
								<sci:help>&lt;p&gt;Lists a set of properties (without the @) to create on the global property list for this subprotocol. Separate property names with commas. Such properties can only be accessed within the scope of this subprotocol and its descendent subprotocols.&lt;p/&gt;

&lt;p&gt;Any global property not declared in this way is created on the top-level global property list and is accessible from all subprotocols, but breaks the encapsulation of the subprotocol and may collide with another property of the same name.&lt;/p&gt;

&lt;p&gt;Therefore, you should always declare a new global property in the &lt;i&gt;DeclareLocal&lt;/i&gt; parameter, to minimize the scope of the global property to the subprotocol where it is used.&lt;/p&gt;

&lt;p&gt;The example &lt;i&gt;DeclareLocal&lt;/i&gt; value below creates 3 global properties in the subprotocol scope. Note that you can initialize the declared global value with a scalar value using the &quot;:=&quot; syntax, as shown. You can surround text string values with quotes to aid clarity.&lt;/p&gt;
&lt;pre&gt;
    SubP_Counter := 0, SubP_NameHash, SubP_TitleText:=&quot;Sample 1&quot;
&lt;/pre&gt;
</sci:help>
								<sci:value>resultFound, encodedQuery, RID, StartTime, BlastError, SeqCount, SeqCache</sci:value>
							</sci:arg>
							<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
								<sci:help>Component Attributes</sci:help>
								<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsFail</sci:legalval>
								<sci:legalval>ComponentRunsLocal</sci:legalval>
							</sci:arg>
							<sci:arg name="Use BioPerl BLAST Parser" type="LinkGlobalPropertyType" required="false" visibility="visible" multi="false" legalvalsenforced="false">
								<sci:metaproplist>
									<sci:mpropval name="SCI_PromotedFrom" type="StringType">
										<sci:value>Use BioPerl BLAST Parser</sci:value>
									</sci:mpropval>
									<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
									<sci:propval name="SCI_InitializeUsingRevertInfo" base64="UI1">Al1HAAKZAElmIFRydWUsIEJpb1Blcmwgd2lsbCBiZSB1c2VkIHRvIHBhcnNlIEJMQVNUIHJlc3VsdCBmaWxlLiBJZiBGYWxzZSBhbmQgPGk+RmlsZSBGb3JtYXQ8L2k+IGlzIDxiPmJsYXN0eG1sPC9iPiwgYSBmYXN0ZXIgcHJvcHJpZXRhcnkgcGFyc2VyIHdpbGwgYmUgdXNlZC4gJEJvb2xUeXBlBAgAAoYAU2V0RGlzYWJsZWREZXRhaWxzKAoJICAgICAgICdUbyBlbmFibGUgJy5QYXJhbWV0ZXJOYW1lKCkuJywgc2V0IEZpbGUgRm9ybWF0IHRvICJibGFzdHhtbCInKTsKCVBhcmFtZXRlcignRmlsZSBGb3JtYXQnKSBlcSAnYmxhc3R4bWwnOwAAAQQBAAQA/AAAAAAIFFRydWUYRmFsc2UIFFRydWUYRmFsc2UAAQFkAv5qAQAAARlVc2UgQmlvUGVybCBCTEFTVCBQYXJzZXIDzFPPuxRUcnVlAwAAACAIARFTQ0lfUHJvbW90ZWRGcm9tAx09w44EARlVc2UgQmlvUGVybCBCTEFTVCBQYXJzZXIBGFNDSV9Qcm9tb3Rpb25SZW5hbWVSdWxlA8xTz7swVXNpbmdQYXJlbnQ=</sci:propval>
									<sci:propval name="SCI_InitializeUsingOrigType">BoolType</sci:propval>
									<sci:propval name="SCI_InitializeUsingOrigRFED" boolVal="true"/>
									<sci:propval name="SCI_EvalOnInit" boolVal="true"/>
									<sci:propval name="SCI_EvalOnInitType">LinkGlobalPropertyType</sci:propval>
								</sci:metaproplist>
								<sci:help>If True, BioPerl will be used to parse BLAST result file. If False and &lt;i&gt;File Format&lt;/i&gt; is &lt;b&gt;blastxml&lt;/b&gt;, a faster proprietary parser will be used. </sci:help>
								<sci:enabledscript>SetDisabledDetails(
	       &apos;To enable &apos;.ParameterName().&apos;, set File Format to &quot;blastxml&quot;&apos;);
	Parameter(&apos;File Format&apos;) eq &apos;blastxml&apos;;</sci:enabledscript>
								<sci:legalval>True</sci:legalval>
								<sci:legalval>False</sci:legalval>
								<sci:value>Use BioPerl BLAST Parser</sci:value>
							</sci:arg>
							<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Custom Error Message</sci:help>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>Internal Remote BLAST</sci:value>
							</sci:arg>
							<sci:arg name="ProtocolAutoLayout" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol AutoLayout</sci:help>
								<sci:value>1</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:value>SUBPROTOCOLNODE</sci:value>
							</sci:arg>
							<sci:arg name="ComponentRevision" type="LongType" required="true" visibility="nevershow" multi="false">
								<sci:help>Component Revision</sci:help>
								<sci:value>790</sci:value>
							</sci:arg>
							<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>{866CC28A-2457-4ECF-A762-552D4E4FE7A6}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>690 -275</sci:value>
							</sci:arg>
							<sci:arg name="ByReference" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>By Ref</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:value>100</sci:value>
								<sci:value>Internal Remote BLAST</sci:value>
								<sci:value/>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>Generic</sci:value>
								<sci:value>Records passing out of any unconnected pass ports of components inside the subprotocol</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value>Records passing out of any unconnected fail ports of components inside the subprotocol</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The server version when this component was registered</sci:help>
								<sci:value>21.1.0.2327</sci:value>
							</sci:arg>
							<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
							<sci:arg name="Protocol Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Sticky Notes</sci:help>
							</sci:arg>
							<sci:arg name="ProtocolScale2" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Scale</sci:help>
								<sci:value>100</sci:value>
							</sci:arg>
							<sci:arg name="Protocol Options" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Protocol Options</sci:help>
								<sci:legalval>Owner Access Only</sci:legalval>
							</sci:arg>
							<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/seqanal</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The date this component was registered.</sci:help>
								<sci:value>Thu Mar  5 09:00:05 2020</sci:value>
							</sci:arg>
							<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Local Component Identifier</sci:help>
								<sci:value>2</sci:value>
							</sci:arg>
							<sci:arg name="SubProtocolMadeLinkIntoCopy" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>Subprotocol Made Link Into Copy</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="SubProtocolModified" type="BoolType" required="false" visibility="nevershow" multi="false">
								<sci:help>Subprotocol Modified</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="OriginalPackage" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>OriginalPackage</sci:help>
								<sci:value>scitegic/seqanal</sci:value>
							</sci:arg>
							<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The original path within the database of this component.</sci:help>
								<sci:value>Components\Biology\Sequence Analysis\Utilities\Internals\Internal Remote BLAST</sci:value>
							</sci:arg>
						</sci:component>
						<sci:protocol>
							<sci:data object="SciTegic.DataCacheIO.1">
								<sci:component name="Cache Writer" version="2">
									<sci:arg name="CacheID" type="LinkGlobalPropertyType" required="true" visibility="visible" multi="false" legalvalsenforced="false">
										<sci:metaproplist>
											<sci:propval name="SCI_InitializeUsingRevertInfo" base64="UI1">Al1HAALYAFRoZSBuYW1lIG9mIHRoZSBjYWNoZSB0byB3cml0ZSwgZm9yIGV4YW1wbGU6IEEsIDEyMzQgb3IgTXlDYWNoZS4gIFRvIGNyZWF0ZSBhIHRlbXBvcmFyeSBjYWNoZUlEIHVzZSB0aGUgPGEgaHJlZj0iamF2YXNjcmlwdDpEb0xpbmsoJ3tCOTFFRTUyMS1DMDI4LTQ2QkUtODlBNC01MUNERTk4Nzc1ODl9JykiPkNyZWF0ZSBUZW1wb3JhcnkgQ2FjaGVJRHM8L2E+IGNvbXBvbmVudC4KLFN0cmluZ1R5cGUADAAAAAEBAAEABAD8AAAAAAAAAAAAIENhY2hlSUQDzFPPuyRTZXFDYWNoZQA=</sci:propval>
											<sci:propval name="SCI_InitializeUsingOrigType">StringType</sci:propval>
											<sci:propval name="SCI_EvalOnInit" boolVal="true"/>
											<sci:propval name="SCI_EvalOnInitType">StringType</sci:propval>
										</sci:metaproplist>
										<sci:help>The name of the cache to write, for example: A, 1234 or MyCache.  To create a temporary cacheID use the &lt;a href=&quot;javascript:DoLink(&apos;{B91EE521-C028-46BE-89A4-51CDE9877589}&apos;)&quot;&gt;Create Temporary CacheIDs&lt;/a&gt; component.
</sci:help>
										<sci:member>Maximum</sci:member>
										<sci:member>Append</sci:member>
										<sci:member>Scope</sci:member>
										<sci:value>SeqCache</sci:value>
									</sci:arg>
									<sci:arg name="Maximum" type="LongType" required="false" visibility="visible" multi="false">
										<sci:help>The maximum number of data records to write to the cache.</sci:help>
									</sci:arg>
									<sci:arg name="Append" type="BoolType" required="true" visibility="visible" multi="false">
										<sci:help>If True, append to a currently-existing cache if possible; if False, clear any current contents of the cache</sci:help>
										<sci:legalval>True</sci:legalval>
										<sci:legalval selected="true">False</sci:legalval>
									</sci:arg>
									<sci:arg name="Scope" type="StringType" required="true" visibility="visible" multi="false">
										<sci:help>The scope of the cache determines the length of time the cache exists and 
the visibility of the cache to other jobs and users. &lt;I&gt;Job Only&lt;/I&gt; creates a cache that is visible
only to components in the currently-running protocol, and which is deleted when the protocol finishes.
&lt;I&gt;User Only&lt;/I&gt; creates a cache that is visible to components in any protocol a particular user runs;  
&lt;I&gt;All Users&lt;/I&gt; creates a cache that is visible to any user on the Pipeline Pilot server. 
&lt;P&gt;Each scope has its own namespace, so you have to 
specify both the &lt;i&gt;CacheID&lt;/i&gt; and the &lt;i&gt;Scope&lt;/i&gt; to fully determine a particular cache.&lt;/P&gt;
&lt;P&gt;Since the caches created with scopes &lt;I&gt;User Only&lt;/I&gt; and &lt;I&gt;All Users&lt;/I&gt;
may be accessed by multiple jobs, you should use caution, as problems may arise if two jobs try to write to 
the same shared cache at once. Also, to save disk space, you are responsible for deleting these caches
when finished, using the &lt;I&gt;Delete Cache&lt;/I&gt; component. &lt;/P&gt;
			</sci:help>
										<sci:legalval selected="true">Job Only</sci:legalval>
										<sci:legalval>User Only</sci:legalval>
										<sci:legalval>All Users</sci:legalval>
									</sci:arg>
									<sci:arg name="Create Index for Join" type="BoolType" required="false" visibility="visible" multi="false">
										<sci:help>If set to True, creates an index for the cache that can be used by subsequent &lt;a href=&quot;javascript:DoLink(&apos;{BDEEEC41-E62B-4FDE-B0D0-8B9C96CA2497}&apos;)&quot;&gt;Join Data from Cache&lt;/a&gt; components.  As long as the later Join components use identical settings, the created index will greatly improve the performance of the join.  When set to true, you will also need to update &lt;i&gt;JoinUsing&lt;/i&gt;, &lt;i&gt;JoinUsingListType&lt;/i&gt;, &lt;i&gt;JoinPropertyType&lt;/i&gt;, and &lt;i&gt;IgnoreCase&lt;/i&gt; to match your Join component.</sci:help>
										<sci:member>JoinUsing</sci:member>
										<sci:member>IgnoreCase</sci:member>
										<sci:member>JoinPropertyType</sci:member>
										<sci:member>JoinUsingListType</sci:member>
										<sci:legalval>True</sci:legalval>
										<sci:legalval selected="true">False</sci:legalval>
									</sci:arg>
									<sci:arg name="JoinUsing" type="StringType" required="false" visibility="visible" multi="false">
										<sci:help>The name of the property or properties to index for use by &lt;a href=&quot;javascript:DoLink(&apos;{BDEEEC41-E62B-4FDE-B0D0-8B9C96CA2497}&apos;)&quot;&gt;Join Data from Cache&lt;/a&gt; components.  This parameter must match the identically named parameter on the Join component in order to benefit from the created index.</sci:help>
										<sci:validscript>SetInvalidDetails(&apos;This parameter is required.&apos;);
Parameter() ne &apos;&apos;;</sci:validscript>
										<sci:enabledscript>Parameter(&apos;Create Index for Join&apos;);</sci:enabledscript>
									</sci:arg>
									<sci:arg name="JoinUsingListType" type="StringType" required="false" visibility="visible" multi="false">
										<sci:help>&lt;p&gt;Indicates how &lt;i&gt;JoinUsing&lt;/i&gt; properties are interpreted for creating a cache index when more than one property is listed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;UseFirstDefinedValue&lt;/i&gt;: The join will use only the first property in the list with a defined value for a record.
&lt;li&gt;&lt;i&gt;UseAllValues&lt;/i&gt;: The join will use the concatentation of the values of all properties listed; a match occurs only when records share the same value for all the properties.
&lt;/ul&gt;
&lt;p&gt;This parameter must match the identically named parameter on the Join component in order to benefit from the created index.&lt;/p&gt;</sci:help>
										<sci:enabledscript>Parameter(&apos;Create Index for Join&apos;);</sci:enabledscript>
										<sci:legalval>UseFirstDefinedValue</sci:legalval>
										<sci:legalval selected="true">UseAllValues</sci:legalval>
									</sci:arg>
									<sci:arg name="JoinPropertyType" type="StringType" required="false" visibility="visible" multi="false">
										<sci:help>The data type of the &lt;i&gt;JoinUsing&lt;/i&gt; property. This parameter must match the identically named parameter on the Join component in order to benefit from the created index.</sci:help>
										<sci:enabledscript>Parameter(&apos;Create Index for Join&apos;);</sci:enabledscript>
										<sci:legalval>IsNumeric</sci:legalval>
										<sci:legalval selected="true">IsText</sci:legalval>
										<sci:legalval>IsDate</sci:legalval>
									</sci:arg>
									<sci:arg name="IgnoreCase" type="BoolType" required="false" visibility="visible" multi="false">
										<sci:help>Consider lower-case and upper-case letters as equivalent when determining the identity of &lt;i&gt;JoinUsing&lt;/i&gt; property values.  This parameter must match the identically named parameter on the Join component in order to benefit from the created index.</sci:help>
										<sci:enabledscript>Parameter(&apos;Create Index for Join&apos;);</sci:enabledscript>
										<sci:legalval selected="true">True</sci:legalval>
										<sci:legalval>False</sci:legalval>
									</sci:arg>
									<sci:arg name="Additional Options" type="GroupType" required="false" visibility="visible" multi="false">
										<sci:help>Additional parameters to control the component behavior.</sci:help>
										<sci:member>Write Globals</sci:member>
										<sci:member>Enable Compression</sci:member>
									</sci:arg>
									<sci:arg name="Write Globals" type="StringType" required="false" visibility="visible" multi="true">
										<sci:help>&lt;p&gt;Specifies which globals, if any, are written into the cache.&lt;/p&gt;
&lt;p&gt;The value is an array of top-level global names or global nodes specified using XPath notation. Note that node names should end with a forward slash (/).&lt;/p&gt;</sci:help>
									</sci:arg>
									<sci:arg name="Enable Compression" type="BoolType" required="false" visibility="visible" multi="false" expanded="true" legalvalsenforced="false">
										<sci:help>&lt;p&gt;Specifies if compression of the data should be enabled whenever available.&lt;/p&gt;
&lt;b&gt;Warning:&lt;b&gt; Due to the resulting larger size of the cache files when using uncompressed files, this option should typically only be used for smaller data sets.</sci:help>
										<sci:legalval selected="true">True</sci:legalval>
										<sci:legalval>False</sci:legalval>
									</sci:arg>
									<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
										<sci:help>Component Attributes</sci:help>
										<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
										<sci:legalval>ComponentReturnsPass</sci:legalval>
										<sci:legalval>ComponentReturnsFail</sci:legalval>
										<sci:legalval>ComponentRunsLocal</sci:legalval>
									</sci:arg>
									<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="CacheCategory" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The cache type, that determines its folder location within the job.
               </sci:help>
									</sci:arg>
									<sci:arg name="Mode" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:help>Specifies the action of this component:

 - Writer: The component writes data records to a new cache.
 - Reader: The component reads data records from a pre-existing, completed cache.
 - Writer/Reader: The component writes data out to a cache and then reads it in again to generate new records.
               </sci:help>
										<sci:legalval selected="true">Writer</sci:legalval>
										<sci:legalval>Reader</sci:legalval>
										<sci:legalval>Writer/Reader</sci:legalval>
									</sci:arg>
									<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The user who registered this component.</sci:help>
										<sci:value>scitegic/generic</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The date this component was registered.</sci:help>
										<sci:value>Wed Oct 03 14:48:02 2012</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>Cache Writer</sci:value>
									</sci:arg>
									<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>1365 -95</sci:value>
									</sci:arg>
									<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:value>DATABASENODE</sci:value>
									</sci:arg>
									<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>{674E3781-33EA-42BB-9099-49CB4C3D08E6}</sci:value>
									</sci:arg>
									<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The component this component is based upon.</sci:help>
										<sci:value>Cache Writer</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
										<sci:value>100</sci:value>
										<sci:value>Writes data records to a named cache</sci:value>
										<sci:value>&lt;p&gt;A data cache is place where you can temporarily store data records without losing information.  Use &lt;i&gt;CacheID&lt;/i&gt; to specify the name of the cache.  A cache can contain records of different types.&lt;/p&gt;

&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To avoid clashes with other cache names, you can use the &lt;a href=&quot;javascript:DoLink(&apos;{B91EE521-C028-46BE-89A4-51CDE9877589}&apos;)&quot;&gt;Create Temporary CacheIDs&lt;/a&gt; component to obtain a global with a unique cacheID.  For example, you could have a temporary cacheID identified by MYCACHE and set &lt;i&gt;CacheID&lt;/i&gt; to $(MYCACHE).&lt;/li&gt;
&lt;li&gt;Typically, a cache is scoped to only be visible to component in the currently-running job.  To create caches that outlive a job, and may be seen by other users, use the &lt;I&gt;Scope&lt;/I&gt; parameter.&lt;/li&gt;
&lt;li&gt;Caches can be used with the &lt;a href=&quot;javascript:DoLink(&apos;{BDEEEC41-E62B-4FDE-B0D0-8B9C96CA2497}&apos;)&quot;&gt;Join Data from Cache&lt;/a&gt; component to add properties to a separate data stream.  To improve the performance of the join, the cache can be indexed during creation by using the &lt;i&gt;Create Index for Join&lt;/i&gt; parameter.&lt;/li&gt;
&lt;/ul&gt;

&lt;b&gt;See Also:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To retrieve data from a cache, use &lt;a href=&quot;javascript:DoLink(&apos;{704E3781-33EA-42BB-9099-05B44C3D08E6}&apos;)&quot;&gt;Cache Reader&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To join against a cache, use &lt;a href=&quot;javascript:DoLink(&apos;{BDEEEC41-E62B-4FDE-B0D0-8B9C96CA2497}&apos;)&quot;&gt;Join Data from Cache&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To delete a cache, use &lt;a href=&quot;javascript:DoLink(&apos;{704E3781-33EA-42BB-9088-05B44C3D08E6}&apos;)&quot;&gt;Delete Cache&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;</sci:value>
										<sci:value>Generic</sci:value>
										<sci:value/>
										<sci:value>None</sci:value>
										<sci:value/>
										<sci:value>None</sci:value>
										<sci:value/>
									</sci:arg>
									<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The server version when this component was registered</sci:help>
										<sci:value>9.0.0.100</sci:value>
									</sci:arg>
									<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:help>Local Component Identifier</sci:help>
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The original path within the database of this component.</sci:help>
										<sci:value>Components\Data Access and Manipulation\File Writers\Cache Writer</sci:value>
									</sci:arg>
								</sci:component>
							</sci:data>
							<sci:data object="SciTegic.EvaluateExpression.1">
								<sci:component name="Custom Manipulator (PilotScript)" version="2">
									<sci:arg name="Expression" type="ExpressionType" required="true" visibility="visible" multi="false" expanded="true" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>Expression (or list of expressions separated by semi-colons) to evaluate.</sci:help>
										<sci:member>Initial Expression</sci:member>
										<sci:member>Final Expression</sci:member>
										<sci:member>Keep Calculated Properties</sci:member>
										<sci:value>@resultFound:=0;
@EncodedQuery:=&apos;&apos;;
@BlastError:=&apos;&apos;;
@StartTime:=DateSecondsSince1970();
@SeqCache:=&apos;s&apos;.CreateGUID(1);
@SeqCount:=0;
@&apos;Result Text Property&apos;:=Trim(@&apos;Result Text Property&apos;);</sci:value>
									</sci:arg>
									<sci:arg name="Initial Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>&lt;p&gt;
This expression is executed only the first time data passes into the component.
&lt;p/&gt; 
Since there is no data available at initialization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
									</sci:arg>
									<sci:arg name="Final Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>&lt;p&gt;
This expression is executed only at finalization (after the last data passes out of the component).
&lt;p/&gt; 
Since there is no data available at finalization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
									</sci:arg>
									<sci:arg name="Keep Calculated Properties" type="BoolType" required="true" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>Adds any properties calculated in this component to a data record&apos;s property list.</sci:help>
										<sci:legalval selected="true">True</sci:legalval>
										<sci:legalval>False</sci:legalval>
									</sci:arg>
									<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
										<sci:help>Component Attributes</sci:help>
										<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
										<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
										<sci:legalval>ComponentReturnsFail</sci:legalval>
										<sci:legalval>ComponentRunsLocal</sci:legalval>
									</sci:arg>
									<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>Custom Error Message</sci:help>
									</sci:arg>
									<sci:arg name="Do Screen" type="BoolType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>When TRUE, controls which exit port is used for
each data record by evaluating the final expression
(or only one) listed in the &quot;Expression&quot; parameter.
   -Pass (green) port when expression true
   -Fail (red) port when expression false</sci:help>
										<sci:legalval>True</sci:legalval>
										<sci:legalval selected="true">False</sci:legalval>
									</sci:arg>
									<sci:arg name="ExpressionVersion" type="LongType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>Version of expression parser to use.</sci:help>
										<sci:value>2</sci:value>
									</sci:arg>
									<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The user who registered this component.</sci:help>
										<sci:value>scitegic/generic</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The date this component was registered.</sci:help>
										<sci:value>Mon Jan 21 09:55:43 2008</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>Initialize Globals</sci:value>
									</sci:arg>
									<sci:arg name="ComponentAutoDisplayName" type="ExpressionType" required="false" visibility="nevershow" multi="false">
										<sci:help>Automatically update the component display name when the &quot;Expression&quot; property is changed. This feature is turned off after the user manually changes the display name of the component in Protocol workspace.</sci:help>
										<sci:value>#displayName := trim(Parameter(&apos;Expression&apos;, 2));
if(strlength(#displayName) &gt; 0) then	
	/* Find the first line break */
	#nl := FindSubstring(#displayName, &quot;\r&quot;);
	if #nl &lt;= 0 then
		#nl := FindSubstring(#displayName, &quot;\n&quot;);
	end if;

	/* Keep the first line only */
	if (#nl &gt; 0) then
		StrErase(#displayName, #nl);
	end if;
	
	#displayName;
else
	&quot;&quot;;
end if;</sci:value>
									</sci:arg>
									<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The component this component is based upon.</sci:help>
										<sci:value>Custom Manipulator (PilotScript)</sci:value>
									</sci:arg>
									<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:value>EXPRESSIONNODE</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>{0995D675-7EE2-432C-95DF-E91C14052B22}</sci:value>
									</sci:arg>
									<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>90 -275</sci:value>
									</sci:arg>
									<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
										<sci:value>100</sci:value>
										<sci:value>Applies a PilotScript expression to each data record
</sci:value>
										<sci:value>&lt;p&gt;PilotScript is the native scripting language in Pipeline Pilot.  It is based on PL/SQL and allows you to query or alter the properties on data records.  For example, the expression:

&lt;blockquote&gt;
&lt;code&gt;A := 10;&lt;/code&gt;
&lt;/blockquote&gt;
creates a property named &quot;A&quot; and sets the value to &quot;10&quot;.&lt;/p&gt;

&lt;p&gt;For each incoming data record the PilotScript statements in &lt;i&gt;Expression&lt;/i&gt; are evaluated.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To initialize global variables such as counters, use &lt;i&gt;Initial Expression&lt;/i&gt;.&lt;/li&gt; 
&lt;li&gt;To clean up global variables or calculate final results use &lt;i&gt;Final Expression&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Parameters on Custom Manipulators do not become global variables that can be accessed via &lt;i&gt;@ParameterName&lt;/i&gt; syntax.  They must be accessed by using the &lt;i&gt;Parameter(&apos;ParameterName&apos;)&lt;/i&gt; function or by using token substitution via &lt;i&gt;$(ParameterName)&lt;/i&gt; syntax.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;See Also:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For more information on PilotScript, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/pscript/pscript_overview.htm&apos;)&quot;&gt;PilotScript Overview&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To use PilotScript to filter data records use &lt;a href=&quot;javascript:DoLink(&apos;{DD58ECD1-516F-48FE-A5DB-8328AED680F2}&apos;)&quot;&gt;Custom Filter (PilotScript)&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

</sci:value>
										<sci:value>Generic</sci:value>
										<sci:value/>
										<sci:value>Generic</sci:value>
										<sci:value/>
										<sci:value>None</sci:value>
										<sci:value/>
									</sci:arg>
									<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The server version when this component was registered</sci:help>
										<sci:value>7.0.0.35</sci:value>
									</sci:arg>
									<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:help>Local Component Identifier</sci:help>
										<sci:value>16</sci:value>
									</sci:arg>
									<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The original path within the database of this component.</sci:help>
										<sci:value>Components\Data Access and Manipulation\Property Manipulators\Custom Manipulator (PilotScript)</sci:value>
									</sci:arg>
								</sci:component>
							</sci:data>
							<sci:data object="SciTegic.UngroupData.1">
								<sci:component name="Ungroup Data" version="2">
									<sci:arg name="Additional Options" type="GroupType" required="false" visibility="visible" multi="false">
										<sci:help>Contains less commonly used parameters</sci:help>
										<sci:member>GroupName</sci:member>
									</sci:arg>
									<sci:arg name="GroupName" type="StringType" required="false" visibility="visible" multi="false">
										<sci:help>(Optional) Restricts the ungroup process to only those groups having the given name -- the same name as specified by the &quot;Group Data&quot; component</sci:help>
										<sci:value>Data</sci:value>
									</sci:arg>
									<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
										<sci:help>Component Attributes</sci:help>
										<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
										<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
										<sci:legalval selected="true">ComponentReturnsFail</sci:legalval>
										<sci:legalval>ComponentRunsLocal</sci:legalval>
									</sci:arg>
									<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>Custom Error Message</sci:help>
									</sci:arg>
									<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The user who registered this component.</sci:help>
										<sci:value>scitegic/generic</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The date this component was registered.</sci:help>
										<sci:value>Thu Jan 19 10:40:59 2006</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>Ungroup Data</sci:value>
									</sci:arg>
									<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:value>GENERATORNODE</sci:value>
									</sci:arg>
									<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The component this component is based upon.</sci:help>
										<sci:value>Ungroup Data</sci:value>
									</sci:arg>
									<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>{57833F08-BD53-42AE-A14C-87EED61B8FBD}</sci:value>
									</sci:arg>
									<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>390 -275</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
										<sci:value>100</sci:value>
										<sci:value>Separates data records previously grouped together into the original records</sci:value>
										<sci:value>&lt;p&gt;The input record is assumed to be a grouped data record.  The individual records are extracted from the group and sent out the Pass port.  The incoming data record is discarded.&lt;/p&gt;

&lt;p&gt;You would typically use Ungroup Data as the first component inside a &lt;i&gt;RunToCompletion&lt;/i&gt; subprotocol that expects grouped data.  This executes the remainder of the subprotocol over the individual data records in the group.&lt;/p&gt;

&lt;b&gt;Note:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;It is possible to have a group which in turn has another group as one of its members (nested groups). In this case, ungrouping will separate only the top level groups. Multiple Ungroup Data components operating in series are needed to separate nested groups.&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;See Also:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To group data records together use &lt;a href=&quot;javascript:DoLink(&apos;{3FDE8197-D86F-4EB0-99FF-82D6430AF466}&apos;)&quot;&gt;Group Data by Tag&lt;/a&gt; or &lt;a href=&quot;javascript:DoLink(&apos;{C3A203C2-9470-47F8-A7FF-D5C6DD1BAA67}&apos;)&quot;&gt;Group Data by Number&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To view the structure of grouped data records use &lt;a href=&quot;javascript:DoLink(&apos;{AA4369ED-A1A1-4949-8520-39B23096ACFD}&apos;)&quot;&gt;Data Record Tree Viewer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;To learn more about &lt;i&gt;RunToCompletion&lt;/i&gt; subprotocols, see the parameter help on &lt;a href=&quot;javascript:DoLink(&apos;{17001C74-63CE-4B4B-B37C-F0EAA19CE4AA}&apos;)&quot;&gt;Subprotocol&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
</sci:value>
										<sci:value>Generic Data</sci:value>
										<sci:value>Data records with a hierarchical group of other data records</sci:value>
										<sci:value>Generic Data</sci:value>
										<sci:value>The individual data records that were contained within a hierarchical group of the incoming data</sci:value>
										<sci:value>Generic Data</sci:value>
										<sci:value>Data records on which the GroupName property is missing</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The server version when this component was registered</sci:help>
										<sci:value>6.0.0.6</sci:value>
									</sci:arg>
									<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:help>Local Component Identifier</sci:help>
										<sci:value>18</sci:value>
									</sci:arg>
									<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The original path within the database of this component.</sci:help>
										<sci:value>Components\Data Access and Manipulation\Data Manipulators\Ungroup Data</sci:value>
									</sci:arg>
								</sci:component>
							</sci:data>
							<sci:data object="SciTegic.ComponentPerlPlugin.1">
								<sci:component name="Perl (on Server)" version="2">
									<sci:arg name="Script" type="PerlScriptType" required="true" visibility="visible" multi="false" implbase="{6C9F19F9-6CF3-4BB9-8F61-89C89D9CDCBB}">
										<sci:help>&lt;p&gt;Perl script to execute.  Pipeline Pilot executes the following three subroutines:

&lt;ul&gt;
&lt;li&gt;onInitialize: the subroutine that executes before the first data record is processed.&lt;/li&gt;
&lt;li&gt;onProcess: the subroutine that executes for each data record.&lt;/li&gt;
&lt;li&gt;onFinalize: the subroutine that executes after the last data record has been processed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
The usual Perl scoping rules apply to variables.  To pass a variable between the three required subroutines use package level variables, e.g., &lt;code&gt;$::variable&lt;/code&gt; or &lt;code&gt;my $variable&lt;/code&gt; declared outside the subroutines.
&lt;/p&gt;

&lt;p&gt;
The &lt;i&gt;onInitialize&lt;/i&gt; and &lt;i&gt;onFinalize&lt;/i&gt; subroutines both receive the &lt;code&gt;pilot::Context Perl&lt;/code&gt; object as the only argument.  The &lt;i&gt;onProcess&lt;/i&gt; subroutine receives the &lt;code&gt;pilot::Context&lt;/code&gt; and &lt;code&gt;pilot::DataRecord&lt;/code&gt; Perl objects as its two arguments.
&lt;/p&gt;

&lt;p&gt;
pilot::Context provides access to globals and parameters.  A common way to get these is via a Perl hash reference.  For example, to get a &lt;i&gt;Source&lt;/i&gt; parameter value use
&lt;/p&gt;

&lt;pre&gt;
my $parametersHashRef = $context-&gt;getComponentParameters()-&gt;getHashRef();
my $source = $parametersHashRef-&gt;{&quot;Source&quot;};
&lt;/pre&gt;

&lt;p&gt;
To obtain the value of a global property called &lt;i&gt;Old&lt;/i&gt; and set a new global property called &lt;i&gt;New&lt;/i&gt; use
&lt;/p&gt;

&lt;pre&gt;
my $globalsHashRef = $context-&gt;getGlobalProperties()-&gt;getHashRef();
my $value = $globalsHashRef-&gt;{&quot;Old&quot;};
$globalsHashRef-&gt;{&quot;New&quot;} = &quot;newValue&quot;;
&lt;/pre&gt;

&lt;p&gt;
Top level properties in a data record are accessed similarly.
&lt;/p&gt;

&lt;pre&gt;
my $node = $data-&gt;getRoot();
my $propertiesHashRef = $node-&gt;getProperties()-&gt;getHashRef();
my $value = $propertiesHashRef-&gt;{&quot;Old&quot;};
$propertiesHashRef-&gt;{&quot;New&quot;} = &quot;newValue&quot;;
&lt;/pre&gt;

&lt;p&gt;
&lt;i&gt;onInitialize&lt;/i&gt; and &lt;i&gt;onProcess&lt;/i&gt; must return one of the following component state values:
&lt;ul&gt;
&lt;li&gt;pilot::READYFORINPUTDATA
&lt;li&gt;pilot::DONEPROCESSINGDATA
&lt;li&gt;pilot::READYFORNEWDATA
&lt;li&gt;pilot::READYFORINPUTTHENNEWDATA
&lt;/ul&gt;
&lt;/p&gt;

&lt;p&gt;
To explicitly route a data record to a port use
&lt;/p&gt;

&lt;pre&gt;
$data-&gt;routeTo($pilot::PassPort);
&lt;/pre&gt;

&lt;p&gt;
or
&lt;/p&gt;

&lt;pre&gt;
$data-&gt;routeTo($pilot::FailPort);
&lt;/pre&gt;

&lt;p&gt;
Data records can also be terminated internally by routing to &lt;code&gt;$pilot::NoPort&lt;/code&gt;.
&lt;/p&gt;</sci:help>
										<sci:value>use strict;
use SciTegic::Bio::Tools::Blast::BlastUtilities;
use SciTegic::Bio::PipelinePilot::ToBioPerl::CreateBioPerlRichSequence;
use SciTegic::Bio::PipelinePilot::Validate::SequenceValidation;

my $requiredAlphabet;
	
sub onInitialize {
	my $context = shift;
	
    my $globalsHashRef = $context-&gt;getGlobalProperties()-&gt;getHashRef();
    my $program = $globalsHashRef-&gt;{&quot;Program&quot;};
	$requiredAlphabet = getRequiredAlphabetForProgram($program);

	return pilot::READYFORINPUTDATA;
}


sub onProcess {
	my $context = shift;
	my $data = shift;

	my $propertiesHashRef = $data-&gt;getProperties-&gt;getHashRef();	
    my $sequenceNode = $data-&gt;getRoot();

    if (!isSequence($sequenceNode))
    {
        $data-&gt;throwDataTypeError(&quot;Sequence&quot;);
    }

    if (!sequenceMatchesRequiredAlphabet($sequenceNode, $requiredAlphabet))
    {
        die(&quot;Sequence alphabet and BLAST program mismatch\n&quot;);
    }

    my $seq = createBioPerlRichSequence($context, $sequenceNode);

    my $queryHeader = &quot;&gt;&quot;.(defined $seq-&gt;display_id() ? $seq-&gt;display_id() : &quot;&quot;).
            &quot; &quot;.(defined $seq-&gt;desc() ? $seq-&gt;desc() : &quot;&quot;);

	$propertiesHashRef-&gt;{&apos;queryHeader&apos;} = $queryHeader;		

	return pilot::READYFORINPUTDATA;
}


sub onFinalize {
	my $context = shift;


}</sci:value>
									</sci:arg>
									<sci:arg name="Use Package" type="StringType" required="false" visibility="visible" multi="false" implbase="{6C9F19F9-6CF3-4BB9-8F61-89C89D9CDCBB}">
										<sci:help>The name of an application package that contains Perl modules referenced by this component. By defining this package name, a package-specific module may be referenced with the &apos;use modulename;&apos; syntax.</sci:help>
										<sci:value>scitegic/seqanal</sci:value>
									</sci:arg>
									<sci:arg name="Rebuild In RTC" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
										<sci:help>&lt;p&gt;
The Perl component functions by creating an instance of a Perl interpreter and
passing the supplied Perl script to the interpreter for execution. The
creation of the Perl interpreter occurs one time, while script execution
occurs once for initialization and finalization subroutines and once 
for each data record processed by the component.
&lt;/p&gt;
&lt;p&gt;
However, in the context of a Run To Completion (RTC) subprtocols, the Perl 
component would normally be re-instantiated for each data record, 
in common with other components in an RTC subprotocol. This implies the
re-creation of the Perl interpreter for each data record, which can be
relatively time consuming, particularly for Perl scripts which
themselves perform a rapid operation per data record.
&lt;/p&gt;
&lt;p&gt;
So, to avoid significant differences in performance timings between RTC
and non-RTC contexts, the Perl component&apos;s default behavior is to &lt;i&gt;keep&lt;/i&gt;
the same instance of the Perl interpreter throughout its life cycle. This
is indicated by the False setting of the &lt;em&gt;Rebuild In RTC&lt;/em&gt; parameter.
&lt;/p&gt;
&lt;p&gt;
However, there are some circumstances where Perl script or 3rd party modules
are not written in a way that allows them to safely re-use the same interpreter in this way. So if you see unexpected behavior from a Perl
component in a Run To Completion subprotocol, switch the &lt;em&gt;Rebuild In RTC&lt;/em&gt;
parameter to True to see if that resolves the issue.
&lt;/p&gt;
&lt;p&gt;
If that fixes the problem, and the Perl cannot be re-cast to 
handle the persistent interpreter,
you may need to trade performance for stability.
&lt;/p&gt;</sci:help>
										<sci:legalval>True</sci:legalval>
										<sci:legalval selected="true">False</sci:legalval>
									</sci:arg>
									<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
										<sci:help>Component Attributes</sci:help>
										<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
										<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
										<sci:legalval selected="true">ComponentReturnsFail</sci:legalval>
										<sci:legalval>ComponentRunsLocal</sci:legalval>
									</sci:arg>
									<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The user who registered this component.</sci:help>
										<sci:value>scitegic/integration</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The date this component was registered.</sci:help>
										<sci:value>Tue Feb 05 15:52:10 2013</sci:value>
									</sci:arg>
									<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>{6C9F19F9-6CF3-4BB9-8F61-89C89D9CDCBB}</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>Perl (on Server)</sci:value>
									</sci:arg>
									<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>690 -275</sci:value>
									</sci:arg>
									<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:value>COMPONENTNODE</sci:value>
									</sci:arg>
									<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The component this component is based upon.</sci:help>
										<sci:value>Plug In</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
										<sci:value>100</sci:value>
										<sci:value>Executes Perl code on the server</sci:value>
										<sci:value>&lt;p&gt;Allows a Perl script to manipulate a data record&apos;s property list, the global
property list, and component behavior. The &lt;em&gt;Script&lt;/em&gt; parameter contains
the script that implements the component behavior, encoded in Perl. The following
subroutines must be defined in this text parameter (all three methods need to
be declared in the main scope): &lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;onInitialize: &lt;/em&gt;Invoked once before the any data records
    arrive. This method receives one argument, a pilot::Context object. Also,
    it must return a component state, one of $pilot::ReadyForInputData, $pilot::DoneProcessingData, $pilot::ReadyForNewData or $pilot::ReadyForInputThenNewData. &lt;/li&gt;
  &lt;li&gt;&lt;em&gt;onProcess&lt;/em&gt;: Called once per data record. This method
    receives two arguments, a pilot::Context and a pilot::DataRecord object and
    return a component state. &lt;/li&gt;
  &lt;li&gt;&lt;em&gt;onFinalize&lt;/em&gt;: Called when no more data records are available.
    This method receives one argument, a pilot::Context object. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;i&gt;onInitialize&lt;/i&gt; and &lt;i&gt;onProcess&lt;/i&gt; must
return one of the following component state values:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;pilot::READYFORINPUTDATA
&lt;li&gt;pilot::DONEPROCESSINGDATA
&lt;li&gt;pilot::READYFORNEWDATA
&lt;li&gt;pilot::READYFORINPUTTHENNEWDATA
&lt;/ul&gt;


&lt;p&gt;&lt;strong&gt;Notes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Any script outside of the subroutines is executed just prior to calling
    onInitialize.&lt;/li&gt;
	&lt;li&gt;The optional &lt;em&gt;Use Package&lt;/em&gt; parameter is used to identify a package
      that holds one or more Perl modules that are referenced by the component.
      In this way, much or all of a component&apos;s functionality can be maintained
      in a package module. This facilitates component upgrading, by centralizing
    the code.&lt;/li&gt;
    &lt;li&gt;The Perl include path for the library must be declared in the package.conf
      file for the named package.&lt;/li&gt;
    &lt;li&gt;Perl&apos;s &lt;em&gt;strict&lt;/em&gt; and &lt;em&gt;warnings&lt;/em&gt; directives can be very useful
      when writing scripts. To detect warnings, you need to create a handler
      to manage them, since by default, Perl sends them to STDERR, which is not
    easily accessible from within Pipeline Pilot. 
	&lt;p&gt;For example, the following
    script treats warnings as errors:&lt;/p&gt;
	&lt;p&gt;&lt;code&gt;use warnings;&lt;br /&gt;
	$SIG{__WARN__} = sub {die @_;};&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt; If you see unexpected or erroneous behavior when using this component
in a Run To Completion subprotocol, please look at the help text for the
&lt;em&gt;Rebuild In RTC&lt;/em&gt; parameter, which is in the Implementation tab.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;See Also:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;javascript:DoLink(&apos;sciapps/scitegic/integration/docs/server_side/perl_api.htm&apos;)&quot;&gt;Perl Scripting Component API&lt;/a&gt;&lt;/li&gt; 
&lt;li&gt;&lt;a href=&quot;javascript:DoLink(&apos;sciapps/scitegic/integration/docs/server_side/compdev_perl.pdf&apos;)&quot;&gt;Perl Component Development Guide&lt;/a&gt;&lt;/li&gt;  
&lt;/ul&gt;</sci:value>
										<sci:value>Generic</sci:value>
										<sci:value/>
										<sci:value>Generic</sci:value>
										<sci:value/>
										<sci:value>Generic</sci:value>
										<sci:value/>
									</sci:arg>
									<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The server version when this component was registered</sci:help>
										<sci:value>9.0.1.15</sci:value>
									</sci:arg>
									<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:help>Local Component Identifier</sci:help>
										<sci:value>19</sci:value>
									</sci:arg>
									<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The original path within the database of this component.</sci:help>
										<sci:value>Components\Database and Application Integration\Application Integration\Programmatic Integration\Perl (on Server)</sci:value>
									</sci:arg>
								</sci:component>
							</sci:data>
							<sci:data object="SciTegic.EvaluateExpression.1">
								<sci:component name="Custom Manipulator (PilotScript)" version="2">
									<sci:arg name="Expression" type="ExpressionType" required="true" visibility="visible" multi="false" expanded="true" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>Expression (or list of expressions separated by semi-colons) to evaluate.</sci:help>
										<sci:member>Initial Expression</sci:member>
										<sci:member>Final Expression</sci:member>
										<sci:member>Keep Calculated Properties</sci:member>
										<sci:value>@SeqCount++;</sci:value>
									</sci:arg>
									<sci:arg name="Initial Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>&lt;p&gt;
This expression is executed only the first time data passes into the component.
&lt;p/&gt; 
Since there is no data available at initialization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
									</sci:arg>
									<sci:arg name="Final Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>&lt;p&gt;
This expression is executed only at finalization (after the last data passes out of the component).
&lt;p/&gt; 
Since there is no data available at finalization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
									</sci:arg>
									<sci:arg name="Keep Calculated Properties" type="BoolType" required="true" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>Adds any properties calculated in this component to a data record&apos;s property list.</sci:help>
										<sci:legalval selected="true">True</sci:legalval>
										<sci:legalval>False</sci:legalval>
									</sci:arg>
									<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
										<sci:help>Component Attributes</sci:help>
										<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
										<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
										<sci:legalval>ComponentReturnsFail</sci:legalval>
										<sci:legalval>ComponentRunsLocal</sci:legalval>
									</sci:arg>
									<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>Custom Error Message</sci:help>
									</sci:arg>
									<sci:arg name="Do Screen" type="BoolType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>When TRUE, controls which exit port is used for
each data record by evaluating the final expression
(or only one) listed in the &quot;Expression&quot; parameter.
   -Pass (green) port when expression true
   -Fail (red) port when expression false</sci:help>
										<sci:legalval>True</sci:legalval>
										<sci:legalval selected="true">False</sci:legalval>
									</sci:arg>
									<sci:arg name="ExpressionVersion" type="LongType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>Version of expression parser to use.</sci:help>
										<sci:value>2</sci:value>
									</sci:arg>
									<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The user who registered this component.</sci:help>
										<sci:value>scitegic/generic</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The date this component was registered.</sci:help>
										<sci:value>Mon Jan 21 09:55:43 2008</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>Sequence Count</sci:value>
									</sci:arg>
									<sci:arg name="ComponentAutoDisplayName" type="ExpressionType" required="false" visibility="nevershow" multi="false">
										<sci:help>Automatically update the component display name when the &quot;Expression&quot; property is changed. This feature is turned off after the user manually changes the display name of the component in Protocol workspace.</sci:help>
										<sci:value>#displayName := trim(Parameter(&apos;Expression&apos;, 2));
if(strlength(#displayName) &gt; 0) then	
	/* Find the first line break */
	#nl := FindSubstring(#displayName, &quot;\r&quot;);
	if #nl &lt;= 0 then
		#nl := FindSubstring(#displayName, &quot;\n&quot;);
	end if;

	/* Keep the first line only */
	if (#nl &gt; 0) then
		StrErase(#displayName, #nl);
	end if;
	
	#displayName;
else
	&quot;&quot;;
end if;</sci:value>
									</sci:arg>
									<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The component this component is based upon.</sci:help>
										<sci:value>Custom Manipulator (PilotScript)</sci:value>
									</sci:arg>
									<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:value>EXPRESSIONNODE</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>{0995D675-7EE2-432C-95DF-E91C14052B22}</sci:value>
									</sci:arg>
									<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>1065 -275</sci:value>
									</sci:arg>
									<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
										<sci:value>100</sci:value>
										<sci:value>Applies a PilotScript expression to each data record
</sci:value>
										<sci:value>&lt;p&gt;PilotScript is the native scripting language in Pipeline Pilot.  It is based on PL/SQL and allows you to query or alter the properties on data records.  For example, the expression:

&lt;blockquote&gt;
&lt;code&gt;A := 10;&lt;/code&gt;
&lt;/blockquote&gt;
creates a property named &quot;A&quot; and sets the value to &quot;10&quot;.&lt;/p&gt;

&lt;p&gt;For each incoming data record the PilotScript statements in &lt;i&gt;Expression&lt;/i&gt; are evaluated.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To initialize global variables such as counters, use &lt;i&gt;Initial Expression&lt;/i&gt;.&lt;/li&gt; 
&lt;li&gt;To clean up global variables or calculate final results use &lt;i&gt;Final Expression&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Parameters on Custom Manipulators do not become global variables that can be accessed via &lt;i&gt;@ParameterName&lt;/i&gt; syntax.  They must be accessed by using the &lt;i&gt;Parameter(&apos;ParameterName&apos;)&lt;/i&gt; function or by using token substitution via &lt;i&gt;$(ParameterName)&lt;/i&gt; syntax.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;See Also:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For more information on PilotScript, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/pscript/pscript_overview.htm&apos;)&quot;&gt;PilotScript Overview&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To use PilotScript to filter data records use &lt;a href=&quot;javascript:DoLink(&apos;{DD58ECD1-516F-48FE-A5DB-8328AED680F2}&apos;)&quot;&gt;Custom Filter (PilotScript)&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

</sci:value>
										<sci:value>Generic</sci:value>
										<sci:value/>
										<sci:value>Generic</sci:value>
										<sci:value/>
										<sci:value>None</sci:value>
										<sci:value/>
									</sci:arg>
									<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The server version when this component was registered</sci:help>
										<sci:value>7.0.0.35</sci:value>
									</sci:arg>
									<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:help>Local Component Identifier</sci:help>
										<sci:value>33</sci:value>
									</sci:arg>
									<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The original path within the database of this component.</sci:help>
										<sci:value>Components\Data Access and Manipulation\Property Manipulators\Custom Manipulator (PilotScript)</sci:value>
									</sci:arg>
								</sci:component>
							</sci:data>
							<sci:data object="SciTegic.EvaluateExpression.1">
								<sci:component name="Custom Manipulator (PilotScript)" version="2">
									<sci:arg name="Expression" type="ExpressionType" required="true" visibility="visible" multi="false" expanded="true" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>Expression (or list of expressions separated by semi-colons) to evaluate.</sci:help>
										<sci:member>Initial Expression</sci:member>
										<sci:member>Final Expression</sci:member>
										<sci:member>Keep Calculated Properties</sci:member>
										<sci:value>// Encode Ctrl-A characters in description
if queryHeader rlike &apos;\cA&apos; then
	queryHeader := rsubst(queryHeader, &apos;\cA&apos;, &apos;%01&apos;, &apos;g&apos;);
end if;

@EncodedQuery.= URLEncode(queryHeader).&apos;%0A&apos;.data.&apos;%0A&apos;;

</sci:value>
									</sci:arg>
									<sci:arg name="Initial Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>&lt;p&gt;
This expression is executed only the first time data passes into the component.
&lt;p/&gt; 
Since there is no data available at initialization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
									</sci:arg>
									<sci:arg name="Final Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>&lt;p&gt;
This expression is executed only at finalization (after the last data passes out of the component).
&lt;p/&gt; 
Since there is no data available at finalization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
									</sci:arg>
									<sci:arg name="Keep Calculated Properties" type="BoolType" required="true" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>Adds any properties calculated in this component to a data record&apos;s property list.</sci:help>
										<sci:legalval selected="true">True</sci:legalval>
										<sci:legalval>False</sci:legalval>
									</sci:arg>
									<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
										<sci:help>Component Attributes</sci:help>
										<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
										<sci:legalval>ComponentReturnsPass</sci:legalval>
										<sci:legalval>ComponentReturnsFail</sci:legalval>
										<sci:legalval>ComponentRunsLocal</sci:legalval>
									</sci:arg>
									<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>Custom Error Message</sci:help>
									</sci:arg>
									<sci:arg name="Do Screen" type="BoolType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>When TRUE, controls which exit port is used for
each data record by evaluating the final expression
(or only one) listed in the &quot;Expression&quot; parameter.
   -Pass (green) port when expression true
   -Fail (red) port when expression false</sci:help>
										<sci:legalval>True</sci:legalval>
										<sci:legalval selected="true">False</sci:legalval>
									</sci:arg>
									<sci:arg name="ExpressionVersion" type="LongType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>Version of expression parser to use.</sci:help>
										<sci:value>2</sci:value>
									</sci:arg>
									<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The user who registered this component.</sci:help>
										<sci:value>scitegic/generic</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The date this component was registered.</sci:help>
										<sci:value>Mon Jan 21 09:55:43 2008</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>Encode Query</sci:value>
									</sci:arg>
									<sci:arg name="ComponentAutoDisplayName" type="ExpressionType" required="false" visibility="nevershow" multi="false">
										<sci:help>Automatically update the component display name when the &quot;Expression&quot; property is changed. This feature is turned off after the user manually changes the display name of the component in Protocol workspace.</sci:help>
										<sci:value>#displayName := trim(Parameter(&apos;Expression&apos;, 2));
if(strlength(#displayName) &gt; 0) then	
	/* Find the first line break */
	#nl := FindSubstring(#displayName, &quot;\r&quot;);
	if #nl &lt;= 0 then
		#nl := FindSubstring(#displayName, &quot;\n&quot;);
	end if;

	/* Keep the first line only */
	if (#nl &gt; 0) then
		StrErase(#displayName, #nl);
	end if;
	
	#displayName;
else
	&quot;&quot;;
end if;</sci:value>
									</sci:arg>
									<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The component this component is based upon.</sci:help>
										<sci:value>Custom Manipulator (PilotScript)</sci:value>
									</sci:arg>
									<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:value>EXPRESSIONNODE</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>{0995D675-7EE2-432C-95DF-E91C14052B22}</sci:value>
									</sci:arg>
									<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>1365 -455</sci:value>
									</sci:arg>
									<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
										<sci:value>100</sci:value>
										<sci:value>Applies a PilotScript expression to each data record
</sci:value>
										<sci:value>&lt;p&gt;PilotScript is the native scripting language in Pipeline Pilot.  It is based on PL/SQL and allows you to query or alter the properties on data records.  For example, the expression:

&lt;blockquote&gt;
&lt;code&gt;A := 10;&lt;/code&gt;
&lt;/blockquote&gt;
creates a property named &quot;A&quot; and sets the value to &quot;10&quot;.&lt;/p&gt;

&lt;p&gt;For each incoming data record the PilotScript statements in &lt;i&gt;Expression&lt;/i&gt; are evaluated.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To initialize global variables such as counters, use &lt;i&gt;Initial Expression&lt;/i&gt;.&lt;/li&gt; 
&lt;li&gt;To clean up global variables or calculate final results use &lt;i&gt;Final Expression&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Parameters on Custom Manipulators do not become global variables that can be accessed via &lt;i&gt;@ParameterName&lt;/i&gt; syntax.  They must be accessed by using the &lt;i&gt;Parameter(&apos;ParameterName&apos;)&lt;/i&gt; function or by using token substitution via &lt;i&gt;$(ParameterName)&lt;/i&gt; syntax.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;See Also:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For more information on PilotScript, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/pscript/pscript_overview.htm&apos;)&quot;&gt;PilotScript Overview&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To use PilotScript to filter data records use &lt;a href=&quot;javascript:DoLink(&apos;{DD58ECD1-516F-48FE-A5DB-8328AED680F2}&apos;)&quot;&gt;Custom Filter (PilotScript)&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

</sci:value>
										<sci:value>Generic</sci:value>
										<sci:value/>
										<sci:value>Generic</sci:value>
										<sci:value/>
										<sci:value>None</sci:value>
										<sci:value/>
									</sci:arg>
									<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The server version when this component was registered</sci:help>
										<sci:value>7.0.0.35</sci:value>
									</sci:arg>
									<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:help>Local Component Identifier</sci:help>
										<sci:value>22</sci:value>
									</sci:arg>
									<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The original path within the database of this component.</sci:help>
										<sci:value>Components\Data Access and Manipulation\Property Manipulators\Custom Manipulator (PilotScript)</sci:value>
									</sci:arg>
								</sci:component>
							</sci:data>
							<sci:data object="SciTegic.ComponentPerlPlugin.1">
								<sci:component name="Perl (on Server)" version="2">
									<sci:arg name="Database" type="LinkParentParameterType" required="true" visibility="visible" multi="false" expanded="true">
										<sci:metaproplist>
											<sci:propval name="SCI_InitializeUsingOrigType">StringType</sci:propval>
										</sci:metaproplist>
										<sci:help>Identifies the BLAST database to use:
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;nr&lt;/b&gt;: Nucleotide collection.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;refseq_rna&lt;/b&gt;: Reference mRNA sequences.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;refseq_genomic&lt;/b&gt;: Reference genomic sequences.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;chromosome&lt;/b&gt;: NCBI Genomes.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;est&lt;/b&gt;: Expressed sequence tags.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;est_human&lt;/b&gt;: Human subset of est.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;est_mouse&lt;/b&gt;: Mouse subset of est.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;est_others&lt;/b&gt;: Non-human, non-mouse ESTs.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;gss&lt;/b&gt;: Genomic survey sequences.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;htgs&lt;/b&gt;: High throughput genomic sequences.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;pat&lt;/b&gt;: Patent sequences.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;pdb&lt;/b&gt;: Protein Data Bank.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;alu&lt;/b&gt;: Human ALU repeat elements.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;dbsts&lt;/b&gt;: Sequence tagged sites.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;wgs&lt;/b&gt;: Whole-genome shotgun reads.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;env_nt&lt;/b&gt;: Environmental samples.&lt;/li&gt;
&lt;/ul&gt;</sci:help>
										<sci:member>Organism</sci:member>
										<sci:member>Entrez Query</sci:member>
										<sci:value>Database</sci:value>
									</sci:arg>
									<sci:arg name="Expectation Value" type="LinkSingleParentParameterType" required="false" visibility="visible" multi="false">
										<sci:metaproplist>
											<sci:propval name="SCI_InitializeUsingOrigType">StringType</sci:propval>
										</sci:metaproplist>
										<sci:help>Sets the threshold expectation value for keeping alignments.  This is the E from the Karlin-Altschul equation. Scientific notation may be used, e.g., 1e-3 or 1.5e-3.</sci:help>
										<sci:value>Expectation Value</sci:value>
									</sci:arg>
									<sci:arg name="Maximum Hits" type="LinkSingleParentParameterType" required="false" visibility="visible" multi="false">
										<sci:metaproplist>
											<sci:propval name="SCI_InitializeUsingOrigType">StringType</sci:propval>
										</sci:metaproplist>
										<sci:help>Truncate the number of database hits</sci:help>
										<sci:value>Maximum Hits</sci:value>
									</sci:arg>
									<sci:arg name="Search Options" type="LinkSingleParentParameterType" required="false" visibility="visible" multi="false" expanded="true">
										<sci:metaproplist>
											<sci:propval name="SCI_InitializeUsingOrigType">GroupType</sci:propval>
										</sci:metaproplist>
										<sci:member>Maximum HSPs Per Hit</sci:member>
										<sci:member>Gap Opening Penalty</sci:member>
										<sci:member>Gap Extension Penalty</sci:member>
										<sci:member>Mismatch Penalty</sci:member>
										<sci:member>Match Reward</sci:member>
										<sci:member>Word Size</sci:member>
										<sci:member>Strand</sci:member>
										<sci:member>Filter Query Sequence</sci:member>
										<sci:member>Lower Case Filtering</sci:member>
										<sci:member>Gapped Alignment</sci:member>
										<sci:member>Matrix</sci:member>
										<sci:member>Use Composition Based Statistics</sci:member>
										<sci:member>Query Genetic Code</sci:member>
										<sci:member>Database Genetic Code</sci:member>
										<sci:value>Search Options</sci:value>
									</sci:arg>
									<sci:arg name="Maximum HSPs Per Hit" type="LinkSingleParentParameterType" required="false" visibility="visible" multi="false">
										<sci:metaproplist>
											<sci:propval name="SCI_InitializeUsingOrigType">StringType</sci:propval>
										</sci:metaproplist>
										<sci:help>Truncate the number of HSPs (high scoring pairs) per database hit</sci:help>
										<sci:value>Maximum HSPs Per Hit</sci:value>
									</sci:arg>
									<sci:arg name="Gap Opening Penalty" type="LinkSingleParentParameterType" required="true" visibility="visible" multi="false">
										<sci:metaproplist>
											<sci:propval name="SCI_InitializeUsingOrigType">StringType</sci:propval>
										</sci:metaproplist>
										<sci:help>Penalty for opening a gap</sci:help>
										<sci:value>Gap Opening Penalty</sci:value>
									</sci:arg>
									<sci:arg name="Gap Extension Penalty" type="LinkSingleParentParameterType" required="true" visibility="visible" multi="false">
										<sci:metaproplist>
											<sci:propval name="SCI_InitializeUsingOrigType">StringType</sci:propval>
										</sci:metaproplist>
										<sci:help>Penalty for extending an existing gap by one character</sci:help>
										<sci:value>Gap Extension Penalty</sci:value>
									</sci:arg>
									<sci:arg name="Mismatch Penalty" type="LinkSingleParentParameterType" required="true" visibility="visible" multi="false">
										<sci:metaproplist>
											<sci:propval name="SCI_InitializeUsingOrigType">StringType</sci:propval>
										</sci:metaproplist>
										<sci:help>Sets the penalty for a nucleotide mismatch</sci:help>
										<sci:value>Mismatch Penalty</sci:value>
									</sci:arg>
									<sci:arg name="Match Reward" type="LinkSingleParentParameterType" required="true" visibility="visible" multi="false">
										<sci:metaproplist>
											<sci:propval name="SCI_InitializeUsingOrigType">StringType</sci:propval>
										</sci:metaproplist>
										<sci:help>Sets the reward for a nucleotide match</sci:help>
										<sci:value>Match Reward</sci:value>
									</sci:arg>
									<sci:arg name="Word Size" type="LinkSingleParentParameterType" required="true" visibility="visible" multi="false">
										<sci:metaproplist>
											<sci:propval name="SCI_InitializeUsingOrigType">StringType</sci:propval>
										</sci:metaproplist>
										<sci:help>Sets the word size for the initial word search</sci:help>
										<sci:value>Word Size</sci:value>
									</sci:arg>
									<sci:arg name="Strand" type="LinkSingleParentParameterType" required="true" visibility="visible" multi="false">
										<sci:metaproplist>
											<sci:propval name="SCI_InitializeUsingOrigType">StringType</sci:propval>
										</sci:metaproplist>
										<sci:help>Chooses which strand of DNA-based queries is searched</sci:help>
										<sci:value>Strand</sci:value>
									</sci:arg>
									<sci:arg name="Filter Query Sequence" type="LinkSingleParentParameterType" required="true" visibility="visible" multi="false">
										<sci:metaproplist>
											<sci:propval name="SCI_InitializeUsingOrigType">StringType</sci:propval>
										</sci:metaproplist>
										<sci:help>Filter the query sequence for low-complexity subsequences.  Uses DUST.</sci:help>
										<sci:value>Filter Query Sequence</sci:value>
									</sci:arg>
									<sci:arg name="Lower Case Filtering" type="LinkSingleParentParameterType" required="true" visibility="visible" multi="false">
										<sci:metaproplist>
											<sci:propval name="SCI_InitializeUsingOrigType">StringType</sci:propval>
										</sci:metaproplist>
										<sci:help>Use lower case filtering of the query sequence</sci:help>
										<sci:value>Lower Case Filtering</sci:value>
									</sci:arg>
									<sci:arg name="Gapped Alignment" type="LinkSingleParentParameterType" required="true" visibility="visible" multi="false">
										<sci:metaproplist>
											<sci:propval name="SCI_InitializeUsingOrigType">StringType</sci:propval>
										</sci:metaproplist>
										<sci:help>Perform gapped alignment</sci:help>
										<sci:value>Gapped Alignment</sci:value>
									</sci:arg>
									<sci:arg name="Matrix" type="LinkSingleParentParameterType" required="true" visibility="visible" multi="false" uimpl="false">
										<sci:metaproplist>
											<sci:propval name="SCI_InitializeUsingOrigType">StringType</sci:propval>
										</sci:metaproplist>
										<sci:help>Designates a protein similarity matrix</sci:help>
										<sci:value>Matrix</sci:value>
									</sci:arg>
									<sci:arg name="Use Composition Based Statistics" type="LinkSingleParentParameterType" required="false" visibility="visible" multi="false" uimpl="false">
										<sci:metaproplist>
											<sci:propval name="SCI_InitializeUsingOrigType">StringType</sci:propval>
										</sci:metaproplist>
										<sci:help>Use composition based score adjustment.</sci:help>
										<sci:value>Use Composition Based Statistics</sci:value>
									</sci:arg>
									<sci:arg name="Query Genetic Code" type="LinkSingleParentParameterType" required="true" visibility="visible" multi="false" expanded="true" uimpl="false">
										<sci:metaproplist>
											<sci:propval name="SCI_InitializeUsingOrigType">StringType</sci:propval>
										</sci:metaproplist>
										<sci:help>Genetic code to use for translation of the query nucleotide sequence</sci:help>
										<sci:value>Query Genetic Code</sci:value>
									</sci:arg>
									<sci:arg name="Database Genetic Code" type="LinkSingleParentParameterType" required="true" visibility="visible" multi="false" uimpl="false">
										<sci:metaproplist>
											<sci:propval name="SCI_InitializeUsingOrigType">StringType</sci:propval>
										</sci:metaproplist>
										<sci:help>Genetic code to use for translation of the database nucleotide sequence</sci:help>
										<sci:value>Database Genetic Code</sci:value>
									</sci:arg>
									<sci:arg name="Additional Options" type="LinkSingleParentParameterType" required="false" visibility="visible" multi="false" expanded="true">
										<sci:metaproplist>
											<sci:propval name="SCI_InitializeUsingOrigType">GroupType</sci:propval>
										</sci:metaproplist>
										<sci:member>Result Text Property</sci:member>
										<sci:member>URL</sci:member>
										<sci:member>XML Output File</sci:member>
										<sci:value>Additional Options</sci:value>
									</sci:arg>
									<sci:arg name="Result Text Property" type="LinkSingleParentParameterType" required="false" visibility="visible" multi="false">
										<sci:metaproplist>
											<sci:propval name="SCI_InitializeUsingOrigType">StringType</sci:propval>
										</sci:metaproplist>
										<sci:help>Name of property to hold raw result text.  Property will be added to the SearchResult node.</sci:help>
										<sci:value>Result Text Property</sci:value>
									</sci:arg>
									<sci:arg name="URL" type="LinkSingleParentParameterType" required="true" visibility="visible" multi="false">
										<sci:metaproplist>
											<sci:propval name="SCI_InitializeUsingOrigType">StringType</sci:propval>
										</sci:metaproplist>
										<sci:help>URL for online BLAST server</sci:help>
										<sci:value>URL</sci:value>
									</sci:arg>
									<sci:arg name="XML Output File" type="LinkSingleParentParameterType" required="false" visibility="visible" multi="false" uimpl="false">
										<sci:metaproplist>
											<sci:propval name="SCI_InitializeUsingOrigType">StringType</sci:propval>
										</sci:metaproplist>
										<sci:help>The filename for BLAST XML output file.</sci:help>
										<sci:value>XML Output File</sci:value>
									</sci:arg>
									<sci:arg name="Program" type="StringType" required="true" visibility="visible" multi="false" uimpl="true">
										<sci:help>Program</sci:help>
										<sci:value>$(Program)</sci:value>
									</sci:arg>
									<sci:arg name="Script" type="PerlScriptType" required="true" visibility="visible" multi="false" uimpl="true">
										<sci:help>Define onInitialScript, onScript and onFinalScript subroutines here.</sci:help>
										<sci:value>package main;

#
# RemoteBlastFormatQuery.pm
#
# This program and all files, classes and data used by it
# are protected by Copyright and hence may not be used, copied,
# modified, transmitted, inspected, or executed by any means including
# the use of electronic data processing equipment, xerography, or
# any other methods without the express written permission of the
# copyright holder.
#
# Copyright (C) 2017 Accelrys Software Inc., All Rights Reserved
#

use strict;
use SciTegic::Bio::Tools::Blast::BlastUtilities;
use SciTegic::Bio::PipelinePilot::Utils::PipelinePilotUtilities;
use URI::Escape;

my $debugMode = 0;

sub onInitialize {
	my $context = shift;

    $debugMode = $context-&gt;getGlobalProperties()-&gt;getHashRef()-&gt;{&quot;debugMode&quot;}=~/true/i ? 1 : 0;

    my $parametersHashRef = $context-&gt;getComponentParameters()-&gt;getHashRef();
	my $globalsHashRef = $context-&gt;getGlobalProperties()-&gt;getHashRef();

    my $program = $parametersHashRef-&gt;{&quot;Program&quot;};
    my $database = $parametersHashRef-&gt;{&quot;Database&quot;};
    my $url = $parametersHashRef-&gt;{&quot;URL&quot;};
	my $service = $parametersHashRef-&gt;{&quot;Service&quot;};
    $::maximumHSPsPerHit = $parametersHashRef-&gt;{&quot;Maximum HSPs Per Hit&quot;};
    $::resultTextProperty = $parametersHashRef-&gt;{&quot;Result Text Property&quot;};
	$::requestBody = &apos;&apos;;	
    
    $::requestBody = setRemoteBlastParameters($parametersHashRef);
	$::requestBody .= &apos;&amp;PROGRAM=&apos; . $program . &apos;&amp;DATABASE=&apos; . $database;
	if ($service ne &apos;&apos;){
		$::requestBody .= &apos;&amp;SERVICE=$service&apos;;
	} else {
		$::requestBody .= &apos;&amp;SERVICE=plain&apos;;
	}

    $::blastOutputFileName = $parametersHashRef-&gt;{&quot;XML Output File&quot;};
    $::blastOutputFileName=~s/^\s+//;
    $::blastOutputFileName=~s/\s$//;	
	
	return pilot::READYFORINPUTDATA;
}


sub onProcess {
	my $context = shift;
	my $data = shift;
	
    my $parametersHashRef = $context-&gt;getComponentParameters()-&gt;getHashRef();
	my $globalsHashRef = $context-&gt;getGlobalProperties()-&gt;getHashRef();
    my $propertiesHashRef = $data-&gt;getProperties-&gt;getHashRef();	

 	$propertiesHashRef-&gt;{&apos;requestBody&apos;} =  $::requestBody.&apos;&amp;QUERY=&apos;.$globalsHashRef-&gt;{&apos;EncodedQuery&apos;};

    $context-&gt;debugMessage(&quot;request is &quot; . $propertiesHashRef-&gt;{&apos;requestBody&apos;});
	
	return pilot::READYFORINPUTDATA;
}


sub onFinalize {
	my $context = shift;


}


sub setRemoteBlastParameters
{
    my ($parametersHashRef) = @_;
    
    my @parameters = loadBlastParameters($parametersHashRef); 
	my %parametersHash = @parameters;
    $parametersHash{&apos;Organism&apos;} = $parametersHashRef-&gt;{&apos;Organism&apos;};
    $parametersHash{&apos;Entrez Query&apos;} = $parametersHashRef-&gt;{&apos;Entrez Query&apos;};
    setRemoteBlastHeader(\%parametersHash);
	$::requestBody =~ s/^&amp;//;
	return $::requestBody;
}

sub setRemoteBlastHeader
{
    my ($parametersHashRef) = @_;
    
    if ($parametersHashRef-&gt;{&quot;e&quot;})
    {
		$::requestBody .= &apos;&amp;EXPECT=&apos; . $parametersHashRef-&gt;{&quot;e&quot;};
    }
    
    if ($parametersHashRef-&gt;{&quot;b&quot;})
    {
		$::requestBody .= &apos;&amp;ALIGNMENTS=&apos; . $parametersHashRef-&gt;{&quot;b&quot;};
 #       $Bio::Tools::Run::RemoteBlast::HEADER{&quot;ALIGNMENTS&quot;} = $parametersHashRef-&gt;{&quot;b&quot;};
 #       $Bio::Tools::Run::RemoteBlast::RETRIEVALHEADER{&quot;ALIGNMENTS&quot;} = $parametersHashRef-&gt;{&quot;b&quot;};
    }
    
    if ($parametersHashRef-&gt;{&quot;v&quot;})
    {
		$::requestBody .= &apos;&amp;DESCRIPTIONS=&apos; . $parametersHashRef-&gt;{&quot;v&quot;}	
 #       $Bio::Tools::Run::RemoteBlast::HEADER{&quot;DESCRIPTIONS&quot;} = $parametersHashRef-&gt;{&quot;v&quot;};
 #       $Bio::Tools::Run::RemoteBlast::RETRIEVALHEADER{&quot;DESCRIPTIONS&quot;} = $parametersHashRef-&gt;{&quot;v&quot;};
    }
    
    if ($parametersHashRef-&gt;{&quot;M&quot;})
    {
		$::requestBody .= &apos;&amp;MATRIX_NAME=&apos; . $parametersHashRef-&gt;{&quot;M&quot;};
#        $Bio::Tools::Run::RemoteBlast::HEADER{&quot;MATRIX_NAME&quot;} = $parametersHashRef-&gt;{&quot;M&quot;};
    }
    
    if ($parametersHashRef-&gt;{&quot;G&quot;} &amp;&amp; $parametersHashRef-&gt;{&quot;E&quot;})
    {
			$::requestBody .= &apos;&amp;GAPCOSTS=&apos; . $parametersHashRef-&gt;{&quot;G&quot;} . &quot; &quot; . $parametersHashRef-&gt;{&quot;E&quot;};

#	$::requestBody .= &apos;&amp;GAPCOSTS=&apos; . uri_escape($parametersHashRef-&gt;{&quot;G&quot;} . &quot; &quot; . $parametersHashRef-&gt;{&quot;E&quot;});
	#        $Bio::Tools::Run::RemoteBlast::HEADER{&quot;GAPCOSTS&quot;} = $parametersHashRef-&gt;{&quot;G&quot;} . &quot; &quot; . $parametersHashRef-&gt;{&quot;E&quot;};
    }
    
    if ($parametersHashRef-&gt;{&quot;W&quot;})
    {
		$::requestBody .= &apos;&amp;WORD_SIZE=&apos; . $parametersHashRef-&gt;{&quot;W&quot;};
#        $Bio::Tools::Run::RemoteBlast::HEADER{&quot;WORD_SIZE&quot;} = $parametersHashRef-&gt;{&quot;W&quot;};
    }
    
    if ($parametersHashRef-&gt;{&quot;F&quot;})
    {
        if ($parametersHashRef-&gt;{&quot;F&quot;} eq &quot;T&quot;)
        {
			$::requestBody .= &apos;&amp;FILTER=L&apos;;
#            $Bio::Tools::Run::RemoteBlast::HEADER{&quot;FILTER&quot;} = &quot;L&quot;;
        }
        elsif ($parametersHashRef-&gt;{&quot;F&quot;} eq &quot;F&quot;)
        {
			$::requestBody .= &apos;&amp;FILTER=F&apos;;
#            delete($Bio::Tools::Run::RemoteBlast::HEADER{&quot;FILTER&quot;});
        }
    }
    
    if ($parametersHashRef-&gt;{&quot;U&quot;})
    {
        my $lowerCaseFilteringValue = &quot;yes&quot;;
        
        if ($parametersHashRef-&gt;{&quot;U&quot;} eq &quot;F&quot;)
        {
            $lowerCaseFilteringValue = &quot;no&quot;;
        }
		
        $::requestBody .= &apos;&amp;LCASE_MASK=&apos; .	$lowerCaseFilteringValue;
#        $Bio::Tools::Run::RemoteBlast::HEADER{&quot;LCASE_MASK&quot;} = $lowerCaseFilteringValue;
    }
    
    if ($parametersHashRef-&gt;{&quot;g&quot;})
    {
        my $ungappedAlignmentValue = &quot;yes&quot;;
        
        if ($parametersHashRef-&gt;{&quot;g&quot;} eq &quot;T&quot;)
        {
            $ungappedAlignmentValue = &quot;no&quot;;
        }

		$::requestBody .= &apos;&amp;UNGAPPED_ALIGNMENT=&apos; . $ungappedAlignmentValue;
#        $Bio::Tools::Run::RemoteBlast::HEADER{&quot;UNGAPPED_ALIGNMENT&quot;} = $ungappedAlignmentValue;
    }
    
    if ($parametersHashRef-&gt;{&quot;q&quot;})
    {
		$::requestBody .= &apos;&amp;NUCL_PENALTY=&apos; . $parametersHashRef-&gt;{&quot;q&quot;};
#        $Bio::Tools::Run::RemoteBlast::HEADER{&quot;NUCL_PENALTY&quot;} = $parametersHashRef-&gt;{&quot;q&quot;};
    }
    
    if ($parametersHashRef-&gt;{&quot;r&quot;})
    {
		$::requestBody .= &apos;&amp;NUCL_REWARD=&apos; . $parametersHashRef-&gt;{&quot;r&quot;};
#        $Bio::Tools::Run::RemoteBlast::HEADER{&quot;NUCL_REWARD&quot;} = $parametersHashRef-&gt;{&quot;r&quot;};
    }
    
    if ($parametersHashRef-&gt;{&quot;Q&quot;})
    {
		$::requestBody .= &apos;&amp;GENETIC_CODE=&apos; . $parametersHashRef-&gt;{&quot;Q&quot;};
 #       $Bio::Tools::Run::RemoteBlast::HEADER{&quot;GENETIC_CODE&quot;} = $parametersHashRef-&gt;{&quot;Q&quot;};
    }
    
    if ($parametersHashRef-&gt;{&quot;D&quot;})
    {
		$::requestBody .= &apos;&amp;DB_GENETIC_CODE=&apos; . $parametersHashRef-&gt;{&quot;D&quot;};
 #       $Bio::Tools::Run::RemoteBlast::HEADER{&quot;DB_GENETIC_CODE&quot;} = $parametersHashRef-&gt;{&quot;D&quot;};
    }
    
    if ($parametersHashRef-&gt;{&quot;t&quot;})
    {
        if ($parametersHashRef-&gt;{&quot;t&quot;} eq &quot;T&quot;)
        {
			$::requestBody .= &apos;&amp;COMPOSITION_BASED_STATISTICS=1&apos;;
 #           $Bio::Tools::Run::RemoteBlast::HEADER{&apos;COMPOSITION_BASED_STATISTICS&apos;} = &quot;1&quot;;
        }
        elsif ($parametersHashRef-&gt;{&quot;t&quot;} eq &quot;F&quot;)
        {
			$::requestBody .= &apos;&amp;COMPOSITION_BASED_STATISTICS=0&apos;;
 #           $Bio::Tools::Run::RemoteBlast::HEADER{&apos;COMPOSITION_BASED_STATISTICS&apos;} = &quot;0&quot;;
        }      
    }

    # Limit by Entrez Query
    my $organism = $parametersHashRef-&gt;{&apos;Organism&apos;};
    $organism=~s/^\s+//;
    $organism=~s/\s$//;
    $organism .= &apos;[orgn] &apos; if(length($organism));
    
    my $entrezQuery = $parametersHashRef-&gt;{&apos;Entrez Query&apos;};
    $entrezQuery=~s/^\s+//;
    $entrezQuery=~s/\s+$//;
    if(length($entrezQuery) &gt; 0) {
      $entrezQuery = $organism.&apos; AND &apos;.$entrezQuery if(length($organism)&gt;0);
    } else {
      $entrezQuery = $organism;
    } 

	$::requestBody .= &apos;&amp;ENTREZ_QUERY=&apos; . $entrezQuery if(length($entrezQuery));
 #   $Bio::Tools::Run::RemoteBlast::HEADER{&apos;ENTREZ_QUERY&apos;} = $entrezQuery if(length($entrezQuery));
    
    # XML output format
	$::requestBody .= &apos;&amp;FORMAT_TYPE=XML&amp;CMD=Put&amp;ALIGNMENT_VIEW=Pairwise&amp;FORMAT_OBJECT=Alignment&apos;;
 #$Bio::Tools::Run::RemoteBlast::RETRIEVALHEADER{&quot;FORMAT_TYPE&quot;} = &apos;XML&apos;;
 
 }

1;</sci:value>
									</sci:arg>
									<sci:arg name="Use Package" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
										<sci:value>scitegic/seqanal</sci:value>
									</sci:arg>
									<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
										<sci:help>Component Attributes</sci:help>
										<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
										<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
										<sci:legalval selected="true">ComponentReturnsFail</sci:legalval>
										<sci:legalval>ComponentRunsLocal</sci:legalval>
									</sci:arg>
									<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="Organism" type="PromotedGroupMemberType" required="false" visibility="nevershow" multi="false" uimpl="false">
										<sci:help>An organism name, for example human or Homo sapiens, to limit search.</sci:help>
										<sci:value>Organism</sci:value>
									</sci:arg>
									<sci:arg name="Entrez Query" type="PromotedGroupMemberType" required="false" visibility="nevershow" multi="false" uimpl="false">
										<sci:help>An Entrez query to limit search. For example, &lt;b&gt;1000:2000[slen]&lt;/b&gt; limits the search to protein entries with lengths between 1000 to 2000 residues. Refer to &lt;a href=&quot;javascript:DoLink(&apos;http://www.ncbi.nlm.nih.gov/BLAST/blastcgihelp.shtml#entrez_query&apos;)&quot;&gt;Limit by Entrez Query&lt;/a&gt; for more details.</sci:help>
										<sci:value>Entrez Query</sci:value>
									</sci:arg>
									<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The user who registered this component.</sci:help>
										<sci:value>scitegic/seqanal</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The date this component was registered.</sci:help>
										<sci:value>Fri Nov 21 09:11:28 2008</sci:value>
									</sci:arg>
									<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>{6C9F19F9-6CF3-4BB9-8F61-89C89D9CDCBB}</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>Set BLAST Parameters</sci:value>
									</sci:arg>
									<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>390 -635</sci:value>
									</sci:arg>
									<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:value>COMPONENTNODE</sci:value>
									</sci:arg>
									<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The component this component is based upon.</sci:help>
										<sci:value>Plug In</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
										<sci:value>100</sci:value>
										<sci:value>Runs blastn online at NCBI for a nucleotide sequence.</sci:value>
										<sci:value>blastn compares incoming nucleotide sequences with a nucleotide database, resulting in nucleotide alignments. This component runs blastall online at NCBI to generate BLAST results that are added to the sequence data record. . A hit list data record is output for each input query sequence. The hits can be extracted from the hit list for individual manipulation using the &lt;i&gt;Extract BLAST Hits&lt;/i&gt; component. Sequences with no BLAST hits are routed to the fail port.

There are parameters for the database name and for the expectation value.

The NCBI Online BLASTn component supports the following nucleotide databases:

&lt;table border&gt;
    &lt;caption&gt;Supported Online Nucleotide Databases&lt;/caption&gt;
    &lt;thead&gt;
        &lt;tr&gt;
            &lt;th&gt;Abbreviation&lt;/th&gt;
            &lt;th&gt;Description&lt;/th&gt;
        &lt;/tr&gt;
    &lt;/thead&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;nr&lt;/td&gt;
            &lt;td&gt;All GenBank+RefSeq Nucleotides+EMBL+DDBJ+PDB sequences (but no EST, STS, GSS, or phase 0, 1 or 2 HTGS sequences).  No longer &quot;non-redundant&quot;&lt;/td&gt;
        &lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;refseq_rna&lt;/td&gt;
			&lt;td&gt;RNA entries from NCBI&apos;s Reference Sequence project&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;refseq_genomic&lt;/td&gt;
			&lt;td&gt;Genomic entries from NCBI&apos;s Reference Sequence project&lt;/td&gt;
		&lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;chromosome&lt;/td&gt;
            &lt;td&gt;Searches Complete Genomes, Complete Chromosome, or contigs form the NCBI Reference Sequence project&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;est&lt;/td&gt;
            &lt;td&gt;Database of GenBank+EMBL+DDBJ sequences from EST Divisions&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;est_human&lt;/td&gt;
            &lt;td&gt;Human subset of GenBank+EMBL+DDBJ sequences from EST Divisions&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;est_mouse&lt;/td&gt;
            &lt;td&gt;Mouse subset of GenBank+EMBL+DDBJ sequences from EST Divisions&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;est_others&lt;/td&gt;
            &lt;td&gt;Non-Mouse, non-Human sequences of GenBank+EMBL+DDBJ sequences from EST Divisions&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;gss&lt;/td&gt;
            &lt;td&gt;Genome Survey Sequence, includes single-pass genomic data, exon-trapped sequences, and Alu PCR sequences&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;htgs&lt;/td&gt;
            &lt;td&gt;Unfinished High Throughput Genomic Sequences: phases 0, 1 and 2 (finished, phase 3 HTG sequences are in nr)&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;pat&lt;/td&gt;
            &lt;td&gt;Nucleotides from the Patent division of GenBank&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;pdb&lt;/td&gt;
            &lt;td&gt;Sequences derived from the 3-dimensional structure from Brookhaven Protein Data Bank&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;alu&lt;/td&gt;
            &lt;td&gt;Select Alu repeats from REPBASE, suitable for masking Alu repeats from query sequences&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;dbsts&lt;/td&gt;
            &lt;td&gt;Database of GenBank+EMBL+DDBJ sequences from STS Divisions&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;wgs&lt;/td&gt;
            &lt;td&gt;Whole genome shotgun sequence entries&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;env_nt&lt;/td&gt;
            &lt;td&gt;Nucleotide sequences from environmental samples, including those from Sargasso Sea and Mine Drainage projects&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;

</sci:value>
										<sci:value>Generic</sci:value>
										<sci:value/>
										<sci:value>Generic</sci:value>
										<sci:value>Data records which have been routed to $pilot::PassPort. By default a data record will go to this port.</sci:value>
										<sci:value>Generic</sci:value>
										<sci:value>Data records which have been routed to $pilot::FailPort.</sci:value>
									</sci:arg>
									<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The server version when this component was registered</sci:help>
										<sci:value>7.5.0.2</sci:value>
									</sci:arg>
									<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:help>Local Component Identifier</sci:help>
										<sci:value>2</sci:value>
									</sci:arg>
									<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The original path within the database of this component.</sci:help>
										<sci:value>Components\Database and Application Integration\Application Integration\Programmatic Integration\Perl (on Server)</sci:value>
									</sci:arg>
								</sci:component>
							</sci:data>
							<sci:data object="SciTegic.Protocol.1">
								<sci:component name="Subprotocol" version="2">
									<sci:arg name="RunToCompletion" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
										<sci:help>When &lt;i&gt;RunToCompletion&lt;/i&gt; is set to &quot;True - For Each Data Record&quot;, the subprotocol is re-initialized and executed in its entirety for each individual data record it processes.
&lt;p&gt;
When set to &quot;True - For Each Category&quot;, the data records are divided into categories based on the value of the Categorize Using parameter and then the subprotocol is re-initialized and executed in its entirety for each category of data records. When used in conjunction with &lt;i&gt;Parallel Processing Options&lt;/i&gt;, each category of data records will be sent to the remote server as part of one single batch.</sci:help>
										<sci:member>RunToCompletion Categorize Using</sci:member>
										<sci:legalval selected="true">False</sci:legalval>
										<sci:legalval>True - For Each Data Record</sci:legalval>
										<sci:legalval>True - For Each Category</sci:legalval>
									</sci:arg>
									<sci:arg name="RunToCompletion Categorize Using" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
										<sci:help>Required when RunToCompletion is set to &lt;i&gt;True - For Each Category&lt;/i&gt;, this parameter specifies the property or properties used to define the categories.</sci:help>
										<sci:validscript>SetInvalidDetails(&apos;This parameter is required when RunToCompletion is set to True - For Each Category&apos;);
Parameter() ne &apos;&apos;;</sci:validscript>
										<sci:enabledscript>SetDisabledDetails(&apos;To Enable, Set RunToCompletion to True - For Each Category&apos;);
Parameter(&apos;RunToCompletion&apos;) eq &apos;True - For Each Category&apos;;</sci:enabledscript>
									</sci:arg>
									<sci:arg name="Parallel Processing Options" type="BoolType" required="false" visibility="visible" multi="false" uimpl="false">
										<sci:help>&lt;p&gt;
When set to True, this set of options allows the subprotocol to execute in parallel on one or more independent Pipeline Pilot servers, running locally or remotely.  Additional parameters control the number of data records to send in each process batch, the list of Pipeline Pilot servers to use, the number of protocol processes that can be executed on each server, and whether to preserve the order of the processed data records.
&lt;/p&gt;&lt;p&gt;
Use this option with care, since it will not increase throughput in all circumstances. Generally speaking, it yields improved performance when the parallelization benefits outweigh the data transfer overhead for the specified batch size.  As a rough guide, performance can be improved when each individual batch requires at least 10 seconds to execute, although this can be affected by the size of each data record.
&lt;/p&gt;&lt;p&gt;
When running the protocol with debugging, the subprotocol will provide debugging messages to detail each of the various steps of execution.  Also, components located within the parallel subprotocol will display their debugging messages as well.
&lt;/p&gt;&lt;p&gt;
For more information on the parallel subprotocol options, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/subprots/subprot_parallel_processing.htm&apos;)&quot;&gt;Parallel Processing Subprotocols&lt;/a&gt;.
&lt;/p&gt;
</sci:help>
										<sci:member>Parallel Processing Options Batch Size</sci:member>
										<sci:member>Parallel Processing Options Server</sci:member>
										<sci:member>Parallel Processing Options Preserve Order</sci:member>
										<sci:legalval>True</sci:legalval>
										<sci:legalval selected="true">False</sci:legalval>
									</sci:arg>
									<sci:arg name="Parallel Processing Options Batch Size" type="LongType" required="true" visibility="visible" multi="false" uimpl="false">
										<sci:help>&lt;p&gt;The number of records to send to the remote server(s) for each subprotocol execution.  In general, performance is optimized when the amount of time required to process each batch is at least 10 seconds (note that this can vary depending on the characteristics of the remote server&apos;s hardware).  Use a batch size of -1 to pass all data in a single batch.&lt;/p&gt;
&lt;p&gt;When &lt;i&gt;RunToCompletion&lt;/i&gt; is set to &quot;True - for each category&quot;, the batch sizes will be determined by the number of records in each individual category.  Therefore, the &lt;i&gt;Batch Size&lt;/i&gt; parameter is not applicable.</sci:help>
										<sci:enabledscript>#parallel := Parameter(&apos;Parallel Processing Options&apos;);
if (not #parallel) then
	SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
end if;
#parallel;</sci:enabledscript>
									</sci:arg>
									<sci:arg name="Parallel Processing Options Server" type="StringType" required="false" visibility="visible" multi="true" expanded="true" legalvalsenforced="false" uimpl="false">
										<sci:help>&lt;p&gt;
A comma-separated list of Pipeline Pilot servers on which to execute the parallel subprotocol.  The server names should be in the same format as the Pipeline Pilot Client&apos;s change server dialog (that is, server-name:port-number).
&lt;/p&gt;&lt;p&gt;
Specifying &lt;b&gt;localhost&lt;/b&gt; as a server will cause the subprotocol to use its own Pipeline Pilot server.  This can be useful on multi-CPU/multi-core systems (where the subprotocol jobs are spawned on the same machine) and Pipeline Pilot Linux clusters (where &apos;localhost&apos; requests spawning the subprotocol jobs on the same cluster).
&lt;/p&gt;</sci:help>
										<sci:member>Parallel Processing Options Server Processes</sci:member>
										<sci:member>Parallel Processing Options Server Run On Grid</sci:member>
										<sci:validscript>SetInvalidDetails(&apos;This parameter is required.&apos;);
Parameter() ne &apos;&apos;;</sci:validscript>
										<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
									</sci:arg>
									<sci:arg name="Parallel Processing Options Server Processes" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
										<sci:help>A comma-separated list of the maximum number of batches that can be simultaneously executed on each remote server.  The number of entries in this parameter must equal the number of servers. If &apos;*&apos; is specified as the number of processes, then that server will only launch as many batches as the administrator of the remote server has permitted.</sci:help>
										<sci:validscript>/* Server Processes must have the same number of comma separated entries as the Server parameter and must have a value*/
#processes := parameter();
expand(&apos;,&apos;, #processes);
#servers := parameter(&apos;Parallel Processing Options Server&apos;);
expand(&apos;,&apos;, #servers);

if (numvalues(#processes) == 0) then
	SetInvalidDetails(&apos;This parameter is required.&apos;);
else
	SetInvalidDetails(&apos;The number of server processes (&apos; . numvalues(#processes) . &apos;) must equal the number of servers (&apos; . numvalues(#servers) . &apos;).&apos;);
end if;
numvalues(#processes) &gt; 0 and numvalues(#processes) == numvalues(#servers);</sci:validscript>
										<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
									</sci:arg>
									<sci:arg name="Parallel Processing Options Server Run On Grid" type="BoolType" required="false" visibility="visible" multi="false" uimpl="false">
										<sci:help>Run subprotocol on grid engine if available.</sci:help>
										<sci:member>Parallel Processing Options Server Run On Grid Queue Name</sci:member>
										<sci:member>Parallel Processing Options Server Run On Grid Grid Options</sci:member>
										<sci:enabledscript>parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
										<sci:legalval selected="true">True</sci:legalval>
										<sci:legalval>False</sci:legalval>
									</sci:arg>
									<sci:arg name="Parallel Processing Options Server Run On Grid Queue Name" type="StringType" required="false" visibility="visible" multi="false" legalvalsenforced="false" uimpl="false">
										<sci:help>Select the queue name on the grid to submit jobs to. Leave blank to use default queue name.</sci:help>
										<sci:enabledscript>parameter(&apos;Parallel Processing Options Server Run On Grid&apos;);</sci:enabledscript>
									</sci:arg>
									<sci:arg name="Parallel Processing Options Server Run On Grid Grid Options" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
										<sci:help>Use this to specify grid engine specific command line parameters to the job submission command. Leave blank to use defaults.</sci:help>
										<sci:enabledscript>parameter(&apos;Parallel Processing Options Server Run On Grid&apos;);</sci:enabledscript>
									</sci:arg>
									<sci:arg name="Parallel Processing Options Preserve Order" type="BoolType" required="false" visibility="visible" multi="false" uimpl="false">
										<sci:help>Whether to preserve the order of the data as it enters and leaves the remote subprotocol.</sci:help>
										<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
										<sci:legalval selected="true">True</sci:legalval>
										<sci:legalval>False</sci:legalval>
									</sci:arg>
									<sci:arg name="Tempfiles" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
										<sci:help>&lt;p&gt;A comma-delimited list of global properties, each of which is automatically populated with the name of a file in the job&apos;s temporary folder, which always has a unique name.&lt;p/&gt;For each global name, an additional global is created (with the suffix &lt;i&gt;_Filename&lt;/i&gt;) that hold only the leaf file name of the temporary file.&lt;/p&gt;</sci:help>
									</sci:arg>
									<sci:arg name="DeclareLocal" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
										<sci:help>&lt;p&gt;Lists a set of properties (without the @) to create on the global property list for this subprotocol. Separate property names with commas. Such properties can only be accessed within the scope of this subprotocol and its descendent subprotocols.&lt;p/&gt;

&lt;p&gt;Any global property not declared in this way is created on the top-level global property list and is accessible from all subprotocols, but breaks the encapsulation of the subprotocol and may collide with another property of the same name.&lt;/p&gt;

&lt;p&gt;Therefore, you should always declare a new global property in the &lt;i&gt;DeclareLocal&lt;/i&gt; parameter, to minimize the scope of the global property to the subprotocol where it is used.&lt;/p&gt;

&lt;p&gt;The example &lt;i&gt;DeclareLocal&lt;/i&gt; value below creates 3 global properties in the subprotocol scope. Note that you can initialize the declared global value with a scalar value using the &quot;:=&quot; syntax, as shown. You can surround text string values with quotes to aid clarity.&lt;/p&gt;
&lt;pre&gt;
    SubP_Counter := 0, SubP_NameHash, SubP_TitleText:=&quot;Sample 1&quot;
&lt;/pre&gt;
</sci:help>
									</sci:arg>
									<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
										<sci:help>Component Attributes</sci:help>
										<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
										<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
										<sci:legalval>ComponentReturnsFail</sci:legalval>
										<sci:legalval>ComponentRunsLocal</sci:legalval>
									</sci:arg>
									<sci:arg name="URL" type="LinkSingleParentParameterType" required="false" visibility="visible" multi="false">
										<sci:metaproplist>
											<sci:propval name="SCI_InitializeUsingRevertInfo" base64="UI1">Al1HAAAsU3RyaW5nVHlwZQAIAAAAAQEAAQAEAPwAAAAAAAAAAAAQVVJMA8xTz7sBKWh0dHBzOi8vYmxhc3QubmNiaS5ubG0ubmloLmdvdi9CbGFzdC5jZ2kA</sci:propval>
											<sci:propval name="SCI_InitializeUsingOrigType">StringType</sci:propval>
											<sci:propval name="SCI_InitializeUsing">LinkSingleParentParameterType</sci:propval>
										</sci:metaproplist>
										<sci:value>URL</sci:value>
									</sci:arg>
									<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>Custom Error Message</sci:help>
									</sci:arg>
									<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>Send to NCBI</sci:value>
									</sci:arg>
									<sci:arg name="ProtocolAutoLayout" type="BoolType" required="false" visibility="nevershow" multi="false">
										<sci:help>Protocol AutoLayout</sci:help>
										<sci:value>1</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:value>SUBPROTOCOLNODE</sci:value>
									</sci:arg>
									<sci:arg name="ComponentRevision" type="LongType" required="true" visibility="nevershow" multi="false">
										<sci:help>Component Revision</sci:help>
										<sci:value>790</sci:value>
									</sci:arg>
									<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>{17001C74-63CE-4B4B-B37C-F0EAA19CE4AA}</sci:value>
									</sci:arg>
									<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>690 -635</sci:value>
									</sci:arg>
									<sci:arg name="ByReference" type="BoolType" required="false" visibility="nevershow" multi="false">
										<sci:help>By Ref</sci:help>
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
										<sci:value>100</sci:value>
										<sci:value>Builds subprotocols in Pipeline Pilot.</sci:value>
										<sci:value>&lt;p&gt;
Use a subprotocol to collapse one or more components into a single item. Open 
a subprotocol to view or edit its contents. 
&lt;/p&gt;&lt;p&gt;
To define input and output ports, display 
icon, and parameter settings, right-click and select Edit. You can save subprotocols and reuse them. 
For more information, see the User Guide help for &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/subprots/subprot_overview.htm&apos;)&quot;&gt;Subprotocols 
Overview&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;
For more information on the parallel subprotocol options, see 
&lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/subprots/subprot_parallel_processing.htm&apos;)&quot;&gt;Parallel 
Processing Subprotocols&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;
Tip: Any component can be made into a shortcut, 
so that the latest version is always used. For more information, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/subprots/shortcuts.htm&apos;)&quot;&gt;Creating 
Shortcuts&lt;/a&gt;.
&lt;/p&gt;</sci:value>
										<sci:value>Generic</sci:value>
										<sci:value/>
										<sci:value>Generic</sci:value>
										<sci:value>Records passing out of any unconnected pass ports of components inside the subprotocol</sci:value>
										<sci:value>Generic</sci:value>
										<sci:value>Records passing out of any unconnected fail ports of components inside the subprotocol</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The server version when this component was registered</sci:help>
										<sci:value>17.2.0.1267</sci:value>
									</sci:arg>
									<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="Protocol Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>Protocol Sticky Notes</sci:help>
									</sci:arg>
									<sci:arg name="ProtocolScale2" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:help>Protocol Scale</sci:help>
										<sci:value>100</sci:value>
									</sci:arg>
									<sci:arg name="Protocol Options" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>Protocol Options</sci:help>
										<sci:legalval>Owner Access Only</sci:legalval>
									</sci:arg>
									<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The user who registered this component.</sci:help>
										<sci:value>scitegic/coreutils</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The date this component was registered.</sci:help>
										<sci:value>Thu Sep 15 15:57:54 2016</sci:value>
									</sci:arg>
									<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:help>Local Component Identifier</sci:help>
										<sci:value>4</sci:value>
									</sci:arg>
									<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The original path within the database of this component.</sci:help>
										<sci:value>Components\Data Access and Manipulation\Utilities\Subprotocol Utilities\Subprotocol</sci:value>
									</sci:arg>
								</sci:component>
								<sci:protocol>
									<sci:data object="SciTegic.EvaluateExpression.1">
										<sci:component name="Custom Manipulator (PilotScript)" version="2">
											<sci:arg name="Expression" type="ExpressionType" required="true" visibility="visible" multi="false" expanded="true" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
												<sci:help>Expression (or list of expressions separated by semi-colons) to evaluate.</sci:help>
												<sci:member>Initial Expression</sci:member>
												<sci:member>Final Expression</sci:member>
												<sci:member>Keep Calculated Properties</sci:member>
												<sci:value>@resultFound := 1;</sci:value>
											</sci:arg>
											<sci:arg name="Initial Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
												<sci:help>&lt;p&gt;
This expression is executed only the first time data passes into the component.
&lt;p/&gt; 
Since there is no data available at initialization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
											</sci:arg>
											<sci:arg name="Final Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
												<sci:help>&lt;p&gt;
This expression is executed only at finalization (after the last data passes out of the component).
&lt;p/&gt; 
Since there is no data available at finalization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
											</sci:arg>
											<sci:arg name="Keep Calculated Properties" type="BoolType" required="true" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
												<sci:help>Adds any properties calculated in this component to a data record&apos;s property list.</sci:help>
												<sci:legalval selected="true">True</sci:legalval>
												<sci:legalval>False</sci:legalval>
											</sci:arg>
											<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
												<sci:help>Component Attributes</sci:help>
												<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
												<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
												<sci:legalval>ComponentReturnsFail</sci:legalval>
												<sci:legalval>ComponentRunsLocal</sci:legalval>
											</sci:arg>
											<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
												<sci:legalval selected="true">Halt</sci:legalval>
												<sci:legalval>Fail</sci:legalval>
												<sci:legalval>Pass</sci:legalval>
											</sci:arg>
											<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
												<sci:legalval selected="true">Halt</sci:legalval>
												<sci:legalval>Fail</sci:legalval>
												<sci:legalval>Pass</sci:legalval>
											</sci:arg>
											<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
											<sci:arg name="Do Screen" type="BoolType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
												<sci:help>When TRUE, controls which exit port is used for
each data record by evaluating the final expression
(or only one) listed in the &quot;Expression&quot; parameter.
   -Pass (green) port when expression true
   -Fail (red) port when expression false</sci:help>
												<sci:legalval>True</sci:legalval>
												<sci:legalval selected="true">False</sci:legalval>
											</sci:arg>
											<sci:arg name="ExpressionVersion" type="LongType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
												<sci:help>Version of expression parser to use.</sci:help>
												<sci:value>2</sci:value>
											</sci:arg>
											<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The user who registered this component.</sci:help>
												<sci:value>scitegic/generic</sci:value>
											</sci:arg>
											<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The date this component was registered.</sci:help>
												<sci:value>Mon Jan 21 09:55:43 2008</sci:value>
											</sci:arg>
											<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false"/>
											<sci:arg name="ComponentAutoDisplayName" type="ExpressionType" required="false" visibility="nevershow" multi="false">
												<sci:help>Automatically update the component display name when the &quot;Expression&quot; property is changed. This feature is turned off after the user manually changes the display name of the component in Protocol workspace.</sci:help>
												<sci:value>#displayName := trim(Parameter(&apos;Expression&apos;, 2));
if(strlength(#displayName) &gt; 0) then	
	/* Find the first line break */
	#nl := FindSubstring(#displayName, &quot;\r&quot;);
	if #nl &lt;= 0 then
		#nl := FindSubstring(#displayName, &quot;\n&quot;);
	end if;

	/* Keep the first line only */
	if (#nl &gt; 0) then
		StrErase(#displayName, #nl);
	end if;
	
	#displayName;
else
	&quot;&quot;;
end if;</sci:value>
											</sci:arg>
											<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The component this component is based upon.</sci:help>
												<sci:value>Custom Manipulator (PilotScript)</sci:value>
											</sci:arg>
											<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
												<sci:value>EXPRESSIONNODE</sci:value>
											</sci:arg>
											<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
												<sci:value>0</sci:value>
											</sci:arg>
											<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>{0995D675-7EE2-432C-95DF-E91C14052B22}</sci:value>
											</sci:arg>
											<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>1590 -95</sci:value>
											</sci:arg>
											<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
												<sci:value>100</sci:value>
												<sci:value>Applies a PilotScript expression to each data record
</sci:value>
												<sci:value>&lt;p&gt;PilotScript is the native scripting language in Pipeline Pilot.  It is based on PL/SQL and allows you to query or alter the properties on data records.  For example, the expression:

&lt;blockquote&gt;
&lt;code&gt;A := 10;&lt;/code&gt;
&lt;/blockquote&gt;
creates a property named &quot;A&quot; and sets the value to &quot;10&quot;.&lt;/p&gt;

&lt;p&gt;For each incoming data record the PilotScript statements in &lt;i&gt;Expression&lt;/i&gt; are evaluated.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To initialize global variables such as counters, use &lt;i&gt;Initial Expression&lt;/i&gt;.&lt;/li&gt; 
&lt;li&gt;To clean up global variables or calculate final results use &lt;i&gt;Final Expression&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Parameters on Custom Manipulators do not become global variables that can be accessed via &lt;i&gt;@ParameterName&lt;/i&gt; syntax.  They must be accessed by using the &lt;i&gt;Parameter(&apos;ParameterName&apos;)&lt;/i&gt; function or by using token substitution via &lt;i&gt;$(ParameterName)&lt;/i&gt; syntax.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;See Also:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For more information on PilotScript, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/pscript/pscript_overview.htm&apos;)&quot;&gt;PilotScript Overview&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To use PilotScript to filter data records use &lt;a href=&quot;javascript:DoLink(&apos;{DD58ECD1-516F-48FE-A5DB-8328AED680F2}&apos;)&quot;&gt;Custom Filter (PilotScript)&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

</sci:value>
												<sci:value>Generic</sci:value>
												<sci:value/>
												<sci:value>Generic</sci:value>
												<sci:value/>
												<sci:value>None</sci:value>
												<sci:value/>
											</sci:arg>
											<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The server version when this component was registered</sci:help>
												<sci:value>7.0.0.35</sci:value>
											</sci:arg>
											<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
											<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
												<sci:help>Local Component Identifier</sci:help>
												<sci:value>5</sci:value>
											</sci:arg>
											<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The original path within the database of this component.</sci:help>
												<sci:value>Components\Data Access and Manipulation\Property Manipulators\Custom Manipulator (PilotScript)</sci:value>
											</sci:arg>
										</sci:component>
									</sci:data>
									<sci:data object="SciTegic.TextWriter.1">
										<sci:component name="Binary Writer" version="2">
											<sci:arg name="Destination" type="DestinationURLType" required="true" visibility="visible" multi="false" legalvalsenforced="false">
												<sci:help>The location to which to write the data. Can be a file, a network resource, a global property, or a data record property.
&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;For a file, enter a path.&lt;/li&gt;
&lt;li&gt;For a network resource, enter a network URL in the form &lt;b&gt;protocol://server:port/...&lt;/b&gt;. (If port is omitted, a default is used.) Protocols supported are:
	&lt;ul&gt;
	&lt;li&gt;http, https&lt;/li&gt;
	&lt;li&gt;ftp&lt;/li&gt;
	&lt;li&gt;hdfs (Hadoop Distributed File System)&lt;/li&gt;
	&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;For a global property, enter &quot;global://property-name&quot;.&lt;/li&gt;
&lt;li&gt;For a data record property, enter &quot;property://property-name&quot; and add an output port.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;b&gt;Note:&lt;/b&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;When the destination is a file or network resource, be sure to specify an extension such as .txt or .xls. To save in compressed (zipped) format, add the extension .gz or .zip to the filename.&lt;/li&gt;
&lt;/ul&gt;
</sci:help>
												<sci:member>Maximum</sci:member>
												<sci:member>IfFileExists</sci:member>
												<sci:member>Username</sci:member>
												<sci:member>Password</sci:member>
												<sci:member>Additional Security Info</sci:member>
												<sci:value>$(responseXML)</sci:value>
											</sci:arg>
											<sci:arg name="Maximum" type="LongType" required="false" visibility="visible" multi="false">
												<sci:help>The maximum number of data records to write. If empty, all records are written out.
&lt;p&gt;
If you are writing out data from multiple records to a single binary file, ensure that this is really what you want to do. You may prefer to write out individual record data to separate files in a Run To Completion subprotocol.</sci:help>
											</sci:arg>
											<sci:arg name="IfFileExists" type="StringType" required="true" visibility="visible" multi="false">
												<sci:help>Specifies action to take if a file specified by &lt;i&gt;Destination&lt;/i&gt; already exists. Options are:
&lt;ul&gt;
&lt;li&gt;Overwrite: Replace the existing file with the new content.
&lt;li&gt;Append: Append the new content to the end of the existing file.
&lt;li&gt;Halt: Raise an error and halt the protocol.
&lt;/ul&gt;
</sci:help>
												<sci:legalval selected="true">Overwrite</sci:legalval>
												<sci:legalval>Append</sci:legalval>
												<sci:legalval>Halt</sci:legalval>
											</sci:arg>
											<sci:arg name="Username" type="StringType" required="false" visibility="hidden" multi="false">
												<sci:help>&lt;p&gt;User name for connecting to destination.  Primarily used for HDFS.&lt;/p&gt;</sci:help>
											</sci:arg>
											<sci:arg name="Password" type="xpass" encrypt="bf_1" required="false" visibility="hidden" multi="false" legalvalsenforced="false">
												<sci:help>&lt;p&gt;Password used to connect to destination.  Primarily used for HDFS.&lt;/p&gt;</sci:help>
											</sci:arg>
											<sci:arg name="Additional Security Info" type="StringType" required="false" visibility="hidden" multi="true" expanded="true" uimpl="false">
												<sci:help>&lt;p&gt;This is an array of additional security information.  Primarily used by HDFS. &lt;/p&gt;
&lt;p&gt;When connecting to secured HDFS the Kerberos KDC Server and realm must be specified. &lt;/p&gt;
&lt;b&gt;For example&lt;/b&gt;
&lt;p&gt;KDC Server=&amp;lt;Server Name&amp;gt;&lt;/p&gt;
&lt;p&gt;KDC Realm=&amp;lt;Realm Name&amp;gt;&lt;/p&gt;</sci:help>
											</sci:arg>
											<sci:arg name="Binary Data Property" type="PropertyNameType" required="true" visibility="visible" multi="false">
												<sci:help>The name of the binary property on the data record to write to file. All other properties are ignored.</sci:help>
												<sci:value>responseXML</sci:value>
											</sci:arg>
											<sci:arg name="Binary" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
												<sci:help>Open the file in binary mode to output non-textual information</sci:help>
												<sci:legalval selected="true">True</sci:legalval>
												<sci:legalval>False</sci:legalval>
											</sci:arg>
											<sci:arg name="PropertyNames" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
												<sci:help>List of properties to write. (Alias for &lt;i&gt;Binary Data Property&lt;/i&gt;.)</sci:help>
												<sci:value>$(Binary Data Property)</sci:value>
											</sci:arg>
											<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
												<sci:help>Component Attributes</sci:help>
												<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
												<sci:legalval>ComponentReturnsPass</sci:legalval>
												<sci:legalval>ComponentReturnsFail</sci:legalval>
												<sci:legalval>ComponentRunsLocal</sci:legalval>
											</sci:arg>
											<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
												<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
												<sci:legalval selected="true">Halt</sci:legalval>
												<sci:legalval>Fail</sci:legalval>
												<sci:legalval>Pass</sci:legalval>
											</sci:arg>
											<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
												<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
												<sci:legalval selected="true">Halt</sci:legalval>
												<sci:legalval>Fail</sci:legalval>
												<sci:legalval>Pass</sci:legalval>
											</sci:arg>
											<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>Custom Error Message</sci:help>
											</sci:arg>
											<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The user who registered this component.</sci:help>
												<sci:value>scitegic/generic</sci:value>
											</sci:arg>
											<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The date this component was registered.</sci:help>
												<sci:value>Thu Sep 29 10:10:53 2016</sci:value>
											</sci:arg>
											<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>Binary Writer</sci:value>
											</sci:arg>
											<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
												<sci:value>DOCUMENTNODE</sci:value>
											</sci:arg>
											<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>{BF2A2E90-418A-4C0B-8550-B2C4D5554628}</sci:value>
											</sci:arg>
											<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>1890 -95</sci:value>
											</sci:arg>
											<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The component this component is based upon.</sci:help>
												<sci:value>Text Writer</sci:value>
											</sci:arg>
											<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
												<sci:value>0</sci:value>
											</sci:arg>
											<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
												<sci:value>100</sci:value>
												<sci:value>Writes binary data to a file.</sci:value>
												<sci:value>&lt;p&gt;This component writes the content of a binary data property into a named &lt;i&gt;Destination&lt;/i&gt; file.
&lt;/p&gt;
&lt;p&gt;Ensure that the property specified in &lt;i&gt;Binary Data Property&lt;/i&gt; is in fact binary data; it should be a Byte Array value.
&lt;/p&gt;</sci:value>
												<sci:value>Generic</sci:value>
												<sci:value/>
												<sci:value>None</sci:value>
												<sci:value/>
												<sci:value>None</sci:value>
												<sci:value/>
											</sci:arg>
											<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The server version when this component was registered</sci:help>
												<sci:value>17.2.0.1279</sci:value>
											</sci:arg>
											<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
											<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
												<sci:help>Local Component Identifier</sci:help>
												<sci:value>19</sci:value>
											</sci:arg>
											<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The original path within the database of this component.</sci:help>
												<sci:value>Components\Data Access and Manipulation\File Writers\Binary Writer</sci:value>
											</sci:arg>
										</sci:component>
									</sci:data>
									<sci:data object="SciTegic.HttpPost.1">
										<sci:component name="HTTP Connector" version="2">
											<sci:arg name="Source" type="TextType" required="true" visibility="visible" multi="false" expanded="true" legalvalsenforced="false">
												<sci:help>The target URL to send the HTTP request.</sci:help>
												<sci:member>HTTP Authentication Options</sci:member>
												<sci:value>$(URL)?CMD=Get&amp;FORMAT_TYPE=XML&amp;RID=$(RID)&amp;ALIGNMENT_VIEW=Pairwise&amp;ALIGNMENTS=$(Maximum Hits)&amp;DESCRIPTIONS=100</sci:value>
											</sci:arg>
											<sci:arg name="HTTP Authentication Options" type="GroupType" required="false" visibility="visible" multi="false" uimpl="false">
												<sci:help>Options for user credentials when the HTTP server requires authentication.</sci:help>
												<sci:member>Authentication Method</sci:member>
												<sci:member>Username</sci:member>
												<sci:member>Password</sci:member>
											</sci:arg>
											<sci:arg name="Authentication Method" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
												<sci:help>&lt;p&gt;
Determines how to obtain the username and password for HTTP authentication.
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Use Username and Password Parameters&lt;/b&gt;: Use the values provided by the component&apos;s &lt;i&gt;Username&lt;/i&gt; and &lt;i&gt;Password&lt;/i&gt; parameters.
&lt;li&gt;&lt;b&gt;Use Pipeline Pilot Credentials&lt;/b&gt;: Use the username and password that were provided when the user logged into Pipeline Pilot. In this case, the &lt;i&gt;Password&lt;/i&gt; parameter is ignored. If left empty, the &lt;i&gt;Username&lt;/i&gt; is ignored, but can be filled in to override the user&apos;s log-in name.
&lt;/ul&gt;</sci:help>
												<sci:legalval selected="true">Use Username and Password Parameters</sci:legalval>
												<sci:legalval>Use Pipeline Pilot Credentials</sci:legalval>
											</sci:arg>
											<sci:arg name="Username" type="UserNameType" required="false" visibility="visible" multi="false" uimpl="false">
												<sci:help>&lt;p&gt;
The username used if authentication is needed for an HTTP server.
&lt;/p&gt;
&lt;p&gt;
If the Authentication Method is set to &apos;Use Username and Password Parameters&apos;, then this parameter
can be filled in to provide authentication information to the remote server.
&lt;/p&gt;
&lt;p&gt; 
If the Authentication Method is set to &apos;Use SciTegic Credentials&apos;, then this parameter can be left empty
and the logged in username is used. As an override option, if the username is filled in, this
username is used along with the user&apos;s Pipeline Pilot password.
&lt;/p&gt;</sci:help>
											</sci:arg>
											<sci:arg name="Password" type="xpass" encrypt="bf_1" required="false" visibility="visible" multi="false" uimpl="false">
												<sci:help>The password to be used when authenticating to an HTTP server. This parameter is disabled if the Authentication Method is not &apos;Use Username and Password Parameters&apos;.</sci:help>
												<sci:enabledscript>SetDisabledDetails(&quot;To enable, set Authentication Method to &apos;Use Username and Password Parameters&apos;&quot;);
Parameter(&apos;Authentication Method&apos;) eq &apos;Use Username and Password Parameters&apos;;</sci:enabledscript>
											</sci:arg>
											<sci:arg name="HTTP Method" type="StringType" required="false" visibility="visible" multi="false" expanded="true">
												<sci:help>The type of HTTP Method to use when sending the request. These include the standard HTTP Methods of Get, Post, Put, Head, Delete, Trace, Options, and Connect, but can also be an optional extended method, such as the WebDav method &quot;Propfind&quot;.</sci:help>
												<sci:member>HTTP Body Content</sci:member>
												<sci:member>Request Body</sci:member>
												<sci:value>Get</sci:value>
											</sci:arg>
											<sci:arg name="HTTP Body Content" type="StringType" required="false" visibility="visible" multi="false">
												<sci:help>&lt;p&gt;When sending parameter data, this parameter specifies the method to use when formatting parameter data into the HTTP request for the remote server, either &quot;FormURLEncoded&quot; or &quot;FormMultipart&quot;.&lt;/p&gt;
&lt;p&gt;Alternatively, choose the &quot;Send Request Body&quot; option
if you wish to define the body content and content type in the &quot;Request Body&quot; parameter, instead of filling out parameter values. Use this value if you need to send some arbitrary
body content, such as an XML or JSON document. If you select this option, you will need to supply values for the &lt;i&gt;Request Body&lt;/i&gt; and for its &lt;i&gt;Content Type&lt;/i&gt;.
&lt;/p&gt;</sci:help>
												<sci:enabledscript>SetDisabledDetails(&quot;To enable, set HTTP Method to a method that supports an HTTP Body (e.g. Post)&quot;);
Trim(Parameter(&apos;HTTP Method&apos;)) not rlike &apos;^Get$|^Head$|^Options$&apos;;</sci:enabledscript>
												<sci:legalval selected="true">FormURLEncoded</sci:legalval>
												<sci:legalval>FormMultipart</sci:legalval>
												<sci:legalval>Send Request Body</sci:legalval>
											</sci:arg>
											<sci:arg name="Request Body" type="ExpressionType" required="false" visibility="visible" multi="false" expanded="true" legalvalsenforced="false">
												<sci:help>&lt;p&gt;In lieu of specific Http Post parameters, you can also explicitly define the entire HTTP Request body here. Because it is an expression type, specify the name of a property that contains the text of the body.&lt;/p&gt;

&lt;p&gt;If this parameter is specified, it overrides the contents of the &lt;i&gt;Parameters&lt;/i&gt; group.&lt;/p&gt;</sci:help>
												<sci:member>Request Body Content Type</sci:member>
												<sci:validscript>SetInvalidDetails(
	       ParameterName() . &apos; must be filled in when sending the raw request body.&apos;);
Stringlen(Parameter()) &gt; 0;</sci:validscript>
												<sci:enabledscript>SetDisabledDetails(&quot;To enable, set HTTP Body Content to &apos;Send Request Body&apos;&quot;);
Trim(Parameter(&apos;HTTP Method&apos;)) not rlike &apos;^Get$|^Head$|^Options$&apos;
AND
Parameter (&apos;HTTP Body Content&apos;) eq &apos;Send Request Body&apos;;</sci:enabledscript>
											</sci:arg>
											<sci:arg name="Request Body Content Type" type="StringType" required="false" visibility="visible" multi="false">
												<sci:help>&lt;p&gt;The content-type header value to define the format of the &quot;Request Body&quot; data.&lt;/p&gt;
&lt;p&gt;Use a standard MIME type such as the examples below:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;text/xml;charset=utf-8&lt;/li&gt;
&lt;li&gt;application/json&lt;/li&gt;
&lt;li&gt;text/plain&lt;/li&gt;
&lt;/ul&gt;</sci:help>
												<sci:validscript>SetInvalidDetails(
	       ParameterName() . &apos; must be filled in when sending the raw request body.&apos;);
Stringlen(Parameter()) &gt; 0;</sci:validscript>
											</sci:arg>
											<sci:arg name="Parameters" type="GroupType" required="false" visibility="visible" multi="true" expanded="true" legalvalsenforced="false">
												<sci:help>The POST parameters to send to the server. You can add or remove additional parameters by clicking on the ... icon.</sci:help>
												<sci:member>Parameter 1</sci:member>
												<sci:member>Parameter 2</sci:member>
												<sci:member>Parameter 3</sci:member>
												<sci:member>Parameter 4</sci:member>
												<sci:member>Parameter 5</sci:member>
												<sci:member>Parameter 6</sci:member>
												<sci:enabledscript>SetDisabledDetails(&quot;Used for sending a form-structured request body. To enable, set HTTP Method to Post/Put/Patch and set HTTP Body to one of the Form encoding options.&quot;);
(Trim(Parameter(&apos;HTTP Method&apos;)) rlike &apos;^post$|^put$|^patch$&apos;)
AND
(Parameter(&apos;HTTP Body Content&apos;) like &apos;Form%&apos;);</sci:enabledscript>
											</sci:arg>
											<sci:arg name="Additional Request Headers" type="GroupType" required="false" visibility="visible" multi="true">
												<sci:help>Optionally, you can add additional headers to the HTTP Post request to better control the behavior. On the HTTP request, the data sent in the headers is &lt;b&gt;HeaderName: HeaderValue&lt;/b&gt;. For instance, to set HTTP Cookies on the request, set the header name of an additional request header to be &lt;b&gt;Cookie&lt;/b&gt; and the value to &lt;b&gt;CookieName=CookieValue; CookieName2=CookieValue2;&lt;/b&gt;</sci:help>
												<sci:member>Header 1</sci:member>
											</sci:arg>
											<sci:arg name="Header 1" type="GroupType" required="false" visibility="visible" multi="false" expanded="true">
												<sci:help>Each Additional Request Header requires a name and value.</sci:help>
												<sci:member>Header 1 Name</sci:member>
												<sci:member>Header 1 Value</sci:member>
											</sci:arg>
											<sci:arg name="Header 1 Name" type="StringType" required="false" visibility="visible" multi="false">
												<sci:help>The name of the Additional HTTP Request Header to send to the remote server.</sci:help>
											</sci:arg>
											<sci:arg name="Header 1 Value" type="ExpressionType" required="false" visibility="visible" multi="false">
												<sci:help>The value of the Additional HTTP Request Header.</sci:help>
											</sci:arg>
											<sci:arg name="Additional Options" type="GroupType" required="false" visibility="visible" multi="false" expanded="true">
												<sci:help>Contains less commonly used parameters</sci:help>
												<sci:member>Put Response in Property</sci:member>
												<sci:member>Include Response Headers</sci:member>
												<sci:member>Additional Allowed Response Codes</sci:member>
												<sci:member>Response is Binary</sci:member>
												<sci:member>Timeout</sci:member>
												<sci:member>Connection Options</sci:member>
												<sci:member>Maximum Response Size</sci:member>
											</sci:arg>
											<sci:arg name="Put Response in Property" type="StringType" required="false" visibility="visible" multi="false" expanded="true">
												<sci:help>The name of the property to store the results from the server. The default is &lt;b&gt;response&lt;/b&gt;</sci:help>
												<sci:value>responseXML</sci:value>
											</sci:arg>
											<sci:arg name="Include Response Headers" type="BoolType" required="false" visibility="visible" multi="false">
												<sci:help>If set to &lt;b&gt;False&lt;/b&gt;, then the only data returned is the HTTP body from the response as indicated by the &lt;i&gt;Put Response in Property&lt;/i&gt; parameter. If set to &lt;b&gt;True&lt;/b&gt;, then each header on the response will be added as a property to the data record where the name of the property matches the name of the response header. Additionally, a property called &lt;b&gt;HTTP Response&lt;/b&gt; contains the first line of the HTTP response headers that includes the HTTP version and HTTP response code.</sci:help>
												<sci:legalval selected="true">False</sci:legalval>
												<sci:legalval>True</sci:legalval>
											</sci:arg>
											<sci:arg name="Additional Allowed Response Codes" type="StringType" required="false" visibility="visible" multi="false">
												<sci:help>&lt;p&gt;A comma separated list of HTTP response codes that are expected from the service. Ordinarily, Http response codes that indicate errors such as &quot;500 Internal Server Error&quot; and &quot;403 Forbidden&quot; are treated as errors by the component and a Pipeline Pilot error is generated. However, errors that can be handled internally by the component such as &quot;401 Unauthorized&quot; and &quot;3xx Redirect&quot; are dealt with. Note that some applications expect response codes and consider response codes to be part of the implementation.&lt;/p&gt;

&lt;p&gt;For example, SOAP services often return &quot;500 Internal Server Error&quot; to indicate an error from the service itself that the client might be expecting. For these cases, you can specify a list of response codes such as &quot;500,403&quot; to tell the component to treat those responses as valid response codes.&lt;/p&gt;

&lt;p&gt;The response codes that are already handled by the component are:
&lt;ul&gt;
&lt;li&gt;100-199 (processing)&lt;/li&gt;
&lt;li&gt;200-299 (valid response)&lt;/li&gt;
&lt;li&gt;300-399 (redirect)&lt;/li&gt;
&lt;li&gt;401 (HTTP Authentication)&lt;/li&gt;
&lt;li&gt;407 (Proxy Authentication)&lt;/li&gt;
&lt;li&gt;417 (Expectation failed)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For the list of standard HTTP Response codes, see RFC 2616 (&lt;a href=&quot;javascript:DoLink(&apos;http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html&apos;)&quot;&gt;http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html&lt;/a&gt;). Extended response codes might also be available in other specifications.&lt;/p&gt;</sci:help>
											</sci:arg>
											<sci:arg name="Response is Binary" type="BoolType" required="false" visibility="visible" multi="false" expanded="true" legalvalsenforced="false">
												<sci:help>&lt;p&gt;Set to &lt;b&gt;True&lt;/b&gt; if the response data saved is binary. The &lt;b&gt;Http Connector&lt;/b&gt; will enter &lt;i&gt;Streaming Mode&lt;/i&gt; where the component, when possible, will attempt to stream the result property directly into a single downstream converter or reader component such as &lt;a href=&quot;javascript:DoLink(&apos;{93C4D73F-0B4D-03F4-B0E3-D82C4FE04C6F}&apos;)&quot;&gt;XML Reader (Generic)&lt;/a&gt;, &lt;a href=&quot;javascript:DoLink(&apos;{40A5F3DC-E6D3-4781-BB00-D91254C5350E}&apos;)&quot;&gt;JSON Reader (Generic)&lt;/a&gt;, &lt;a href=&quot;javascript:DoLink(&apos;{CE3E731B-BA0B-4EEE-9532-9E9B66D1F6DF}&apos;)&quot;&gt;Data from XML&lt;/a&gt;, or &lt;a href=&quot;javascript:DoLink(&apos;{C515C623-DA9A-414E-BD66-C14A922EFA60}&apos;)&quot;&gt;Data from JSON&lt;/a&gt; components.  To use the streamed data within a converter, specify the response property in the downstream component.  To use a generic reader, use the format &lt;b&gt;property://ResponsePropertyName&lt;/b&gt; within the &lt;b&gt;Source&lt;/b&gt; parameter of the reader component.  If the streamed property is needed by another component or framework element before reaching the reader/converter component, the result property will be read into memory subject to the maximum size specified by &lt;b&gt;Maximum Response Size&lt;/b&gt; and will then be available as a property of type &lt;i&gt;SciTegic.value.ByteArrayValue&lt;/i&gt;.  This can happen, for instance, if the pipeline splits to more than one component, if a checkpoint is placed on the Http Connector, or if a &lt;a href=&quot;javascript:DoLink(&apos;{AA4369ED-A1A1-4949-8520-39B23096ACFD}&apos;)&quot;&gt;Data Record Tree Viewer&lt;/a&gt; component is placed between the &lt;b&gt;Http Connector&lt;/b&gt; and the downstream reader/converter.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Maximum Property Size&lt;/b&gt; is not compatible with &lt;i&gt;Streaming Mode&lt;/i&gt;, and so is now disabled by default when &lt;b&gt;Response is Binary&lt;/b&gt; is true.&lt;/p&gt;

&lt;p&gt;For other scenarios where you wish to convert the incoming data based on a specific character set, you can use the Pilotscript function &quot;ConvertBytesToString&quot; to decode the Unicode characters for use in other downstream components.&lt;/p&gt;</sci:help>
												<sci:member>Detect Character Encodings</sci:member>
												<sci:member>Maximum Property Size</sci:member>
												<sci:legalval selected="true">True</sci:legalval>
												<sci:legalval>False</sci:legalval>
											</sci:arg>
											<sci:arg name="Detect Character Encodings" type="BoolType" required="false" visibility="visible" multi="false" legalvalsenforced="false">
												<sci:help>When reading the HTTP response into a text property, international characters are typically encoded in some standard form.  The character encoding is often specified as part of the &lt;b&gt;Content-Type&lt;/b&gt; header (e.g. Content-Type: text/html; charset=UTF-8).  Additionally, some content types such as text/html and text/xml can specify their character encoding within the body text (in an html meta tag or xml doctype tag).  Therefore, if this parameter is true and the response will be put into a string property, the component will attempt to determine the character encoding, first from the &lt;b&gt;Content-Type&lt;/b&gt; header, then from the body of the message &lt;i&gt;if&lt;/i&gt; the Content-Type is specified to be text/html or text/xml.</sci:help>
												<sci:enabledscript>SetDisabledDetails(&apos;Only applicable if Response is Binary is false&apos;);
not Parameter(&apos;Response is Binary&apos;);</sci:enabledscript>
												<sci:legalval selected="true">True</sci:legalval>
												<sci:legalval>False</sci:legalval>
											</sci:arg>
											<sci:arg name="Maximum Property Size" type="LongType" required="false" visibility="visible" multi="false">
												<sci:help>Set the maximum property size. When greater-than zero, the response is sent in one or more new data record properties, until the complete response has been consumed. When empty, the response is sent in one data record property.</sci:help>
												<sci:enabledscript>SetDisabledDetails(&apos;Only applicable if Response is Binary is false and Put Response in Property is set&apos;);
not Parameter(&apos;Response is Binary&apos;) and StrLength(Parameter(&apos;Put Response In Property&apos;)) &gt; 0;</sci:enabledscript>
											</sci:arg>
											<sci:arg name="Timeout" type="LongType" required="false" visibility="visible" multi="false">
												<sci:help>The time in seconds to wait for a response from the server.</sci:help>
												<sci:value>600</sci:value>
											</sci:arg>
											<sci:arg name="Connection Options" type="StringType" required="false" visibility="visible" multi="true">
												<sci:help>&lt;p&gt;Additional HTTP Connection options:&lt;/p&gt;
&lt;p&gt;&lt;ul&gt;
&lt;li&gt;Allow Http Keep-alive connections (default: &lt;i&gt;true&lt;/i&gt;).  By default, most HTTP socket connections handle multiple requests to the server.  You can disable this if you find that your connection is not handled as expected.&lt;/li&gt;
&lt;li&gt;Allow the Http header, Expect: 100  (default: &lt;i&gt;true&lt;/i&gt;). When sending a large body to the remote server, Expect 100 allows the remote server to respond mid-stream to inform the client that it needs to authenticate or redirect to a new URL. This can help the Http Connector component avoid sending large bodies to servers multiple times when it turns out that authentication is required or that the URL has been redirected.&lt;/li&gt;
&lt;li&gt;Treat Http 403 responses as though a 401 response had been received instead (default: &lt;i&gt;false&lt;/i&gt;). When a remote server requires authentication, it is supposed to return a response code of 401 to indicate that credentials are required. However, some servers erroneously send 403 responses instead. Some Http clients deal with this by preemptively sending authentication information. However, this presents a security hole, so this option allows the component developer to selectively send credentials to servers that are responding with 403 Forbidden as though they had actually responded with 401 Authenticate: Basic. It should only be used when it is clear that this will allow integration with a specific remote server.&lt;/li&gt;
&lt;li&gt;Force Content-Length Calculation (default: &lt;i&gt;false&lt;/i&gt;). This is 
only relevant when sending a large body content in the HTTP request. When set, this behavior forces the 
component to cache all content before sending it to the server with a content length header. Where the 
server supports &quot;chunked&quot; transfer encoding, this setting should be kept off, allowing the 
component to start sending &quot;chunks&quot; of the data before knowing the total content length; this 
avoids the need to cache all the data before sending it, and so is faster and requires less memory, aiding 
scalability.&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
</sci:help>
												<sci:legalval selected="true">Allow Keep-Alive</sci:legalval>
												<sci:legalval selected="true">Allow Expect: 100</sci:legalval>
												<sci:legalval>Treat 403 Forbidden As 401 Authenticate</sci:legalval>
												<sci:legalval>Force Content-Length Calculation</sci:legalval>
											</sci:arg>
											<sci:arg name="Maximum Response Size" type="LongType" required="false" visibility="visible" multi="false" expanded="true">
												<sci:help>The maximum amount of data in bytes to download from the server.  The reponse data is truncated once the limit has been reached.  If the parameter is blank, the limit is the default value of 64 MB.</sci:help>
												<sci:value>64000000</sci:value>
											</sci:arg>
											<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
												<sci:help>Component Attributes</sci:help>
												<sci:value>ComponentReturnsPass</sci:value>
												<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
												<sci:legalval>ComponentReturnsPass</sci:legalval>
												<sci:legalval>ComponentReturnsFail</sci:legalval>
												<sci:legalval>ComponentRunsLocal</sci:legalval>
											</sci:arg>
											<sci:arg name="Parameter 1" type="GroupType" required="false" visibility="visible" multi="false" expanded="true" legalvalsenforced="false">
												<sci:help>&lt;p&gt;Each POST parameter requires a name and value.&lt;/p&gt;
&lt;p&gt;You can also define metadata values for each parameter
which can be useful in the multipart/form context.
&lt;ul&gt;
&lt;li&gt;To associate a content type with a parameter, set the parameter
metadata value &quot;content-type&quot; to the appropriate mime type.&lt;/li&gt;
&lt;li&gt;To associate a filename with the parameter, define a metadata value named &quot;filename&quot; and set it to the value that you wish to define for the parameter content.
&lt;/li&gt;
&lt;/ul&gt;</sci:help>
												<sci:member>Parameter 1 Name</sci:member>
												<sci:member>Parameter 1 Value</sci:member>
											</sci:arg>
											<sci:arg name="Parameter 1 Name" type="StringType" required="false" visibility="visible" multi="false">
												<sci:help>The name of the POST parameter to send to the remote server</sci:help>
											</sci:arg>
											<sci:arg name="Parameter 1 Value" type="ExpressionType" required="false" visibility="visible" multi="false">
												<sci:help>The value of the POST parameter. This can be any Pilotscript expression that returns a string. To specify a literal value, enclose it within quotation marks (for example, &apos;myvalue&apos;). To specify a property name, type it in (for example, myproperty)</sci:help>
											</sci:arg>
											<sci:arg name="Parameter 2" type="GroupType" required="false" visibility="visible" multi="false" expanded="true" legalvalsenforced="false">
												<sci:help>&lt;p&gt;Each POST parameter requires a name and value.&lt;/p&gt;
&lt;p&gt;You can also define metadata values for each parameter
which can be useful in the multipart/form context.
&lt;ul&gt;
&lt;li&gt;To associate a content type with a parameter, set the parameter
metadata value &quot;content-type&quot; to the appropriate mime type.&lt;/li&gt;
&lt;li&gt;To associate a filename with the parameter, define a metadata value named &quot;filename&quot; and set it to the value that you wish to define for the parameter content.
&lt;/li&gt;
&lt;/ul&gt;</sci:help>
												<sci:member>Parameter 2 Name</sci:member>
												<sci:member>Parameter 2 Value</sci:member>
											</sci:arg>
											<sci:arg name="Parameter 2 Name" type="StringType" required="false" visibility="visible" multi="false">
												<sci:help>The name of the POST parameter to send to the remote server</sci:help>
											</sci:arg>
											<sci:arg name="Parameter 2 Value" type="ExpressionType" required="false" visibility="visible" multi="false">
												<sci:help>The value of the POST parameter. This can be any Pilotscript expression that returns a string. To specify a literal value, enclose it within quotation marks (for example, &apos;myvalue&apos;). To specify a property name, type it in (for example, myproperty)</sci:help>
											</sci:arg>
											<sci:arg name="Parameter 3" type="GroupType" required="false" visibility="visible" multi="false" legalvalsenforced="false">
												<sci:help>&lt;p&gt;Each POST parameter requires a name and value.&lt;/p&gt;
&lt;p&gt;You can also define metadata values for each parameter
which can be useful in the multipart/form context.
&lt;ul&gt;
&lt;li&gt;To associate a content type with a parameter, set the parameter
metadata value &quot;content-type&quot; to the appropriate mime type.&lt;/li&gt;
&lt;li&gt;To associate a filename with the parameter, define a metadata value named &quot;filename&quot; and set it to the value that you wish to define for the parameter content.
&lt;/li&gt;
&lt;/ul&gt;</sci:help>
												<sci:member>Parameter 3 Name</sci:member>
												<sci:member>Parameter 3 Value</sci:member>
											</sci:arg>
											<sci:arg name="Parameter 3 Name" type="StringType" required="false" visibility="visible" multi="false">
												<sci:help>The name of the POST parameter to send to the remote server</sci:help>
												<sci:value>RID</sci:value>
											</sci:arg>
											<sci:arg name="Parameter 3 Value" type="ExpressionType" required="false" visibility="visible" multi="false">
												<sci:help>The value of the POST parameter. This can be any Pilotscript expression that returns a string. To specify a literal value, enclose it within quotation marks (for example, &apos;myvalue&apos;). To specify a property name, type it in (for example, myproperty)</sci:help>
												<sci:value>RID</sci:value>
											</sci:arg>
											<sci:arg name="Parameter 4" type="GroupType" required="false" visibility="visible" multi="false" expanded="true" legalvalsenforced="false">
												<sci:help>&lt;p&gt;Each POST parameter requires a name and value.&lt;/p&gt;
&lt;p&gt;You can also define metadata values for each parameter
which can be useful in the multipart/form context.
&lt;ul&gt;
&lt;li&gt;To associate a content type with a parameter, set the parameter
metadata value &quot;content-type&quot; to the appropriate mime type.&lt;/li&gt;
&lt;li&gt;To associate a filename with the parameter, define a metadata value named &quot;filename&quot; and set it to the value that you wish to define for the parameter content.
&lt;/li&gt;
&lt;/ul&gt;</sci:help>
												<sci:member>Parameter 4 Name</sci:member>
												<sci:member>Parameter 4 Value</sci:member>
											</sci:arg>
											<sci:arg name="Parameter 4 Name" type="StringType" required="false" visibility="visible" multi="false">
												<sci:help>The name of the POST parameter to send to the remote server</sci:help>
											</sci:arg>
											<sci:arg name="Parameter 4 Value" type="ExpressionType" required="false" visibility="visible" multi="false">
												<sci:help>The value of the POST parameter. This can be any Pilotscript expression that returns a string. To specify a literal value, enclose it within quotation marks (for example, &apos;myvalue&apos;). To specify a property name, type it in (for example, myproperty)</sci:help>
											</sci:arg>
											<sci:arg name="Parameter 5" type="GroupType" required="false" visibility="visible" multi="false" expanded="true" legalvalsenforced="false">
												<sci:help>&lt;p&gt;Each POST parameter requires a name and value.&lt;/p&gt;
&lt;p&gt;You can also define metadata values for each parameter
which can be useful in the multipart/form context.
&lt;ul&gt;
&lt;li&gt;To associate a content type with a parameter, set the parameter
metadata value &quot;content-type&quot; to the appropriate mime type.&lt;/li&gt;
&lt;li&gt;To associate a filename with the parameter, define a metadata value named &quot;filename&quot; and set it to the value that you wish to define for the parameter content.
&lt;/li&gt;
&lt;/ul&gt;</sci:help>
												<sci:member>Parameter 5 Name</sci:member>
												<sci:member>Parameter 5 Value</sci:member>
											</sci:arg>
											<sci:arg name="Parameter 5 Name" type="StringType" required="false" visibility="visible" multi="false">
												<sci:help>The name of the POST parameter to send to the remote server</sci:help>
											</sci:arg>
											<sci:arg name="Parameter 5 Value" type="ExpressionType" required="false" visibility="visible" multi="false">
												<sci:help>The value of the POST parameter. This can be any Pilotscript expression that returns a string. To specify a literal value, enclose it within quotation marks (for example, &apos;myvalue&apos;). To specify a property name, type it in (for example, myproperty)</sci:help>
											</sci:arg>
											<sci:arg name="Parameter 6" type="GroupType" required="false" visibility="visible" multi="false" expanded="true" legalvalsenforced="false">
												<sci:help>&lt;p&gt;Each POST parameter requires a name and value.&lt;/p&gt;
&lt;p&gt;You can also define metadata values for each parameter
which can be useful in the multipart/form context.
&lt;ul&gt;
&lt;li&gt;To associate a content type with a parameter, set the parameter
metadata value &quot;content-type&quot; to the appropriate mime type.&lt;/li&gt;
&lt;li&gt;To associate a filename with the parameter, define a metadata value named &quot;filename&quot; and set it to the value that you wish to define for the parameter content.
&lt;/li&gt;
&lt;/ul&gt;</sci:help>
												<sci:member>Parameter 6 Name</sci:member>
												<sci:member>Parameter 6 Value</sci:member>
											</sci:arg>
											<sci:arg name="Parameter 6 Name" type="StringType" required="false" visibility="visible" multi="false">
												<sci:help>The name of the POST parameter to send to the remote server</sci:help>
											</sci:arg>
											<sci:arg name="Parameter 6 Value" type="ExpressionType" required="false" visibility="visible" multi="false">
												<sci:help>The value of the POST parameter. This can be any Pilotscript expression that returns a string. To specify a literal value, enclose it within quotation marks (for example, &apos;myvalue&apos;). To specify a property name, type it in (for example, myproperty)</sci:help>
											</sci:arg>
											<sci:arg name="Reinitialize For Each Data" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
												<sci:legalval>True</sci:legalval>
												<sci:legalval selected="true">False</sci:legalval>
											</sci:arg>
											<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
												<sci:legalval selected="true">Halt</sci:legalval>
												<sci:legalval>Fail</sci:legalval>
												<sci:legalval>Pass</sci:legalval>
											</sci:arg>
											<sci:arg name="OnGeneralError" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:legalval selected="true">Halt</sci:legalval>
												<sci:legalval>Fail</sci:legalval>
												<sci:legalval>Pass</sci:legalval>
											</sci:arg>
											<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
											<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>{8A25024A-C274-485B-BB99-8570DCC4C075}</sci:value>
											</sci:arg>
											<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
												<sci:value>100</sci:value>
												<sci:value>Sends requests to an HTTP server. It can also be used for executing and debugging various HTTP services such as REST and WebDav using methods such as Post, Get, Put, Head, Options.</sci:value>
												<sci:value>&lt;p&gt;
Configure this component to make remote requests to an HTTP server, using valid HTTP method verbs like Get, Post and Put. The Source parameter specifies the URL for the location of the HTTP server to receive the HTTP request with the parameter names and values specified by this component. Alternatively, &lt;b&gt;Additional Option&lt;/b&gt; parameters may be be configured to execute and consume other types of HTTP services, such as REST and WebDav. The component can either be the start of a new pipeline as a reader component or can be used within an existing pipeline to process multiple requests.  When used as a reader component, you can remove the input port to make that role clear. 
&lt;/p&gt;
&lt;p&gt;
Output from the HTTP connector can be piped into other reader or converter components such as the &lt;a href=&quot;javascript:DoLink(&apos;{93C4D73F-0B4D-03F4-B0E3-D82C4FE04C6F}&apos;)&quot;&gt;XML Reader (Generic)&lt;/a&gt;, &lt;a href=&quot;javascript:DoLink(&apos;{40A5F3DC-E6D3-4781-BB00-D91254C5350E}&apos;)&quot;&gt;JSON Reader (Generic)&lt;/a&gt;, &lt;a href=&quot;javascript:DoLink(&apos;{CE3E731B-BA0B-4EEE-9532-9E9B66D1F6DF}&apos;)&quot;&gt;Data from XML&lt;/a&gt;, or &lt;a href=&quot;javascript:DoLink(&apos;{C515C623-DA9A-414E-BD66-C14A922EFA60}&apos;)&quot;&gt;Data from JSON&lt;/a&gt; components,  to provide inline decoding of the body data.  When piping into a reader component, use the format &lt;i&gt;property://ResponsePropertyName&lt;/i&gt; within the Source parameter of the reader.
For piping, be sure to set the &lt;b&gt;Additional Options/Response is Binary&lt;/b&gt; parameter to &lt;i&gt;True&lt;/i&gt; so that character encoding is properly preserved and so that when possible the data can be streamed directly to the downstream component (see the help text for &lt;b&gt;Response is Binary&lt;/b&gt; for more details.).
&lt;/p&gt;
&lt;p&gt;
Use the &lt;b&gt;HTTP Method&lt;/b&gt; parameter to define the method verb of the request. For those methods that include a request body (e.g. Post, Put), the HTTP request may be configured to either send parameter data encoded as form content, or to send a specified body content. Use the &lt;b&gt;HTTP Body&lt;/b&gt; parameter to define which of these options is to be used.
&lt;/p&gt;
&lt;p&gt;
For a form-encoded request body, fill in the &lt;b&gt;Parameters&lt;/b&gt; group. If more than one parameter is needed, you can add additional parameters by pressing the &quot;...&quot; button. Parameter names and values are sent to the remote server using the encoding specified in the &lt;b&gt;HTTP Body&lt;/b&gt; parameter. 
&lt;/p&gt;
&lt;p&gt;
When sending a specified body content (e.g. XML or JSON), set the &lt;b&gt;HTTP Body&lt;/b&gt; parameter to indicate that you are using the &lt;b&gt;Request Body&lt;/b&gt; parameter, set the actual content in the &lt;b&gt;Request Body&lt;/b&gt; parameter and be sure to also define the &lt;b&gt;Content Type&lt;/b&gt; using an appropriate MIME type name - and character encoding, if necessary..
&lt;/p&gt;
&lt;p&gt;
The response from the server is put into the property named by the &lt;b&gt;Additional Options/Put Response in Property&lt;/b&gt; parameter, which is &lt;i&gt;response&lt;/i&gt; by default. The handling of the http request and response can be further configured by using the &lt;b&gt;Additional Request Headers&lt;/b&gt; and &lt;b&gt;Additional Options&lt;/b&gt; groups of parameters. See the individual help of each parameter for further information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Notes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;If the &lt;b&gt;HTTP Method&lt;/b&gt; is &lt;i&gt;Post&lt;/i&gt;, the request body content must be provided in the &lt;b&gt;Parameters&lt;/b&gt; group or in the &lt;b&gt;Request Body&lt;/b&gt; parameter. If neither is provided, the component fails.&lt;/li&gt;
	&lt;li&gt;Cookies are shared between components within a single protocol.  To set a custom cookie value, see the PilotScript function &lt;i&gt;HttpSetCookie&lt;/i&gt;&lt;/li&gt;
	&lt;li&gt;For remote servers that require HTTP authentication, set the &lt;b&gt;Authentication Options&lt;/b&gt; parameters to provide username and password information either through parameters or through single sign-on from the Pipeline Pilot server to the remote server.&lt;/li&gt;
	&lt;li&gt;For performing basic HTTP Get requests that do not require any special headers or options, the majority of the standard file reader components such as the &lt;a href=&quot;javascript:DoLink(&apos;{8056E8AD-33EA-42BB-9099-EAB24C3D08E6}&apos;)&quot;&gt;Text Reader&lt;/a&gt; and &lt;a href=&quot;javascript:DoLink(&apos;{B0B1B56C-3DF6-444C-BB78-B43211188F63}&apos;)&quot;&gt;Binary Reader&lt;/a&gt; can read URLs as sources directly and the &lt;a href=&quot;javascript:DoLink(&apos;{38A20EDC-AAAA-42EF-97BA-D1B40B74FFE0}&apos;)&quot;&gt;Copy File&lt;/a&gt; component can be used if HTTP authentication is required by the server.&lt;/li&gt;
	&lt;li&gt;When piping the output of the HTTP Connector into other readers, always set the &lt;b&gt;Additional Options - Response is Binary&lt;/b&gt; parameter to &lt;i&gt;true&lt;/i&gt;.  This ensures that character encoding is properly preserved and that streaming mode can be used when possible.&lt;/li&gt;
&lt;/ul&gt;
</sci:value>
												<sci:value>Generic</sci:value>
												<sci:value/>
												<sci:value>Generic</sci:value>
												<sci:value/>
												<sci:value>None</sci:value>
												<sci:value/>
											</sci:arg>
											<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The server version when this component was registered</sci:help>
												<sci:value>9.5.0.666</sci:value>
											</sci:arg>
											<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
												<sci:help>Local Component Identifier</sci:help>
												<sci:value>7</sci:value>
											</sci:arg>
											<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>1290 -275</sci:value>
											</sci:arg>
											<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
											<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The user who registered this component.</sci:help>
												<sci:value>scitegic/integration</sci:value>
											</sci:arg>
											<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The date this component was registered.</sci:help>
												<sci:value>Mon Dec 08 10:44:31 2014</sci:value>
											</sci:arg>
											<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>HTTP Connector</sci:value>
											</sci:arg>
											<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
												<sci:value>DOCUMENTNODE</sci:value>
											</sci:arg>
											<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
												<sci:value>0</sci:value>
											</sci:arg>
											<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The original path within the database of this component.</sci:help>
												<sci:value>Components\Database and Application Integration\Application Integration\Web Service Integration\HTTP Connector</sci:value>
											</sci:arg>
										</sci:component>
									</sci:data>
									<sci:data object="SciTegic.EvaluateExpression.1">
										<sci:component name="Custom Manipulator (PilotScript)" version="2">
											<sci:arg name="Expression" type="ExpressionType" required="true" visibility="visible" multi="false" expanded="true" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
												<sci:help>Expression (or list of expressions separated by semi-colons) to evaluate.</sci:help>
												<sci:member>Initial Expression</sci:member>
												<sci:member>Final Expression</sci:member>
												<sci:member>Keep Calculated Properties</sci:member>
												<sci:value>if @SeqCount==1 and @&apos;Result Text Property&apos; ne &apos;&apos; then
	@resultText := convertbytestostring(responseXML);
end if;</sci:value>
											</sci:arg>
											<sci:arg name="Initial Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
												<sci:help>&lt;p&gt;
This expression is executed only the first time data passes into the component.
&lt;p/&gt; 
Since there is no data available at initialization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
											</sci:arg>
											<sci:arg name="Final Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
												<sci:help>&lt;p&gt;
This expression is executed only at finalization (after the last data passes out of the component).
&lt;p/&gt; 
Since there is no data available at finalization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
											</sci:arg>
											<sci:arg name="Keep Calculated Properties" type="BoolType" required="true" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
												<sci:help>Adds any properties calculated in this component to a data record&apos;s property list.</sci:help>
												<sci:legalval selected="true">True</sci:legalval>
												<sci:legalval>False</sci:legalval>
											</sci:arg>
											<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
												<sci:help>Component Attributes</sci:help>
												<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
												<sci:legalval>ComponentReturnsPass</sci:legalval>
												<sci:legalval>ComponentReturnsFail</sci:legalval>
												<sci:legalval>ComponentRunsLocal</sci:legalval>
											</sci:arg>
											<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
												<sci:legalval selected="true">Halt</sci:legalval>
												<sci:legalval>Fail</sci:legalval>
												<sci:legalval>Pass</sci:legalval>
											</sci:arg>
											<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
												<sci:legalval selected="true">Halt</sci:legalval>
												<sci:legalval>Fail</sci:legalval>
												<sci:legalval>Pass</sci:legalval>
											</sci:arg>
											<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
											<sci:arg name="Do Screen" type="BoolType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
												<sci:help>When TRUE, controls which exit port is used for
each data record by evaluating the final expression
(or only one) listed in the &quot;Expression&quot; parameter.
   -Pass (green) port when expression true
   -Fail (red) port when expression false</sci:help>
												<sci:legalval>True</sci:legalval>
												<sci:legalval selected="true">False</sci:legalval>
											</sci:arg>
											<sci:arg name="ExpressionVersion" type="LongType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
												<sci:help>Version of expression parser to use.</sci:help>
												<sci:value>2</sci:value>
											</sci:arg>
											<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The user who registered this component.</sci:help>
												<sci:value>scitegic/generic</sci:value>
											</sci:arg>
											<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The date this component was registered.</sci:help>
												<sci:value>Mon Jan 21 09:55:43 2008</sci:value>
											</sci:arg>
											<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>Save Result Text</sci:value>
											</sci:arg>
											<sci:arg name="ComponentAutoDisplayName" type="ExpressionType" required="false" visibility="nevershow" multi="false">
												<sci:help>Automatically update the component display name when the &quot;Expression&quot; property is changed. This feature is turned off after the user manually changes the display name of the component in Protocol workspace.</sci:help>
												<sci:value>#displayName := trim(Parameter(&apos;Expression&apos;, 2));
if(strlength(#displayName) &gt; 0) then	
	/* Find the first line break */
	#nl := FindSubstring(#displayName, &quot;\r&quot;);
	if #nl &lt;= 0 then
		#nl := FindSubstring(#displayName, &quot;\n&quot;);
	end if;

	/* Keep the first line only */
	if (#nl &gt; 0) then
		StrErase(#displayName, #nl);
	end if;
	
	#displayName;
else
	&quot;&quot;;
end if;</sci:value>
											</sci:arg>
											<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The component this component is based upon.</sci:help>
												<sci:value>Custom Manipulator (PilotScript)</sci:value>
											</sci:arg>
											<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
												<sci:value>EXPRESSIONNODE</sci:value>
											</sci:arg>
											<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
												<sci:value>0</sci:value>
											</sci:arg>
											<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>{0995D675-7EE2-432C-95DF-E91C14052B22}</sci:value>
											</sci:arg>
											<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>1590 -455</sci:value>
											</sci:arg>
											<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
												<sci:value>100</sci:value>
												<sci:value>Applies a PilotScript expression to each data record
</sci:value>
												<sci:value>&lt;p&gt;PilotScript is the native scripting language in Pipeline Pilot.  It is based on PL/SQL and allows you to query or alter the properties on data records.  For example, the expression:

&lt;blockquote&gt;
&lt;code&gt;A := 10;&lt;/code&gt;
&lt;/blockquote&gt;
creates a property named &quot;A&quot; and sets the value to &quot;10&quot;.&lt;/p&gt;

&lt;p&gt;For each incoming data record the PilotScript statements in &lt;i&gt;Expression&lt;/i&gt; are evaluated.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To initialize global variables such as counters, use &lt;i&gt;Initial Expression&lt;/i&gt;.&lt;/li&gt; 
&lt;li&gt;To clean up global variables or calculate final results use &lt;i&gt;Final Expression&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Parameters on Custom Manipulators do not become global variables that can be accessed via &lt;i&gt;@ParameterName&lt;/i&gt; syntax.  They must be accessed by using the &lt;i&gt;Parameter(&apos;ParameterName&apos;)&lt;/i&gt; function or by using token substitution via &lt;i&gt;$(ParameterName)&lt;/i&gt; syntax.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;See Also:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For more information on PilotScript, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/pscript/pscript_overview.htm&apos;)&quot;&gt;PilotScript Overview&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To use PilotScript to filter data records use &lt;a href=&quot;javascript:DoLink(&apos;{DD58ECD1-516F-48FE-A5DB-8328AED680F2}&apos;)&quot;&gt;Custom Filter (PilotScript)&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

</sci:value>
												<sci:value>Generic</sci:value>
												<sci:value/>
												<sci:value>Generic</sci:value>
												<sci:value/>
												<sci:value>None</sci:value>
												<sci:value/>
											</sci:arg>
											<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The server version when this component was registered</sci:help>
												<sci:value>7.0.0.35</sci:value>
											</sci:arg>
											<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
											<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
												<sci:help>Local Component Identifier</sci:help>
												<sci:value>8</sci:value>
											</sci:arg>
											<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The original path within the database of this component.</sci:help>
												<sci:value>Components\Data Access and Manipulation\Property Manipulators\Custom Manipulator (PilotScript)</sci:value>
											</sci:arg>
										</sci:component>
									</sci:data>
									<sci:data object="SciTegic.Protocol.1">
										<sci:component name="Subprotocol" version="2">
											<sci:arg name="RunToCompletion" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
												<sci:help>When &lt;i&gt;RunToCompletion&lt;/i&gt; is set to &quot;True - For Each Data Record&quot;, the subprotocol is re-initialized and executed in its entirety for each individual data record it processes.
&lt;p&gt;
When set to &quot;True - For Each Category&quot;, the data records are divided into categories based on the value of the Categorize Using parameter and then the subprotocol is re-initialized and executed in its entirety for each category of data records. When used in conjunction with &lt;i&gt;Parallel Processing Options&lt;/i&gt;, each category of data records will be sent to the remote server as part of one single batch.</sci:help>
												<sci:member>RunToCompletion Categorize Using</sci:member>
												<sci:legalval>False</sci:legalval>
												<sci:legalval selected="true">True - For Each Data Record</sci:legalval>
												<sci:legalval>True - For Each Category</sci:legalval>
											</sci:arg>
											<sci:arg name="RunToCompletion Categorize Using" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
												<sci:help>Required when RunToCompletion is set to &lt;i&gt;True - For Each Category&lt;/i&gt;, this parameter specifies the property or properties used to define the categories.</sci:help>
												<sci:validscript>SetInvalidDetails(&apos;This parameter is required when RunToCompletion is set to True - For Each Category&apos;);
Parameter() ne &apos;&apos;;</sci:validscript>
												<sci:enabledscript>SetDisabledDetails(&apos;To Enable, Set RunToCompletion to True - For Each Category&apos;);
Parameter(&apos;RunToCompletion&apos;) eq &apos;True - For Each Category&apos;;</sci:enabledscript>
											</sci:arg>
											<sci:arg name="Parallel Processing Options" type="BoolType" required="false" visibility="visible" multi="false" uimpl="false">
												<sci:help>&lt;p&gt;
When set to True, this set of options allow the subprotocol to execute in parallel on one or more independent Pipeline Pilot servers, running local or remote.  Additional parameters control the number of data records to send in each process batch, the list of Pipeline Pilot servers to use, the number of protocol processes that can be executed on each server, and whether to preserve the order of the processed data records.
&lt;/p&gt;&lt;p&gt;
Use this option judiciously, since it will not increase throughput in all circumstances. In general, it will yield improved performance when the parallelization benefits outweigh the data transfer overhead for the specified batch size.  As a rough guide, performance can be improved when each individual batch requires at least 10 seconds to execute, although this can be affected by the size of each data record.
&lt;/p&gt;&lt;p&gt;
When running the protocol with debugging, the subprotocol will provide debugging messages to detail each of the various steps of execution.  Also, components located within the parallel subprotocol will display their debugging messages as well.
&lt;/p&gt;&lt;p&gt;
For more information on the parallel subprotocol options, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/subprots/subprot_parallel_processing.htm&apos;)&quot;&gt;Parallel Processing Subprotocols&lt;/a&gt;.
&lt;/p&gt;
</sci:help>
												<sci:member>Parallel Processing Options Batch Size</sci:member>
												<sci:member>Parallel Processing Options Server</sci:member>
												<sci:member>Parallel Processing Options Preserve Order</sci:member>
												<sci:legalval>True</sci:legalval>
												<sci:legalval selected="true">False</sci:legalval>
											</sci:arg>
											<sci:arg name="Parallel Processing Options Batch Size" type="LongType" required="true" visibility="visible" multi="false" uimpl="false">
												<sci:help>&lt;p&gt;The number of records to send to the remote server(s) for each subprotocol execution.  In general, performance is optimized when the amount of time required to process each batch is at least 10 seconds (note that this can vary depending on the characteristics of the remote server&apos;s hardware).  Use a batch size of -1 to pass all data in a single batch.&lt;/p&gt;
&lt;p&gt;When &lt;i&gt;RunToCompletion&lt;/i&gt; is set to &quot;True - for each category&quot;, the batch sizes will be determined by the number of records in each individual category.  Therefore, the &lt;i&gt;Batch Size&lt;/i&gt; parameter is not applicable.</sci:help>
												<sci:enabledscript>#parallel := Parameter(&apos;Parallel Processing Options&apos;);
if (not #parallel) then
	SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
end if;
#parallel;</sci:enabledscript>
											</sci:arg>
											<sci:arg name="Parallel Processing Options Server" type="StringType" required="false" visibility="visible" multi="true" expanded="true" legalvalsenforced="false" uimpl="false">
												<sci:help>&lt;p&gt;
Comma separated list of Pipeline Pilot servers on which to execute the parallel subprotocol.  The server names should be in the same format as the Pipeline Pilot Client&apos;s change server dialog (server-name:port-number).
&lt;/p&gt;&lt;p&gt;
Specifying &lt;b&gt;localhost&lt;/b&gt; as a server will cause the subprotocol to use its own Pipeline Pilot server.  This can be helpful on multi-CPU/multi-core systems (where the subprotocol jobs are spawned on the same machine) and Pipeline Pilot Linux clusters (where &apos;localhost&apos; requests spawning the subprotocol jobs on the same cluster).
&lt;/p&gt;</sci:help>
												<sci:member>Parallel Processing Options Server Processes</sci:member>
												<sci:member>Parallel Processing Options Server Run On Grid</sci:member>
												<sci:validscript>SetInvalidDetails(&apos;This parameter is required.&apos;);
Parameter() ne &apos;&apos;;</sci:validscript>
												<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
											</sci:arg>
											<sci:arg name="Parallel Processing Options Server Processes" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
												<sci:help>Comma separated list of maximum number of batches that can be simultaneously executed on each remote server.  The number of entries in this parameter must equal the number of servers. If &apos;*&apos; is specified as the number of processes, then that server will only launch as many batches as the administrator of the remote server has permitted.</sci:help>
												<sci:validscript>/* Server Processes must have the same number of comma separated entries as the Server parameter and must have a value*/
#processes := parameter();
expand(&apos;,&apos;, #processes);
#servers := parameter(&apos;Parallel Processing Options Server&apos;);
expand(&apos;,&apos;, #servers);

if (numvalues(#processes) == 0) then
	SetInvalidDetails(&apos;This parameter is required.&apos;);
else
	SetInvalidDetails(&apos;The number of server processes (&apos; . numvalues(#processes) . &apos;) must equal the number of servers (&apos; . numvalues(#servers) . &apos;).&apos;);
end if;
numvalues(#processes) &gt; 0 and numvalues(#processes) == numvalues(#servers);</sci:validscript>
												<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
											</sci:arg>
											<sci:arg name="Parallel Processing Options Server Run On Grid" type="BoolType" required="false" visibility="visible" multi="false" uimpl="false">
												<sci:help>Run subprotocol on grid engine if available.</sci:help>
												<sci:member>Parallel Processing Options Server Run On Grid Queue Name</sci:member>
												<sci:member>Parallel Processing Options Server Run On Grid Grid Options</sci:member>
												<sci:enabledscript>parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
												<sci:legalval selected="true">True</sci:legalval>
												<sci:legalval>False</sci:legalval>
											</sci:arg>
											<sci:arg name="Parallel Processing Options Server Run On Grid Queue Name" type="StringType" required="false" visibility="visible" multi="false" legalvalsenforced="false" uimpl="false">
												<sci:help>Select the queue name on the grid to submit jobs to. Leave blank to use default queue name.</sci:help>
												<sci:enabledscript>parameter(&apos;Parallel Processing Options Server Run On Grid&apos;);</sci:enabledscript>
											</sci:arg>
											<sci:arg name="Parallel Processing Options Server Run On Grid Grid Options" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
												<sci:help>Use this to specify grid engine specific command line parameters to the job submission command. Leave blank to use defaults.</sci:help>
												<sci:enabledscript>parameter(&apos;Parallel Processing Options Server Run On Grid&apos;);</sci:enabledscript>
											</sci:arg>
											<sci:arg name="Parallel Processing Options Preserve Order" type="BoolType" required="false" visibility="visible" multi="false" uimpl="false">
												<sci:help>Whether to preserve the order of the data as it enters and leaves the remote subprotocol.</sci:help>
												<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
												<sci:legalval selected="true">True</sci:legalval>
												<sci:legalval>False</sci:legalval>
											</sci:arg>
											<sci:arg name="Tempfiles" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
												<sci:help>&lt;p&gt;A comma delimited list of global properties, each of which will automatically hold the name of a file in the job&apos;s temporary folder, whose name is guaranteed to be unique.&lt;p/&gt;For each global name, an additional global is created (with the suffix &lt;i&gt;_Filename&lt;/i&gt;) that hold just the leaf file name of the temporary file.&lt;/p&gt;</sci:help>
											</sci:arg>
											<sci:arg name="DeclareLocal" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
												<sci:help>&lt;p&gt;Lists a set of properties (without the @) to create on the global property list for this subprotocol. Such properties can only be accessed within the scope of this subprotocol and its descendent subprotocols.&lt;p/&gt;Any global property not declared in this way is created on the top level global property list and is accessible from all protocols, but may collide with another property of the same name.&lt;/p&gt;&lt;p&gt;Scoping global properties to the subprotocol where they are used is highly recommended.&lt;/p&gt;</sci:help>
											</sci:arg>
											<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
												<sci:help>Component Attributes</sci:help>
												<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
												<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
												<sci:legalval>ComponentReturnsFail</sci:legalval>
												<sci:legalval>ComponentRunsLocal</sci:legalval>
											</sci:arg>
											<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
												<sci:legalval selected="true">Halt</sci:legalval>
												<sci:legalval>Fail</sci:legalval>
												<sci:legalval>Pass</sci:legalval>
											</sci:arg>
											<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
												<sci:legalval selected="true">Halt</sci:legalval>
												<sci:legalval>Fail</sci:legalval>
												<sci:legalval>Pass</sci:legalval>
											</sci:arg>
											<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
											<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>Get response</sci:value>
											</sci:arg>
											<sci:arg name="ProtocolAutoLayout" type="BoolType" required="false" visibility="nevershow" multi="false">
												<sci:help>Protocol AutoLayout</sci:help>
												<sci:value>1</sci:value>
											</sci:arg>
											<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
												<sci:value>0</sci:value>
											</sci:arg>
											<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
												<sci:value>SUBPROTOCOLNODE</sci:value>
											</sci:arg>
											<sci:arg name="ComponentRevision" type="LongType" required="true" visibility="nevershow" multi="false">
												<sci:help>Component Revision</sci:help>
												<sci:value>790</sci:value>
											</sci:arg>
											<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>{17001C74-63CE-4B4B-B37C-F0EAA19CE4AA}</sci:value>
											</sci:arg>
											<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>690 -1175</sci:value>
											</sci:arg>
											<sci:arg name="ByReference" type="BoolType" required="false" visibility="nevershow" multi="false">
												<sci:help>By Ref</sci:help>
												<sci:value>0</sci:value>
											</sci:arg>
											<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
												<sci:value>100</sci:value>
												<sci:value>Builds subprotocols in Pipeline Pilot.</sci:value>
												<sci:value>&lt;p&gt;
Use a subprotocol to collapse one or more components into a single item. Open a subprotocol to view or edit its contents. 
&lt;/p&gt;&lt;p&gt;
To define input and output ports, display icon, and parameter settings, right-click and select Edit. You can save subprotocols and reuse them. For more information, see the User Guide help for &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/subprots/subprot_overview.htm&apos;)&quot;&gt;Subprotocols Overview&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;
For more information on the parallel subprotocol options, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/subprots/subprot_parallel_processing.htm&apos;)&quot;&gt;Parallel Processing Subprotocols&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;
Tip: Any component can be made into a shortcut, so that the latest version is always used. For more information, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/subprots/shortcuts.htm&apos;)&quot;&gt;Creating Shortcuts&lt;/a&gt;.
&lt;/p&gt;</sci:value>
												<sci:value>Generic</sci:value>
												<sci:value/>
												<sci:value>Generic</sci:value>
												<sci:value>Records passing out of any unconnected pass ports of components inside the subprotocol</sci:value>
												<sci:value>Generic</sci:value>
												<sci:value>Records passing out of any unconnected fail ports of components inside the subprotocol</sci:value>
											</sci:arg>
											<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The server version when this component was registered</sci:help>
												<sci:value>9.5.0.623</sci:value>
											</sci:arg>
											<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
											<sci:arg name="Protocol Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>Protocol Sticky Notes</sci:help>
											</sci:arg>
											<sci:arg name="ProtocolScale2" type="LongType" required="false" visibility="nevershow" multi="false">
												<sci:help>Protocol Scale</sci:help>
												<sci:value>100</sci:value>
											</sci:arg>
											<sci:arg name="Protocol Options" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>Protocol Options</sci:help>
												<sci:legalval>Owner Access Only</sci:legalval>
											</sci:arg>
											<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The user who registered this component.</sci:help>
												<sci:value>scitegic/coreutils</sci:value>
											</sci:arg>
											<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The date this component was registered.</sci:help>
												<sci:value>Wed Oct 29 10:13:55 2014</sci:value>
											</sci:arg>
											<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
												<sci:help>Local Component Identifier</sci:help>
												<sci:value>10</sci:value>
											</sci:arg>
											<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The original path within the database of this component.</sci:help>
												<sci:value>Components\Data Access and Manipulation\Utilities\Subprotocol Utilities\Subprotocol</sci:value>
											</sci:arg>
										</sci:component>
										<sci:protocol>
											<sci:data object="SciTegic.HttpPost.1">
												<sci:component name="HTTP Connector" version="2">
													<sci:arg name="Source" type="TextType" required="true" visibility="visible" multi="false" expanded="true" legalvalsenforced="false">
														<sci:help>The target URL to send the HTTP request.</sci:help>
														<sci:member>HTTP Authentication Options</sci:member>
														<sci:value>$(URL)?CMD=Get&amp;FORMAT_OBJECT=SearchInfo&amp;RID=$(RID)</sci:value>
													</sci:arg>
													<sci:arg name="HTTP Authentication Options" type="GroupType" required="false" visibility="visible" multi="false" uimpl="false">
														<sci:help>Options for user credentials when the HTTP server requires authentication.</sci:help>
														<sci:member>Authentication Method</sci:member>
														<sci:member>Username</sci:member>
														<sci:member>Password</sci:member>
													</sci:arg>
													<sci:arg name="Authentication Method" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
														<sci:help>&lt;p&gt;
Determines how to obtain the username and password for HTTP authentication.
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Use Username and Password Parameters&lt;/b&gt;: Use the values provided by the component&apos;s &lt;i&gt;Username&lt;/i&gt; and &lt;i&gt;Password&lt;/i&gt; parameters.
&lt;li&gt;&lt;b&gt;Use Pipeline Pilot Credentials&lt;/b&gt;: Use the username and password that were provided when the user logged into Pipeline Pilot. In this case, the &lt;i&gt;Password&lt;/i&gt; parameter is ignored. If left empty, the &lt;i&gt;Username&lt;/i&gt; is ignored, but can be filled in to override the user&apos;s log-in name.
&lt;/ul&gt;</sci:help>
														<sci:legalval selected="true">Use Username and Password Parameters</sci:legalval>
														<sci:legalval>Use Pipeline Pilot Credentials</sci:legalval>
													</sci:arg>
													<sci:arg name="Username" type="UserNameType" required="false" visibility="visible" multi="false" uimpl="false">
														<sci:help>&lt;p&gt;
The username used if authentication is needed for an HTTP server.
&lt;/p&gt;
&lt;p&gt;
If the Authentication Method is set to &apos;Use Username and Password Parameters&apos;, then this parameter
can be filled in to provide authentication information to the remote server.
&lt;/p&gt;
&lt;p&gt; 
If the Authentication Method is set to &apos;Use SciTegic Credentials&apos;, then this parameter can be left empty
and the logged in username is used. As an override option, if the username is filled in, this
username is used along with the user&apos;s Pipeline Pilot password.
&lt;/p&gt;</sci:help>
													</sci:arg>
													<sci:arg name="Password" type="xpass" encrypt="bf_1" required="false" visibility="visible" multi="false" uimpl="false">
														<sci:help>The password to be used when authenticating to an HTTP server. This parameter is disabled if the Authentication Method is not &apos;Use Username and Password Parameters&apos;.</sci:help>
														<sci:enabledscript>SetDisabledDetails(&quot;To enable, set Authentication Method to &apos;Use Username and Password Parameters&apos;&quot;);
Parameter(&apos;Authentication Method&apos;) eq &apos;Use Username and Password Parameters&apos;;</sci:enabledscript>
													</sci:arg>
													<sci:arg name="HTTP Method" type="StringType" required="false" visibility="visible" multi="false">
														<sci:help>The type of HTTP Method to use when sending the request. These include the standard HTTP Methods of Get, Post, Put, Head, Delete, Trace, Options, and Connect, but can also be an optional extended method, such as the WebDav method &quot;Propfind&quot;.</sci:help>
														<sci:member>HTTP Body Content</sci:member>
														<sci:member>Request Body</sci:member>
														<sci:value>Get</sci:value>
													</sci:arg>
													<sci:arg name="HTTP Body Content" type="StringType" required="false" visibility="visible" multi="false">
														<sci:help>&lt;p&gt;When sending parameter data, this parameter specifies the method to use when formatting parameter data into the HTTP request for the remote server, either &quot;FormURLEncoded&quot; or &quot;FormMultipart&quot;.&lt;/p&gt;
&lt;p&gt;Alternatively, choose the &quot;Send Request Body&quot; option
if you wish to define the body content and content type in the &quot;Request Body&quot; parameter, instead of filling out parameter values. Use this value if you need to send some arbitrary
body content, such as an XML or JSON document. If you select this option, you will need to supply values for the &lt;i&gt;Request Body&lt;/i&gt; and for its &lt;i&gt;Content Type&lt;/i&gt;.
&lt;/p&gt;</sci:help>
														<sci:enabledscript>SetDisabledDetails(&quot;To enable, set HTTP Method to a method that supports an HTTP Body (e.g. Post)&quot;);
Trim(Parameter(&apos;HTTP Method&apos;)) not rlike &apos;^Get$|^Head$|^Options$&apos;;</sci:enabledscript>
														<sci:legalval selected="true">FormURLEncoded</sci:legalval>
														<sci:legalval>FormMultipart</sci:legalval>
														<sci:legalval>Send Request Body</sci:legalval>
													</sci:arg>
													<sci:arg name="Request Body" type="ExpressionType" required="false" visibility="visible" multi="false" expanded="true" legalvalsenforced="false">
														<sci:help>&lt;p&gt;In lieu of specific Http Post parameters, you can also explicitly define the entire HTTP Request body here. Because it is an expression type, specify the name of a property that contains the text of the body.&lt;/p&gt;

&lt;p&gt;If this parameter is specified, it overrides the contents of the &lt;i&gt;Parameters&lt;/i&gt; group.&lt;/p&gt;</sci:help>
														<sci:member>Request Body Content Type</sci:member>
														<sci:validscript>SetInvalidDetails(
	       ParameterName() . &apos; must be filled in when sending the raw request body.&apos;);
Stringlen(Parameter()) &gt; 0;</sci:validscript>
														<sci:enabledscript>SetDisabledDetails(&quot;To enable, set HTTP Body Content to &apos;Send Request Body&apos;&quot;);
Trim(Parameter(&apos;HTTP Method&apos;)) not rlike &apos;^Get$|^Head$|^Options$&apos;
AND
Parameter (&apos;HTTP Body Content&apos;) eq &apos;Send Request Body&apos;;</sci:enabledscript>
													</sci:arg>
													<sci:arg name="Request Body Content Type" type="StringType" required="false" visibility="visible" multi="false">
														<sci:help>&lt;p&gt;The content-type header value to define the format of the &quot;Request Body&quot; data.&lt;/p&gt;
&lt;p&gt;Use a standard MIME type such as the examples below:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;text/xml;charset=utf-8&lt;/li&gt;
&lt;li&gt;application/json&lt;/li&gt;
&lt;li&gt;text/plain&lt;/li&gt;
&lt;/ul&gt;</sci:help>
														<sci:validscript>SetInvalidDetails(
	       ParameterName() . &apos; must be filled in when sending the raw request body.&apos;);
Stringlen(Parameter()) &gt; 0;</sci:validscript>
													</sci:arg>
													<sci:arg name="Parameters" type="GroupType" required="false" visibility="visible" multi="true" expanded="true" legalvalsenforced="false">
														<sci:help>The POST parameters to send to the server. You can add or remove additional parameters by clicking on the ... icon.</sci:help>
														<sci:member>Parameter 1</sci:member>
														<sci:enabledscript>SetDisabledDetails(&quot;Used for sending a form-structured request body. To enable, set HTTP Method to Post/Put/Patch and set HTTP Body to one of the Form encoding options.&quot;);
(Trim(Parameter(&apos;HTTP Method&apos;)) rlike &apos;^post$|^put$|^patch$&apos;)
AND
(Parameter(&apos;HTTP Body Content&apos;) like &apos;Form%&apos;);</sci:enabledscript>
													</sci:arg>
													<sci:arg name="Parameter 1" type="GroupType" required="false" visibility="visible" multi="false" expanded="true" legalvalsenforced="false">
														<sci:help>&lt;p&gt;Each POST parameter requires a name and value.&lt;/p&gt;
&lt;p&gt;You can also define metadata values for each parameter
which can be useful in the multipart/form context.
&lt;ul&gt;
&lt;li&gt;To associate a content type with a parameter, set the parameter
metadata value &quot;content-type&quot; to the appropriate mime type.&lt;/li&gt;
&lt;li&gt;To associate a filename with the parameter, define a metadata value named &quot;filename&quot; and set it to the value that you wish to define for the parameter content.
&lt;/li&gt;
&lt;/ul&gt;</sci:help>
														<sci:member>Parameter 1 Name</sci:member>
														<sci:member>Parameter 1 Value</sci:member>
													</sci:arg>
													<sci:arg name="Parameter 1 Name" type="StringType" required="false" visibility="visible" multi="false">
														<sci:help>The name of the POST parameter to send to the remote server</sci:help>
													</sci:arg>
													<sci:arg name="Parameter 1 Value" type="ExpressionType" required="false" visibility="visible" multi="false">
														<sci:help>The value of the POST parameter. This can be any Pilotscript expression that returns a string. To specify a literal value, enclose it within quotation marks (for example, &apos;myvalue&apos;). To specify a property name, type it in (for example, myproperty)</sci:help>
													</sci:arg>
													<sci:arg name="Additional Request Headers" type="GroupType" required="false" visibility="visible" multi="true">
														<sci:help>Optionally, you can add additional headers to the HTTP Post request to better control the behavior. On the HTTP request, the data sent in the headers is &lt;b&gt;HeaderName: HeaderValue&lt;/b&gt;. For instance, to set HTTP Cookies on the request, set the header name of an additional request header to be &lt;b&gt;Cookie&lt;/b&gt; and the value to &lt;b&gt;CookieName=CookieValue; CookieName2=CookieValue2;&lt;/b&gt;</sci:help>
														<sci:member>Header 1</sci:member>
													</sci:arg>
													<sci:arg name="Header 1" type="GroupType" required="false" visibility="visible" multi="false" expanded="true">
														<sci:help>Each Additional Request Header requires a name and value.</sci:help>
														<sci:member>Header 1 Name</sci:member>
														<sci:member>Header 1 Value</sci:member>
													</sci:arg>
													<sci:arg name="Header 1 Name" type="StringType" required="false" visibility="visible" multi="false">
														<sci:help>The name of the Additional HTTP Request Header to send to the remote server.</sci:help>
													</sci:arg>
													<sci:arg name="Header 1 Value" type="ExpressionType" required="false" visibility="visible" multi="false">
														<sci:help>The value of the Additional HTTP Request Header.</sci:help>
													</sci:arg>
													<sci:arg name="Additional Options" type="GroupType" required="false" visibility="visible" multi="false" expanded="true">
														<sci:help>Contains less commonly used parameters</sci:help>
														<sci:member>Put Response in Property</sci:member>
														<sci:member>Include Response Headers</sci:member>
														<sci:member>Additional Allowed Response Codes</sci:member>
														<sci:member>Response is Binary</sci:member>
														<sci:member>Timeout</sci:member>
														<sci:member>Connection Options</sci:member>
														<sci:member>Maximum Response Size</sci:member>
													</sci:arg>
													<sci:arg name="Put Response in Property" type="StringType" required="false" visibility="visible" multi="false" expanded="true">
														<sci:help>The name of the property to store the results from the server. The default is &lt;b&gt;response&lt;/b&gt;</sci:help>
														<sci:value>responseStatus</sci:value>
													</sci:arg>
													<sci:arg name="Include Response Headers" type="BoolType" required="false" visibility="visible" multi="false">
														<sci:help>If set to &lt;b&gt;False&lt;/b&gt;, then the only data returned is the HTTP body from the response as indicated by the &lt;i&gt;Put Response in Property&lt;/i&gt; parameter. If set to &lt;b&gt;True&lt;/b&gt;, then each header on the response will be added as a property to the data record where the name of the property matches the name of the response header. Additionally, a property called &lt;b&gt;HTTP Response&lt;/b&gt; contains the first line of the HTTP response headers that includes the HTTP version and HTTP response code.</sci:help>
														<sci:legalval selected="true">False</sci:legalval>
														<sci:legalval>True</sci:legalval>
													</sci:arg>
													<sci:arg name="Additional Allowed Response Codes" type="StringType" required="false" visibility="visible" multi="false">
														<sci:help>&lt;p&gt;A comma separated list of HTTP response codes that are expected from the service. Ordinarily, Http response codes that indicate errors such as &quot;500 Internal Server Error&quot; and &quot;403 Forbidden&quot; are treated as errors by the component and a Pipeline Pilot error is generated. However, errors that can be handled internally by the component such as &quot;401 Unauthorized&quot; and &quot;3xx Redirect&quot; are dealt with. Note that some applications expect response codes and consider response codes to be part of the implementation.&lt;/p&gt;

&lt;p&gt;For example, SOAP services often return &quot;500 Internal Server Error&quot; to indicate an error from the service itself that the client might be expecting. For these cases, you can specify a list of response codes such as &quot;500,403&quot; to tell the component to treat those responses as valid response codes.&lt;/p&gt;

&lt;p&gt;The response codes that are already handled by the component are:
&lt;ul&gt;
&lt;li&gt;100-199 (processing)&lt;/li&gt;
&lt;li&gt;200-299 (valid response)&lt;/li&gt;
&lt;li&gt;300-399 (redirect)&lt;/li&gt;
&lt;li&gt;401 (HTTP Authentication)&lt;/li&gt;
&lt;li&gt;407 (Proxy Authentication)&lt;/li&gt;
&lt;li&gt;417 (Expectation failed)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For the list of standard HTTP Response codes, see RFC 2616 (&lt;a href=&quot;javascript:DoLink(&apos;http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html&apos;)&quot;&gt;http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html&lt;/a&gt;). Extended response codes might also be available in other specifications.&lt;/p&gt;</sci:help>
													</sci:arg>
													<sci:arg name="Response is Binary" type="BoolType" required="false" visibility="visible" multi="false" expanded="true" legalvalsenforced="false">
														<sci:help>&lt;p&gt;Set to &lt;b&gt;True&lt;/b&gt; if the response data saved is binary. The &lt;b&gt;Http Connector&lt;/b&gt; will enter &lt;i&gt;Streaming Mode&lt;/i&gt; where the component, when possible, will attempt to stream the result property directly into a single downstream converter or reader component such as &lt;a href=&quot;javascript:DoLink(&apos;{93C4D73F-0B4D-03F4-B0E3-D82C4FE04C6F}&apos;)&quot;&gt;XML Reader (Generic)&lt;/a&gt;, &lt;a href=&quot;javascript:DoLink(&apos;{40A5F3DC-E6D3-4781-BB00-D91254C5350E}&apos;)&quot;&gt;JSON Reader (Generic)&lt;/a&gt;, &lt;a href=&quot;javascript:DoLink(&apos;{CE3E731B-BA0B-4EEE-9532-9E9B66D1F6DF}&apos;)&quot;&gt;Data from XML&lt;/a&gt;, or &lt;a href=&quot;javascript:DoLink(&apos;{C515C623-DA9A-414E-BD66-C14A922EFA60}&apos;)&quot;&gt;Data from JSON&lt;/a&gt; components.  To use the streamed data within a converter, specify the response property in the downstream component.  To use a generic reader, use the format &lt;b&gt;property://ResponsePropertyName&lt;/b&gt; within the &lt;b&gt;Source&lt;/b&gt; parameter of the reader component.  If the streamed property is needed by another component or framework element before reaching the reader/converter component, the result property will be read into memory subject to the maximum size specified by &lt;b&gt;Maximum Response Size&lt;/b&gt; and will then be available as a property of type &lt;i&gt;SciTegic.value.ByteArrayValue&lt;/i&gt;.  This can happen, for instance, if the pipeline splits to more than one component, if a checkpoint is placed on the Http Connector, or if a &lt;a href=&quot;javascript:DoLink(&apos;{AA4369ED-A1A1-4949-8520-39B23096ACFD}&apos;)&quot;&gt;Data Record Tree Viewer&lt;/a&gt; component is placed between the &lt;b&gt;Http Connector&lt;/b&gt; and the downstream reader/converter.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Maximum Property Size&lt;/b&gt; is not compatible with &lt;i&gt;Streaming Mode&lt;/i&gt;, and so is now disabled by default when &lt;b&gt;Response is Binary&lt;/b&gt; is true.&lt;/p&gt;

&lt;p&gt;For other scenarios where you wish to convert the incoming data based on a specific character set, you can use the Pilotscript function &quot;ConvertBytesToString&quot; to decode the Unicode characters for use in other downstream components.&lt;/p&gt;</sci:help>
														<sci:member>Detect Character Encodings</sci:member>
														<sci:member>Maximum Property Size</sci:member>
														<sci:legalval>True</sci:legalval>
														<sci:legalval selected="true">False</sci:legalval>
													</sci:arg>
													<sci:arg name="Detect Character Encodings" type="BoolType" required="false" visibility="visible" multi="false" legalvalsenforced="false">
														<sci:help>When reading the HTTP response into a text property, international characters are typically encoded in some standard form.  The character encoding is often specified as part of the &lt;b&gt;Content-Type&lt;/b&gt; header (e.g. Content-Type: text/html; charset=UTF-8).  Additionally, some content types such as text/html and text/xml can specify their character encoding within the body text (in an html meta tag or xml doctype tag).  Therefore, if this parameter is true and the response will be put into a string property, the component will attempt to determine the character encoding, first from the &lt;b&gt;Content-Type&lt;/b&gt; header, then from the body of the message &lt;i&gt;if&lt;/i&gt; the Content-Type is specified to be text/html or text/xml.</sci:help>
														<sci:enabledscript>SetDisabledDetails(&apos;Only applicable if Response is Binary is false&apos;);
not Parameter(&apos;Response is Binary&apos;);</sci:enabledscript>
														<sci:legalval selected="true">True</sci:legalval>
														<sci:legalval>False</sci:legalval>
													</sci:arg>
													<sci:arg name="Maximum Property Size" type="LongType" required="false" visibility="visible" multi="false">
														<sci:help>Set the maximum property size. When greater-than zero, the response is sent in one or more new data record properties, until the complete response has been consumed. When empty, the response is sent in one data record property.</sci:help>
														<sci:enabledscript>SetDisabledDetails(&apos;Only applicable if Response is Binary is false and Put Response in Property is set&apos;);
not Parameter(&apos;Response is Binary&apos;) and StrLength(Parameter(&apos;Put Response In Property&apos;)) &gt; 0;</sci:enabledscript>
													</sci:arg>
													<sci:arg name="Timeout" type="LongType" required="false" visibility="visible" multi="false">
														<sci:help>The time in seconds to wait for a response from the server.</sci:help>
														<sci:value>600</sci:value>
													</sci:arg>
													<sci:arg name="Connection Options" type="StringType" required="false" visibility="visible" multi="true">
														<sci:help>&lt;p&gt;Additional HTTP Connection options:&lt;/p&gt;
&lt;p&gt;&lt;ul&gt;
&lt;li&gt;Allow Http Keep-alive connections (default: &lt;i&gt;true&lt;/i&gt;).  By default, most HTTP socket connections handle multiple requests to the server.  You can disable this if you find that your connection is not handled as expected.&lt;/li&gt;
&lt;li&gt;Allow the Http header, Expect: 100  (default: &lt;i&gt;true&lt;/i&gt;). When sending a large body to the remote server, Expect 100 allows the remote server to respond mid-stream to inform the client that it needs to authenticate or redirect to a new URL. This can help the Http Connector component avoid sending large bodies to servers multiple times when it turns out that authentication is required or that the URL has been redirected.&lt;/li&gt;
&lt;li&gt;Treat Http 403 responses as though a 401 response had been received instead (default: &lt;i&gt;false&lt;/i&gt;). When a remote server requires authentication, it is supposed to return a response code of 401 to indicate that credentials are required. However, some servers erroneously send 403 responses instead. Some Http clients deal with this by preemptively sending authentication information. However, this presents a security hole, so this option allows the component developer to selectively send credentials to servers that are responding with 403 Forbidden as though they had actually responded with 401 Authenticate: Basic. It should only be used when it is clear that this will allow integration with a specific remote server.&lt;/li&gt;
&lt;li&gt;Force Content-Length Calculation (default: &lt;i&gt;false&lt;/i&gt;). This is 
only relevant when sending a large body content in the HTTP request. When set, this behavior forces the 
component to cache all content before sending it to the server with a content length header. Where the 
server supports &quot;chunked&quot; transfer encoding, this setting should be kept off, allowing the 
component to start sending &quot;chunks&quot; of the data before knowing the total content length; this 
avoids the need to cache all the data before sending it, and so is faster and requires less memory, aiding 
scalability.&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
</sci:help>
														<sci:legalval selected="true">Allow Keep-Alive</sci:legalval>
														<sci:legalval selected="true">Allow Expect: 100</sci:legalval>
														<sci:legalval>Treat 403 Forbidden As 401 Authenticate</sci:legalval>
														<sci:legalval>Force Content-Length Calculation</sci:legalval>
													</sci:arg>
													<sci:arg name="Maximum Response Size" type="LongType" required="false" visibility="visible" multi="false" expanded="true">
														<sci:help>The maximum amount of data in bytes to download from the server.  The reponse data is truncated once the limit has been reached.  If the parameter is blank, the limit is the default value of 64 MB.</sci:help>
														<sci:value>64000000</sci:value>
													</sci:arg>
													<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
														<sci:help>Component Attributes</sci:help>
														<sci:value>ComponentReturnsPass</sci:value>
														<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
														<sci:legalval>ComponentReturnsPass</sci:legalval>
														<sci:legalval>ComponentReturnsFail</sci:legalval>
														<sci:legalval>ComponentRunsLocal</sci:legalval>
													</sci:arg>
													<sci:arg name="Reinitialize For Each Data" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
														<sci:legalval>True</sci:legalval>
														<sci:legalval selected="true">False</sci:legalval>
													</sci:arg>
													<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
														<sci:legalval selected="true">Halt</sci:legalval>
														<sci:legalval>Fail</sci:legalval>
														<sci:legalval>Pass</sci:legalval>
													</sci:arg>
													<sci:arg name="OnGeneralError" type="StringType" required="false" visibility="nevershow" multi="false">
														<sci:legalval selected="true">Halt</sci:legalval>
														<sci:legalval>Fail</sci:legalval>
														<sci:legalval>Pass</sci:legalval>
													</sci:arg>
													<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
													<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
														<sci:value>{8A25024A-C274-485B-BB99-8570DCC4C075}</sci:value>
													</sci:arg>
													<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
														<sci:value>100</sci:value>
														<sci:value>Sends requests to an HTTP server. It can also be used for executing and debugging various HTTP services such as REST and WebDav using methods such as Post, Get, Put, Head, Options.</sci:value>
														<sci:value>&lt;p&gt;
Configure this component to make remote requests to an HTTP server, using valid HTTP method verbs like Get, Post and Put. The Source parameter specifies the URL for the location of the HTTP server to receive the HTTP request with the parameter names and values specified by this component. Alternatively, &lt;b&gt;Additional Option&lt;/b&gt; parameters may be be configured to execute and consume other types of HTTP services, such as REST and WebDav. The component can either be the start of a new pipeline as a reader component or can be used within an existing pipeline to process multiple requests.  When used as a reader component, you can remove the input port to make that role clear. 
&lt;/p&gt;
&lt;p&gt;
Output from the HTTP connector can be piped into other reader or converter components such as the &lt;a href=&quot;javascript:DoLink(&apos;{93C4D73F-0B4D-03F4-B0E3-D82C4FE04C6F}&apos;)&quot;&gt;XML Reader (Generic)&lt;/a&gt;, &lt;a href=&quot;javascript:DoLink(&apos;{40A5F3DC-E6D3-4781-BB00-D91254C5350E}&apos;)&quot;&gt;JSON Reader (Generic)&lt;/a&gt;, &lt;a href=&quot;javascript:DoLink(&apos;{CE3E731B-BA0B-4EEE-9532-9E9B66D1F6DF}&apos;)&quot;&gt;Data from XML&lt;/a&gt;, or &lt;a href=&quot;javascript:DoLink(&apos;{C515C623-DA9A-414E-BD66-C14A922EFA60}&apos;)&quot;&gt;Data from JSON&lt;/a&gt; components,  to provide inline decoding of the body data.  When piping into a reader component, use the format &lt;i&gt;property://ResponsePropertyName&lt;/i&gt; within the Source parameter of the reader.
For piping, be sure to set the &lt;b&gt;Additional Options/Response is Binary&lt;/b&gt; parameter to &lt;i&gt;True&lt;/i&gt; so that character encoding is properly preserved and so that when possible the data can be streamed directly to the downstream component (see the help text for &lt;b&gt;Response is Binary&lt;/b&gt; for more details.).
&lt;/p&gt;
&lt;p&gt;
Use the &lt;b&gt;HTTP Method&lt;/b&gt; parameter to define the method verb of the request. For those methods that include a request body (e.g. Post, Put), the HTTP request may be configured to either send parameter data encoded as form content, or to send a specified body content. Use the &lt;b&gt;HTTP Body&lt;/b&gt; parameter to define which of these options is to be used.
&lt;/p&gt;
&lt;p&gt;
For a form-encoded request body, fill in the &lt;b&gt;Parameters&lt;/b&gt; group. If more than one parameter is needed, you can add additional parameters by pressing the &quot;...&quot; button. Parameter names and values are sent to the remote server using the encoding specified in the &lt;b&gt;HTTP Body&lt;/b&gt; parameter. 
&lt;/p&gt;
&lt;p&gt;
When sending a specified body content (e.g. XML or JSON), set the &lt;b&gt;HTTP Body&lt;/b&gt; parameter to indicate that you are using the &lt;b&gt;Request Body&lt;/b&gt; parameter, set the actual content in the &lt;b&gt;Request Body&lt;/b&gt; parameter and be sure to also define the &lt;b&gt;Content Type&lt;/b&gt; using an appropriate MIME type name - and character encoding, if necessary..
&lt;/p&gt;
&lt;p&gt;
The response from the server is put into the property named by the &lt;b&gt;Additional Options/Put Response in Property&lt;/b&gt; parameter, which is &lt;i&gt;response&lt;/i&gt; by default. The handling of the http request and response can be further configured by using the &lt;b&gt;Additional Request Headers&lt;/b&gt; and &lt;b&gt;Additional Options&lt;/b&gt; groups of parameters. See the individual help of each parameter for further information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Notes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;If the &lt;b&gt;HTTP Method&lt;/b&gt; is &lt;i&gt;Post&lt;/i&gt;, the request body content must be provided in the &lt;b&gt;Parameters&lt;/b&gt; group or in the &lt;b&gt;Request Body&lt;/b&gt; parameter. If neither is provided, the component fails.&lt;/li&gt;
	&lt;li&gt;Cookies are shared between components within a single protocol.  To set a custom cookie value, see the PilotScript function &lt;i&gt;HttpSetCookie&lt;/i&gt;&lt;/li&gt;
	&lt;li&gt;For remote servers that require HTTP authentication, set the &lt;b&gt;Authentication Options&lt;/b&gt; parameters to provide username and password information either through parameters or through single sign-on from the Pipeline Pilot server to the remote server.&lt;/li&gt;
	&lt;li&gt;For performing basic HTTP Get requests that do not require any special headers or options, the majority of the standard file reader components such as the &lt;a href=&quot;javascript:DoLink(&apos;{8056E8AD-33EA-42BB-9099-EAB24C3D08E6}&apos;)&quot;&gt;Text Reader&lt;/a&gt; and &lt;a href=&quot;javascript:DoLink(&apos;{B0B1B56C-3DF6-444C-BB78-B43211188F63}&apos;)&quot;&gt;Binary Reader&lt;/a&gt; can read URLs as sources directly and the &lt;a href=&quot;javascript:DoLink(&apos;{38A20EDC-AAAA-42EF-97BA-D1B40B74FFE0}&apos;)&quot;&gt;Copy File&lt;/a&gt; component can be used if HTTP authentication is required by the server.&lt;/li&gt;
	&lt;li&gt;When piping the output of the HTTP Connector into other readers, always set the &lt;b&gt;Additional Options - Response is Binary&lt;/b&gt; parameter to &lt;i&gt;true&lt;/i&gt;.  This ensures that character encoding is properly preserved and that streaming mode can be used when possible.&lt;/li&gt;
&lt;/ul&gt;
</sci:value>
														<sci:value>Generic</sci:value>
														<sci:value/>
														<sci:value>Generic</sci:value>
														<sci:value/>
														<sci:value>None</sci:value>
														<sci:value/>
													</sci:arg>
													<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
														<sci:help>The server version when this component was registered</sci:help>
														<sci:value>9.5.0.666</sci:value>
													</sci:arg>
													<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
														<sci:help>Local Component Identifier</sci:help>
														<sci:value>0</sci:value>
													</sci:arg>
													<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
														<sci:value>90 -95</sci:value>
													</sci:arg>
													<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
													<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
														<sci:help>The user who registered this component.</sci:help>
														<sci:value>scitegic/integration</sci:value>
													</sci:arg>
													<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
														<sci:help>The date this component was registered.</sci:help>
														<sci:value>Mon Dec 08 10:44:31 2014</sci:value>
													</sci:arg>
													<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
														<sci:value>HTTP Connector</sci:value>
													</sci:arg>
													<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
														<sci:value>DOCUMENTNODE</sci:value>
													</sci:arg>
													<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
														<sci:value>0</sci:value>
													</sci:arg>
													<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
														<sci:help>The original path within the database of this component.</sci:help>
														<sci:value>Components\Database and Application Integration\Application Integration\Web Service Integration\HTTP Connector</sci:value>
													</sci:arg>
												</sci:component>
											</sci:data>
										</sci:protocol>
									</sci:data>
									<sci:data object="SciTegic.ComponentPerlPlugin.1">
										<sci:component name="Perl (on Server)" version="2">
											<sci:arg name="Script" type="PerlScriptType" required="true" visibility="visible" multi="false" implbase="{6C9F19F9-6CF3-4BB9-8F61-89C89D9CDCBB}">
												<sci:help>&lt;p&gt;Perl script to execute.  Pipeline Pilot executes the following three subroutines:

&lt;ul&gt;
&lt;li&gt;onInitialize: the subroutine that executes before the first data record is processed.&lt;/li&gt;
&lt;li&gt;onProcess: the subroutine that executes for each data record.&lt;/li&gt;
&lt;li&gt;onFinalize: the subroutine that executes after the last data record has been processed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
The usual Perl scoping rules apply to variables.  To pass a variable between the three required subroutines use package level variables, e.g., &lt;code&gt;$::variable&lt;/code&gt; or &lt;code&gt;my $variable&lt;/code&gt; declared outside the subroutines.
&lt;/p&gt;

&lt;p&gt;
The &lt;i&gt;onInitialize&lt;/i&gt; and &lt;i&gt;onFinalize&lt;/i&gt; subroutines both receive the &lt;code&gt;pilot::Context Perl&lt;/code&gt; object as the only argument.  The &lt;i&gt;onProcess&lt;/i&gt; subroutine receives the &lt;code&gt;pilot::Context&lt;/code&gt; and &lt;code&gt;pilot::DataRecord&lt;/code&gt; Perl objects as its two arguments.
&lt;/p&gt;

&lt;p&gt;
pilot::Context provides access to globals and parameters.  A common way to get these is via a Perl hash reference.  For example, to get a &lt;i&gt;Source&lt;/i&gt; parameter value use
&lt;/p&gt;

&lt;pre&gt;
my $parametersHashRef = $context-&gt;getComponentParameters()-&gt;getHashRef();
my $source = $parametersHashRef-&gt;{&quot;Source&quot;};
&lt;/pre&gt;

&lt;p&gt;
To obtain the value of a global property called &lt;i&gt;Old&lt;/i&gt; and set a new global property called &lt;i&gt;New&lt;/i&gt; use
&lt;/p&gt;

&lt;pre&gt;
my $globalsHashRef = $context-&gt;getGlobalProperties()-&gt;getHashRef();
my $value = $globalsHashRef-&gt;{&quot;Old&quot;};
$globalsHashRef-&gt;{&quot;New&quot;} = &quot;newValue&quot;;
&lt;/pre&gt;

&lt;p&gt;
Top level properties in a data record are accessed similarly.
&lt;/p&gt;

&lt;pre&gt;
my $node = $data-&gt;getRoot();
my $propertiesHashRef = $node-&gt;getProperties()-&gt;getHashRef();
my $value = $propertiesHashRef-&gt;{&quot;Old&quot;};
$propertiesHashRef-&gt;{&quot;New&quot;} = &quot;newValue&quot;;
&lt;/pre&gt;

&lt;p&gt;
&lt;i&gt;onInitialize&lt;/i&gt; and &lt;i&gt;onProcess&lt;/i&gt; must return one of the following component state values:
&lt;ul&gt;
&lt;li&gt;pilot::READYFORINPUTDATA
&lt;li&gt;pilot::DONEPROCESSINGDATA
&lt;li&gt;pilot::READYFORNEWDATA
&lt;li&gt;pilot::READYFORINPUTTHENNEWDATA
&lt;/ul&gt;
&lt;/p&gt;

&lt;p&gt;
To explicitly route a data record to a port use
&lt;/p&gt;

&lt;pre&gt;
$data-&gt;routeTo($pilot::PassPort);
&lt;/pre&gt;

&lt;p&gt;
or
&lt;/p&gt;

&lt;pre&gt;
$data-&gt;routeTo($pilot::FailPort);
&lt;/pre&gt;

&lt;p&gt;
Data records can also be terminated internally by routing to &lt;code&gt;$pilot::NoPort&lt;/code&gt;.
&lt;/p&gt;</sci:help>
												<sci:value>use strict;
use warnings;

use Bio::Tools::Run::RemoteBlast;
use SciTegic::Bio::PipelinePilot::FromBioPerl::AddSearchResults;
use SciTegic::Bio::Tools::Blast::BlastUtilities;
use SciTegic::Bio::PipelinePilot::ToBioPerl::CreateBioPerlRichSequence;
use SciTegic::Bio::PipelinePilot::Utils::PipelinePilotUtilities;
use SciTegic::Bio::PipelinePilot::Validate::SequenceValidation;

sub onInitialize
{
    my $context = shift;

    return pilot::READYFORINPUTDATA;
}

sub onProcess
{
    my $context = shift;
    my $data = shift;


    # make sure that pipeline statistics on the client get updated
    # (currently needed for computationally intensive tasks)
    $context-&gt;sendMessageToClient(&quot;Running remote BLAST&quot;);

    my $propertiesHashRef = $data-&gt;getProperties-&gt;getHashRef();	
	my $response = $propertiesHashRef-&gt;{&apos;responseStatus&apos;};
    if( length($response)&gt;0 ) {
        my $status;
        if($response =~ /Status=(WAITING|ERROR|FAILED|UNKNOWN|READY)/i ) {
            $status = $1;
			pilot::debugMessage(&quot;status is $status&quot;);
            if( $status eq &apos;ERROR&apos; ) {
				die(&apos;Online BLAST server error&apos;);
            } elsif( $status eq &apos;FAILED&apos; ) {
				die(&apos;Online BLAST request failed&apos;);
            }
		} else {
			die(&apos;Online BLAST failed. No status returned.&apos;);
        }
        if ( $status ne &apos;READY&apos; ) {
			$data-&gt;routeTo(pilot::FAILPORT);			
        }

    $context-&gt;sendMessageToClient(&quot;&quot;);          # we&apos;re done, so clear the status message
    return pilot::READYFORINPUTDATA;
	}
}		
		

sub onFinalize
{
    my $context = shift;
}

</sci:value>
											</sci:arg>
											<sci:arg name="Use Package" type="StringType" required="false" visibility="visible" multi="false" implbase="{6C9F19F9-6CF3-4BB9-8F61-89C89D9CDCBB}">
												<sci:help>The name of an application package that contains Perl modules referenced by this component. By defining this package name, a package-specific module may be referenced with the &apos;use modulename;&apos; syntax.</sci:help>
												<sci:value>scitegic/seqanal</sci:value>
											</sci:arg>
											<sci:arg name="Rebuild In RTC" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
												<sci:help>&lt;p&gt;
The Perl component functions by creating an instance of a Perl interpreter and
passing the supplied Perl script to the interpreter for execution. The
creation of the Perl interpreter occurs one time, while script execution
occurs once for initialization and finalization subroutines and once 
for each data record processed by the component.
&lt;/p&gt;
&lt;p&gt;
However, in the context of a Run To Completion (RTC) subprtocols, the Perl 
component would normally be re-instantiated for each data record, 
in common with other components in an RTC subprotocol. This implies the
re-creation of the Perl interpreter for each data record, which can be
relatively time consuming, particularly for Perl scripts which
themselves perform a rapid operation per data record.
&lt;/p&gt;
&lt;p&gt;
So, to avoid significant differences in performance timings between RTC
and non-RTC contexts, the Perl component&apos;s default behavior is to &lt;i&gt;keep&lt;/i&gt;
the same instance of the Perl interpreter throughout its life cycle. This
is indicated by the False setting of the &lt;em&gt;Rebuild In RTC&lt;/em&gt; parameter.
&lt;/p&gt;
&lt;p&gt;
However, there are some circumstances where Perl script or 3rd party modules
are not written in a way that allows them to safely re-use the same interpreter in this way. So if you see unexpected behavior from a Perl
component in a Run To Completion subprotocol, switch the &lt;em&gt;Rebuild In RTC&lt;/em&gt;
parameter to True to see if that resolves the issue.
&lt;/p&gt;
&lt;p&gt;
If that fixes the problem, and the Perl cannot be re-cast to 
handle the persistent interpreter,
you may need to trade performance for stability.
&lt;/p&gt;</sci:help>
												<sci:legalval>True</sci:legalval>
												<sci:legalval selected="true">False</sci:legalval>
											</sci:arg>
											<sci:arg name="Perl Version" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
												<sci:help>The version of Perl to run against. Version 5.8.9 is the default. Version 5.16.2 is only available on 64-bit server builds.</sci:help>
												<sci:legalval selected="true">5.8.9</sci:legalval>
												<sci:legalval>5.16.2</sci:legalval>
											</sci:arg>
											<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
												<sci:help>Component Attributes</sci:help>
												<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
												<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
												<sci:legalval selected="true">ComponentReturnsFail</sci:legalval>
												<sci:legalval>ComponentRunsLocal</sci:legalval>
											</sci:arg>
											<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
												<sci:legalval selected="true">Halt</sci:legalval>
												<sci:legalval>Fail</sci:legalval>
												<sci:legalval>Pass</sci:legalval>
											</sci:arg>
											<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
												<sci:legalval selected="true">Halt</sci:legalval>
												<sci:legalval>Fail</sci:legalval>
												<sci:legalval>Pass</sci:legalval>
											</sci:arg>
											<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
											<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The user who registered this component.</sci:help>
												<sci:value>scitegic/integration</sci:value>
											</sci:arg>
											<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The date this component was registered.</sci:help>
												<sci:value>Tue Feb 05 15:52:10 2013</sci:value>
											</sci:arg>
											<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>{6C9F19F9-6CF3-4BB9-8F61-89C89D9CDCBB}</sci:value>
											</sci:arg>
											<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>Check if ready</sci:value>
											</sci:arg>
											<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>990 -1175</sci:value>
											</sci:arg>
											<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
												<sci:value>COMPONENTNODE</sci:value>
											</sci:arg>
											<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The component this component is based upon.</sci:help>
												<sci:value>Plug In</sci:value>
											</sci:arg>
											<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
												<sci:value>0</sci:value>
											</sci:arg>
											<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
												<sci:value>100</sci:value>
												<sci:value>Executes Perl code on the server</sci:value>
												<sci:value>&lt;p&gt;Allows a Perl script to manipulate a data record&apos;s property list, the global
property list, and component behavior. The &lt;em&gt;Script&lt;/em&gt; parameter contains
the script that implements the component behavior, encoded in Perl. The following
subroutines must be defined in this text parameter (all three methods need to
be declared in the main scope): &lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;onInitialize: &lt;/em&gt;Invoked once before the any data records
    arrive. This method receives one argument, a pilot::Context object. Also,
    it must return a component state, one of $pilot::ReadyForInputData, $pilot::DoneProcessingData, $pilot::ReadyForNewData or $pilot::ReadyForInputThenNewData. &lt;/li&gt;
  &lt;li&gt;&lt;em&gt;onProcess&lt;/em&gt;: Called once per data record. This method
    receives two arguments, a pilot::Context and a pilot::DataRecord object and
    return a component state. &lt;/li&gt;
  &lt;li&gt;&lt;em&gt;onFinalize&lt;/em&gt;: Called when no more data records are available.
    This method receives one argument, a pilot::Context object. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;i&gt;onInitialize&lt;/i&gt; and &lt;i&gt;onProcess&lt;/i&gt; must
return one of the following component state values:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;pilot::READYFORINPUTDATA
&lt;li&gt;pilot::DONEPROCESSINGDATA
&lt;li&gt;pilot::READYFORNEWDATA
&lt;li&gt;pilot::READYFORINPUTTHENNEWDATA
&lt;/ul&gt;


&lt;p&gt;&lt;strong&gt;Notes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Any script outside of the subroutines is executed just prior to calling
    onInitialize.&lt;/li&gt;
	&lt;li&gt;The optional &lt;em&gt;Use Package&lt;/em&gt; parameter is used to identify a package
      that holds one or more Perl modules that are referenced by the component.
      In this way, much or all of a component&apos;s functionality can be maintained
      in a package module. This facilitates component upgrading, by centralizing
    the code.&lt;/li&gt;
    &lt;li&gt;The Perl include path for the library must be declared in the package.conf
      file for the named package.&lt;/li&gt;
    &lt;li&gt;Perl&apos;s &lt;em&gt;strict&lt;/em&gt; and &lt;em&gt;warnings&lt;/em&gt; directives can be very useful
      when writing scripts. To detect warnings, you need to create a handler
      to manage them, since by default, Perl sends them to STDERR, which is not
    easily accessible from within Pipeline Pilot. 
	&lt;p&gt;For example, the following
    script treats warnings as errors:&lt;/p&gt;
	&lt;p&gt;&lt;code&gt;use warnings;&lt;br /&gt;
	$SIG{__WARN__} = sub {die @_;};&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt; If you see unexpected or erroneous behavior when using this component
in a Run To Completion subprotocol, please look at the help text for the
&lt;em&gt;Rebuild In RTC&lt;/em&gt; parameter, which is in the Implementation tab.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;See Also:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;javascript:DoLink(&apos;sciapps/scitegic/integration/docs/server_side/perl_api.htm&apos;)&quot;&gt;Perl Scripting Component API&lt;/a&gt;&lt;/li&gt; 
&lt;li&gt;&lt;a href=&quot;javascript:DoLink(&apos;sciapps/scitegic/integration/docs/server_side/perl_comp_dev.pdf&apos;)&quot;&gt;Perl Component Development Guide&lt;/a&gt;&lt;/li&gt;  
&lt;/ul&gt;</sci:value>
												<sci:value>Generic</sci:value>
												<sci:value/>
												<sci:value>Generic</sci:value>
												<sci:value/>
												<sci:value>Generic</sci:value>
												<sci:value/>
											</sci:arg>
											<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
											<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The server version when this component was registered</sci:help>
												<sci:value>9.0.1.15</sci:value>
											</sci:arg>
											<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
												<sci:help>Local Component Identifier</sci:help>
												<sci:value>11</sci:value>
											</sci:arg>
											<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The original path within the database of this component.</sci:help>
												<sci:value>Components\Database and Application Integration\Application Integration\Programmatic Integration\Perl (on Server)</sci:value>
											</sci:arg>
										</sci:component>
									</sci:data>
									<sci:data object="SciTegic.HttpPost.1">
										<sci:component name="HTTP Connector" version="2">
											<sci:arg name="Source" type="LinkSingleParentParameterType" required="true" visibility="visible" multi="false" expanded="true" legalvalsenforced="false">
												<sci:metaproplist>
													<sci:propval name="SCI_InitializeUsingRevertInfo" base64="UI1">Al1HAAEpVGhlIHRhcmdldCBVUkwgdG8gc2VuZCB0aGUgSFRUUCByZXF1ZXN0LiRUZXh0VHlwZQAMAAAAAAEAAQQEAfwAAAAAAAAAAAAcU291cmNlA8xTz7sBKWh0dHBzOi8vYmxhc3QubmNiaS5ubG0ubmloLmdvdi9CbGFzdC5jZ2kA</sci:propval>
													<sci:propval name="SCI_InitializeUsingOrigType">TextType</sci:propval>
													<sci:propval name="SCI_InitializeUsing">LinkSingleParentParameterType</sci:propval>
												</sci:metaproplist>
												<sci:help>The target URL to send the HTTP request.</sci:help>
												<sci:member>HTTP Authentication Options</sci:member>
												<sci:value>URL</sci:value>
											</sci:arg>
											<sci:arg name="HTTP Authentication Options" type="GroupType" required="false" visibility="visible" multi="false" uimpl="false">
												<sci:help>Options for user credentials when the HTTP server requires authentication.</sci:help>
												<sci:member>Authentication Method</sci:member>
												<sci:member>Username</sci:member>
												<sci:member>Password</sci:member>
											</sci:arg>
											<sci:arg name="Authentication Method" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
												<sci:help>&lt;p&gt;
Determines how to obtain the username and password for HTTP authentication.
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Use Username and Password Parameters&lt;/b&gt;: Use the values provided by the component&apos;s &lt;i&gt;Username&lt;/i&gt; and &lt;i&gt;Password&lt;/i&gt; parameters.
&lt;li&gt;&lt;b&gt;Use Pipeline Pilot Credentials&lt;/b&gt;: Use the username and password that were provided when the user logged into Pipeline Pilot. In this case, the &lt;i&gt;Password&lt;/i&gt; parameter is ignored. If left empty, the &lt;i&gt;Username&lt;/i&gt; is ignored, but can be filled in to override the user&apos;s log-in name.
&lt;/ul&gt;</sci:help>
												<sci:legalval selected="true">Use Username and Password Parameters</sci:legalval>
												<sci:legalval>Use Pipeline Pilot Credentials</sci:legalval>
											</sci:arg>
											<sci:arg name="Username" type="UserNameType" required="false" visibility="visible" multi="false" uimpl="false">
												<sci:help>&lt;p&gt;
The username used if authentication is needed for an HTTP server.
&lt;/p&gt;
&lt;p&gt;
If the Authentication Method is set to &apos;Use Username and Password Parameters&apos;, then this parameter
can be filled in to provide authentication information to the remote server.
&lt;/p&gt;
&lt;p&gt; 
If the Authentication Method is set to &apos;Use SciTegic Credentials&apos;, then this parameter can be left empty
and the logged in username is used. As an override option, if the username is filled in, this
username is used along with the user&apos;s Pipeline Pilot password.
&lt;/p&gt;</sci:help>
											</sci:arg>
											<sci:arg name="Password" type="xpass" encrypt="bf_1" required="false" visibility="visible" multi="false" uimpl="false">
												<sci:help>The password to be used when authenticating to an HTTP server. This parameter is disabled if the Authentication Method is not &apos;Use Username and Password Parameters&apos;.</sci:help>
												<sci:enabledscript>SetDisabledDetails(&quot;To enable, set Authentication Method to &apos;Use Username and Password Parameters&apos;&quot;);
Parameter(&apos;Authentication Method&apos;) eq &apos;Use Username and Password Parameters&apos;;</sci:enabledscript>
											</sci:arg>
											<sci:arg name="HTTP Method" type="StringType" required="false" visibility="visible" multi="false" expanded="true">
												<sci:help>The type of HTTP Method to use when sending the request. These include the standard HTTP Methods of Get, Post, Put, Head, Delete, Trace, Options, and Connect, but can also be an optional extended method, such as the WebDav method &quot;Propfind&quot;.</sci:help>
												<sci:member>HTTP Body Content</sci:member>
												<sci:member>Request Body</sci:member>
												<sci:value>Post</sci:value>
											</sci:arg>
											<sci:arg name="HTTP Body Content" type="StringType" required="false" visibility="visible" multi="false">
												<sci:help>&lt;p&gt;When sending parameter data, this parameter specifies the method to use when formatting parameter data into the HTTP request for the remote server, either &quot;FormURLEncoded&quot; or &quot;FormMultipart&quot;.&lt;/p&gt;
&lt;p&gt;Alternatively, choose the &quot;Send Request Body&quot; option
if you wish to define the body content and content type in the &quot;Request Body&quot; parameter, instead of filling out parameter values. Use this value if you need to send some arbitrary
body content, such as an XML or JSON document. If you select this option, you will need to supply values for the &lt;i&gt;Request Body&lt;/i&gt; and for its &lt;i&gt;Content Type&lt;/i&gt;.
&lt;/p&gt;</sci:help>
												<sci:enabledscript>SetDisabledDetails(&quot;To enable, set HTTP Method to a method that supports an HTTP Body (e.g. Post)&quot;);
Trim(Parameter(&apos;HTTP Method&apos;)) not rlike &apos;^Get$|^Head$|^Options$&apos;;</sci:enabledscript>
												<sci:legalval>FormURLEncoded</sci:legalval>
												<sci:legalval>FormMultipart</sci:legalval>
												<sci:legalval selected="true">Send Request Body</sci:legalval>
											</sci:arg>
											<sci:arg name="Request Body" type="ExpressionType" required="false" visibility="visible" multi="false" expanded="true" legalvalsenforced="false">
												<sci:help>&lt;p&gt;In lieu of specific Http Post parameters, you can also explicitly define the entire HTTP Request body here. Because it is an expression type, specify the name of a property that contains the text of the body.&lt;/p&gt;

&lt;p&gt;If this parameter is specified, it overrides the contents of the &lt;i&gt;Parameters&lt;/i&gt; group.&lt;/p&gt;</sci:help>
												<sci:member>Request Body Content Type</sci:member>
												<sci:validscript>SetInvalidDetails(
	       ParameterName() . &apos; must be filled in when sending the raw request body.&apos;);
Stringlen(Parameter()) &gt; 0;</sci:validscript>
												<sci:enabledscript>SetDisabledDetails(&quot;To enable, set HTTP Body Content to &apos;Send Request Body&apos;&quot;);
Trim(Parameter(&apos;HTTP Method&apos;)) not rlike &apos;^Get$|^Head$|^Options$&apos;
AND
Parameter (&apos;HTTP Body Content&apos;) eq &apos;Send Request Body&apos;;</sci:enabledscript>
												<sci:value>requestBody</sci:value>
											</sci:arg>
											<sci:arg name="Request Body Content Type" type="StringType" required="false" visibility="visible" multi="false">
												<sci:help>&lt;p&gt;The content-type header value to define the format of the &quot;Request Body&quot; data.&lt;/p&gt;
&lt;p&gt;Use a standard MIME type such as the examples below:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;text/xml;charset=utf-8&lt;/li&gt;
&lt;li&gt;application/json&lt;/li&gt;
&lt;li&gt;text/plain&lt;/li&gt;
&lt;/ul&gt;</sci:help>
												<sci:validscript>SetInvalidDetails(
	       ParameterName() . &apos; must be filled in when sending the raw request body.&apos;);
Stringlen(Parameter()) &gt; 0;</sci:validscript>
												<sci:value>application/x-www-form-urlencoded</sci:value>
											</sci:arg>
											<sci:arg name="Parameters" type="GroupType" required="false" visibility="visible" multi="true" legalvalsenforced="false">
												<sci:help>The POST parameters to send to the server. You can add or remove additional parameters by clicking on the ... icon.</sci:help>
												<sci:member>Parameter 1</sci:member>
												<sci:enabledscript>SetDisabledDetails(&quot;Used for sending a form-structured request body. To enable, set HTTP Method to Post/Put/Patch and set HTTP Body to one of the Form encoding options.&quot;);
(Trim(Parameter(&apos;HTTP Method&apos;)) rlike &apos;^post$|^put$|^patch$&apos;)
AND
(Parameter(&apos;HTTP Body Content&apos;) like &apos;Form%&apos;);</sci:enabledscript>
											</sci:arg>
											<sci:arg name="Parameter 1" type="GroupType" required="false" visibility="visible" multi="false" expanded="true" legalvalsenforced="false">
												<sci:help>&lt;p&gt;Each POST parameter requires a name and value.&lt;/p&gt;
&lt;p&gt;You can also define metadata values for each parameter
which can be useful in the multipart/form context.
&lt;ul&gt;
&lt;li&gt;To associate a content type with a parameter, set the parameter
metadata value &quot;content-type&quot; to the appropriate mime type.&lt;/li&gt;
&lt;li&gt;To associate a filename with the parameter, define a metadata value named &quot;filename&quot; and set it to the value that you wish to define for the parameter content.
&lt;/li&gt;
&lt;/ul&gt;</sci:help>
												<sci:member>Parameter 1 Name</sci:member>
												<sci:member>Parameter 1 Value</sci:member>
											</sci:arg>
											<sci:arg name="Parameter 1 Name" type="StringType" required="false" visibility="visible" multi="false">
												<sci:help>The name of the POST parameter to send to the remote server</sci:help>
											</sci:arg>
											<sci:arg name="Parameter 1 Value" type="ExpressionType" required="false" visibility="visible" multi="false">
												<sci:help>The value of the POST parameter. This can be any Pilotscript expression that returns a string. To specify a literal value, enclose it within quotation marks (for example, &apos;myvalue&apos;). To specify a property name, type it in (for example, myproperty)</sci:help>
											</sci:arg>
											<sci:arg name="Additional Request Headers" type="GroupType" required="false" visibility="visible" multi="true">
												<sci:help>Optionally, you can add additional headers to the HTTP Post request to better control the behavior. On the HTTP request, the data sent in the headers is &lt;b&gt;HeaderName: HeaderValue&lt;/b&gt;. For instance, to set HTTP Cookies on the request, set the header name of an additional request header to be &lt;b&gt;Cookie&lt;/b&gt; and the value to &lt;b&gt;CookieName=CookieValue; CookieName2=CookieValue2;&lt;/b&gt;</sci:help>
												<sci:member>Header 1</sci:member>
											</sci:arg>
											<sci:arg name="Header 1" type="GroupType" required="false" visibility="visible" multi="false" expanded="true">
												<sci:help>Each Additional Request Header requires a name and value.</sci:help>
												<sci:member>Header 1 Name</sci:member>
												<sci:member>Header 1 Value</sci:member>
											</sci:arg>
											<sci:arg name="Header 1 Name" type="StringType" required="false" visibility="visible" multi="false">
												<sci:help>The name of the Additional HTTP Request Header to send to the remote server.</sci:help>
											</sci:arg>
											<sci:arg name="Header 1 Value" type="ExpressionType" required="false" visibility="visible" multi="false">
												<sci:help>The value of the Additional HTTP Request Header.</sci:help>
											</sci:arg>
											<sci:arg name="Additional Options" type="GroupType" required="false" visibility="visible" multi="false">
												<sci:help>Contains less commonly used parameters</sci:help>
												<sci:member>Put Response in Property</sci:member>
												<sci:member>Include Response Headers</sci:member>
												<sci:member>Additional Allowed Response Codes</sci:member>
												<sci:member>Response is Binary</sci:member>
												<sci:member>Timeout</sci:member>
												<sci:member>Connection Options</sci:member>
												<sci:member>Maximum Response Size</sci:member>
											</sci:arg>
											<sci:arg name="Put Response in Property" type="StringType" required="false" visibility="visible" multi="false" expanded="true">
												<sci:help>The name of the property to store the results from the server. The default is &lt;b&gt;response&lt;/b&gt;</sci:help>
												<sci:value>response</sci:value>
											</sci:arg>
											<sci:arg name="Include Response Headers" type="BoolType" required="false" visibility="visible" multi="false">
												<sci:help>If set to &lt;b&gt;False&lt;/b&gt;, then the only data returned is the HTTP body from the response as indicated by the &lt;i&gt;Put Response in Property&lt;/i&gt; parameter. If set to &lt;b&gt;True&lt;/b&gt;, then each header on the response will be added as a property to the data record where the name of the property matches the name of the response header. Additionally, a property called &lt;b&gt;HTTP Response&lt;/b&gt; contains the first line of the HTTP response headers that includes the HTTP version and HTTP response code.</sci:help>
												<sci:legalval selected="true">False</sci:legalval>
												<sci:legalval>True</sci:legalval>
											</sci:arg>
											<sci:arg name="Additional Allowed Response Codes" type="StringType" required="false" visibility="visible" multi="false">
												<sci:help>&lt;p&gt;A comma separated list of HTTP response codes that are expected from the service. Ordinarily, Http response codes that indicate errors such as &quot;500 Internal Server Error&quot; and &quot;403 Forbidden&quot; are treated as errors by the component and a Pipeline Pilot error is generated. However, errors that can be handled internally by the component such as &quot;401 Unauthorized&quot; and &quot;3xx Redirect&quot; are dealt with. Note that some applications expect response codes and consider response codes to be part of the implementation.&lt;/p&gt;

&lt;p&gt;For example, SOAP services often return &quot;500 Internal Server Error&quot; to indicate an error from the service itself that the client might be expecting. For these cases, you can specify a list of response codes such as &quot;500,403&quot; to tell the component to treat those responses as valid response codes.&lt;/p&gt;

&lt;p&gt;The response codes that are already handled by the component are:
&lt;ul&gt;
&lt;li&gt;100-199 (processing)&lt;/li&gt;
&lt;li&gt;200-299 (valid response)&lt;/li&gt;
&lt;li&gt;300-399 (redirect)&lt;/li&gt;
&lt;li&gt;401 (HTTP Authentication)&lt;/li&gt;
&lt;li&gt;407 (Proxy Authentication)&lt;/li&gt;
&lt;li&gt;417 (Expectation failed)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For the list of standard HTTP Response codes, see RFC 2616 (&lt;a href=&quot;javascript:DoLink(&apos;http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html&apos;)&quot;&gt;http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html&lt;/a&gt;). Extended response codes might also be available in other specifications.&lt;/p&gt;</sci:help>
											</sci:arg>
											<sci:arg name="Response is Binary" type="BoolType" required="false" visibility="visible" multi="false" expanded="true" legalvalsenforced="false">
												<sci:help>&lt;p&gt;Set to &lt;b&gt;True&lt;/b&gt; if the response data saved is binary. The &lt;b&gt;Http Connector&lt;/b&gt; will enter &lt;i&gt;Streaming Mode&lt;/i&gt; where the component, when possible, will attempt to stream the result property directly into a single downstream converter or reader component such as &lt;a href=&quot;javascript:DoLink(&apos;{93C4D73F-0B4D-03F4-B0E3-D82C4FE04C6F}&apos;)&quot;&gt;XML Reader (Generic)&lt;/a&gt;, &lt;a href=&quot;javascript:DoLink(&apos;{40A5F3DC-E6D3-4781-BB00-D91254C5350E}&apos;)&quot;&gt;JSON Reader (Generic)&lt;/a&gt;, &lt;a href=&quot;javascript:DoLink(&apos;{CE3E731B-BA0B-4EEE-9532-9E9B66D1F6DF}&apos;)&quot;&gt;Data from XML&lt;/a&gt;, or &lt;a href=&quot;javascript:DoLink(&apos;{C515C623-DA9A-414E-BD66-C14A922EFA60}&apos;)&quot;&gt;Data from JSON&lt;/a&gt; components.  To use the streamed data within a converter, specify the response property in the downstream component.  To use a generic reader, use the format &lt;b&gt;property://ResponsePropertyName&lt;/b&gt; within the &lt;b&gt;Source&lt;/b&gt; parameter of the reader component.  If the streamed property is needed by another component or framework element before reaching the reader/converter component, the result property will be read into memory subject to the maximum size specified by &lt;b&gt;Maximum Response Size&lt;/b&gt; and will then be available as a property of type &lt;i&gt;SciTegic.value.ByteArrayValue&lt;/i&gt;.  This can happen, for instance, if the pipeline splits to more than one component, if a checkpoint is placed on the Http Connector, or if a &lt;a href=&quot;javascript:DoLink(&apos;{AA4369ED-A1A1-4949-8520-39B23096ACFD}&apos;)&quot;&gt;Data Record Tree Viewer&lt;/a&gt; component is placed between the &lt;b&gt;Http Connector&lt;/b&gt; and the downstream reader/converter.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Maximum Property Size&lt;/b&gt; is not compatible with &lt;i&gt;Streaming Mode&lt;/i&gt;, and so is now disabled by default when &lt;b&gt;Response is Binary&lt;/b&gt; is true.&lt;/p&gt;

&lt;p&gt;For other scenarios where you wish to convert the incoming data based on a specific character set, you can use the Pilotscript function &quot;ConvertBytesToString&quot; to decode the Unicode characters for use in other downstream components.&lt;/p&gt;</sci:help>
												<sci:member>Detect Character Encodings</sci:member>
												<sci:member>Maximum Property Size</sci:member>
												<sci:legalval>True</sci:legalval>
												<sci:legalval selected="true">False</sci:legalval>
											</sci:arg>
											<sci:arg name="Detect Character Encodings" type="BoolType" required="false" visibility="visible" multi="false" legalvalsenforced="false">
												<sci:help>When reading the HTTP response into a text property, international characters are typically encoded in some standard form.  The character encoding is often specified as part of the &lt;b&gt;Content-Type&lt;/b&gt; header (e.g. Content-Type: text/html; charset=UTF-8).  Additionally, some content types such as text/html and text/xml can specify their character encoding within the body text (in an html meta tag or xml doctype tag).  Therefore, if this parameter is true and the response will be put into a string property, the component will attempt to determine the character encoding, first from the &lt;b&gt;Content-Type&lt;/b&gt; header, then from the body of the message &lt;i&gt;if&lt;/i&gt; the Content-Type is specified to be text/html or text/xml.</sci:help>
												<sci:enabledscript>SetDisabledDetails(&apos;Only applicable if Response is Binary is false&apos;);
not Parameter(&apos;Response is Binary&apos;);</sci:enabledscript>
												<sci:legalval selected="true">True</sci:legalval>
												<sci:legalval>False</sci:legalval>
											</sci:arg>
											<sci:arg name="Maximum Property Size" type="LongType" required="false" visibility="visible" multi="false">
												<sci:help>Set the maximum property size. When greater-than zero, the response is sent in one or more new data record properties, until the complete response has been consumed. When empty, the response is sent in one data record property.</sci:help>
												<sci:enabledscript>SetDisabledDetails(&apos;Only applicable if Response is Binary is false and Put Response in Property is set&apos;);
not Parameter(&apos;Response is Binary&apos;) and StrLength(Parameter(&apos;Put Response In Property&apos;)) &gt; 0;</sci:enabledscript>
											</sci:arg>
											<sci:arg name="Timeout" type="LongType" required="false" visibility="visible" multi="false">
												<sci:help>The time in seconds to wait for a response from the server.</sci:help>
												<sci:value>30</sci:value>
											</sci:arg>
											<sci:arg name="Connection Options" type="StringType" required="false" visibility="visible" multi="true">
												<sci:help>&lt;p&gt;Additional HTTP Connection options:&lt;/p&gt;
&lt;p&gt;&lt;ul&gt;
&lt;li&gt;Allow Http Keep-alive connections (default: &lt;i&gt;true&lt;/i&gt;).  By default, most HTTP socket connections handle multiple requests to the server.  You can disable this if you find that your connection is not handled as expected.&lt;/li&gt;
&lt;li&gt;Allow the Http header, Expect: 100  (default: &lt;i&gt;true&lt;/i&gt;). When sending a large body to the remote server, Expect 100 allows the remote server to respond mid-stream to inform the client that it needs to authenticate or redirect to a new URL. This can help the Http Connector component avoid sending large bodies to servers multiple times when it turns out that authentication is required or that the URL has been redirected.&lt;/li&gt;
&lt;li&gt;Treat Http 403 responses as though a 401 response had been received instead (default: &lt;i&gt;false&lt;/i&gt;). When a remote server requires authentication, it is supposed to return a response code of 401 to indicate that credentials are required. However, some servers erroneously send 403 responses instead. Some Http clients deal with this by preemptively sending authentication information. However, this presents a security hole, so this option allows the component developer to selectively send credentials to servers that are responding with 403 Forbidden as though they had actually responded with 401 Authenticate: Basic. It should only be used when it is clear that this will allow integration with a specific remote server.&lt;/li&gt;
&lt;li&gt;Force Content-Length Calculation (default: &lt;i&gt;false&lt;/i&gt;). This is 
only relevant when sending a large body content in the HTTP request. When set, this behavior forces the 
component to cache all content before sending it to the server with a content length header. Where the 
server supports &quot;chunked&quot; transfer encoding, this setting should be kept off, allowing the 
component to start sending &quot;chunks&quot; of the data before knowing the total content length; this 
avoids the need to cache all the data before sending it, and so is faster and requires less memory, aiding 
scalability.&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
</sci:help>
												<sci:legalval selected="true">Allow Keep-Alive</sci:legalval>
												<sci:legalval selected="true">Allow Expect: 100</sci:legalval>
												<sci:legalval>Treat 403 Forbidden As 401 Authenticate</sci:legalval>
												<sci:legalval>Force Content-Length Calculation</sci:legalval>
											</sci:arg>
											<sci:arg name="Maximum Response Size" type="LongType" required="false" visibility="visible" multi="false" expanded="true">
												<sci:help>The maximum amount of data in bytes to download from the server.  The reponse data is truncated once the limit has been reached.  If the parameter is blank, the limit is the default value of 64 MB.</sci:help>
												<sci:value>64000000</sci:value>
											</sci:arg>
											<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
												<sci:help>Component Attributes</sci:help>
												<sci:value>ComponentReturnsPass</sci:value>
												<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
												<sci:legalval>ComponentReturnsPass</sci:legalval>
												<sci:legalval>ComponentReturnsFail</sci:legalval>
												<sci:legalval>ComponentRunsLocal</sci:legalval>
											</sci:arg>
											<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
												<sci:legalval selected="true">Halt</sci:legalval>
												<sci:legalval>Fail</sci:legalval>
												<sci:legalval>Pass</sci:legalval>
											</sci:arg>
											<sci:arg name="OnGeneralError" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:legalval selected="true">Halt</sci:legalval>
												<sci:legalval>Fail</sci:legalval>
												<sci:legalval>Pass</sci:legalval>
											</sci:arg>
											<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
											<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>{8A25024A-C274-485B-BB99-8570DCC4C075}</sci:value>
											</sci:arg>
											<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
												<sci:value>100</sci:value>
												<sci:value>Sends requests to an HTTP server. It can also be used for executing and debugging various HTTP services such as REST and WebDav using methods such as Post, Get, Put, Head, Options.</sci:value>
												<sci:value>&lt;p&gt;
Configure this component to make remote requests to an HTTP server, using valid HTTP method verbs like Get, Post and Put. The Source parameter specifies the URL for the location of the HTTP server to receive the HTTP request with the parameter names and values specified by this component. Alternatively, &lt;b&gt;Additional Option&lt;/b&gt; parameters may be be configured to execute and consume other types of HTTP services, such as REST and WebDav. The component can either be the start of a new pipeline as a reader component or can be used within an existing pipeline to process multiple requests.  When used as a reader component, you can remove the input port to make that role clear. 
&lt;/p&gt;
&lt;p&gt;
Output from the HTTP connector can be piped into other reader or converter components such as the &lt;a href=&quot;javascript:DoLink(&apos;{93C4D73F-0B4D-03F4-B0E3-D82C4FE04C6F}&apos;)&quot;&gt;XML Reader (Generic)&lt;/a&gt;, &lt;a href=&quot;javascript:DoLink(&apos;{40A5F3DC-E6D3-4781-BB00-D91254C5350E}&apos;)&quot;&gt;JSON Reader (Generic)&lt;/a&gt;, &lt;a href=&quot;javascript:DoLink(&apos;{CE3E731B-BA0B-4EEE-9532-9E9B66D1F6DF}&apos;)&quot;&gt;Data from XML&lt;/a&gt;, or &lt;a href=&quot;javascript:DoLink(&apos;{C515C623-DA9A-414E-BD66-C14A922EFA60}&apos;)&quot;&gt;Data from JSON&lt;/a&gt; components,  to provide inline decoding of the body data.  When piping into a reader component, use the format &lt;i&gt;property://ResponsePropertyName&lt;/i&gt; within the Source parameter of the reader.
For piping, be sure to set the &lt;b&gt;Additional Options/Response is Binary&lt;/b&gt; parameter to &lt;i&gt;True&lt;/i&gt; so that character encoding is properly preserved and so that when possible the data can be streamed directly to the downstream component (see the help text for &lt;b&gt;Response is Binary&lt;/b&gt; for more details.).
&lt;/p&gt;
&lt;p&gt;
Use the &lt;b&gt;HTTP Method&lt;/b&gt; parameter to define the method verb of the request. For those methods that include a request body (e.g. Post, Put), the HTTP request may be configured to either send parameter data encoded as form content, or to send a specified body content. Use the &lt;b&gt;HTTP Body&lt;/b&gt; parameter to define which of these options is to be used.
&lt;/p&gt;
&lt;p&gt;
For a form-encoded request body, fill in the &lt;b&gt;Parameters&lt;/b&gt; group. If more than one parameter is needed, you can add additional parameters by pressing the &quot;...&quot; button. Parameter names and values are sent to the remote server using the encoding specified in the &lt;b&gt;HTTP Body&lt;/b&gt; parameter. 
&lt;/p&gt;
&lt;p&gt;
When sending a specified body content (e.g. XML or JSON), set the &lt;b&gt;HTTP Body&lt;/b&gt; parameter to indicate that you are using the &lt;b&gt;Request Body&lt;/b&gt; parameter, set the actual content in the &lt;b&gt;Request Body&lt;/b&gt; parameter and be sure to also define the &lt;b&gt;Content Type&lt;/b&gt; using an appropriate MIME type name - and character encoding, if necessary..
&lt;/p&gt;
&lt;p&gt;
The response from the server is put into the property named by the &lt;b&gt;Additional Options/Put Response in Property&lt;/b&gt; parameter, which is &lt;i&gt;response&lt;/i&gt; by default. The handling of the http request and response can be further configured by using the &lt;b&gt;Additional Request Headers&lt;/b&gt; and &lt;b&gt;Additional Options&lt;/b&gt; groups of parameters. See the individual help of each parameter for further information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Notes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;If the &lt;b&gt;HTTP Method&lt;/b&gt; is &lt;i&gt;Post&lt;/i&gt;, the request body content must be provided in the &lt;b&gt;Parameters&lt;/b&gt; group or in the &lt;b&gt;Request Body&lt;/b&gt; parameter. If neither is provided, the component fails.&lt;/li&gt;
	&lt;li&gt;Cookies are shared between components within a single protocol.  To set a custom cookie value, see the PilotScript function &lt;i&gt;HttpSetCookie&lt;/i&gt;&lt;/li&gt;
	&lt;li&gt;For remote servers that require HTTP authentication, set the &lt;b&gt;Authentication Options&lt;/b&gt; parameters to provide username and password information either through parameters or through single sign-on from the Pipeline Pilot server to the remote server.&lt;/li&gt;
	&lt;li&gt;For performing basic HTTP Get requests that do not require any special headers or options, the majority of the standard file reader components such as the &lt;a href=&quot;javascript:DoLink(&apos;{8056E8AD-33EA-42BB-9099-EAB24C3D08E6}&apos;)&quot;&gt;Text Reader&lt;/a&gt; and &lt;a href=&quot;javascript:DoLink(&apos;{B0B1B56C-3DF6-444C-BB78-B43211188F63}&apos;)&quot;&gt;Binary Reader&lt;/a&gt; can read URLs as sources directly and the &lt;a href=&quot;javascript:DoLink(&apos;{38A20EDC-AAAA-42EF-97BA-D1B40B74FFE0}&apos;)&quot;&gt;Copy File&lt;/a&gt; component can be used if HTTP authentication is required by the server.&lt;/li&gt;
	&lt;li&gt;When piping the output of the HTTP Connector into other readers, always set the &lt;b&gt;Additional Options - Response is Binary&lt;/b&gt; parameter to &lt;i&gt;true&lt;/i&gt;.  This ensures that character encoding is properly preserved and that streaming mode can be used when possible.&lt;/li&gt;
&lt;/ul&gt;
</sci:value>
												<sci:value>Generic</sci:value>
												<sci:value/>
												<sci:value>Generic</sci:value>
												<sci:value/>
												<sci:value>None</sci:value>
												<sci:value/>
											</sci:arg>
											<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The server version when this component was registered</sci:help>
												<sci:value>9.5.0.666</sci:value>
											</sci:arg>
											<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
												<sci:help>Local Component Identifier</sci:help>
												<sci:value>0</sci:value>
											</sci:arg>
											<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>90 -1355</sci:value>
											</sci:arg>
											<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
											<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The user who registered this component.</sci:help>
												<sci:value>scitegic/integration</sci:value>
											</sci:arg>
											<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The date this component was registered.</sci:help>
												<sci:value>Mon Dec 08 10:44:31 2014</sci:value>
											</sci:arg>
											<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>HTTP Connector</sci:value>
											</sci:arg>
											<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
												<sci:value>DOCUMENTNODE</sci:value>
											</sci:arg>
											<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
												<sci:value>0</sci:value>
											</sci:arg>
											<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The original path within the database of this component.</sci:help>
												<sci:value>Components\Database and Application Integration\Application Integration\Web Service Integration\HTTP Connector</sci:value>
											</sci:arg>
										</sci:component>
									</sci:data>
									<sci:data object="SciTegic.ComponentPerlPlugin.1">
										<sci:component name="Perl (on Server)" version="2">
											<sci:arg name="Script" type="PerlScriptType" required="true" visibility="visible" multi="false" implbase="{6C9F19F9-6CF3-4BB9-8F61-89C89D9CDCBB}">
												<sci:help>&lt;p&gt;Perl script to execute.  Pipeline Pilot executes the following three subroutines:

&lt;ul&gt;
&lt;li&gt;onInitialize: the subroutine that executes before the first data record is processed.&lt;/li&gt;
&lt;li&gt;onProcess: the subroutine that executes for each data record.&lt;/li&gt;
&lt;li&gt;onFinalize: the subroutine that executes after the last data record has been processed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
The usual Perl scoping rules apply to variables.  To pass a variable between the three required subroutines use package level variables, e.g., &lt;code&gt;$::variable&lt;/code&gt; or &lt;code&gt;my $variable&lt;/code&gt; declared outside the subroutines.
&lt;/p&gt;

&lt;p&gt;
The &lt;i&gt;onInitialize&lt;/i&gt; and &lt;i&gt;onFinalize&lt;/i&gt; subroutines both receive the &lt;code&gt;pilot::Context Perl&lt;/code&gt; object as the only argument.  The &lt;i&gt;onProcess&lt;/i&gt; subroutine receives the &lt;code&gt;pilot::Context&lt;/code&gt; and &lt;code&gt;pilot::DataRecord&lt;/code&gt; Perl objects as its two arguments.
&lt;/p&gt;

&lt;p&gt;
pilot::Context provides access to globals and parameters.  A common way to get these is via a Perl hash reference.  For example, to get a &lt;i&gt;Source&lt;/i&gt; parameter value use
&lt;/p&gt;

&lt;pre&gt;
my $parametersHashRef = $context-&gt;getComponentParameters()-&gt;getHashRef();
my $source = $parametersHashRef-&gt;{&quot;Source&quot;};
&lt;/pre&gt;

&lt;p&gt;
To obtain the value of a global property called &lt;i&gt;Old&lt;/i&gt; and set a new global property called &lt;i&gt;New&lt;/i&gt; use
&lt;/p&gt;

&lt;pre&gt;
my $globalsHashRef = $context-&gt;getGlobalProperties()-&gt;getHashRef();
my $value = $globalsHashRef-&gt;{&quot;Old&quot;};
$globalsHashRef-&gt;{&quot;New&quot;} = &quot;newValue&quot;;
&lt;/pre&gt;

&lt;p&gt;
Top level properties in a data record are accessed similarly.
&lt;/p&gt;

&lt;pre&gt;
my $node = $data-&gt;getRoot();
my $propertiesHashRef = $node-&gt;getProperties()-&gt;getHashRef();
my $value = $propertiesHashRef-&gt;{&quot;Old&quot;};
$propertiesHashRef-&gt;{&quot;New&quot;} = &quot;newValue&quot;;
&lt;/pre&gt;

&lt;p&gt;
&lt;i&gt;onInitialize&lt;/i&gt; and &lt;i&gt;onProcess&lt;/i&gt; must return one of the following component state values:
&lt;ul&gt;
&lt;li&gt;pilot::READYFORINPUTDATA
&lt;li&gt;pilot::DONEPROCESSINGDATA
&lt;li&gt;pilot::READYFORNEWDATA
&lt;li&gt;pilot::READYFORINPUTTHENNEWDATA
&lt;/ul&gt;
&lt;/p&gt;

&lt;p&gt;
To explicitly route a data record to a port use
&lt;/p&gt;

&lt;pre&gt;
$data-&gt;routeTo($pilot::PassPort);
&lt;/pre&gt;

&lt;p&gt;
or
&lt;/p&gt;

&lt;pre&gt;
$data-&gt;routeTo($pilot::FailPort);
&lt;/pre&gt;

&lt;p&gt;
Data records can also be terminated internally by routing to &lt;code&gt;$pilot::NoPort&lt;/code&gt;.
&lt;/p&gt;</sci:help>
												<sci:value>package main;

#
# RemoteBlastGetRID.pm
#
# This program and all files, classes and data used by it
# are protected by Copyright and hence may not be used, copied,
# modified, transmitted, inspected, or executed by any means including
# the use of electronic data processing equipment, xerography, or
# any other methods without the express written permission of the
# copyright holder.
#
# Copyright (C) 2017 Accelrys Software Inc., All Rights Reserved
#

use strict;
use warnings;

use Bio::Tools::Run::RemoteBlast;
use SciTegic::Bio::PipelinePilot::FromBioPerl::AddSearchResults;
use SciTegic::Bio::Tools::Blast::BlastUtilities;
use SciTegic::Bio::PipelinePilot::ToBioPerl::CreateBioPerlRichSequence;
use SciTegic::Bio::PipelinePilot::Utils::PipelinePilotUtilities;
use SciTegic::Bio::PipelinePilot::Validate::SequenceValidation;

sub onInitialize
{
    my $context = shift;

    return pilot::READYFORINPUTDATA;
}

sub onProcess
{
    my $context = shift;
    my $data = shift;


    # make sure that pipeline statistics on the client get updated
    # (currently needed for computationally intensive tasks)
    $context-&gt;sendMessageToClient(&quot;Running remote BLAST&quot;);

	my $globalsHashRef = $context-&gt;getGlobalProperties-&gt;getHashRef();
    my $propertiesHashRef = $data-&gt;getProperties-&gt;getHashRef();	
	my $response = $propertiesHashRef-&gt;{&apos;response&apos;};

	my $resultCode = getBlastResults($context, $response, $propertiesHashRef, $globalsHashRef);
	if ($resultCode &lt;= 0){
		$data-&gt;routeTo(pilot::FAILPORT);		
	}

    $context-&gt;sendMessageToClient(&quot;&quot;);          # we&apos;re done, so clear the status message
    return pilot::READYFORINPUTDATA;
}

sub onFinalize
{
    my $context = shift;
}

sub getBlastResults
{
    my ($context, $response, $propertiesHashRef, $globalsHashRef) = @_;

	my $ridFound = 0;
    my $rtoe = 0;

    eval
    {
        # need to not stomp Pipeline Pilot&apos;s die handler
        local $SIG{__DIE__};

        if( length($response)&gt;0 ){
            my @subdata = split(/\n/, $response );
            my $inQBlastInfoBegin = 0;
            foreach ( @subdata ) {
                # example:
                #&lt;!--QBlastInfoBegin
                #   RID = 5ZU8ZZFN016
                #   RTOE = 32
                #QBlastInfoEnd
            
                last if (/QBlastInfoEnd/);

                $inQBlastInfoBegin = 1 if (/QBlastInfoBegin/);
                
                if($inQBlastInfoBegin) {
                    if(/^\s*RID\s*=\s*(\S+)/) {
                        $propertiesHashRef-&gt;{&apos;RID&apos;} = $1;
                        $globalsHashRef-&gt;{&apos;RID&apos;} = $1;
                        pilot::debugMessage(&quot;rid is $1&quot;);
                        $ridFound=1;
                    } 
                    
                    if(/^\s*RTOE\s*=\s*(\d+)/) {
                        $rtoe=$1;
                        pilot::debugMessage(&quot;RTOE (estimated time in seconds until the search is completed) is $rtoe&quot;);
                    }
                }
			}
        }
	};

    if( $ridFound == 0 ) {
        $propertiesHashRef-&gt;{&apos;blastError&apos;} = &apos;No RID found. BLAST search failed.&apos;;
    }

    if ($@)
    {
        die(&quot;Remote BLAST failed: $@\n&quot;);
    }	

    sleep($rtoe) if($rtoe&gt;0);
    
    return $ridFound;	
}

1;</sci:value>
											</sci:arg>
											<sci:arg name="Use Package" type="StringType" required="false" visibility="visible" multi="false" implbase="{6C9F19F9-6CF3-4BB9-8F61-89C89D9CDCBB}">
												<sci:help>The name of an application package that contains Perl modules referenced by this component. By defining this package name, a package-specific module may be referenced with the &apos;use modulename;&apos; syntax.</sci:help>
												<sci:value>scitegic/seqanal</sci:value>
											</sci:arg>
											<sci:arg name="Rebuild In RTC" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
												<sci:help>&lt;p&gt;
The Perl component functions by creating an instance of a Perl interpreter and
passing the supplied Perl script to the interpreter for execution. The
creation of the Perl interpreter occurs one time, while script execution
occurs once for initialization and finalization subroutines and once 
for each data record processed by the component.
&lt;/p&gt;
&lt;p&gt;
However, in the context of a Run To Completion (RTC) subprtocols, the Perl 
component would normally be re-instantiated for each data record, 
in common with other components in an RTC subprotocol. This implies the
re-creation of the Perl interpreter for each data record, which can be
relatively time consuming, particularly for Perl scripts which
themselves perform a rapid operation per data record.
&lt;/p&gt;
&lt;p&gt;
So, to avoid significant differences in performance timings between RTC
and non-RTC contexts, the Perl component&apos;s default behavior is to &lt;i&gt;keep&lt;/i&gt;
the same instance of the Perl interpreter throughout its life cycle. This
is indicated by the False setting of the &lt;em&gt;Rebuild In RTC&lt;/em&gt; parameter.
&lt;/p&gt;
&lt;p&gt;
However, there are some circumstances where Perl script or 3rd party modules
are not written in a way that allows them to safely re-use the same interpreter in this way. So if you see unexpected behavior from a Perl
component in a Run To Completion subprotocol, switch the &lt;em&gt;Rebuild In RTC&lt;/em&gt;
parameter to True to see if that resolves the issue.
&lt;/p&gt;
&lt;p&gt;
If that fixes the problem, and the Perl cannot be re-cast to 
handle the persistent interpreter,
you may need to trade performance for stability.
&lt;/p&gt;</sci:help>
												<sci:legalval>True</sci:legalval>
												<sci:legalval selected="true">False</sci:legalval>
											</sci:arg>
											<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
												<sci:help>Component Attributes</sci:help>
												<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
												<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
												<sci:legalval selected="true">ComponentReturnsFail</sci:legalval>
												<sci:legalval>ComponentRunsLocal</sci:legalval>
											</sci:arg>
											<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
												<sci:legalval selected="true">Halt</sci:legalval>
												<sci:legalval>Fail</sci:legalval>
												<sci:legalval>Pass</sci:legalval>
											</sci:arg>
											<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
												<sci:legalval selected="true">Halt</sci:legalval>
												<sci:legalval>Fail</sci:legalval>
												<sci:legalval>Pass</sci:legalval>
											</sci:arg>
											<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
											<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The user who registered this component.</sci:help>
												<sci:value>scitegic/integration</sci:value>
											</sci:arg>
											<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The date this component was registered.</sci:help>
												<sci:value>Tue Feb 05 15:52:10 2013</sci:value>
											</sci:arg>
											<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>{6C9F19F9-6CF3-4BB9-8F61-89C89D9CDCBB}</sci:value>
											</sci:arg>
											<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>Get RID</sci:value>
											</sci:arg>
											<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>390 -1355</sci:value>
											</sci:arg>
											<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
												<sci:value>COMPONENTNODE</sci:value>
											</sci:arg>
											<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The component this component is based upon.</sci:help>
												<sci:value>Plug In</sci:value>
											</sci:arg>
											<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
												<sci:value>0</sci:value>
											</sci:arg>
											<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
												<sci:value>100</sci:value>
												<sci:value>Executes Perl code on the server</sci:value>
												<sci:value>&lt;p&gt;Allows a Perl script to manipulate a data record&apos;s property list, the global
property list, and component behavior. The &lt;em&gt;Script&lt;/em&gt; parameter contains
the script that implements the component behavior, encoded in Perl. The following
subroutines must be defined in this text parameter (all three methods need to
be declared in the main scope): &lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;onInitialize: &lt;/em&gt;Invoked once before the any data records
    arrive. This method receives one argument, a pilot::Context object. Also,
    it must return a component state, one of $pilot::ReadyForInputData, $pilot::DoneProcessingData, $pilot::ReadyForNewData or $pilot::ReadyForInputThenNewData. &lt;/li&gt;
  &lt;li&gt;&lt;em&gt;onProcess&lt;/em&gt;: Called once per data record. This method
    receives two arguments, a pilot::Context and a pilot::DataRecord object and
    return a component state. &lt;/li&gt;
  &lt;li&gt;&lt;em&gt;onFinalize&lt;/em&gt;: Called when no more data records are available.
    This method receives one argument, a pilot::Context object. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;i&gt;onInitialize&lt;/i&gt; and &lt;i&gt;onProcess&lt;/i&gt; must
return one of the following component state values:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;pilot::READYFORINPUTDATA
&lt;li&gt;pilot::DONEPROCESSINGDATA
&lt;li&gt;pilot::READYFORNEWDATA
&lt;li&gt;pilot::READYFORINPUTTHENNEWDATA
&lt;/ul&gt;


&lt;p&gt;&lt;strong&gt;Notes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Any script outside of the subroutines is executed just prior to calling
    onInitialize.&lt;/li&gt;
	&lt;li&gt;The optional &lt;em&gt;Use Package&lt;/em&gt; parameter is used to identify a package
      that holds one or more Perl modules that are referenced by the component.
      In this way, much or all of a component&apos;s functionality can be maintained
      in a package module. This facilitates component upgrading, by centralizing
    the code.&lt;/li&gt;
    &lt;li&gt;The Perl include path for the library must be declared in the package.conf
      file for the named package.&lt;/li&gt;
    &lt;li&gt;Perl&apos;s &lt;em&gt;strict&lt;/em&gt; and &lt;em&gt;warnings&lt;/em&gt; directives can be very useful
      when writing scripts. To detect warnings, you need to create a handler
      to manage them, since by default, Perl sends them to STDERR, which is not
    easily accessible from within Pipeline Pilot. 
	&lt;p&gt;For example, the following
    script treats warnings as errors:&lt;/p&gt;
	&lt;p&gt;&lt;code&gt;use warnings;&lt;br /&gt;
	$SIG{__WARN__} = sub {die @_;};&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt; If you see unexpected or erroneous behavior when using this component
in a Run To Completion subprotocol, please look at the help text for the
&lt;em&gt;Rebuild In RTC&lt;/em&gt; parameter, which is in the Implementation tab.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;See Also:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;javascript:DoLink(&apos;sciapps/scitegic/integration/docs/server_side/perl_api.htm&apos;)&quot;&gt;Perl Scripting Component API&lt;/a&gt;&lt;/li&gt; 
&lt;li&gt;&lt;a href=&quot;javascript:DoLink(&apos;sciapps/scitegic/integration/docs/server_side/perl_comp_dev.pdf&apos;)&quot;&gt;Perl Component Development Guide&lt;/a&gt;&lt;/li&gt;  
&lt;/ul&gt;</sci:value>
												<sci:value>Generic</sci:value>
												<sci:value/>
												<sci:value>Generic</sci:value>
												<sci:value/>
												<sci:value>Generic</sci:value>
												<sci:value/>
											</sci:arg>
											<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
											<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The server version when this component was registered</sci:help>
												<sci:value>9.0.1.15</sci:value>
											</sci:arg>
											<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
												<sci:help>Local Component Identifier</sci:help>
												<sci:value>18</sci:value>
											</sci:arg>
											<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The original path within the database of this component.</sci:help>
												<sci:value>Components\Database and Application Integration\Application Integration\Programmatic Integration\Perl (on Server)</sci:value>
											</sci:arg>
										</sci:component>
									</sci:data>
									<sci:data object="SciTegic.EvaluateExpression.1">
										<sci:component name="Custom Filter (PilotScript)" version="2">
											<sci:arg name="Expression" type="ExpressionType" required="true" visibility="visible" multi="false" expanded="true" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
												<sci:help>The PilotScript expression used to filter the data.</sci:help>
												<sci:member>Initial Expression</sci:member>
												<sci:member>Final Expression</sci:member>
												<sci:member>Keep Calculated Properties</sci:member>
												<sci:value>#timeOut:=False;

if StrLength(@&apos;Time Out&apos;)&gt;0 then
	if (DateSecondsSince1970()-@StartTime)/60 &gt; @&apos;Time Out&apos; then
		#timeOut:=True;
	end if;
end if;

if #timeOut then
	False;
else
	sleep(@&apos;Polling Time&apos; * 1000);
	True;
end if;
</sci:value>
											</sci:arg>
											<sci:arg name="Initial Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
												<sci:help>&lt;p&gt;
An expression evaluated only when the component
is first initialized (when the first data record enters).
&lt;p/&gt;
Since there is no data available at initialization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
												<sci:value>@&apos;Time Out&apos;:=Trim(@&apos;Time Out&apos;);
@&apos;Polling Time&apos;:=Trim(@&apos;Polling Time&apos;);

if integer(@&apos;Polling Time&apos;) &lt;= 0 then
	@&apos;Polling Time&apos; := 61;	// default to poll no more than once a minute
end if;
</sci:value>
											</sci:arg>
											<sci:arg name="Final Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
												<sci:help>&lt;p&gt;
An expression evaluated only when the
component is finalized (once the last data
record has passed).
&lt;p/&gt;
Since there is no data available at finalization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
											</sci:arg>
											<sci:arg name="Keep Calculated Properties" type="BoolType" required="true" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
												<sci:help>Allows any properties that were calculated in
&quot;Expression&quot; to be included with the exiting
record.
Otherwise, these properties are removed after
the evaluation is complete.</sci:help>
												<sci:legalval>True</sci:legalval>
												<sci:legalval selected="true">False</sci:legalval>
											</sci:arg>
											<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
												<sci:help>Component Attributes</sci:help>
												<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
												<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
												<sci:legalval selected="true">ComponentReturnsFail</sci:legalval>
												<sci:legalval>ComponentRunsLocal</sci:legalval>
											</sci:arg>
											<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
												<sci:legalval selected="true">Halt</sci:legalval>
												<sci:legalval>Fail</sci:legalval>
												<sci:legalval>Pass</sci:legalval>
											</sci:arg>
											<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
												<sci:legalval selected="true">Halt</sci:legalval>
												<sci:legalval>Fail</sci:legalval>
												<sci:legalval>Pass</sci:legalval>
											</sci:arg>
											<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
											<sci:arg name="ExpressionVersion" type="LongType" required="false" visibility="nevershow" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
												<sci:help>Version of expression parser to use.</sci:help>
												<sci:value>2</sci:value>
											</sci:arg>
											<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The user who registered this component.</sci:help>
												<sci:value>scitegic/generic</sci:value>
											</sci:arg>
											<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The date this component was registered.</sci:help>
												<sci:value>Mon Jan 21 09:57:16 2008</sci:value>
											</sci:arg>
											<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>Timeout?</sci:value>
											</sci:arg>
											<sci:arg name="ComponentAutoDisplayName" type="ExpressionType" required="false" visibility="nevershow" multi="false">
												<sci:help>Automatically update the component display name when the &quot;Expression&quot; property is changed. This feature is turned off after the user manually changes the display name of the component in Protocol workspace.</sci:help>
												<sci:value>#displayName := trim(Parameter(&apos;Expression&apos;, 2));
if(strlength(#displayName) &gt; 0) then	
	/* Find the first line break */
	#nl := FindSubstring(#displayName, &quot;\r&quot;);
	if #nl &lt;= 0 then
		#nl := FindSubstring(#displayName, &quot;\n&quot;);
	end if;

	/* Keep the first line only */
	if (#nl &gt; 0) then
		StrErase(#displayName, #nl);
	end if;
	
	#displayName;
else
	&quot;&quot;;
end if;</sci:value>
											</sci:arg>
											<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
												<sci:value>FILTERNODE</sci:value>
											</sci:arg>
											<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The component this component is based upon.</sci:help>
												<sci:value>Custom Filter (PilotScript)</sci:value>
											</sci:arg>
											<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
												<sci:value>0</sci:value>
											</sci:arg>
											<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>{DD58ECD1-516F-48FE-A5DB-8328AED680F2}</sci:value>
											</sci:arg>
											<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>1290 -1355</sci:value>
											</sci:arg>
											<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
												<sci:value>100</sci:value>
												<sci:value>Passes data records for which a PilotScript expression evaluates to True

</sci:value>
												<sci:value>&lt;p&gt;For each incoming data record, the PilotScript statements in &lt;i&gt;Expression&lt;/i&gt; are evaluated. If the last statement in the expression evaluates to True or non-zero, the record is sent out the Pass port. Otherwise it is sent out the Fail port.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To initialize global variables such as counters, use &lt;i&gt;Initial Expression&lt;/i&gt;.&lt;/li&gt; 
&lt;li&gt;To clean up global variables or calculate final results use &lt;i&gt;Final Expression&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Parameters on Custom Manipulators do not become global variables that can be accessed via &lt;i&gt;@ParameterName&lt;/i&gt; syntax.  They must be accessed by using the &lt;i&gt;Parameter(&apos;ParameterName&apos;)&lt;/i&gt; function or by using token substitution via &lt;i&gt;$(ParameterName)&lt;/i&gt; syntax.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
</sci:value>
												<sci:value>Generic</sci:value>
												<sci:value/>
												<sci:value>Generic</sci:value>
												<sci:value>Data records for which the final expression in the PilotScript evaluates to True or non-zero</sci:value>
												<sci:value>Generic</sci:value>
												<sci:value>Data records for which the final expression in the PilotScript evaluates to False or zero</sci:value>
											</sci:arg>
											<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
											<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
												<sci:help>Local Component Identifier</sci:help>
												<sci:value>14</sci:value>
											</sci:arg>
											<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The original path within the database of this component.</sci:help>
												<sci:value>Components\Data Access and Manipulation\Property Filters\Custom Filter (PilotScript)</sci:value>
											</sci:arg>
										</sci:component>
										<sci:proplist>
											<sci:propval name="RegistrationVersion">7.0.0.35</sci:propval>
										</sci:proplist>
									</sci:data>
									<sci:data object="SciTegic.EvaluateExpression.1">
										<sci:component name="Custom Manipulator (PilotScript)" version="2">
											<sci:arg name="Expression" type="ExpressionType" required="true" visibility="visible" multi="false" expanded="true" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
												<sci:help>Expression (or list of expressions separated by semi-colons) to evaluate.</sci:help>
												<sci:member>Initial Expression</sci:member>
												<sci:member>Final Expression</sci:member>
												<sci:member>Keep Calculated Properties</sci:member>
												<sci:value>@BlastError:=&apos;No RID found. BLAST search failed.&apos;;</sci:value>
											</sci:arg>
											<sci:arg name="Initial Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
												<sci:help>&lt;p&gt;
This expression is executed only the first time data passes into the component.
&lt;p/&gt; 
Since there is no data available at initialization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
											</sci:arg>
											<sci:arg name="Final Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
												<sci:help>&lt;p&gt;
This expression is executed only at finalization (after the last data passes out of the component).
&lt;p/&gt; 
Since there is no data available at finalization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
											</sci:arg>
											<sci:arg name="Keep Calculated Properties" type="BoolType" required="true" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
												<sci:help>Adds any properties calculated in this component to a data record&apos;s property list.</sci:help>
												<sci:legalval selected="true">True</sci:legalval>
												<sci:legalval>False</sci:legalval>
											</sci:arg>
											<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
												<sci:help>Component Attributes</sci:help>
												<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
												<sci:legalval>ComponentReturnsPass</sci:legalval>
												<sci:legalval>ComponentReturnsFail</sci:legalval>
												<sci:legalval>ComponentRunsLocal</sci:legalval>
											</sci:arg>
											<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
												<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
												<sci:legalval selected="true">Halt</sci:legalval>
												<sci:legalval>Fail</sci:legalval>
												<sci:legalval>Pass</sci:legalval>
											</sci:arg>
											<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
												<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
												<sci:legalval selected="true">Halt</sci:legalval>
												<sci:legalval>Fail</sci:legalval>
												<sci:legalval>Pass</sci:legalval>
											</sci:arg>
											<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>Custom Error Message</sci:help>
											</sci:arg>
											<sci:arg name="Do Screen" type="BoolType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
												<sci:help>When TRUE, controls which exit port is used for
each data record by evaluating the final expression
(or only one) listed in the &quot;Expression&quot; parameter.
   -Pass (green) port when expression true
   -Fail (red) port when expression false</sci:help>
												<sci:legalval>True</sci:legalval>
												<sci:legalval selected="true">False</sci:legalval>
											</sci:arg>
											<sci:arg name="ExpressionVersion" type="LongType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
												<sci:help>Version of expression parser to use.</sci:help>
												<sci:value>2</sci:value>
											</sci:arg>
											<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The user who registered this component.</sci:help>
												<sci:value>scitegic/generic</sci:value>
											</sci:arg>
											<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The date this component was registered.</sci:help>
												<sci:value>Mon Jan 21 09:55:43 2008</sci:value>
											</sci:arg>
											<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>BLAST ERROR</sci:value>
											</sci:arg>
											<sci:arg name="ComponentAutoDisplayName" type="ExpressionType" required="false" visibility="nevershow" multi="false">
												<sci:help>Automatically update the component display name when the &quot;Expression&quot; property is changed. This feature is turned off after the user manually changes the display name of the component in Protocol workspace.</sci:help>
												<sci:value>#displayName := trim(Parameter(&apos;Expression&apos;, 2));
if(strlength(#displayName) &gt; 0) then	
	/* Find the first line break */
	#nl := FindSubstring(#displayName, &quot;\r&quot;);
	if #nl &lt;= 0 then
		#nl := FindSubstring(#displayName, &quot;\n&quot;);
	end if;

	/* Keep the first line only */
	if (#nl &gt; 0) then
		StrErase(#displayName, #nl);
	end if;
	
	#displayName;
else
	&quot;&quot;;
end if;</sci:value>
											</sci:arg>
											<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The component this component is based upon.</sci:help>
												<sci:value>Custom Manipulator (PilotScript)</sci:value>
											</sci:arg>
											<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
												<sci:value>EXPRESSIONNODE</sci:value>
											</sci:arg>
											<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
												<sci:value>0</sci:value>
											</sci:arg>
											<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>{0995D675-7EE2-432C-95DF-E91C14052B22}</sci:value>
											</sci:arg>
											<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>690 -1535</sci:value>
											</sci:arg>
											<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
												<sci:value>100</sci:value>
												<sci:value>Applies a PilotScript expression to each data record
</sci:value>
												<sci:value>&lt;p&gt;PilotScript is the native scripting language in Pipeline Pilot.  It is based on PL/SQL and allows you to query or alter the properties on data records.  For example, the expression:

&lt;blockquote&gt;
&lt;code&gt;A := 10;&lt;/code&gt;
&lt;/blockquote&gt;
creates a property named &quot;A&quot; and sets the value to &quot;10&quot;.&lt;/p&gt;

&lt;p&gt;For each incoming data record the PilotScript statements in &lt;i&gt;Expression&lt;/i&gt; are evaluated.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To initialize global variables such as counters, use &lt;i&gt;Initial Expression&lt;/i&gt;.&lt;/li&gt; 
&lt;li&gt;To clean up global variables or calculate final results use &lt;i&gt;Final Expression&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Parameters on Custom Manipulators do not become global variables that can be accessed via &lt;i&gt;@ParameterName&lt;/i&gt; syntax.  They must be accessed by using the &lt;i&gt;Parameter(&apos;ParameterName&apos;)&lt;/i&gt; function or by using token substitution via &lt;i&gt;$(ParameterName)&lt;/i&gt; syntax.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;See Also:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For more information on PilotScript, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/pscript/pscript_overview.htm&apos;)&quot;&gt;PilotScript Overview&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To use PilotScript to filter data records use &lt;a href=&quot;javascript:DoLink(&apos;{DD58ECD1-516F-48FE-A5DB-8328AED680F2}&apos;)&quot;&gt;Custom Filter (PilotScript)&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

</sci:value>
												<sci:value>Generic</sci:value>
												<sci:value/>
												<sci:value>Generic</sci:value>
												<sci:value/>
												<sci:value>None</sci:value>
												<sci:value/>
											</sci:arg>
											<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The server version when this component was registered</sci:help>
												<sci:value>7.0.0.35</sci:value>
											</sci:arg>
											<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
											<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
												<sci:help>Local Component Identifier</sci:help>
												<sci:value>20</sci:value>
											</sci:arg>
											<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The original path within the database of this component.</sci:help>
												<sci:value>Components\Data Access and Manipulation\Property Manipulators\Custom Manipulator (PilotScript)</sci:value>
											</sci:arg>
										</sci:component>
									</sci:data>
									<sci:data object="SciTegic.PropertyFunctions.1">
										<sci:component name="Remove Properties" version="2">
											<sci:arg name="PropertyList" type="TextType" required="true" visibility="visible" multi="false">
												<sci:help>The names of properties to remove from each data record entering the component</sci:help>
												<sci:value>responseStatus</sci:value>
											</sci:arg>
											<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
												<sci:help>Component Attributes</sci:help>
												<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
												<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
												<sci:legalval>ComponentReturnsFail</sci:legalval>
												<sci:legalval>ComponentRunsLocal</sci:legalval>
											</sci:arg>
											<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
												<sci:legalval selected="true">Halt</sci:legalval>
												<sci:legalval>Fail</sci:legalval>
												<sci:legalval>Pass</sci:legalval>
											</sci:arg>
											<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
												<sci:legalval selected="true">Halt</sci:legalval>
												<sci:legalval>Fail</sci:legalval>
												<sci:legalval>Pass</sci:legalval>
											</sci:arg>
											<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
											<sci:arg name="Action" type="StringType" required="true" visibility="nevershow" multi="false">
												<sci:help>the action to perform</sci:help>
												<sci:value>Remove</sci:value>
											</sci:arg>
											<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The user who registered this component.</sci:help>
												<sci:value>scitegic/generic</sci:value>
											</sci:arg>
											<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The date this component was registered.</sci:help>
												<sci:value>Mon Jan 07 13:23:27 2008</sci:value>
											</sci:arg>
											<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>Remove Properties</sci:value>
											</sci:arg>
											<sci:arg name="ProtocolAutoLayout" type="BoolType" required="false" visibility="nevershow" multi="false">
												<sci:help>Protocol AutoLayout</sci:help>
												<sci:value>true</sci:value>
											</sci:arg>
											<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
												<sci:value>0</sci:value>
											</sci:arg>
											<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
												<sci:value>EXPRESSIONNODE</sci:value>
											</sci:arg>
											<sci:arg name="ComponentRevision" type="LongType" required="true" visibility="nevershow" multi="false">
												<sci:help>Component Revision</sci:help>
												<sci:value>100</sci:value>
											</sci:arg>
											<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The component this component is based upon.</sci:help>
												<sci:value>SubProtocol</sci:value>
											</sci:arg>
											<sci:arg name="ProtocolScale" type="LongType" required="false" visibility="nevershow" multi="false">
												<sci:help>Protocol Scale</sci:help>
												<sci:value>0</sci:value>
											</sci:arg>
											<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>1590 -1895</sci:value>
											</sci:arg>
											<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>{C2ED35FF-5397-4877-AADB-10F1A15D60E2}</sci:value>
											</sci:arg>
											<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
												<sci:value>100</sci:value>
												<sci:value>Removes the specified properties</sci:value>
												<sci:value>For each data record that enters the component, the properties specified by &lt;i&gt;PropertyList&lt;/i&gt; are removed from the  record. To specify more than one property to be removed, use a comma separated list.

&lt;p&gt;&lt;b&gt;See Also:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;To keep only a few properties from a long list, it may be more efficient to instead use &lt;a href=&quot;javascript:DoLink(&apos;{456195EF-9708-4367-B3DD-21EBF3796604}&apos;)&quot;&gt;Keep Properties&lt;/a&gt;.&lt;/p&gt;</sci:value>
												<sci:value>Generic</sci:value>
												<sci:value/>
												<sci:value>Generic</sci:value>
												<sci:value>Data records with the specified properties removed</sci:value>
												<sci:value>None</sci:value>
												<sci:value/>
											</sci:arg>
											<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The server version when this component was registered</sci:help>
												<sci:value>7.0.0.31</sci:value>
											</sci:arg>
											<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
											<sci:arg name="ByReference" type="BoolType" required="false" visibility="nevershow" multi="false">
												<sci:help>By Ref</sci:help>
												<sci:value>0</sci:value>
											</sci:arg>
											<sci:arg name="Protocol Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>Protocol Sticky Notes</sci:help>
											</sci:arg>
											<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
												<sci:help>Local Component Identifier</sci:help>
												<sci:value>13</sci:value>
											</sci:arg>
											<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The original path within the database of this component.</sci:help>
												<sci:value>Components\Data Access and Manipulation\Property Manipulators\Remove Properties</sci:value>
											</sci:arg>
										</sci:component>
									</sci:data>
									<sci:data object="SciTegic.EvaluateExpression.1">
										<sci:component name="Custom Manipulator (PilotScript)" version="2">
											<sci:arg name="Expression" type="ExpressionType" required="true" visibility="visible" multi="false" expanded="true" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
												<sci:help>Expression (or list of expressions separated by semi-colons) to evaluate.</sci:help>
												<sci:member>Initial Expression</sci:member>
												<sci:member>Final Expression</sci:member>
												<sci:member>Keep Calculated Properties</sci:member>
												<sci:value>@BlastError:= &apos;Online BLAST search timed out.&apos;;</sci:value>
											</sci:arg>
											<sci:arg name="Initial Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
												<sci:help>&lt;p&gt;
This expression is executed only the first time data passes into the component.
&lt;p/&gt; 
Since there is no data available at initialization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
											</sci:arg>
											<sci:arg name="Final Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
												<sci:help>&lt;p&gt;
This expression is executed only at finalization (after the last data passes out of the component).
&lt;p/&gt; 
Since there is no data available at finalization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
											</sci:arg>
											<sci:arg name="Keep Calculated Properties" type="BoolType" required="true" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
												<sci:help>Adds any properties calculated in this component to a data record&apos;s property list.</sci:help>
												<sci:legalval selected="true">True</sci:legalval>
												<sci:legalval>False</sci:legalval>
											</sci:arg>
											<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
												<sci:help>Component Attributes</sci:help>
												<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
												<sci:legalval>ComponentReturnsPass</sci:legalval>
												<sci:legalval>ComponentReturnsFail</sci:legalval>
												<sci:legalval>ComponentRunsLocal</sci:legalval>
											</sci:arg>
											<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
												<sci:legalval selected="true">Halt</sci:legalval>
												<sci:legalval>Fail</sci:legalval>
												<sci:legalval>Pass</sci:legalval>
											</sci:arg>
											<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
												<sci:legalval selected="true">Halt</sci:legalval>
												<sci:legalval>Fail</sci:legalval>
												<sci:legalval>Pass</sci:legalval>
											</sci:arg>
											<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
											<sci:arg name="Do Screen" type="BoolType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
												<sci:help>When TRUE, controls which exit port is used for
each data record by evaluating the final expression
(or only one) listed in the &quot;Expression&quot; parameter.
   -Pass (green) port when expression true
   -Fail (red) port when expression false</sci:help>
												<sci:legalval>True</sci:legalval>
												<sci:legalval selected="true">False</sci:legalval>
											</sci:arg>
											<sci:arg name="ExpressionVersion" type="LongType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
												<sci:help>Version of expression parser to use.</sci:help>
												<sci:value>2</sci:value>
											</sci:arg>
											<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The user who registered this component.</sci:help>
												<sci:value>scitegic/generic</sci:value>
											</sci:arg>
											<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The date this component was registered.</sci:help>
												<sci:value>Mon Jan 21 09:55:43 2008</sci:value>
											</sci:arg>
											<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>Time Out Error</sci:value>
											</sci:arg>
											<sci:arg name="ComponentAutoDisplayName" type="ExpressionType" required="false" visibility="nevershow" multi="false">
												<sci:help>Automatically update the component display name when the &quot;Expression&quot; property is changed. This feature is turned off after the user manually changes the display name of the component in Protocol workspace.</sci:help>
												<sci:value>#displayName := trim(Parameter(&apos;Expression&apos;, 2));
if(strlength(#displayName) &gt; 0) then	
	/* Find the first line break */
	#nl := FindSubstring(#displayName, &quot;\r&quot;);
	if #nl &lt;= 0 then
		#nl := FindSubstring(#displayName, &quot;\n&quot;);
	end if;

	/* Keep the first line only */
	if (#nl &gt; 0) then
		StrErase(#displayName, #nl);
	end if;
	
	#displayName;
else
	&quot;&quot;;
end if;</sci:value>
											</sci:arg>
											<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The component this component is based upon.</sci:help>
												<sci:value>Custom Manipulator (PilotScript)</sci:value>
											</sci:arg>
											<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
												<sci:value>EXPRESSIONNODE</sci:value>
											</sci:arg>
											<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
												<sci:value>0</sci:value>
											</sci:arg>
											<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>{0995D675-7EE2-432C-95DF-E91C14052B22}</sci:value>
											</sci:arg>
											<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:value>1590 -2255</sci:value>
											</sci:arg>
											<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
												<sci:value>100</sci:value>
												<sci:value>Applies a PilotScript expression to each data record
</sci:value>
												<sci:value>&lt;p&gt;PilotScript is the native scripting language in Pipeline Pilot.  It is based on PL/SQL and allows you to query or alter the properties on data records.  For example, the expression:

&lt;blockquote&gt;
&lt;code&gt;A := 10;&lt;/code&gt;
&lt;/blockquote&gt;
creates a property named &quot;A&quot; and sets the value to &quot;10&quot;.&lt;/p&gt;

&lt;p&gt;For each incoming data record the PilotScript statements in &lt;i&gt;Expression&lt;/i&gt; are evaluated.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To initialize global variables such as counters, use &lt;i&gt;Initial Expression&lt;/i&gt;.&lt;/li&gt; 
&lt;li&gt;To clean up global variables or calculate final results use &lt;i&gt;Final Expression&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Parameters on Custom Manipulators do not become global variables that can be accessed via &lt;i&gt;@ParameterName&lt;/i&gt; syntax.  They must be accessed by using the &lt;i&gt;Parameter(&apos;ParameterName&apos;)&lt;/i&gt; function or by using token substitution via &lt;i&gt;$(ParameterName)&lt;/i&gt; syntax.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;See Also:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For more information on PilotScript, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/pscript/pscript_overview.htm&apos;)&quot;&gt;PilotScript Overview&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To use PilotScript to filter data records use &lt;a href=&quot;javascript:DoLink(&apos;{DD58ECD1-516F-48FE-A5DB-8328AED680F2}&apos;)&quot;&gt;Custom Filter (PilotScript)&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

</sci:value>
												<sci:value>Generic</sci:value>
												<sci:value/>
												<sci:value>Generic</sci:value>
												<sci:value/>
												<sci:value>None</sci:value>
												<sci:value/>
											</sci:arg>
											<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The server version when this component was registered</sci:help>
												<sci:value>7.0.0.35</sci:value>
											</sci:arg>
											<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
											<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
												<sci:help>Local Component Identifier</sci:help>
												<sci:value>15</sci:value>
											</sci:arg>
											<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
												<sci:help>The original path within the database of this component.</sci:help>
												<sci:value>Components\Data Access and Manipulation\Property Manipulators\Custom Manipulator (PilotScript)</sci:value>
											</sci:arg>
										</sci:component>
									</sci:data>
									<sci:connectid from="5" to="19" type="true"/>
									<sci:connectid from="7" to="5" type="true"/>
									<sci:connectid from="7" to="8" type="true"/>
									<sci:connectid from="10" to="11" type="true"/>
									<sci:connectid from="11" to="7" type="true"/>
									<sci:connectid from="11" to="14" type="false"/>
									<sci:connectid from="0" to="18" type="true"/>
									<sci:connectid from="18" to="10" type="true"/>
									<sci:connectid from="18" to="20" type="false"/>
									<sci:connectid from="14" to="13" type="true"/>
									<sci:connectid from="14" to="15" type="false"/>
									<sci:connectid from="13" to="10" type="true"/>
								</sci:protocol>
							</sci:data>
							<sci:data object="SciTegic.EvaluateExpression.1">
								<sci:component name="Custom Filter (PilotScript)" version="2">
									<sci:arg name="Expression" type="ExpressionType" required="true" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
										<sci:help>The PilotScript expression used to filter the data.</sci:help>
										<sci:member>Initial Expression</sci:member>
										<sci:member>Final Expression</sci:member>
										<sci:member>Keep Calculated Properties</sci:member>
										<sci:value>StrLength(@EncodedQuery)&gt;0;</sci:value>
									</sci:arg>
									<sci:arg name="Initial Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
										<sci:help>&lt;p&gt;
An expression evaluated only when the component
is first initialized (when the first data record enters).
&lt;p/&gt;
Since there is no data available at initialization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
									</sci:arg>
									<sci:arg name="Final Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
										<sci:help>&lt;p&gt;
An expression evaluated only when the
component is finalized (once the last data
record has passed).
&lt;p/&gt;
Since there is no data available at finalization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
									</sci:arg>
									<sci:arg name="Keep Calculated Properties" type="BoolType" required="true" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
										<sci:help>Allows any properties that were calculated in
&quot;Expression&quot; to be included with the exiting
record.
Otherwise, these properties are removed after
the evaluation is complete.</sci:help>
										<sci:legalval>True</sci:legalval>
										<sci:legalval selected="true">False</sci:legalval>
									</sci:arg>
									<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
										<sci:help>Component Attributes</sci:help>
										<sci:legalval>ComponentTakesInput</sci:legalval>
										<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
										<sci:legalval selected="true">ComponentReturnsFail</sci:legalval>
										<sci:legalval>ComponentRunsLocal</sci:legalval>
									</sci:arg>
									<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="ExpressionVersion" type="LongType" required="false" visibility="nevershow" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
										<sci:help>Version of expression parser to use.</sci:help>
										<sci:value>2</sci:value>
									</sci:arg>
									<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The user who registered this component.</sci:help>
										<sci:value>scitegic/generic</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The date this component was registered.</sci:help>
										<sci:value>Mon Jan 21 09:57:16 2008</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>Any Query</sci:value>
									</sci:arg>
									<sci:arg name="ComponentAutoDisplayName" type="ExpressionType" required="false" visibility="nevershow" multi="false">
										<sci:help>Automatically update the component display name when the &quot;Expression&quot; property is changed. This feature is turned off after the user manually changes the display name of the component in Protocol workspace.</sci:help>
										<sci:value>#displayName := trim(Parameter(&apos;Expression&apos;, 2));
if(strlength(#displayName) &gt; 0) then	
	/* Find the first line break */
	#nl := FindSubstring(#displayName, &quot;\r&quot;);
	if #nl &lt;= 0 then
		#nl := FindSubstring(#displayName, &quot;\n&quot;);
	end if;

	/* Keep the first line only */
	if (#nl &gt; 0) then
		StrErase(#displayName, #nl);
	end if;
	
	#displayName;
else
	&quot;&quot;;
end if;</sci:value>
									</sci:arg>
									<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:value>FILTERNODE</sci:value>
									</sci:arg>
									<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The component this component is based upon.</sci:help>
										<sci:value>Custom Filter (PilotScript)</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>{DD58ECD1-516F-48FE-A5DB-8328AED680F2}</sci:value>
									</sci:arg>
									<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>90 -815</sci:value>
									</sci:arg>
									<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
										<sci:value>100</sci:value>
										<sci:value>Passes data records for which a PilotScript expression evaluates to True

</sci:value>
										<sci:value>&lt;p&gt;For each incoming data record, the PilotScript statements in &lt;i&gt;Expression&lt;/i&gt; are evaluated. If the last statement in the expression evaluates to True or non-zero, the record is sent out the Pass port. Otherwise it is sent out the Fail port.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To initialize global variables such as counters, use &lt;i&gt;Initial Expression&lt;/i&gt;.&lt;/li&gt; 
&lt;li&gt;To clean up global variables or calculate final results use &lt;i&gt;Final Expression&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Parameters on Custom Manipulators do not become global variables that can be accessed via &lt;i&gt;@ParameterName&lt;/i&gt; syntax.  They must be accessed by using the &lt;i&gt;Parameter(&apos;ParameterName&apos;)&lt;/i&gt; function or by using token substitution via &lt;i&gt;$(ParameterName)&lt;/i&gt; syntax.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
</sci:value>
										<sci:value>Generic</sci:value>
										<sci:value/>
										<sci:value>Generic</sci:value>
										<sci:value>Data records for which the final expression in the PilotScript evaluates to True or non-zero</sci:value>
										<sci:value>Generic</sci:value>
										<sci:value>Data records for which the final expression in the PilotScript evaluates to False or zero</sci:value>
									</sci:arg>
									<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:help>Local Component Identifier</sci:help>
										<sci:value>24</sci:value>
									</sci:arg>
									<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The original path within the database of this component.</sci:help>
										<sci:value>Components\Data Access and Manipulation\Property Filters\Custom Filter (PilotScript)</sci:value>
									</sci:arg>
								</sci:component>
								<sci:proplist>
									<sci:propval name="RegistrationVersion">7.0.0.35</sci:propval>
								</sci:proplist>
							</sci:data>
							<sci:data object="SciTegic.PropertyFunctions.1">
								<sci:component name="Dont Pass Data" version="2">
									<sci:arg name="DataActionOnError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:help>When a General or DataType error occurs during processing:  
  LeaveData: The data is passed unalterd
  ClearData: The data is cleared before being passed (an empty data item)
  DeleteData: The data is deleted and not passed</sci:help>
										<sci:legalval selected="true">LeaveData</sci:legalval>
										<sci:legalval>ClearData</sci:legalval>
										<sci:legalval>DeleteData</sci:legalval>
									</sci:arg>
									<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
										<sci:help>Component Attributes</sci:help>
										<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
										<sci:legalval>ComponentReturnsPass</sci:legalval>
										<sci:legalval>ComponentReturnsFail</sci:legalval>
										<sci:legalval>ComponentRunsLocal</sci:legalval>
									</sci:arg>
									<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="Action" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:help>the action to perform</sci:help>
										<sci:value>PassDataToPort</sci:value>
									</sci:arg>
									<sci:arg name="Port" type="LongType" required="true" visibility="nevershow" multi="false">
										<sci:help>the port to pass data to</sci:help>
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:value>COMPONENTNODE</sci:value>
									</sci:arg>
									<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The user who registered this component.</sci:help>
										<sci:value>scitegic/generic</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The date this component was registered.</sci:help>
										<sci:value>Wed Sep 20 08:16:06 2006</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>Don&apos;t Pass Data</sci:value>
									</sci:arg>
									<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The component this component is based upon.</sci:help>
										<sci:value>Evaluate Expression</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>{F70D3185-8B78-4211-AF3E-D5427C306F87}</sci:value>
									</sci:arg>
									<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>390 -995</sci:value>
									</sci:arg>
									<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
										<sci:value>100</sci:value>
										<sci:value>Prevents records exiting an internal component from being passed out of a subprotocol</sci:value>
										<sci:value>&lt;p&gt;This component is useful inside subprotocols to keep data from being passed out. It is an alternative to disabling components.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;See Also:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/comps/disable_comps.htm&apos;)&quot;&gt;Disabling Components&lt;/a&gt;&lt;/p&gt;
</sci:value>
										<sci:value>Generic</sci:value>
										<sci:value/>
										<sci:value>None</sci:value>
										<sci:value/>
										<sci:value>None</sci:value>
										<sci:value/>
									</sci:arg>
									<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The server version when this component was registered</sci:help>
										<sci:value>6.0.1.0</sci:value>
									</sci:arg>
									<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:help>Local Component Identifier</sci:help>
										<sci:value>25</sci:value>
									</sci:arg>
									<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The original path within the database of this component.</sci:help>
										<sci:value>Components\Data Access and Manipulation\Utilities\Subprotocol Utilities\Dont Pass Data</sci:value>
									</sci:arg>
								</sci:component>
							</sci:data>
							<sci:data object="SciTegic.EvaluateExpression.1">
								<sci:component name="Custom Filter (PilotScript)" version="2">
									<sci:arg name="Expression" type="ExpressionType" required="true" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
										<sci:help>The PilotScript expression used to filter the data.</sci:help>
										<sci:member>Initial Expression</sci:member>
										<sci:member>Final Expression</sci:member>
										<sci:member>Keep Calculated Properties</sci:member>
										<sci:value>@&apos;XML Output File&apos; ne &apos;&apos;</sci:value>
									</sci:arg>
									<sci:arg name="Initial Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
										<sci:help>&lt;p&gt;
An expression evaluated only when the component
is first initialized (when the first data record enters).
&lt;p/&gt;
Since there is no data available at initialization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
									</sci:arg>
									<sci:arg name="Final Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
										<sci:help>&lt;p&gt;
An expression evaluated only when the
component is finalized (once the last data
record has passed).
&lt;p/&gt;
Since there is no data available at finalization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
									</sci:arg>
									<sci:arg name="Keep Calculated Properties" type="BoolType" required="true" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
										<sci:help>Allows any properties that were calculated in
&quot;Expression&quot; to be included with the exiting
record.
Otherwise, these properties are removed after
the evaluation is complete.</sci:help>
										<sci:legalval>True</sci:legalval>
										<sci:legalval selected="true">False</sci:legalval>
									</sci:arg>
									<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
										<sci:help>Component Attributes</sci:help>
										<sci:value>ComponentReturnsPass</sci:value>
										<sci:value>ComponentReturnsFail</sci:value>
										<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
										<sci:legalval>ComponentReturnsPass</sci:legalval>
										<sci:legalval>ComponentReturnsFail</sci:legalval>
										<sci:legalval>ComponentRunsLocal</sci:legalval>
									</sci:arg>
									<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="ExpressionVersion" type="LongType" required="false" visibility="nevershow" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
										<sci:help>Version of expression parser to use.</sci:help>
										<sci:value>2</sci:value>
									</sci:arg>
									<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The user who registered this component.</sci:help>
										<sci:value>scitegic/generic</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The date this component was registered.</sci:help>
										<sci:value>Mon Jan 21 09:57:16 2008</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>Save XML Output File?</sci:value>
									</sci:arg>
									<sci:arg name="ComponentAutoDisplayName" type="ExpressionType" required="false" visibility="nevershow" multi="false">
										<sci:help>Automatically update the component display name when the &quot;Expression&quot; property is changed. This feature is turned off after the user manually changes the display name of the component in Protocol workspace.</sci:help>
										<sci:value>#displayName := trim(Parameter(&apos;Expression&apos;, 2));
if(strlength(#displayName) &gt; 0) then	
	/* Find the first line break */
	#nl := FindSubstring(#displayName, &quot;\r&quot;);
	if #nl &lt;= 0 then
		#nl := FindSubstring(#displayName, &quot;\n&quot;);
	end if;

	/* Keep the first line only */
	if (#nl &gt; 0) then
		StrErase(#displayName, #nl);
	end if;
	
	#displayName;
else
	&quot;&quot;;
end if;</sci:value>
									</sci:arg>
									<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:value>FILTERNODE</sci:value>
									</sci:arg>
									<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The component this component is based upon.</sci:help>
										<sci:value>Custom Filter (PilotScript)</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>{DD58ECD1-516F-48FE-A5DB-8328AED680F2}</sci:value>
									</sci:arg>
									<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>390 -1355</sci:value>
									</sci:arg>
									<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
										<sci:value>100</sci:value>
										<sci:value>Passes data records for which a PilotScript expression evaluates to True

</sci:value>
										<sci:value>&lt;p&gt;For each incoming data record, the PilotScript statements in &lt;i&gt;Expression&lt;/i&gt; are evaluated. If the last statement in the expression evaluates to True or non-zero, the record is sent out the Pass port. Otherwise it is sent out the Fail port.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To initialize global variables such as counters, use &lt;i&gt;Initial Expression&lt;/i&gt;.&lt;/li&gt; 
&lt;li&gt;To clean up global variables or calculate final results use &lt;i&gt;Final Expression&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Parameters on Custom Manipulators do not become global variables that can be accessed via &lt;i&gt;@ParameterName&lt;/i&gt; syntax.  They must be accessed by using the &lt;i&gt;Parameter(&apos;ParameterName&apos;)&lt;/i&gt; function or by using token substitution via &lt;i&gt;$(ParameterName)&lt;/i&gt; syntax.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
</sci:value>
										<sci:value>Generic</sci:value>
										<sci:value/>
										<sci:value>Generic</sci:value>
										<sci:value>Data records for which the final expression in the PilotScript evaluates to True or non-zero</sci:value>
										<sci:value>Generic</sci:value>
										<sci:value>Data records for which the final expression in the PilotScript evaluates to False or zero</sci:value>
									</sci:arg>
									<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:help>Local Component Identifier</sci:help>
										<sci:value>6</sci:value>
									</sci:arg>
									<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The original path within the database of this component.</sci:help>
										<sci:value>Components\Data Access and Manipulation\Property Filters\Custom Filter (PilotScript)</sci:value>
									</sci:arg>
								</sci:component>
								<sci:proplist>
									<sci:propval name="RegistrationVersion">7.0.0.35</sci:propval>
								</sci:proplist>
							</sci:data>
							<sci:data object="SciTegic.ServerAction.1">
								<sci:component name="Copy File" version="2">
									<sci:arg name="Source" type="URLType" required="true" visibility="visible" multi="false" expanded="true">
										<sci:help>The source file path, relative to the server machine. This file is unaffected by the copy operation.

Internet files (http, https and ftp protocols) are supported as sources for copying.  When copying from http and https URLs you may optionally specify Authentication Options for the connection in the appropriate group parameters.</sci:help>
										<sci:member>Source Authentication Options</sci:member>
										<sci:value>$(responseXML)</sci:value>
									</sci:arg>
									<sci:arg name="Source Authentication Options" type="GroupType" required="false" visibility="visible" multi="false" uimpl="false">
										<sci:help>For http and https sources, you may optionally specify authentication information for the URL in the following parameters</sci:help>
										<sci:member>Source Authentication Options Username</sci:member>
										<sci:member>Source Authentication Options Password</sci:member>
										<sci:member>Source Authentication Options Authentication Method</sci:member>
										<sci:enabledscript>SetDisabledDetails(&apos;To enable, specify an HTTP URL for the Source&apos;);
Parameter(&apos;Source&apos;) rlike &apos;^https?:&apos;;</sci:enabledscript>
									</sci:arg>
									<sci:arg name="Source Authentication Options Authentication Method" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
										<sci:help>Determines which method to use during authentication with an HTTP or HTTPS source.

&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Use Username and Password Parameters&lt;/b&gt;: Use the values provided by the component Source parameter group&apos;s &lt;i&gt;Username&lt;/i&gt; and &lt;i&gt;Password&lt;/i&gt; parameters.
&lt;li&gt;&lt;b&gt;Use Pipeline Pilot Credentials&lt;/b&gt;: Use the username and password that were provided when the user logged into Pipeline Pilot.  NOTE: if the &lt;i&gt;Username&lt;/i&gt; parameter is provided, its value will override the user&apos;s logged in username.
&lt;/ul&gt;</sci:help>
										<sci:legalval selected="true">Use Username and Password Parameters</sci:legalval>
										<sci:legalval>Use Pipeline Pilot Credentials</sci:legalval>
									</sci:arg>
									<sci:arg name="Source Authentication Options Username" type="UserNameType" required="false" visibility="visible" multi="false" uimpl="false">
										<sci:help>&lt;p&gt;
The username used to connect to the supplied URL Source.
&lt;/p&gt;
&lt;p&gt;
If the Authentication Method is set to &apos;Use Username and Password Parameters&apos;, then this parameter
must be filled in to log into the remote server.
&lt;/p&gt;
&lt;p&gt; 
If the Authentication Method is set to &apos;Use Pipeline Pilot Credentials&apos;, then this parameter can be left empty
and the logged in username is used. As an override option, if the username is filled in, this
username will be used along with the user&apos;s Pipeline Pilot password.
&lt;/p&gt;
</sci:help>
									</sci:arg>
									<sci:arg name="Source Authentication Options Password" type="xpass" encrypt="bf_1" required="false" visibility="visible" multi="false" uimpl="false">
										<sci:help>The password used to authenticate with the Source server.  This parameter is disabled if Authentication Method is not set to &apos;Use Username and Password Parameters&apos;.
</sci:help>
										<sci:enabledscript>SetDisabledDetails(&quot;To enable, set Authentication Method to &apos;Use Username and Password Parameters&apos;&quot;);
Parameter(&apos;Source Authentication Options Authentication Method&apos;) eq &apos;Use Username and Password Parameters&apos;;</sci:enabledscript>
									</sci:arg>
									<sci:arg name="Destination" type="LinkSingleParentParameterType" required="true" visibility="visible" multi="false" expanded="true">
										<sci:metaproplist>
											<sci:propval name="SCI_InitializeUsingRevertInfo" base64="UI1">Al1HAAJHAlRoZSBkZXN0aW5hdGlvbiBmaWxlIHBhdGggcmVsYXRpdmUgdG8gdGhlIHNlcnZlciBtYWNoaW5lLiAgVGhpcyBmaWxlIG1heSBvciBtYXkgbm90IGV4aXN0IGJlZm9yZSB0aGUgY29weSBvcGVyYXRpb24uICBJZiBpdCBkb2VzIGV4aXN0IGFscmVhZHksIHRoZSBleGlzdGluZyBmaWxlIHdpbGwgYmUgb3ZlcndyaXR0ZW4gYnkgdGhlIGNvcGllZCBmaWxlLiBJZiBpdCBkb2VzIG5vdCBleGlzdCwgdGhlbiBhbnkgbmVjZXNzYXJ5IG5ldyBpbnRlcm1lZGlhdGUgZm9sZGVycyBhcmUgYWxzbyBjcmVhdGVkLgoKV2ViRGF2IHJlcG9zaXRvcnkgZmlsZXMgc3VjaCBhcyBmb3IgTWljcm9zb2Z0IFNoYXJlcG9pbnQgc2VydmVycyAodXNpbmcgaHR0cCBhbmQgaHR0cHMgcHJvdG9jb2xzKSBhcmUgc3VwcG9ydGVkIGFzIGRlc3RpbmF0aW9ucyBmb3IgY29weWluZy4gIFdoZW4gY29weWluZyB0byBhbiBodHRwIG9yIGh0dHBzIFVSTCwgeW91IG1heSBvcHRpb25hbGx5IHNwZWNpZnkgQXV0aGVudGljYXRpb24gT3B0aW9ucyBmb3IgdGhlIGNvbm5lY3Rpb24gaW4gdGhlIEF1dGhlbnRpY2F0aW9uIE9wdGlvbnMgcGFyYW1ldGVyIGdyb3VwLgETRGVzdGluYXRpb25VUkxUeXBlAAwAAAABAQAAARxUaGlzIHBhcmFtZXRlciBpcyByZXF1aXJlZC4EAfwAAAAAAAAAAAAwRGVzdGluYXRpb24DzFPPuwQA</sci:propval>
											<sci:propval name="SCI_InitializeUsingOrigType">DestinationURLType</sci:propval>
											<sci:propval name="SCI_InitializeUsing">LinkSingleParentParameterType</sci:propval>
										</sci:metaproplist>
										<sci:help>The destination file path relative to the server machine.  This file may or may not exist before the copy operation.  If it does exist already, the existing file will be overwritten by the copied file. If it does not exist, then any necessary new intermediate folders are also created.

WebDav repository files such as for Microsoft Sharepoint servers (using http and https protocols) are supported as destinations for copying.  When copying to an http or https URL, you may optionally specify Authentication Options for the connection in the Authentication Options parameter group.</sci:help>
										<sci:member>Destination Authentication Options</sci:member>
										<sci:value>XML Output File</sci:value>
									</sci:arg>
									<sci:arg name="Destination Authentication Options" type="GroupType" required="false" visibility="visible" multi="false" uimpl="false">
										<sci:help>For http and https destinations, you may optionally specify authentication information for the URL in the following parameters</sci:help>
										<sci:member>Destination Authentication Options Username</sci:member>
										<sci:member>Destination Authentication Options Password</sci:member>
										<sci:member>Destination Authentication Options Authentication Method</sci:member>
										<sci:enabledscript>SetDisabledDetails(&apos;To enable, specify an HTTP URL for the Destination&apos;);
Parameter(&apos;Destination&apos;) rlike &apos;^https?:&apos;;</sci:enabledscript>
									</sci:arg>
									<sci:arg name="Destination Authentication Options Authentication Method" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
										<sci:help>Determines which method to use during authentication with an HTTP or HTTPS destination.

&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Use Username and Password Parameters&lt;/b&gt;: Use the values provided by the component Source parameter group&apos;s &lt;i&gt;Username&lt;/i&gt; and &lt;i&gt;Password&lt;/i&gt; parameters.
&lt;li&gt;&lt;b&gt;Use Pipeline Pilot Credentials&lt;/b&gt;: Use the username and password that were provided when the user logged into Pipeline Pilot.  NOTE: if the &lt;i&gt;Username&lt;/i&gt; parameter is provided, its value will override the user&apos;s logged in username.
&lt;/ul&gt;</sci:help>
										<sci:legalval selected="true">Use Username and Password Parameters</sci:legalval>
										<sci:legalval>Use Pipeline Pilot Credentials</sci:legalval>
									</sci:arg>
									<sci:arg name="Destination Authentication Options Username" type="UserNameType" required="false" visibility="visible" multi="false" uimpl="false">
										<sci:help>&lt;p&gt;
The username used to connect to the supplied URL Destination.
&lt;/p&gt;
&lt;p&gt;
If the Authentication Method is set to &apos;Use Username and Password Parameters&apos;, then this parameter
must be filled in to log into the remote server.
&lt;/p&gt;
&lt;p&gt; 
If the Authentication Method is set to &apos;Use Pipeline Pilot Credentials&apos;, then this parameter can be left empty
and the logged in username is used. As an override option, if the username is filled in, this
username will be used along with the user&apos;s Pipeline Pilot password.
&lt;/p&gt;
</sci:help>
									</sci:arg>
									<sci:arg name="Destination Authentication Options Password" type="xpass" encrypt="bf_1" required="false" visibility="visible" multi="false" uimpl="false">
										<sci:help>The password used to authenticate with the Destination server.  This parameter is disabled if Authentication Method is not set to &apos;Use Username and Password Parameters&apos;.
</sci:help>
										<sci:enabledscript>SetDisabledDetails(&quot;To enable, set the Destination Authentication Method to &apos;Use Username and Password Parameters&apos;&quot;);
Parameter(&apos;Destination Authentication Options Authentication Method&apos;) eq &apos;Use Username and Password Parameters&apos;;</sci:enabledscript>
									</sci:arg>
									<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
										<sci:help>Componet Attributes</sci:help>
										<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
										<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
										<sci:legalval>ComponentReturnsFail</sci:legalval>
										<sci:legalval>ComponentRunsLocal</sci:legalval>
									</sci:arg>
									<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:value>COMPONENTNODE</sci:value>
									</sci:arg>
									<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>{38A20EDC-AAAA-42EF-97BA-D1B40B74FFE0}</sci:value>
									</sci:arg>
									<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The component this component is based upon.</sci:help>
										<sci:value>Copy File</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>690 -1355</sci:value>
									</sci:arg>
									<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
										<sci:value>100</sci:value>
										<sci:value>Copies a single file and saves it to the specified location. Can be used to retrieve files from HTTP or HTTPS servers and can also be used to upload files to HTTP WebDav repositories such as Sharepoint and other document repositories.</sci:value>
										<sci:value>&lt;p&gt;A copy of &lt;i&gt;Source&lt;/i&gt; is created and saved to &lt;i&gt;Destination&lt;/i&gt;. The original file is left in place.&lt;/p&gt;To copy multiple files, invoke the component once per file to be copied.&lt;/p&gt;

&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;All file locations are relative to the server.&lt;/li&gt;
&lt;li&gt;You can copy to FTP, HTTP and HTTPS servers using this component and to WebDav document repositories such as Sharepoint or Apache WebDav.&lt;/li&gt;
&lt;li&gt;For HTTP and HTTPS servers, you can specify authentication options to control username and password information for the connection.&lt;/li&gt;
&lt;/ul&gt;

&lt;b&gt;See Also:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To copy a file from the client to the server, use &lt;a href=&quot;javascript:DoLink(&apos;{BBBC3189-A239-45BD-98A7-6FD3982D8282}&apos;)&quot;&gt;Copy to Server&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To copy a file from the server to the client, use &lt;a href=&quot;javascript:DoLink(&apos;{DC38B2F0-B8B1-4114-92F0-5EE15A9E969C}&apos;)&quot;&gt;Copy To Client&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To move a file, use &lt;a href=&quot;javascript:DoLink(&apos;{40A2ACDC-AABB-42EF-970A-D1340B748FE0}&apos;)&quot;&gt;Move File&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
 
</sci:value>
										<sci:value>None</sci:value>
										<sci:value/>
										<sci:value>None</sci:value>
										<sci:value/>
										<sci:value>None</sci:value>
										<sci:value/>
									</sci:arg>
									<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The server version when this component was registered</sci:help>
										<sci:value>5.0.0.103</sci:value>
									</sci:arg>
									<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:help>Local Component Identifier</sci:help>
										<sci:value>5</sci:value>
									</sci:arg>
									<sci:arg name="Argument2" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:help>The destination file, relative to the server</sci:help>
										<sci:value>$(Destination)</sci:value>
									</sci:arg>
									<sci:arg name="Argument1" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:help>The source file, relative to the server</sci:help>
										<sci:value>$(Source)</sci:value>
									</sci:arg>
									<sci:arg name="Action" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>Parameter Help</sci:help>
										<sci:value>CopyFile</sci:value>
									</sci:arg>
									<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The user who registered this component.</sci:help>
										<sci:value>scitegic/generic</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The date this component was registered.</sci:help>
										<sci:value>Tue Feb 23 10:56:01 2010</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>Copy File</sci:value>
									</sci:arg>
									<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The original path within the database of this component.</sci:help>
										<sci:value>Components\Data Access and Manipulation\Utilities\File Utilities\Copy File</sci:value>
									</sci:arg>
								</sci:component>
							</sci:data>
							<sci:data object="SciTegic.DataCacheIO.1">
								<sci:component name="Cache Reader" version="2">
									<sci:arg name="CacheID" type="LinkGlobalPropertyType" required="true" visibility="visible" multi="false" legalvalsenforced="false">
										<sci:metaproplist>
											<sci:propval name="SCI_InitializeUsingRevertInfo" base64="UI1">Al1HAAJIAVRoZSBuYW1lIG9mIHRoZSBjYWNoZSB0byByZWFkLCB3aGljaCBzaG91bGQgcmVmZXIgdG8gYSBjYWNoZSBhbHJlYWR5IHdyaXR0ZW4gaW4gdGhlIHByb3RvY29sIGNvbnRhaW5pbmcgdGhpcyBjb21wb25lbnQuICBVc2UgdGhlIDxhIGhyZWY9ImphdmFzY3JpcHQ6RG9MaW5rKCd7QjkxRUU1MjEtQzAyOC00NkJFLTg5QTQtNTFDREU5ODc3NTg5fScpIj5DcmVhdGUgVGVtcG9yYXJ5IENhY2hlSURzPC9hPiBjb21wb25lbnQgdG8gcHJvdmlkZSBhbiBJRCBmb3IgdGVtcG9yYXJ5IGNhY2hlcywgdGhlbiByZWZlciB0byB0aGUgdGVtcG9yYXJ5IElEIHdpdGggJChnbG9iYWxuYW1lKSxTdHJpbmdUeXBlAAwAAAABAQABAAQA/AAAAAAAAAAAACBDYWNoZUlEA8xTz7skc2VxQ2FjaGUA</sci:propval>
											<sci:propval name="SCI_InitializeUsingOrigType">StringType</sci:propval>
											<sci:propval name="SCI_EvalOnInit" boolVal="true"/>
											<sci:propval name="SCI_EvalOnInitType">StringType</sci:propval>
										</sci:metaproplist>
										<sci:help>The name of the cache to read, which should refer to a cache already written in the protocol containing this component.  Use the &lt;a href=&quot;javascript:DoLink(&apos;{B91EE521-C028-46BE-89A4-51CDE9877589}&apos;)&quot;&gt;Create Temporary CacheIDs&lt;/a&gt; component to provide an ID for temporary caches, then refer to the temporary ID with $(globalname)</sci:help>
										<sci:member>RangeMinimum</sci:member>
										<sci:member>RangeMaximum</sci:member>
										<sci:member>Scope</sci:member>
										<sci:member>JobId</sci:member>
										<sci:value>SeqCache</sci:value>
									</sci:arg>
									<sci:arg name="RangeMinimum" type="LongType" required="false" visibility="visible" multi="false">
										<sci:help>The lower limit of data records to read from the cache. Numbering starts at 1.  A blank value or a value less than 1 means start reading at the first cached record.
               </sci:help>
										<sci:value>1</sci:value>
									</sci:arg>
									<sci:arg name="RangeMaximum" type="LongType" required="false" visibility="visible" multi="false">
										<sci:help>The upper limit of data records to read from the cache. Numbering starts at 1.  A blank value or a value less than 1 means read to the end of the set of cached records.
               </sci:help>
									</sci:arg>
									<sci:arg name="Scope" type="StringType" required="true" visibility="visible" multi="false">
										<sci:help>The scope of the cache determines the length of time the cache exists and 
the visibility of the cache to other jobs and users. Each scope has its own namespace, so you have to 
specify both the &lt;i&gt;CacheID&lt;/i&gt; and the &lt;i&gt;Scope&lt;/i&gt; to the same values as were used in the &lt;/i&gt;Cache Writer&lt;/i&gt;.
			</sci:help>
										<sci:legalval selected="true">Job Only</sci:legalval>
										<sci:legalval>User Only</sci:legalval>
										<sci:legalval>All Users</sci:legalval>
									</sci:arg>
									<sci:arg name="DeleteWhenFinished" type="BoolType" required="true" visibility="visible" multi="false">
										<sci:help>If True, then delete the cache when finished reading</sci:help>
										<sci:legalval>True</sci:legalval>
										<sci:legalval selected="true">False</sci:legalval>
									</sci:arg>
									<sci:arg name="Additional Options" type="GroupType" required="false" visibility="visible" multi="false" uimpl="false">
										<sci:help>Additional parameters to control the component behavior.</sci:help>
										<sci:member>Read Globals</sci:member>
									</sci:arg>
									<sci:arg name="Read Globals" type="BoolType" required="false" visibility="visible" multi="false" uimpl="false">
										<sci:help>&lt;p&gt;Defines if the component should read globals from the cache.&lt;/p&gt;
&lt;p&gt;Any globals read from the cache will overwrite the existing globals.&lt;/p&gt;</sci:help>
										<sci:legalval selected="true">True</sci:legalval>
										<sci:legalval>False</sci:legalval>
									</sci:arg>
									<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
										<sci:help>Component Attributes</sci:help>
										<sci:value>ComponentReturnsPass</sci:value>
										<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
										<sci:legalval>ComponentReturnsPass</sci:legalval>
										<sci:legalval>ComponentReturnsFail</sci:legalval>
										<sci:legalval>ComponentRunsLocal</sci:legalval>
									</sci:arg>
									<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="JobId" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>If the scope is set to &lt;I&gt;Job Only&lt;/I&gt;, then this is the job that owns the cache, if it is different from this job. The job must have been run by the same user as this job. If not specified, then the current job is assumed to contain the cache.
               </sci:help>
										<sci:enabledscript>parameter(&apos;Scope&apos;) eq &apos;Job Only&apos;</sci:enabledscript>
									</sci:arg>
									<sci:arg name="CacheCategory" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The cache type, that determines its folder location within the job.
               </sci:help>
									</sci:arg>
									<sci:arg name="Mode" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:help>Specifies the action of this component:

 - Writer: The component writes data records to a new cache.
 - Reader: The component reads data records from a pre-existing, completed cache.
 - Writer/Reader: The component writes data out to a cache and then reads it in again to generate new records.
               </sci:help>
										<sci:legalval>Writer</sci:legalval>
										<sci:legalval selected="true">Reader</sci:legalval>
										<sci:legalval>Writer/Reader</sci:legalval>
									</sci:arg>
									<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The user who registered this component.</sci:help>
										<sci:value>scitegic/generic</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The date this component was registered.</sci:help>
										<sci:value>Fri Jun 25 19:09:54 2010</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>Cache Reader</sci:value>
									</sci:arg>
									<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>990 -1535</sci:value>
									</sci:arg>
									<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:value>DATABASENODE</sci:value>
									</sci:arg>
									<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>{704E3781-33EA-42BB-9099-05B44C3D08E6}</sci:value>
									</sci:arg>
									<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The component this component is based upon.</sci:help>
										<sci:value>Cache Reader</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
										<sci:value>100</sci:value>
										<sci:value>Reads data records from a named cache</sci:value>
										<sci:value>&lt;p&gt;A data cache is a place where you can temporarily store data records without losing information.  This component is used to read data from a named cache created by the &lt;a href=&quot;javascript:DoLink(&apos;{674E3781-33EA-42BB-9099-49CB4C3D08E6}&apos;)&quot;&gt;Cache Writer&lt;/a&gt; component.&lt;/p&gt;

&lt;p&gt;Use &lt;i&gt;CacheID&lt;/i&gt; to specify the name of the cache to read.&lt;/p&gt;

&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;This component is typically used as a mechanism for retrieving temporary data stored within a protocol.&lt;/li&gt;
&lt;li&gt;To access a cache created in a different protocol, use &lt;i&gt;Scope&lt;/i&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;b&gt;See Also:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To join data from a cache to streaming data records use &lt;a href=&quot;javascript:DoLink(&apos;{BDEEEC41-E62B-4FDE-B0D0-8B9C96CA2497}&apos;)&quot;&gt;Join Data from Cache&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To list available caches use &lt;a href=&quot;javascript:DoLink(&apos;{704E3781-33EA-42BB-7077-05B44C3D08E6}&apos;)&quot;&gt;List Caches&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To delete a cache use &lt;a href=&quot;javascript:DoLink(&apos;{704E3781-33EA-42BB-9088-05B44C3D08E6}&apos;)&quot;&gt;Delete Cache&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To create a temporary cacheID use &lt;a href=&quot;javascript:DoLink(&apos;{B91EE521-C028-46BE-89A4-51CDE9877589}&apos;)&quot;&gt;Create Temporary CacheIDs&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;</sci:value>
										<sci:value>None</sci:value>
										<sci:value/>
										<sci:value>Generic</sci:value>
										<sci:value/>
										<sci:value>None</sci:value>
										<sci:value/>
									</sci:arg>
									<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The server version when this component was registered</sci:help>
										<sci:value>7.5.1.5</sci:value>
									</sci:arg>
									<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:help>Local Component Identifier</sci:help>
										<sci:value>9</sci:value>
									</sci:arg>
									<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The original path within the database of this component.</sci:help>
										<sci:value>Components\Data Access and Manipulation\File Readers\Cache Reader</sci:value>
									</sci:arg>
								</sci:component>
							</sci:data>
							<sci:data object="SciTegic.Protocol.1">
								<sci:component name="Join Data from Similarity Search Results File" version="2">
									<sci:arg name="Source" type="LinkGlobalPropertyType" required="true" visibility="visible" multi="false" expanded="true" legalvalsenforced="false">
										<sci:metaproplist>
											<sci:propval name="SCI_InitializeUsingRevertInfo" base64="UI1">Al1HAAEeRmlsZSBjb250YWluaW5nIEJMQVNUIHJlc3VsdHMgVVJMVHlwZQAMAAAAAQEAAQQEAfwAAAAAAAAAAAAcU291cmNlA8xTz7sBE3VzZXJkYXRhOi8zc2VxLnhtbAA=</sci:propval>
											<sci:propval name="SCI_InitializeUsingOrigType">URLType</sci:propval>
											<sci:propval name="SCI_EvalOnInit" boolVal="true"/>
											<sci:propval name="SCI_EvalOnInitType">URLType</sci:propval>
										</sci:metaproplist>
										<sci:help>File containing BLAST results</sci:help>
										<sci:member>File Format</sci:member>
										<sci:value>responseXML</sci:value>
									</sci:arg>
									<sci:arg name="File Format" type="StringType" required="true" visibility="visible" multi="false">
										<sci:help>The file format of the similarity search results file</sci:help>
										<sci:legalval>blast</sci:legalval>
										<sci:legalval selected="true">blastxml</sci:legalval>
										<sci:legalval>fasta</sci:legalval>
										<sci:legalval>gcg</sci:legalval>
										<sci:legalval>hmmer</sci:legalval>
									</sci:arg>
									<sci:arg name="Maximum HSPs Per Hit" type="LinkGlobalPropertyType" required="false" visibility="visible" multi="false" legalvalsenforced="false">
										<sci:metaproplist>
											<sci:propval name="SCI_InitializeUsingRevertInfo" base64="UI1">Al1HAAFCVHJ1bmNhdGUgdGhlIG51bWJlciBvZiBIU1BzIChoaWdoIHNjb3JpbmcgcGFpcnMpIHBlciBkYXRhYmFzZSBoaXQkTG9uZ1R5cGUACAAAAAEBAAEABAD8AAAAAAAAAAAAARVNYXhpbXVtIEhTUHMgUGVyIEhpdAPMU8+7EDEwMAA=</sci:propval>
											<sci:propval name="SCI_InitializeUsingOrigType">LongType</sci:propval>
											<sci:propval name="SCI_EvalOnInit" boolVal="true"/>
											<sci:propval name="SCI_EvalOnInitType">LongType</sci:propval>
										</sci:metaproplist>
										<sci:help>Truncate the number of HSPs (high scoring pairs) per database hit</sci:help>
										<sci:value>Maximum HSPs Per Hit</sci:value>
									</sci:arg>
									<sci:arg name="Additional Options" type="GroupType" required="false" visibility="visible" multi="false" expanded="true">
										<sci:member>Result Text Property</sci:member>
										<sci:member>Use BioPerl BLAST Parser</sci:member>
									</sci:arg>
									<sci:arg name="Use BioPerl BLAST Parser" type="LinkSingleParentParameterType" required="false" visibility="visible" multi="false" legalvalsenforced="false">
										<sci:metaproplist>
											<sci:propval name="SCI_InitializeUsingOrigType">BoolType</sci:propval>
										</sci:metaproplist>
										<sci:help>If True, BioPerl will be used to parse BLAST result file. If False and &lt;i&gt;File Format&lt;/i&gt; is &lt;b&gt;blastxml&lt;/b&gt;, a faster proprietary parser will be used. </sci:help>
										<sci:value>Use BioPerl BLAST Parser</sci:value>
									</sci:arg>
									<sci:arg name="Result Text Property" type="StringType" required="false" visibility="visible" multi="false" expanded="true">
										<sci:help>Name of property to hold raw result text.  Property will be added to the SearchResult node.</sci:help>
										<sci:enabledscript>SetDisabledDetails(
	       &apos;To enable &apos;.ParameterName().&apos;, set Use BioPerl BLAST Parser to &quot;True&quot;&apos;);
Parameter(&apos;Use BioPerl BLAST Parser&apos;);</sci:enabledscript>
									</sci:arg>
									<sci:arg name="Tempfiles" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
										<sci:help>&lt;/p&gt;A comma delimited list of global properties, each of which will automatically hold the name of a file in the job&apos;s temporary folder, whose name is guaranteed to be unique.&lt;p/&gt;For each global name, an additional global is created (with the suffix &lt;i&gt;_Filename&lt;/i&gt;) that hold just the leaf file name of the temporary file.&lt;p/&gt;</sci:help>
									</sci:arg>
									<sci:arg name="DeclareLocal" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
										<sci:help>&lt;p&gt;Lists a set of properties (without the @) to create on the global property list for this subprotocol. Such properties can only be accessed within the scope of this subprotocol and its descendent subprotocols.&lt;p/&gt;Any global property not declared in this way is created on the top level global property list and is accessible from all protocols, but may collide with another property of the same name.&lt;p/&gt;Scoping global properties to the subprotocol where they are used is highly recommended.&lt;/p&gt;</sci:help>
									</sci:arg>
									<sci:arg name="RunToCompletion" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
										<sci:help>When RunToCompletion is set to True, the subprotocol is re-initialized and executed in its entirety for each record it processes.</sci:help>
										<sci:legalval>True</sci:legalval>
										<sci:legalval selected="true">False</sci:legalval>
									</sci:arg>
									<sci:arg name="Parallel Processing Options" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
										<sci:help>&lt;p&gt;
When set to True, this set of options allow the subprotocol to execute in parallel on one or more independent Pipeline Pilot servers, running local or remote.  Additional parameters control the number of data records to send in each process batch, the list of Pipeline Pilot servers to use, the number of protocol processes that can be executed on each server, and whether to preserve the order of the processed data records.
&lt;/p&gt;&lt;p&gt;
Use this option judiciously, since it will not increase throughput in all circumstances. In general, it will yield improved performance when the parallelization benefits outweigh the data transfer overhead for the specified batch size.  As a rough guide, performance can be improved when each individual batch requires at least 10 seconds to execute, although this can be affected by the size of each data record.
&lt;/p&gt;&lt;p&gt;
When running the protocol with debugging, the subprotocol will provide debugging messages to detail each of the various steps of execution.  Also, components located within the parallel subprotocol will display their debugging messages as well.
&lt;/p&gt;&lt;p&gt;
For more information on the parallel subprotocol options, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/subprots/subprot_parallel_processing.htm&apos;)&quot;&gt;Parallel Processing Subprotocols&lt;/a&gt;.
&lt;/p&gt;
</sci:help>
										<sci:member>Parallel Processing Options Batch Size</sci:member>
										<sci:member>Parallel Processing Options Server</sci:member>
										<sci:member>Parallel Processing Options Preserve Order</sci:member>
										<sci:legalval>True</sci:legalval>
										<sci:legalval selected="true">False</sci:legalval>
									</sci:arg>
									<sci:arg name="Parallel Processing Options Batch Size" type="LongType" required="true" visibility="visible" multi="false" uimpl="true">
										<sci:help>The number of records to send to the remote server(s) for each subprotocol execution.  In general, performance is optimized when the amount of time required to process each batch is at least 10 seconds (note that this can vary depending on the characteristics of the remote server&apos;s hardware).  Use a batch size of -1 to pass all data in a single batch.</sci:help>
										<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
										<sci:value>25</sci:value>
									</sci:arg>
									<sci:arg name="Parallel Processing Options Server" type="StringType" required="false" visibility="visible" multi="true" expanded="true" legalvalsenforced="false" uimpl="true">
										<sci:help>&lt;p&gt;
Comma separated list of Pipeline Pilot servers on which to execute the parallel subprotocol.  The server names should be in the same format as the Pipeline Pilot Client&apos;s change server dialog (server-name:port-number).
&lt;/p&gt;&lt;p&gt;
Specifying &lt;b&gt;localhost&lt;/b&gt; as a server will cause the subprotocol to use its own Pipeline Pilot server.  This can be helpful on multi-CPU/multi-core systems (where the subprotocol jobs are spawned on the same machine) and Pipeline Pilot Linux clusters (where &apos;localhost&apos; requests spawning the subprotocol jobs on the same cluster).
&lt;/p&gt;</sci:help>
										<sci:member>Parallel Processing Options Server Processes</sci:member>
										<sci:member>Parallel Processing Options Server Run On Grid</sci:member>
										<sci:validscript>SetInvalidDetails(&apos;This parameter is required.&apos;);
Parameter() ne &apos;&apos;;</sci:validscript>
										<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
									</sci:arg>
									<sci:arg name="Parallel Processing Options Server Processes" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
										<sci:help>Comma separated list of maximum number of batches that can be simultaneously executed on each remote server.  The number of entries in this parameter must equal the number of servers. If &apos;*&apos; is specified as the number of processes, then that server will only launch as many batches as the administrator of the remote server has permitted.</sci:help>
										<sci:validscript>/* Server Processes must have the same number of comma separated entries as the Server parameter and must have a value*/
#processes := parameter();
expand(&apos;,&apos;, #processes);
#servers := parameter(&apos;Parallel Processing Options Server&apos;);
expand(&apos;,&apos;, #servers);

if (numvalues(#processes) == 0) then
	SetInvalidDetails(&apos;This parameter is required.&apos;);
else
	SetInvalidDetails(&apos;The number of server processes (&apos; . numvalues(#processes) . &apos;) must equal the number of servers (&apos; . numvalues(#servers) . &apos;).&apos;);
end if;
numvalues(#processes) &gt; 0 and numvalues(#processes) == numvalues(#servers);</sci:validscript>
										<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
									</sci:arg>
									<sci:arg name="Parallel Processing Options Server Run On Grid" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
										<sci:help>Run subprotocol on grid engine if available.</sci:help>
										<sci:member>Parallel Processing Options Server Run On Grid Queue Name</sci:member>
										<sci:enabledscript>parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
										<sci:legalval selected="true">True</sci:legalval>
										<sci:legalval>False</sci:legalval>
									</sci:arg>
									<sci:arg name="Parallel Processing Options Server Run On Grid Queue Name" type="StringType" required="false" visibility="visible" multi="false" legalvalsenforced="false" uimpl="true">
										<sci:help>Select the queue name on the grid to submit jobs to. Leave blank to use default queue name.</sci:help>
										<sci:enabledscript>parameter(&apos;Parallel Processing Options Server Run On Grid&apos;);</sci:enabledscript>
									</sci:arg>
									<sci:arg name="Parallel Processing Options Preserve Order" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
										<sci:help>Whether to preserve the order of the data as it enters and leaves the remote subprotocol.</sci:help>
										<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
										<sci:legalval selected="true">True</sci:legalval>
										<sci:legalval>False</sci:legalval>
									</sci:arg>
									<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
										<sci:help>Component Attributes</sci:help>
										<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
										<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
										<sci:legalval selected="true">ComponentReturnsFail</sci:legalval>
										<sci:legalval>ComponentRunsLocal</sci:legalval>
									</sci:arg>
									<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>Custom Error Message</sci:help>
									</sci:arg>
									<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:value>DOCUMENTNODE</sci:value>
									</sci:arg>
									<sci:arg name="ComponentRevision" type="LongType" required="true" visibility="nevershow" multi="false">
										<sci:help>Component Revision</sci:help>
										<sci:value>100</sci:value>
									</sci:arg>
									<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The component this component is based upon.</sci:help>
										<sci:value>SubProtocol</sci:value>
									</sci:arg>
									<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>{AD3A9F58-6E64-493A-ACE7-D1B759431A72}</sci:value>
									</sci:arg>
									<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>1290 -1535</sci:value>
									</sci:arg>
									<sci:arg name="ByReference" type="BoolType" required="false" visibility="nevershow" multi="false">
										<sci:help>By Ref</sci:help>
										<sci:value>1</sci:value>
									</sci:arg>
									<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
										<sci:value>100</sci:value>
										<sci:value>Adds existing BLAST or HMMER results to a sequence or HMM</sci:value>
										<sci:value>Useful for adding existing BLAST or HMMER results to a sequence or HMM in a protocol. There are parameters for the file location and file format.

&lt;strong&gt;See Also:&lt;/strong&gt; &lt;a href=&quot;javascript:DoLink(&apos;sciapps/scitegic/seqanal/docs/seqanal.pdf&apos;)&quot;&gt;Sequence Analysis User Guide&lt;/a&gt;</sci:value>
										<sci:value>Generic</sci:value>
										<sci:value/>
										<sci:value>Generic</sci:value>
										<sci:value>Records passing out of any unconnected pass ports of components inside the subprotocol</sci:value>
										<sci:value>Generic</sci:value>
										<sci:value>Records passing out of any unconnected fail ports of components inside the subprotocol</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The server version when this component was registered</sci:help>
										<sci:value>17.2.0.1247</sci:value>
									</sci:arg>
									<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="Protocol Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>Protocol Sticky Notes</sci:help>
									</sci:arg>
									<sci:arg name="ProtocolScale2" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:help>Protocol Scale</sci:help>
										<sci:value>100</sci:value>
									</sci:arg>
									<sci:arg name="Protocol Options" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>Protocol Options</sci:help>
										<sci:legalval>Make Shortcut by Default</sci:legalval>
										<sci:legalval>Owner Access Only</sci:legalval>
									</sci:arg>
									<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The user who registered this component.</sci:help>
										<sci:value>scitegic/seqanal</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The date this component was registered.</sci:help>
										<sci:value>Tue Oct  4 08:28:54 2016</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>Join Data from Similarity Search Results File</sci:value>
									</sci:arg>
									<sci:arg name="ProtocolAutoLayout" type="BoolType" required="false" visibility="nevershow" multi="false">
										<sci:help>Protocol AutoLayout</sci:help>
										<sci:value>1</sci:value>
									</sci:arg>
									<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:help>Local Component Identifier</sci:help>
										<sci:value>31</sci:value>
									</sci:arg>
									<sci:arg name="SubProtocolMadeLinkIntoCopy" type="BoolType" required="false" visibility="nevershow" multi="false">
										<sci:help>Subprotocol Made Link Into Copy</sci:help>
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="SubProtocolModified" type="BoolType" required="false" visibility="nevershow" multi="false">
										<sci:help>Subprotocol Modified</sci:help>
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The original path within the database of this component.</sci:help>
										<sci:value>Components\Biology\Sequence Analysis\Search and Similarity\Manipulators\Join Data from Similarity Search Results File</sci:value>
									</sci:arg>
								</sci:component>
								<sci:protocol/>
							</sci:data>
							<sci:data object="SciTegic.XMLTools.1">
								<sci:component name="Apply PilotScript to Selected Nodes" version="2">
									<sci:arg name="Select" type="StringType" required="true" visibility="visible" multi="true">
										<sci:help>An XPath query or queries to determine the nodes to apply the PilotScript to. For example, &quot;//*[@ID]&quot; would select all nodes with the property &quot;ID&quot; defined; if the Expression were &quot;NewID := &apos;NewID_&apos; . ID;&quot;, then a new property NewId would be created, and consist of the old ID prepended with the string NewId_.

</sci:help>
										<sci:value>/*/*/*</sci:value>
									</sci:arg>
									<sci:arg name="Expression" type="ExpressionType" required="true" visibility="visible" multi="false" expanded="true" legalvalsenforced="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}" uimpl="false">
										<sci:help>Expression (or list of expressions separated by semi-colons) to evaluate for each selected node</sci:help>
										<sci:member>Initial Expression</sci:member>
										<sci:member>Final Expression</sci:member>
										<sci:value>remove(&apos;blastXMLOutputFile&apos;);</sci:value>
									</sci:arg>
									<sci:arg name="Initial Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}" uimpl="false">
										<sci:help>&lt;p&gt;
This expression is executed only the first time data passes into the component.
&lt;p/&gt; 
Since there is no data available at initialization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
									</sci:arg>
									<sci:arg name="Final Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}" uimpl="false">
										<sci:help>&lt;p&gt;
This expression is executed only at finalization (after the last data passes out of the component).
&lt;p/&gt; 
Since there is no data available at finalization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
									</sci:arg>
									<sci:arg name="Parser" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
										<sci:help>The name of the parser to use for the query. Depending on the choice of parser, different XPath features will be supported. Primarily, &quot;Simple XPath&quot; is fast but supports fewer features, and &quot;Full XPath&quot; is show but supports more XPath features.</sci:help>
										<sci:legalval selected="true">Simple XPath</sci:legalval>
										<sci:legalval>Full XPath</sci:legalval>
									</sci:arg>
									<sci:arg name="DataActionOnError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:help>When a General or DataType error occurs during processing:  
  LeaveData: The data is passed unalterd
  ClearData: The data is cleared before being passed (an empty data item)
  DeleteData: The data is deleted and not passed</sci:help>
										<sci:legalval selected="true">LeaveData</sci:legalval>
										<sci:legalval>ClearData</sci:legalval>
										<sci:legalval>DeleteData</sci:legalval>
									</sci:arg>
									<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
										<sci:help>Component Attributes</sci:help>
										<sci:value>ComponentReturnsPass</sci:value>
										<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
										<sci:legalval>ComponentReturnsPass</sci:legalval>
										<sci:legalval>ComponentReturnsFail</sci:legalval>
										<sci:legalval>ComponentRunsLocal</sci:legalval>
									</sci:arg>
									<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="Action" type="StringType" required="true" visibility="nevershow" multi="false" uimpl="true">
										<sci:value>Apply PilotScript</sci:value>
									</sci:arg>
									<sci:arg name="Properties Are" type="StringType" required="false" visibility="nevershow" multi="false" uimpl="true">
										<sci:help>&lt;p&gt;
Our view of the data record for use in the Select query.
&lt;/p&gt;</sci:help>
										<sci:legalval>Attributes</sci:legalval>
										<sci:legalval selected="true">Elements</sci:legalval>
									</sci:arg>
									<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:value>ComponentNode</sci:value>
									</sci:arg>
									<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The user who registered this component.</sci:help>
										<sci:value>scitegic/generic</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The date this component was registered.</sci:help>
										<sci:value>Fri Aug 17 08:38:14 2012</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>Apply PilotScript to Selected Nodes</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>{AEE34E57-CBE3-4091-AE4A-2AF22B7CF406}</sci:value>
									</sci:arg>
									<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>1590 -1535</sci:value>
									</sci:arg>
									<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
										<sci:value>100</sci:value>
										<sci:value>Selects a set of nodes in the data record and applies the PilotScript expression to its properties. 

</sci:value>
										<sci:value>Selects a set of nodes in the data record and applies a PilotScript expression to each. 

For example, &quot;//*[@ID]&quot; would select all nodes with the property &quot;ID&quot; defined; if the Expression were &quot;NewID := &apos;NewID_&apos; . ID;&quot;, then a new property NewId would be created, and consist of the old ID prepended with the string NewId_.
</sci:value>
										<sci:value>Generic</sci:value>
										<sci:value/>
										<sci:value>Generic</sci:value>
										<sci:value/>
										<sci:value>None</sci:value>
										<sci:value/>
									</sci:arg>
									<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:help>Local Component Identifier</sci:help>
										<sci:value>34</sci:value>
									</sci:arg>
									<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The original path within the database of this component.</sci:help>
										<sci:value>Components\Data Access and Manipulation\Utilities\Data Tree Manipulators\Apply PilotScript to Selected Nodes</sci:value>
									</sci:arg>
								</sci:component>
								<sci:proplist>
									<sci:propval name="RegistrationVersion">9.0.0.8</sci:propval>
								</sci:proplist>
							</sci:data>
							<sci:data object="SciTegic.EvaluateExpression.1">
								<sci:component name="Custom Manipulator (PilotScript)" version="2">
									<sci:arg name="Expression" type="ExpressionType" required="true" visibility="visible" multi="false" expanded="true" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>Expression (or list of expressions separated by semi-colons) to evaluate.</sci:help>
										<sci:member>Initial Expression</sci:member>
										<sci:member>Final Expression</sci:member>
										<sci:member>Keep Calculated Properties</sci:member>
										<sci:value>if @SeqCount==1 and @&apos;Result Text Property&apos; ne &apos;&apos; then
	Property(@&apos;Result Text Property&apos;) := @resultText;
end if;</sci:value>
									</sci:arg>
									<sci:arg name="Initial Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>&lt;p&gt;
This expression is executed only the first time data passes into the component.
&lt;p/&gt; 
Since there is no data available at initialization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
									</sci:arg>
									<sci:arg name="Final Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>&lt;p&gt;
This expression is executed only at finalization (after the last data passes out of the component).
&lt;p/&gt; 
Since there is no data available at finalization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
									</sci:arg>
									<sci:arg name="Keep Calculated Properties" type="BoolType" required="true" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>Adds any properties calculated in this component to a data record&apos;s property list.</sci:help>
										<sci:legalval selected="true">True</sci:legalval>
										<sci:legalval>False</sci:legalval>
									</sci:arg>
									<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
										<sci:help>Component Attributes</sci:help>
										<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
										<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
										<sci:legalval>ComponentReturnsFail</sci:legalval>
										<sci:legalval>ComponentRunsLocal</sci:legalval>
									</sci:arg>
									<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="Do Screen" type="BoolType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>When TRUE, controls which exit port is used for
each data record by evaluating the final expression
(or only one) listed in the &quot;Expression&quot; parameter.
   -Pass (green) port when expression true
   -Fail (red) port when expression false</sci:help>
										<sci:legalval>True</sci:legalval>
										<sci:legalval selected="true">False</sci:legalval>
									</sci:arg>
									<sci:arg name="ExpressionVersion" type="LongType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>Version of expression parser to use.</sci:help>
										<sci:value>2</sci:value>
									</sci:arg>
									<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The user who registered this component.</sci:help>
										<sci:value>scitegic/generic</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The date this component was registered.</sci:help>
										<sci:value>Mon Jan 21 09:55:43 2008</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>Add Result Text</sci:value>
									</sci:arg>
									<sci:arg name="ComponentAutoDisplayName" type="ExpressionType" required="false" visibility="nevershow" multi="false">
										<sci:help>Automatically update the component display name when the &quot;Expression&quot; property is changed. This feature is turned off after the user manually changes the display name of the component in Protocol workspace.</sci:help>
										<sci:value>#displayName := trim(Parameter(&apos;Expression&apos;, 2));
if(strlength(#displayName) &gt; 0) then	
	/* Find the first line break */
	#nl := FindSubstring(#displayName, &quot;\r&quot;);
	if #nl &lt;= 0 then
		#nl := FindSubstring(#displayName, &quot;\n&quot;);
	end if;

	/* Keep the first line only */
	if (#nl &gt; 0) then
		StrErase(#displayName, #nl);
	end if;
	
	#displayName;
else
	&quot;&quot;;
end if;</sci:value>
									</sci:arg>
									<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The component this component is based upon.</sci:help>
										<sci:value>Custom Manipulator (PilotScript)</sci:value>
									</sci:arg>
									<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:value>EXPRESSIONNODE</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>{0995D675-7EE2-432C-95DF-E91C14052B22}</sci:value>
									</sci:arg>
									<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>1890 -1535</sci:value>
									</sci:arg>
									<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
										<sci:value>100</sci:value>
										<sci:value>Applies a PilotScript expression to each data record
</sci:value>
										<sci:value>&lt;p&gt;PilotScript is the native scripting language in Pipeline Pilot.  It is based on PL/SQL and allows you to query or alter the properties on data records.  For example, the expression:

&lt;blockquote&gt;
&lt;code&gt;A := 10;&lt;/code&gt;
&lt;/blockquote&gt;
creates a property named &quot;A&quot; and sets the value to &quot;10&quot;.&lt;/p&gt;

&lt;p&gt;For each incoming data record the PilotScript statements in &lt;i&gt;Expression&lt;/i&gt; are evaluated.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To initialize global variables such as counters, use &lt;i&gt;Initial Expression&lt;/i&gt;.&lt;/li&gt; 
&lt;li&gt;To clean up global variables or calculate final results use &lt;i&gt;Final Expression&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Parameters on Custom Manipulators do not become global variables that can be accessed via &lt;i&gt;@ParameterName&lt;/i&gt; syntax.  They must be accessed by using the &lt;i&gt;Parameter(&apos;ParameterName&apos;)&lt;/i&gt; function or by using token substitution via &lt;i&gt;$(ParameterName)&lt;/i&gt; syntax.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;See Also:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For more information on PilotScript, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/pscript/pscript_overview.htm&apos;)&quot;&gt;PilotScript Overview&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To use PilotScript to filter data records use &lt;a href=&quot;javascript:DoLink(&apos;{DD58ECD1-516F-48FE-A5DB-8328AED680F2}&apos;)&quot;&gt;Custom Filter (PilotScript)&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

</sci:value>
										<sci:value>Generic</sci:value>
										<sci:value/>
										<sci:value>Generic</sci:value>
										<sci:value/>
										<sci:value>None</sci:value>
										<sci:value/>
									</sci:arg>
									<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The server version when this component was registered</sci:help>
										<sci:value>7.0.0.35</sci:value>
									</sci:arg>
									<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:help>Local Component Identifier</sci:help>
										<sci:value>7</sci:value>
									</sci:arg>
									<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The original path within the database of this component.</sci:help>
										<sci:value>Components\Data Access and Manipulation\Property Manipulators\Custom Manipulator (PilotScript)</sci:value>
									</sci:arg>
								</sci:component>
							</sci:data>
							<sci:data object="SciTegic.EvaluateExpression.1">
								<sci:component name="Custom Filter (PilotScript)" version="2">
									<sci:arg name="Expression" type="ExpressionType" required="true" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
										<sci:help>The PilotScript expression used to filter the data.</sci:help>
										<sci:member>Initial Expression</sci:member>
										<sci:member>Final Expression</sci:member>
										<sci:member>Keep Calculated Properties</sci:member>
										<sci:value>@resultFound == 1</sci:value>
									</sci:arg>
									<sci:arg name="Initial Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
										<sci:help>&lt;p&gt;
An expression evaluated only when the component
is first initialized (when the first data record enters).
&lt;p/&gt;
Since there is no data available at initialization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
									</sci:arg>
									<sci:arg name="Final Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
										<sci:help>&lt;p&gt;
An expression evaluated only when the
component is finalized (once the last data
record has passed).
&lt;p/&gt;
Since there is no data available at finalization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
									</sci:arg>
									<sci:arg name="Keep Calculated Properties" type="BoolType" required="true" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
										<sci:help>Allows any properties that were calculated in
&quot;Expression&quot; to be included with the exiting
record.
Otherwise, these properties are removed after
the evaluation is complete.</sci:help>
										<sci:legalval>True</sci:legalval>
										<sci:legalval selected="true">False</sci:legalval>
									</sci:arg>
									<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
										<sci:help>Component Attributes</sci:help>
										<sci:legalval>ComponentTakesInput</sci:legalval>
										<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
										<sci:legalval selected="true">ComponentReturnsFail</sci:legalval>
										<sci:legalval>ComponentRunsLocal</sci:legalval>
									</sci:arg>
									<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="ExpressionVersion" type="LongType" required="false" visibility="nevershow" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
										<sci:help>Version of expression parser to use.</sci:help>
										<sci:value>2</sci:value>
									</sci:arg>
									<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The user who registered this component.</sci:help>
										<sci:value>scitegic/generic</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The date this component was registered.</sci:help>
										<sci:value>Mon Jan 21 09:57:16 2008</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>Result?</sci:value>
									</sci:arg>
									<sci:arg name="ComponentAutoDisplayName" type="ExpressionType" required="false" visibility="nevershow" multi="false">
										<sci:help>Automatically update the component display name when the &quot;Expression&quot; property is changed. This feature is turned off after the user manually changes the display name of the component in Protocol workspace.</sci:help>
										<sci:value>#displayName := trim(Parameter(&apos;Expression&apos;, 2));
if(strlength(#displayName) &gt; 0) then	
	/* Find the first line break */
	#nl := FindSubstring(#displayName, &quot;\r&quot;);
	if #nl &lt;= 0 then
		#nl := FindSubstring(#displayName, &quot;\n&quot;);
	end if;

	/* Keep the first line only */
	if (#nl &gt; 0) then
		StrErase(#displayName, #nl);
	end if;
	
	#displayName;
else
	&quot;&quot;;
end if;</sci:value>
									</sci:arg>
									<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:value>FILTERNODE</sci:value>
									</sci:arg>
									<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The component this component is based upon.</sci:help>
										<sci:value>Custom Filter (PilotScript)</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>{DD58ECD1-516F-48FE-A5DB-8328AED680F2}</sci:value>
									</sci:arg>
									<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>90 -1715</sci:value>
									</sci:arg>
									<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
										<sci:value>100</sci:value>
										<sci:value>Passes data records for which a PilotScript expression evaluates to True

</sci:value>
										<sci:value>&lt;p&gt;For each incoming data record, the PilotScript statements in &lt;i&gt;Expression&lt;/i&gt; are evaluated. If the last statement in the expression evaluates to True or non-zero, the record is sent out the Pass port. Otherwise it is sent out the Fail port.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To initialize global variables such as counters, use &lt;i&gt;Initial Expression&lt;/i&gt;.&lt;/li&gt; 
&lt;li&gt;To clean up global variables or calculate final results use &lt;i&gt;Final Expression&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Parameters on Custom Manipulators do not become global variables that can be accessed via &lt;i&gt;@ParameterName&lt;/i&gt; syntax.  They must be accessed by using the &lt;i&gt;Parameter(&apos;ParameterName&apos;)&lt;/i&gt; function or by using token substitution via &lt;i&gt;$(ParameterName)&lt;/i&gt; syntax.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
</sci:value>
										<sci:value>Generic</sci:value>
										<sci:value/>
										<sci:value>Generic</sci:value>
										<sci:value>Data records for which the final expression in the PilotScript evaluates to True or non-zero</sci:value>
										<sci:value>Generic</sci:value>
										<sci:value>Data records for which the final expression in the PilotScript evaluates to False or zero</sci:value>
									</sci:arg>
									<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:help>Local Component Identifier</sci:help>
										<sci:value>8</sci:value>
									</sci:arg>
									<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The original path within the database of this component.</sci:help>
										<sci:value>Components\Data Access and Manipulation\Property Filters\Custom Filter (PilotScript)</sci:value>
									</sci:arg>
								</sci:component>
								<sci:proplist>
									<sci:propval name="RegistrationVersion">7.0.0.35</sci:propval>
								</sci:proplist>
							</sci:data>
							<sci:data object="SciTegic.DataCacheIO.1">
								<sci:component name="List Caches" version="2">
									<sci:arg name="Scope" type="StringType" required="true" visibility="visible" multi="false" expanded="true">
										<sci:help>The scope within which we wish to list all currently-existing caches.
&lt;I&gt;Job Only&lt;/I&gt; lists caches scoped to the currently running protocol.
&lt;I&gt;User Only&lt;/I&gt; lists all caches created so that all jobs by that user can see them.
&lt;I&gt;All Users&lt;/I&gt; lists all caches created by any user in the global scope. 
			</sci:help>
										<sci:legalval selected="true">Job Only</sci:legalval>
										<sci:legalval>User Only</sci:legalval>
										<sci:legalval>All Users</sci:legalval>
									</sci:arg>
									<sci:arg name="Additional Options" type="GroupType" required="false" visibility="visible" multi="false" expanded="true">
										<sci:help>Contains less commonly used parameters</sci:help>
										<sci:member>Specific CacheID</sci:member>
									</sci:arg>
									<sci:arg name="Specific CacheID" type="LinkGlobalPropertyType" required="false" visibility="visible" multi="false" expanded="true" legalvalsenforced="false">
										<sci:metaproplist>
											<sci:propval name="SCI_InitializeUsingRevertInfo" base64="UI1">Al1HAALgAElmIHNwZWNpZmllZCwgdGhlbiBvbmUgc2luZ2xlIGRhdGEgcmVjb3JkIGlzIG91dHB1dCBvbmx5IGlmIHRoYXQgZGF0YSBjYWNoZSBleGlzdHMgaW4gdGhlIHNjb3BlLCBvdGhlcndpc2Ugbm90aGluZyBpcyBvdXRwdXQuCgpJZiB0aGUgcGFyYW1ldGVyIGlzIG5vdCBzcGVjaWZpZWQsIHRoZW4gb25lIGRhdGEgcmVjb3JkIGZvciBlYWNoIGNhY2hlIGluIHRoZSBzY29wZSBpcyBvdXRwdXQuICAsU3RyaW5nVHlwZQAIAAAAAQEAAQAEAfwAAAAAAAAAAAABEVNwZWNpZmljIENhY2hlSUQDzFPPuyRzZXFDYWNoZQA=</sci:propval>
											<sci:propval name="SCI_InitializeUsingOrigType">StringType</sci:propval>
											<sci:propval name="SCI_EvalOnInit" boolVal="true"/>
											<sci:propval name="SCI_EvalOnInitType">StringType</sci:propval>
										</sci:metaproplist>
										<sci:help>If specified, then one single data record is output only if that data cache exists in the scope, otherwise nothing is output.

If the parameter is not specified, then one data record for each cache in the scope is output.  </sci:help>
										<sci:value>SeqCache</sci:value>
									</sci:arg>
									<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
										<sci:help>Component Attributes</sci:help>
										<sci:value>ComponentReturnsPass</sci:value>
										<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
										<sci:legalval>ComponentReturnsPass</sci:legalval>
										<sci:legalval>ComponentReturnsFail</sci:legalval>
										<sci:legalval>ComponentRunsLocal</sci:legalval>
									</sci:arg>
									<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>Custom Error Message</sci:help>
									</sci:arg>
									<sci:arg name="CacheCategory" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The cache type, that determines its folder location within the job.
               </sci:help>
									</sci:arg>
									<sci:arg name="Mode" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:help>Specifies the action of this component:</sci:help>
										<sci:value>List</sci:value>
									</sci:arg>
									<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The user who registered this component.</sci:help>
										<sci:value>scitegic/generic</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The date this component was registered.</sci:help>
										<sci:value>Wed Oct 07 10:46:20 2009</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>List Caches</sci:value>
									</sci:arg>
									<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>390 -1895</sci:value>
									</sci:arg>
									<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:value>DATABASENODE</sci:value>
									</sci:arg>
									<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>{704E3781-33EA-42BB-7077-05B44C3D08E6}</sci:value>
									</sci:arg>
									<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The component this component is based upon.</sci:help>
										<sci:value>List Caches</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
										<sci:value>100</sci:value>
										<sci:value>Lists all caches or determines if a specific cache ID exists in the given scope</sci:value>
										<sci:value>This component lists all caches that exist in the given scope. A record is output for each cache found.  

&lt;b&gt;Specific CacheID&lt;/b&gt;: if filled in, then one single data record is output only if that data cache exists in the scope, otherwise nothing is output.  Thus, this component can be used as a trigger for a downstream pipeline which is only executed if a particular cache exists.

The output data record contains these properties: 

&lt;dl&gt;

&lt;dt&gt;&lt;i&gt;CacheID&lt;/i&gt;
&lt;dd&gt;The name of the cache

&lt;dt&gt;&lt;i&gt;Scope&lt;/i&gt;
&lt;dd&gt;The scope where the cache resides

&lt;dt&gt;&lt;i&gt;NumRecords&lt;/i&gt;
&lt;dd&gt;The number of records in the cache

&lt;dt&gt;&lt;i&gt;NumBytes&lt;/i&gt;
&lt;dd&gt;The number of bytes in all files used to store the cache data

&lt;dt&gt;&lt;i&gt;Owner&lt;/i&gt;
&lt;dd&gt;The user who created the cache

&lt;dt&gt;&lt;i&gt;Date&lt;/i&gt;
&lt;dd&gt;The date the cache was last modified

&lt;dt&gt;&lt;i&gt;Expiration&lt;/i&gt;
&lt;dd&gt;The date beyond which the administrator is free to remove this cache if he or she chooses.  
&lt;/dl&gt;
</sci:value>
										<sci:value>None</sci:value>
										<sci:value/>
										<sci:value>Generic</sci:value>
										<sci:value/>
										<sci:value>None</sci:value>
										<sci:value/>
									</sci:arg>
									<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The server version when this component was registered</sci:help>
										<sci:value>5.0.0.13</sci:value>
									</sci:arg>
									<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:help>Local Component Identifier</sci:help>
										<sci:value>27</sci:value>
									</sci:arg>
									<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The original path within the database of this component.</sci:help>
										<sci:value>Components\Data Access and Manipulation\Utilities\Cache Utilities\List Caches</sci:value>
									</sci:arg>
								</sci:component>
							</sci:data>
							<sci:data object="SciTegic.DataCacheIO.1">
								<sci:component name="Cache Reader" version="2">
									<sci:arg name="CacheID" type="LinkGlobalPropertyType" required="true" visibility="visible" multi="false" legalvalsenforced="false">
										<sci:metaproplist>
											<sci:propval name="SCI_InitializeUsingRevertInfo" base64="UI1">Al1HAAJIAVRoZSBuYW1lIG9mIHRoZSBjYWNoZSB0byByZWFkLCB3aGljaCBzaG91bGQgcmVmZXIgdG8gYSBjYWNoZSBhbHJlYWR5IHdyaXR0ZW4gaW4gdGhlIHByb3RvY29sIGNvbnRhaW5pbmcgdGhpcyBjb21wb25lbnQuICBVc2UgdGhlIDxhIGhyZWY9ImphdmFzY3JpcHQ6RG9MaW5rKCd7QjkxRUU1MjEtQzAyOC00NkJFLTg5QTQtNTFDREU5ODc3NTg5fScpIj5DcmVhdGUgVGVtcG9yYXJ5IENhY2hlSURzPC9hPiBjb21wb25lbnQgdG8gcHJvdmlkZSBhbiBJRCBmb3IgdGVtcG9yYXJ5IGNhY2hlcywgdGhlbiByZWZlciB0byB0aGUgdGVtcG9yYXJ5IElEIHdpdGggJChnbG9iYWxuYW1lKSxTdHJpbmdUeXBlAAwAAAABAQABAAQA/AAAAAAAAAAAACBDYWNoZUlEA8xTz7skc2VxQ2FjaGUA</sci:propval>
											<sci:propval name="SCI_InitializeUsingOrigType">StringType</sci:propval>
											<sci:propval name="SCI_EvalOnInit" boolVal="true"/>
											<sci:propval name="SCI_EvalOnInitType">StringType</sci:propval>
										</sci:metaproplist>
										<sci:help>The name of the cache to read, which should refer to a cache already written in the protocol containing this component.  Use the &lt;a href=&quot;javascript:DoLink(&apos;{B91EE521-C028-46BE-89A4-51CDE9877589}&apos;)&quot;&gt;Create Temporary CacheIDs&lt;/a&gt; component to provide an ID for temporary caches, then refer to the temporary ID with $(globalname)</sci:help>
										<sci:member>RangeMinimum</sci:member>
										<sci:member>RangeMaximum</sci:member>
										<sci:member>Scope</sci:member>
										<sci:member>JobId</sci:member>
										<sci:value>SeqCache</sci:value>
									</sci:arg>
									<sci:arg name="RangeMinimum" type="LongType" required="false" visibility="visible" multi="false">
										<sci:help>The lower limit of data records to read from the cache. Numbering starts at 1.  A blank value or a value less than 1 means start reading at the first cached record.
               </sci:help>
										<sci:value>1</sci:value>
									</sci:arg>
									<sci:arg name="RangeMaximum" type="LongType" required="false" visibility="visible" multi="false">
										<sci:help>The upper limit of data records to read from the cache. Numbering starts at 1.  A blank value or a value less than 1 means read to the end of the set of cached records.
               </sci:help>
									</sci:arg>
									<sci:arg name="Scope" type="StringType" required="true" visibility="visible" multi="false">
										<sci:help>The scope of the cache determines the length of time the cache exists and 
the visibility of the cache to other jobs and users. Each scope has its own namespace, so you have to 
specify both the &lt;i&gt;CacheID&lt;/i&gt; and the &lt;i&gt;Scope&lt;/i&gt; to the same values as were used in the &lt;/i&gt;Cache Writer&lt;/i&gt;.
			</sci:help>
										<sci:legalval selected="true">Job Only</sci:legalval>
										<sci:legalval>User Only</sci:legalval>
										<sci:legalval>All Users</sci:legalval>
									</sci:arg>
									<sci:arg name="DeleteWhenFinished" type="BoolType" required="true" visibility="visible" multi="false">
										<sci:help>If True, then delete the cache when finished reading</sci:help>
										<sci:legalval>True</sci:legalval>
										<sci:legalval selected="true">False</sci:legalval>
									</sci:arg>
									<sci:arg name="Additional Options" type="GroupType" required="false" visibility="visible" multi="false" uimpl="false">
										<sci:help>Additional parameters to control the component behavior.</sci:help>
										<sci:member>Read Globals</sci:member>
									</sci:arg>
									<sci:arg name="Read Globals" type="BoolType" required="false" visibility="visible" multi="false" uimpl="false">
										<sci:help>&lt;p&gt;Defines if the component should read globals from the cache.&lt;/p&gt;
&lt;p&gt;Any globals read from the cache will overwrite the existing globals.&lt;/p&gt;</sci:help>
										<sci:legalval selected="true">True</sci:legalval>
										<sci:legalval>False</sci:legalval>
									</sci:arg>
									<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
										<sci:help>Component Attributes</sci:help>
										<sci:value>ComponentReturnsPass</sci:value>
										<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
										<sci:legalval>ComponentReturnsPass</sci:legalval>
										<sci:legalval>ComponentReturnsFail</sci:legalval>
										<sci:legalval>ComponentRunsLocal</sci:legalval>
									</sci:arg>
									<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="JobId" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>If the scope is set to &lt;I&gt;Job Only&lt;/I&gt;, then this is the job that owns the cache, if it is different from this job. The job must have been run by the same user as this job. If not specified, then the current job is assumed to contain the cache.
               </sci:help>
										<sci:enabledscript>parameter(&apos;Scope&apos;) eq &apos;Job Only&apos;</sci:enabledscript>
									</sci:arg>
									<sci:arg name="CacheCategory" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The cache type, that determines its folder location within the job.
               </sci:help>
									</sci:arg>
									<sci:arg name="Mode" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:help>Specifies the action of this component:

 - Writer: The component writes data records to a new cache.
 - Reader: The component reads data records from a pre-existing, completed cache.
 - Writer/Reader: The component writes data out to a cache and then reads it in again to generate new records.
               </sci:help>
										<sci:legalval>Writer</sci:legalval>
										<sci:legalval selected="true">Reader</sci:legalval>
										<sci:legalval>Writer/Reader</sci:legalval>
									</sci:arg>
									<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The user who registered this component.</sci:help>
										<sci:value>scitegic/generic</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The date this component was registered.</sci:help>
										<sci:value>Fri Jun 25 19:09:54 2010</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>Cache Reader</sci:value>
									</sci:arg>
									<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>690 -1895</sci:value>
									</sci:arg>
									<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:value>DATABASENODE</sci:value>
									</sci:arg>
									<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>{704E3781-33EA-42BB-9099-05B44C3D08E6}</sci:value>
									</sci:arg>
									<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The component this component is based upon.</sci:help>
										<sci:value>Cache Reader</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
										<sci:value>100</sci:value>
										<sci:value>Reads data records from a named cache</sci:value>
										<sci:value>&lt;p&gt;A data cache is a place where you can temporarily store data records without losing information.  This component is used to read data from a named cache created by the &lt;a href=&quot;javascript:DoLink(&apos;{674E3781-33EA-42BB-9099-49CB4C3D08E6}&apos;)&quot;&gt;Cache Writer&lt;/a&gt; component.&lt;/p&gt;

&lt;p&gt;Use &lt;i&gt;CacheID&lt;/i&gt; to specify the name of the cache to read.&lt;/p&gt;

&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;This component is typically used as a mechanism for retrieving temporary data stored within a protocol.&lt;/li&gt;
&lt;li&gt;To access a cache created in a different protocol, use &lt;i&gt;Scope&lt;/i&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;b&gt;See Also:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To join data from a cache to streaming data records use &lt;a href=&quot;javascript:DoLink(&apos;{BDEEEC41-E62B-4FDE-B0D0-8B9C96CA2497}&apos;)&quot;&gt;Join Data from Cache&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To list available caches use &lt;a href=&quot;javascript:DoLink(&apos;{704E3781-33EA-42BB-7077-05B44C3D08E6}&apos;)&quot;&gt;List Caches&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To delete a cache use &lt;a href=&quot;javascript:DoLink(&apos;{704E3781-33EA-42BB-9088-05B44C3D08E6}&apos;)&quot;&gt;Delete Cache&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To create a temporary cacheID use &lt;a href=&quot;javascript:DoLink(&apos;{B91EE521-C028-46BE-89A4-51CDE9877589}&apos;)&quot;&gt;Create Temporary CacheIDs&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;</sci:value>
										<sci:value>None</sci:value>
										<sci:value/>
										<sci:value>Generic</sci:value>
										<sci:value/>
										<sci:value>None</sci:value>
										<sci:value/>
									</sci:arg>
									<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The server version when this component was registered</sci:help>
										<sci:value>7.5.1.5</sci:value>
									</sci:arg>
									<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:help>Local Component Identifier</sci:help>
										<sci:value>26</sci:value>
									</sci:arg>
									<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The original path within the database of this component.</sci:help>
										<sci:value>Components\Data Access and Manipulation\File Readers\Cache Reader</sci:value>
									</sci:arg>
								</sci:component>
							</sci:data>
							<sci:data object="SciTegic.EvaluateExpression.1">
								<sci:component name="Custom Manipulator (PilotScript)" version="2">
									<sci:arg name="Expression" type="ExpressionType" required="true" visibility="visible" multi="false" expanded="true" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>Expression (or list of expressions separated by semi-colons) to evaluate.</sci:help>
										<sci:member>Initial Expression</sci:member>
										<sci:member>Final Expression</sci:member>
										<sci:member>Keep Calculated Properties</sci:member>
										<sci:value>blastError:= @BlastError;</sci:value>
									</sci:arg>
									<sci:arg name="Initial Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>&lt;p&gt;
This expression is executed only the first time data passes into the component.
&lt;p/&gt; 
Since there is no data available at initialization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
									</sci:arg>
									<sci:arg name="Final Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>&lt;p&gt;
This expression is executed only at finalization (after the last data passes out of the component).
&lt;p/&gt; 
Since there is no data available at finalization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
									</sci:arg>
									<sci:arg name="Keep Calculated Properties" type="BoolType" required="true" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>Adds any properties calculated in this component to a data record&apos;s property list.</sci:help>
										<sci:legalval selected="true">True</sci:legalval>
										<sci:legalval>False</sci:legalval>
									</sci:arg>
									<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
										<sci:help>Component Attributes</sci:help>
										<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
										<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
										<sci:legalval>ComponentReturnsFail</sci:legalval>
										<sci:legalval>ComponentRunsLocal</sci:legalval>
									</sci:arg>
									<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>Custom Error Message</sci:help>
									</sci:arg>
									<sci:arg name="Do Screen" type="BoolType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>When TRUE, controls which exit port is used for
each data record by evaluating the final expression
(or only one) listed in the &quot;Expression&quot; parameter.
   -Pass (green) port when expression true
   -Fail (red) port when expression false</sci:help>
										<sci:legalval>True</sci:legalval>
										<sci:legalval selected="true">False</sci:legalval>
									</sci:arg>
									<sci:arg name="ExpressionVersion" type="LongType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
										<sci:help>Version of expression parser to use.</sci:help>
										<sci:value>2</sci:value>
									</sci:arg>
									<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The user who registered this component.</sci:help>
										<sci:value>scitegic/generic</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The date this component was registered.</sci:help>
										<sci:value>Mon Jan 21 09:55:43 2008</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>Blast Error</sci:value>
									</sci:arg>
									<sci:arg name="ComponentAutoDisplayName" type="ExpressionType" required="false" visibility="nevershow" multi="false">
										<sci:help>Automatically update the component display name when the &quot;Expression&quot; property is changed. This feature is turned off after the user manually changes the display name of the component in Protocol workspace.</sci:help>
										<sci:value>#displayName := trim(Parameter(&apos;Expression&apos;, 2));
if(strlength(#displayName) &gt; 0) then	
	/* Find the first line break */
	#nl := FindSubstring(#displayName, &quot;\r&quot;);
	if #nl &lt;= 0 then
		#nl := FindSubstring(#displayName, &quot;\n&quot;);
	end if;

	/* Keep the first line only */
	if (#nl &gt; 0) then
		StrErase(#displayName, #nl);
	end if;
	
	#displayName;
else
	&quot;&quot;;
end if;</sci:value>
									</sci:arg>
									<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The component this component is based upon.</sci:help>
										<sci:value>Custom Manipulator (PilotScript)</sci:value>
									</sci:arg>
									<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:value>EXPRESSIONNODE</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>{0995D675-7EE2-432C-95DF-E91C14052B22}</sci:value>
									</sci:arg>
									<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>990 -1895</sci:value>
									</sci:arg>
									<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
										<sci:value>100</sci:value>
										<sci:value>Applies a PilotScript expression to each data record
</sci:value>
										<sci:value>&lt;p&gt;PilotScript is the native scripting language in Pipeline Pilot.  It is based on PL/SQL and allows you to query or alter the properties on data records.  For example, the expression:

&lt;blockquote&gt;
&lt;code&gt;A := 10;&lt;/code&gt;
&lt;/blockquote&gt;
creates a property named &quot;A&quot; and sets the value to &quot;10&quot;.&lt;/p&gt;

&lt;p&gt;For each incoming data record the PilotScript statements in &lt;i&gt;Expression&lt;/i&gt; are evaluated.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To initialize global variables such as counters, use &lt;i&gt;Initial Expression&lt;/i&gt;.&lt;/li&gt; 
&lt;li&gt;To clean up global variables or calculate final results use &lt;i&gt;Final Expression&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Parameters on Custom Manipulators do not become global variables that can be accessed via &lt;i&gt;@ParameterName&lt;/i&gt; syntax.  They must be accessed by using the &lt;i&gt;Parameter(&apos;ParameterName&apos;)&lt;/i&gt; function or by using token substitution via &lt;i&gt;$(ParameterName)&lt;/i&gt; syntax.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;See Also:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For more information on PilotScript, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/pscript/pscript_overview.htm&apos;)&quot;&gt;PilotScript Overview&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To use PilotScript to filter data records use &lt;a href=&quot;javascript:DoLink(&apos;{DD58ECD1-516F-48FE-A5DB-8328AED680F2}&apos;)&quot;&gt;Custom Filter (PilotScript)&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

</sci:value>
										<sci:value>Generic</sci:value>
										<sci:value/>
										<sci:value>Generic</sci:value>
										<sci:value/>
										<sci:value>None</sci:value>
										<sci:value/>
									</sci:arg>
									<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The server version when this component was registered</sci:help>
										<sci:value>7.0.0.35</sci:value>
									</sci:arg>
									<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:help>Local Component Identifier</sci:help>
										<sci:value>29</sci:value>
									</sci:arg>
									<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The original path within the database of this component.</sci:help>
										<sci:value>Components\Data Access and Manipulation\Property Manipulators\Custom Manipulator (PilotScript)</sci:value>
									</sci:arg>
								</sci:component>
							</sci:data>
							<sci:data object="SciTegic.PropertyFunctions.1">
								<sci:component name="Data to Fail Port" version="2">
									<sci:arg name="DataActionOnError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:help>When a General or DataType error occurs during processing:  
  LeaveData: The data is passed unalterd
  ClearData: The data is cleared before being passed (an empty data item)
  DeleteData: The data is deleted and not passed</sci:help>
										<sci:legalval selected="true">LeaveData</sci:legalval>
										<sci:legalval>ClearData</sci:legalval>
										<sci:legalval>DeleteData</sci:legalval>
									</sci:arg>
									<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
										<sci:help>Component Attributes</sci:help>
										<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
										<sci:legalval>ComponentReturnsPass</sci:legalval>
										<sci:legalval selected="true">ComponentReturnsFail</sci:legalval>
										<sci:legalval>ComponentRunsLocal</sci:legalval>
									</sci:arg>
									<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:help>When an expected data type is not found during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:help>When an recoverable error occurs during processing:  
  Halt: Terminate the execution of the network
  Fail: Continue execution of the network, passing data out the Fail(red) port
  Pass: Continue execution of the network, passing data out the Pass(green) port</sci:help>
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>CustomErrorText</sci:help>
									</sci:arg>
									<sci:arg name="Action" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:help>the action to perform</sci:help>
										<sci:value>PassDataToPort</sci:value>
									</sci:arg>
									<sci:arg name="Port" type="LongType" required="true" visibility="nevershow" multi="false">
										<sci:help>the port to pass data to</sci:help>
										<sci:value>2</sci:value>
									</sci:arg>
									<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:value>FilterNode</sci:value>
									</sci:arg>
									<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The user who registered this component.</sci:help>
										<sci:value>scitegic/generic</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The date this component was registered.</sci:help>
										<sci:value>Mon Mar 29 17:36:03 2004</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>Data to Fail Port</sci:value>
									</sci:arg>
									<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The component this component is based upon.</sci:help>
										<sci:value>Evaluate Expression</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>{A718CDEE-EE7D-4B75-9346-C3780D347090}</sci:value>
									</sci:arg>
									<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>1290 -1895</sci:value>
									</sci:arg>
									<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
										<sci:value>100</sci:value>
										<sci:value>Directs records to the Fail port for use in subprotocol building.</sci:value>
										<sci:value>Useful in a subprotocol for directing records that are passing through components in the subprotocol to the Fail port of the subprotocol.
</sci:value>
										<sci:value>Generic Data</sci:value>
										<sci:value/>
										<sci:value>None</sci:value>
										<sci:value/>
										<sci:value>Generic Data</sci:value>
										<sci:value>All data records</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The server version when this component was registered</sci:help>
										<sci:value>4.0.4.0</sci:value>
									</sci:arg>
									<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:help>Local Component Identifier</sci:help>
										<sci:value>30</sci:value>
									</sci:arg>
									<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The original path within the database of this component.</sci:help>
										<sci:value>Components\Data Access and Manipulation\Utilities\Subprotocol Utilities\Data to Fail Port</sci:value>
									</sci:arg>
								</sci:component>
							</sci:data>
							<sci:data object="SciTegic.DataCacheIO.1">
								<sci:component name="Delete Cache" version="2">
									<sci:arg name="CacheID" type="LinkGlobalPropertyType" required="true" visibility="visible" multi="false" expanded="true" legalvalsenforced="false">
										<sci:metaproplist>
											<sci:propval name="SCI_InitializeUsingRevertInfo" base64="UI1">Al1HAAKEAFRoZSBuYW1lIG9mIHRoZSBjYWNoZSB0byBkZWxldGUsIHdoaWNoIHNob3VsZCByZWZlciB0byBhIGNhY2hlIGFscmVhZHkgd3JpdHRlbi4gSWYgdGhpcyBjYWNoZSBkb2VzIG5vdCBleGlzdCwgbm90aGluZyB3aWxsIGJlIGRvbmUuLFN0cmluZ1R5cGUADAAAAAEBAAEABAH8AAAAAAAAAAAAIENhY2hlSUQDzFPPuyRzZXFDYWNoZQA=</sci:propval>
											<sci:propval name="SCI_InitializeUsingOrigType">StringType</sci:propval>
											<sci:propval name="SCI_EvalOnInit" boolVal="true"/>
											<sci:propval name="SCI_EvalOnInitType">StringType</sci:propval>
										</sci:metaproplist>
										<sci:help>The name of the cache to delete, which should refer to a cache already written. If this cache does not exist, nothing will be done.</sci:help>
										<sci:member>Scope</sci:member>
										<sci:value>SeqCache</sci:value>
									</sci:arg>
									<sci:arg name="Scope" type="StringType" required="true" visibility="visible" multi="false">
										<sci:help>The scope of the cache determines the length of time the cache exists and 
the visibility of the cache to other jobs and users. Each scope has its own namespace, so you have to 
specify both the &lt;i&gt;CacheID&lt;/i&gt; and the &lt;i&gt;Scope&lt;/i&gt; to the same values as were used in 
the &lt;/i&gt;Cache Writer&lt;/i&gt; to test for the existance of a particular cache.
			</sci:help>
										<sci:legalval selected="true">Job Only</sci:legalval>
										<sci:legalval>User Only</sci:legalval>
										<sci:legalval>All Users</sci:legalval>
									</sci:arg>
									<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
										<sci:help>Component Attributes</sci:help>
										<sci:legalval>ComponentTakesInput</sci:legalval>
										<sci:legalval>ComponentReturnsPass</sci:legalval>
										<sci:legalval>ComponentReturnsFail</sci:legalval>
										<sci:legalval>ComponentRunsLocal</sci:legalval>
									</sci:arg>
									<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="JobId" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>If the scope is set to &lt;I&gt;Job Only&lt;/I&gt;, then this is the job that owns the cache, if it is different from this job. The job must have been run by the same user as this job. If not specified, then the current job is assumed to contain the cache.
               </sci:help>
									</sci:arg>
									<sci:arg name="CacheCategory" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The cache type, that determines its folder location within the job.
               </sci:help>
									</sci:arg>
									<sci:arg name="Mode" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:help>Specifies the action of this component:</sci:help>
										<sci:value>Delete</sci:value>
									</sci:arg>
									<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The user who registered this component.</sci:help>
										<sci:value>scitegic/generic</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The date this component was registered.</sci:help>
										<sci:value>Tue Apr 26 16:51:08 2005</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>Delete Cache</sci:value>
									</sci:arg>
									<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>90 -2255</sci:value>
									</sci:arg>
									<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:value>DATABASENODE</sci:value>
									</sci:arg>
									<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>{704E3781-33EA-42BB-9088-05B44C3D08E6}</sci:value>
									</sci:arg>
									<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The component this component is based upon.</sci:help>
										<sci:value>Delete Cache</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
										<sci:value>100</sci:value>
										<sci:value>Deletes a particular cache</sci:value>
										<sci:value>This component deletes a cache.  To fully specify a cache, you need the values of &lt;I&gt;CacheID&lt;/I&gt; and &lt;I&gt;Scope&lt;/I&gt; that were used when it was created using the &lt;I&gt;Cache Writer&lt;/I&gt;.

&lt;P&gt;If the cache does not exist, this component does nothing.  If it does exist, then the cache is deleted.&lt;/P&gt;
</sci:value>
										<sci:value>None</sci:value>
										<sci:value/>
										<sci:value>None</sci:value>
										<sci:value/>
										<sci:value>None</sci:value>
										<sci:value/>
									</sci:arg>
									<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The server version when this component was registered</sci:help>
										<sci:value>5.0.0.13</sci:value>
									</sci:arg>
									<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:help>Local Component Identifier</sci:help>
										<sci:value>14</sci:value>
									</sci:arg>
									<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The original path within the database of this component.</sci:help>
										<sci:value>Components\Data Access and Manipulation\Utilities\Cache Utilities\Delete Cache</sci:value>
									</sci:arg>
								</sci:component>
							</sci:data>
							<sci:data object="SciTegic.ServerAction.1">
								<sci:component name="Delete File" version="2">
									<sci:arg name="Filename" type="URLType" required="true" visibility="visible" multi="false" expanded="true" legalvalsenforced="false">
										<sci:help>The path of the file or folder to be deleted. Can be a path on the server or a network resource.
&lt;p&gt;
&lt;ul&gt;
&lt;li&gt;For a file on or accessible to the server (e.g., via NFS), enter a path.&lt;/li&gt;
&lt;li&gt;For a network resource, enter a network URL in the form &lt;b&gt;protocol://server:port/...&lt;/b&gt;. (If port is omitted, a default is used.) Protocols supported are:
	&lt;ul&gt;
	&lt;li&gt;http&lt;/li&gt;
	&lt;li&gt;https&lt;/li&gt;
	&lt;li&gt;hdfs (Hadoop Distributed File System)&lt;/li&gt;
	&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</sci:help>
										<sci:member>Filename Authentication Options</sci:member>
										<sci:member>Recursive</sci:member>
										<sci:value>$(responseXML)</sci:value>
									</sci:arg>
									<sci:arg name="Filename Authentication Options" type="GroupType" required="false" visibility="visible" multi="false" uimpl="false">
										<sci:help>For http and https sources, you may optionally specify authentication information for the URL in the following parameters</sci:help>
										<sci:member>Filename Authentication Options Username</sci:member>
										<sci:member>Filename Authentication Options Password</sci:member>
										<sci:member>Filename Authentication Options Authentication Method</sci:member>
										<sci:member>Filename Authentication Options Additional Security Info</sci:member>
										<sci:enabledscript>SetDisabledDetails(&apos;To enable, specify an HTTP URL for the Filename&apos;);
Parameter(&apos;Filename&apos;) rlike &apos;^https?:&apos;;</sci:enabledscript>
									</sci:arg>
									<sci:arg name="Filename Authentication Options Authentication Method" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
										<sci:help>Determines which method to use during authentication with an HTTP or HTTPS filename.

&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Use Username and Password Parameters&lt;/b&gt;: Use the values provided by the component Filename parameter group&apos;s &lt;i&gt;Username&lt;/i&gt; and &lt;i&gt;Password&lt;/i&gt; parameters.
&lt;li&gt;&lt;b&gt;Use Pipeline Pilot Credentials&lt;/b&gt;: Use the username and password that were provided when the user logged into Pipeline Pilot.  NOTE: if the &lt;i&gt;Username&lt;/i&gt; parameter is provided, its value will override the user&apos;s logged in username.
&lt;/ul&gt;</sci:help>
										<sci:legalval selected="true">Use Username and Password Parameters</sci:legalval>
										<sci:legalval>Use Pipeline Pilot Credentials</sci:legalval>
									</sci:arg>
									<sci:arg name="Filename Authentication Options Username" type="UserNameType" required="false" visibility="visible" multi="false" uimpl="false">
										<sci:help>&lt;p&gt;
The username used to connect to the supplied URL Filename.
&lt;/p&gt;
&lt;p&gt;
If the Authentication Method is set to &apos;Use Username and Password Parameters&apos;, then this parameter
must be filled in to log into the remote server.
&lt;/p&gt;
&lt;p&gt; 
If the Authentication Method is set to &apos;Use Pipeline Pilot Credentials&apos;, then this parameter can be left empty
and the logged in username is used. As an override option, if the username is filled in, this
username will be used along with the user&apos;s Pipeline Pilot password.
&lt;/p&gt;
</sci:help>
									</sci:arg>
									<sci:arg name="Filename Authentication Options Password" type="xpass" encrypt="bf_1" required="false" visibility="visible" multi="false" uimpl="false">
										<sci:help>The password used to authenticate with the Filename server.  This parameter is disabled if Authentication Method is not set to &apos;Use Username and Password Parameters&apos;.
</sci:help>
										<sci:enabledscript>SetDisabledDetails(&quot;To enable, set Authentication Method to &apos;Use Username and Password Parameters&apos;&quot;);
Parameter(&apos;Filename Authentication Options Authentication Method&apos;) eq &apos;Use Username and Password Parameters&apos;;</sci:enabledscript>
									</sci:arg>
									<sci:arg name="Filename Authentication Options Additional Security Info" type="StringType" required="false" visibility="hidden" multi="true" expanded="true" uimpl="false">
										<sci:help>&lt;p&gt;This is an array of additional security information.  Primarily used by HDFS. &lt;/p&gt;
&lt;p&gt;When connecting to secured HDFS the Kerberos KDC Server and realm must be specified. &lt;/p&gt;
&lt;b&gt;For example&lt;/b&gt;
&lt;p&gt;KDC Server=&amp;lt;Server Name&amp;gt;&lt;/p&gt;
&lt;p&gt;KDC Realm=&amp;lt;Realm Name&amp;gt;&lt;/p&gt;
			</sci:help>
									</sci:arg>
									<sci:arg name="Recursive" type="BoolType" required="false" visibility="visible" multi="false">
										<sci:help>If the path provided for is a folder then if the value for recursive is true, then the sub-folders will also be deleted.  If now value is not provided then it is assumed to be false.  The value is ignored when the path provided is for a file.</sci:help>
										<sci:legalval>True</sci:legalval>
										<sci:legalval selected="true">False</sci:legalval>
									</sci:arg>
									<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
										<sci:help>Componet Attributes</sci:help>
										<sci:legalval>ComponentTakesInput</sci:legalval>
										<sci:legalval>ComponentReturnsPass</sci:legalval>
										<sci:legalval>ComponentReturnsFail</sci:legalval>
										<sci:legalval>ComponentRunsLocal</sci:legalval>
									</sci:arg>
									<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
										<sci:legalval selected="true">Halt</sci:legalval>
										<sci:legalval>Fail</sci:legalval>
										<sci:legalval>Pass</sci:legalval>
									</sci:arg>
									<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="Action" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>Parameter Help</sci:help>
										<sci:value>DeleteFile</sci:value>
									</sci:arg>
									<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The user who registered this component.</sci:help>
										<sci:value>scitegic/generic</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The date this component was registered.</sci:help>
										<sci:value>Thu Sep 29 11:14:09 2016</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>Delete File</sci:value>
									</sci:arg>
									<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
										<sci:value>ComponentNode</sci:value>
									</sci:arg>
									<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>{38A20EDC-8D3C-42EF-97BA-D1B40B74FFE0}</sci:value>
									</sci:arg>
									<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The component this component is based upon.</sci:help>
										<sci:value>Delete File</sci:value>
									</sci:arg>
									<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:value>0</sci:value>
									</sci:arg>
									<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>390 -2285</sci:value>
									</sci:arg>
									<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
										<sci:value>100</sci:value>
										<sci:value>Deletes the specified file or folder from the Pipeline Pilot server, from a WebDav repository such as Sharepoint, for from Hadoop HDFS</sci:value>
										<sci:value>&lt;p&gt;The file or folder specified by &lt;i&gt;Filename&lt;/i&gt; is deleted.&lt;/p&gt;

&lt;b&gt;Note:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;The file or folder location is relative to the server.&lt;/li&gt;
&lt;li&gt;An HTTP or HTTPS filename can be used to delete files from a WebDav file repository such as Sharepoint&lt;/li&gt;
&lt;li&gt;If an HTTP or HTTPS URL is used for the filename, authentication options can be filled in to provide username and password credentials to the remote server.
&lt;/ul&gt;</sci:value>
										<sci:value>None</sci:value>
										<sci:value/>
										<sci:value>None</sci:value>
										<sci:value/>
										<sci:value>None</sci:value>
										<sci:value/>
									</sci:arg>
									<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
									<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
										<sci:help>Local Component Identifier</sci:help>
										<sci:value>15</sci:value>
									</sci:arg>
									<sci:arg name="Argument1" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>Parameter Help</sci:help>
										<sci:value>$(Filename)</sci:value>
									</sci:arg>
									<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:value>17.2.0.1279</sci:value>
									</sci:arg>
									<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
										<sci:help>The original path within the database of this component.</sci:help>
										<sci:value>Components\Data Access and Manipulation\Utilities\File Utilities\Delete File</sci:value>
									</sci:arg>
								</sci:component>
							</sci:data>
							<sci:connectid from="16" to="18" type="true"/>
							<sci:connectid from="18" to="19" type="true"/>
							<sci:connectid from="18" to="19" type="false"/>
							<sci:connectid from="19" to="33" type="true"/>
							<sci:connectid from="33" to="0" type="true"/>
							<sci:connectid from="33" to="22" type="true"/>
							<sci:connectid from="2" to="4" type="true"/>
							<sci:connectid from="24" to="2" type="true"/>
							<sci:connectid from="24" to="25" type="false"/>
							<sci:connectid from="6" to="5" type="true"/>
							<sci:connectid from="6" to="9" type="false"/>
							<sci:connectid from="5" to="9" type="true"/>
							<sci:connectid from="9" to="31" type="true"/>
							<sci:connectid from="31" to="34" type="true"/>
							<sci:connectid from="34" to="7" type="true"/>
							<sci:connectid from="8" to="6" type="true"/>
							<sci:connectid from="8" to="27" type="false"/>
							<sci:connectid from="27" to="26" type="true"/>
							<sci:connectid from="26" to="29" type="true"/>
							<sci:connectid from="29" to="30" type="true"/>
							<sci:version iVal="1"/>
						</sci:protocol>
					</sci:data>
					<sci:connectid from="5" to="4" type="true"/>
					<sci:connectid from="5" to="2" type="false"/>
					<sci:connectid from="4" to="2" type="true"/>
					<sci:version iVal="1"/>
				</sci:protocol>
			</sci:data>
			<sci:data object="SciTegic.Protocol.1">
				<sci:component name="DS File Viewer" version="2">
					<sci:arg name="Source" type="StringType" required="true" visibility="visible" multi="false" expanded="true">
						<sci:help>&lt;p&gt;
Path to a file on the server to open in Discovery Studio. You can use any file format supported by Discovery Studio.
&lt;/p&gt;</sci:help>
						<sci:value>$(RunDirectory)/$(SequenceFileName).xml</sci:value>
					</sci:arg>
					<sci:arg name="Advanced" type="GroupType" required="false" visibility="visible" multi="false" uimpl="false">
						<sci:help>&lt;p&gt;Contains less commonly used parameters.&lt;/p&gt;
</sci:help>
						<sci:member>Script Name</sci:member>
					</sci:arg>
					<sci:arg name="Script Name" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
						<sci:help>The name of a file which will be created in the Run Directory containing the script to open with Discovery Studio. If left as &quot;ViewResults.ds_pl&quot; the file will automatically be opened by Discovery Studio if the protocol is run as a Quick Launch protocol.</sci:help>
						<sci:value>ViewResults.ds_pl</sci:value>
					</sci:arg>
					<sci:arg name="Tempfiles" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>&lt;/p&gt;A comma delimited list of global properties, each of which will automatically hold the name of a file in the job&apos;s temporary folder, whose name is guaranteed to be unique.&lt;p/&gt;For each global name, an additional global is created (with the suffix &lt;i&gt;_Filename&lt;/i&gt;) that hold just the leaf file name of the temporary file.&lt;p/&gt;</sci:help>
						<sci:value>streamfile</sci:value>
					</sci:arg>
					<sci:arg name="DeclareLocal" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>&lt;p&gt;Lists a set of properties (without the @) to create on the global property list for this subprotocol. Such properties can only be accessed within the scope of this subprotocol and its descendent subprotocols.&lt;p/&gt;Any global property not declared in this way is created on the top level global property list and is accessible from all protocols, but may collide with another property of the same name.&lt;p/&gt;Scoping global properties to the subprotocol where they are used is highly recommended.&lt;/p&gt;</sci:help>
						<sci:value>MessageBox</sci:value>
					</sci:arg>
					<sci:arg name="RunToCompletion" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>When RunToCompletion is set to True, the subprotocol is re-initialized and executed in its entirety for each record it processes.</sci:help>
						<sci:legalval selected="true">True</sci:legalval>
						<sci:legalval>False</sci:legalval>
					</sci:arg>
					<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
						<sci:help>Component Attributes</sci:help>
						<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
						<sci:legalval>ComponentReturnsPass</sci:legalval>
						<sci:legalval>ComponentReturnsFail</sci:legalval>
						<sci:legalval>ComponentRunsLocal</sci:legalval>
					</sci:arg>
					<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
						<sci:value>VIEWERNODE</sci:value>
					</sci:arg>
					<sci:arg name="ComponentRevision" type="LongType" required="true" visibility="nevershow" multi="false">
						<sci:help>Component Revision</sci:help>
						<sci:value>100</sci:value>
					</sci:arg>
					<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The component this component is based upon.</sci:help>
						<sci:value>SubProtocol</sci:value>
					</sci:arg>
					<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>{FD223270-EA75-9A28-026C-3D48C2A5CF2D}</sci:value>
					</sci:arg>
					<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>1290 -1715</sci:value>
					</sci:arg>
					<sci:arg name="ByReference" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>By Ref</sci:help>
						<sci:value>1</sci:value>
					</sci:arg>
					<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
						<sci:value>100</sci:value>
						<sci:value>Displays a file in Discovery Studio</sci:value>
						<sci:value>&lt;p&gt;
Path to a file on the server to open in Discovery Studio. You can use any file format supported by Discovery Studio.
&lt;/p&gt;</sci:value>
						<sci:value>None</sci:value>
						<sci:value/>
						<sci:value>None</sci:value>
						<sci:value>Records passing out of any unconnected pass ports of components inside the subprotocol</sci:value>
						<sci:value>None</sci:value>
						<sci:value>Records passing out of any unconnected fail ports of components inside the subprotocol</sci:value>
					</sci:arg>
					<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The server version when this component was registered</sci:help>
						<sci:value>7.5.2.500</sci:value>
					</sci:arg>
					<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="Protocol Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Sticky Notes</sci:help>
					</sci:arg>
					<sci:arg name="ProtocolScale2" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Scale</sci:help>
						<sci:value>100</sci:value>
					</sci:arg>
					<sci:arg name="Protocol Options" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Options</sci:help>
						<sci:legalval>Make Shortcut by Default</sci:legalval>
						<sci:legalval>Owner Access Only</sci:legalval>
					</sci:arg>
					<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The user who registered this component.</sci:help>
						<sci:value>scitegic/dscore</sci:value>
					</sci:arg>
					<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The date this component was registered.</sci:help>
						<sci:value>Mon Sep 27 11:51:43 2010</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>DS File Viewer</sci:value>
					</sci:arg>
					<sci:arg name="ProtocolAutoLayout" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol AutoLayout</sci:help>
						<sci:value>1</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:help>Local Component Identifier</sci:help>
						<sci:value>39</sci:value>
					</sci:arg>
					<sci:arg name="SubProtocolMadeLinkIntoCopy" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Subprotocol Made Link Into Copy</sci:help>
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The original path within the database of this component.</sci:help>
						<sci:value>Components\Chemistry\Data Access and Manipulation\Viewers\DS File Viewer</sci:value>
					</sci:arg>
				</sci:component>
				<sci:protocol/>
			</sci:data>
			<sci:data object="SciTegic.ComponentPerlPlugin.1">
				<sci:component name="Perl (on Server)" version="2">
					<sci:arg name="Script" type="PerlScriptType" required="true" visibility="visible" multi="false" implbase="{6C9F19F9-6CF3-4BB9-8F61-89C89D9CDCBB}">
						<sci:help>&lt;p&gt;Perl script to execute.  Pipeline Pilot executes the following three subroutines:

&lt;ul&gt;
&lt;li&gt;onInitialize: the subroutine that executes before the first data record is processed.&lt;/li&gt;
&lt;li&gt;onProcess: the subroutine that executes for each data record.&lt;/li&gt;
&lt;li&gt;onFinalize: the subroutine that executes after the last data record has been processed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
The usual Perl scoping rules apply to variables.  To pass a variable between the three required subroutines use package level variables, e.g., &lt;code&gt;$::variable&lt;/code&gt; or &lt;code&gt;my $variable&lt;/code&gt; declared outside the subroutines.
&lt;/p&gt;

&lt;p&gt;
The &lt;i&gt;onInitialize&lt;/i&gt; and &lt;i&gt;onFinalize&lt;/i&gt; subroutines both receive the &lt;code&gt;pilot::Context Perl&lt;/code&gt; object as the only argument.  The &lt;i&gt;onProcess&lt;/i&gt; subroutine receives the &lt;code&gt;pilot::Context&lt;/code&gt; and &lt;code&gt;pilot::DataRecord&lt;/code&gt; Perl objects as its two arguments.
&lt;/p&gt;

&lt;p&gt;
pilot::Context provides access to globals and parameters.  A common way to get these is via a Perl hash reference.  For example, to get a &lt;i&gt;Source&lt;/i&gt; parameter value use
&lt;/p&gt;

&lt;pre&gt;
my $parametersHashRef = $context-&gt;getComponentParameters()-&gt;getHashRef();
my $source = $parametersHashRef-&gt;{&quot;Source&quot;};
&lt;/pre&gt;

&lt;p&gt;
To obtain the value of a global property called &lt;i&gt;Old&lt;/i&gt; and set a new global property called &lt;i&gt;New&lt;/i&gt; use
&lt;/p&gt;

&lt;pre&gt;
my $globalsHashRef = $context-&gt;getGlobalProperties()-&gt;getHashRef();
my $value = $globalsHashRef-&gt;{&quot;Old&quot;};
$globalsHashRef-&gt;{&quot;New&quot;} = &quot;newValue&quot;;
&lt;/pre&gt;

&lt;p&gt;
Top level properties in a data record are accessed similarly.
&lt;/p&gt;

&lt;pre&gt;
my $node = $data-&gt;getRoot();
my $propertiesHashRef = $node-&gt;getProperties()-&gt;getHashRef();
my $value = $propertiesHashRef-&gt;{&quot;Old&quot;};
$propertiesHashRef-&gt;{&quot;New&quot;} = &quot;newValue&quot;;
&lt;/pre&gt;

&lt;p&gt;
&lt;i&gt;onInitialize&lt;/i&gt; and &lt;i&gt;onProcess&lt;/i&gt; must return one of the following component state values:
&lt;ul&gt;
&lt;li&gt;pilot::READYFORINPUTDATA
&lt;li&gt;pilot::DONEPROCESSINGDATA
&lt;li&gt;pilot::READYFORNEWDATA
&lt;li&gt;pilot::READYFORINPUTTHENNEWDATA
&lt;/ul&gt;
&lt;/p&gt;

&lt;p&gt;
To explicitly route a data record to a port use
&lt;/p&gt;

&lt;pre&gt;
$data-&gt;routeTo($pilot::PassPort);
&lt;/pre&gt;

&lt;p&gt;
or
&lt;/p&gt;

&lt;pre&gt;
$data-&gt;routeTo($pilot::FailPort);
&lt;/pre&gt;

&lt;p&gt;
Data records can also be terminated internally by routing to &lt;code&gt;$pilot::NoPort&lt;/code&gt;.
&lt;/p&gt;</sci:help>
						<sci:value>use strict;

use DS::Comm;
use Proteomics::BLASTCommon;
use DS::Report;

sub onInitialize {
	my $context = shift;
	
	return pilot::READYFORINPUTDATA;
}


sub onProcess {
	my $context = shift;
	my $data = shift;

	return pilot::READYFORINPUTDATA;
}


sub onFinalize {
	my $context = shift;
	
    my $report = new DS::Report($context);

	my $seqName = $context-&gt;getGlobalProperties-&gt;getHashRef-&gt;{SequenceName};

	my $jobDir = $context-&gt;getGlobalProperties-&gt;getHashRef-&gt;{JobDir};
	my $sf = $context-&gt;getGlobalProperties-&gt;getHashRef-&gt;{SequenceFileName};	
	my $xml = &quot;$jobDir/$sf.xml&quot;;
	
    my $numHits = BLASTCommon::numHit($xml);
    if ($numHits) {
      my $msg = &quot;$seqName found $numHits NCBI BLAST hit&quot;.($numHits &gt; 1 ? &quot;s&quot;: &quot;&quot;);
      $report-&gt;addSummary($msg);
    }
    else {
      my $msg = &quot;No BLAST hits returned for $seqName&quot;;
      $report-&gt;addSummary($msg);
    } 

	my $msg = &quot;$numHits hit&quot;.($numHits &gt; 1 ? &apos;s&apos; : &apos;&apos;).&quot;: $seqName&quot;;

	DS::Comm::finalMessage($context, $msg);

}</sci:value>
					</sci:arg>
					<sci:arg name="Use Package" type="StringType" required="false" visibility="visible" multi="false" implbase="{6C9F19F9-6CF3-4BB9-8F61-89C89D9CDCBB}">
						<sci:help>The name of an application package that contains Perl modules referenced by this component. By defining this package name, a package-specific module may be referenced with the &apos;use modulename;&apos; syntax.</sci:help>
						<sci:value>scitegic/dscore</sci:value>
					</sci:arg>
					<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
						<sci:help>Component Attributes</sci:help>
						<sci:legalval>ComponentTakesInput</sci:legalval>
						<sci:legalval>ComponentReturnsPass</sci:legalval>
						<sci:legalval>ComponentReturnsFail</sci:legalval>
						<sci:legalval>ComponentRunsLocal</sci:legalval>
					</sci:arg>
					<sci:arg name="RebuildInRTC" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>If True, the Perl interpreter instance for the component is terminated in the onFinalize event.</sci:help>
						<sci:legalval selected="true">True</sci:legalval>
						<sci:legalval>False</sci:legalval>
					</sci:arg>
					<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The user who registered this component.</sci:help>
						<sci:value>scitegic/integration</sci:value>
					</sci:arg>
					<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The date this component was registered.</sci:help>
						<sci:value>Mon Nov 06 19:45:37 2006</sci:value>
					</sci:arg>
					<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>{6C9F19F9-6CF3-4BB9-8F61-89C89D9CDCBB}</sci:value>
					</sci:arg>
					<sci:arg name="ComponentComment" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Comment</sci:help>
						<sci:value>Loads a class to provide component behavior.</sci:value>
					</sci:arg>
					<sci:arg name="ComponentUsage" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Component Usage</sci:help>
						<sci:value>Loads a class to provide component behavior.

Set the ports and icon as appropriate.</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>DS Report Summary and Final Message</sci:value>
					</sci:arg>
					<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>90 -1895</sci:value>
					</sci:arg>
					<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
						<sci:value>COMPONENTNODE</sci:value>
					</sci:arg>
					<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The component this component is based upon.</sci:help>
						<sci:value>Plug In</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
						<sci:value>100</sci:value>
						<sci:value>Executes Perl code on the server</sci:value>
						<sci:value>&lt;p&gt;Allows a Perl script to manipulate a data record&apos;s property list, the global
property list, and component behavior. The &lt;em&gt;Script&lt;/em&gt; parameter contains
the script that implements the component behavior, encoded in Perl. The following
subroutines must be defined in this text parameter (all three methods need to
be declared in the main scope): &lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;onInitialize: &lt;/em&gt;Invoked once before the any data records
    arrive. This method receives one argument, a pilot::Context object. Also,
    it must return a component state, one of $pilot::ReadyForInputData, $pilot::DoneProcessingData, $pilot::ReadyForNewData or $pilot::ReadyForInputThenNewData. &lt;/li&gt;
  &lt;li&gt;&lt;em&gt;onProcess&lt;/em&gt;: Called once per data record. This method
    receives two arguments, a pilot::Context and a pilot::DataRecord object and
    return a component state. &lt;/li&gt;
  &lt;li&gt;&lt;em&gt;onFinalize&lt;/em&gt;: Called when no more data records are available.
    This method receives one argument, a pilot::Context object. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;i&gt;onInitialize&lt;/i&gt; and &lt;i&gt;onProcess&lt;/i&gt; must
return one of the following component state values:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;pilot::READYFORINPUTDATA
&lt;li&gt;pilot::DONEPROCESSINGDATA
&lt;li&gt;pilot::READYFORNEWDATA
&lt;li&gt;pilot::READYFORINPUTTHENNEWDATA
&lt;/ul&gt;


&lt;p&gt;&lt;strong&gt;Notes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Any script outside of the subroutines is executed just prior to calling
    onInitialize.&lt;/li&gt;
	&lt;li&gt;The optional &lt;em&gt;Use Package&lt;/em&gt; parameter is used to identify a package
      that holds one or more Perl modules that are referenced by the component.
      In this way, much or all of a component&apos;s functionality can be maintained
      in a package module. This facilitates component upgrading, by centralizing
    the code.&lt;/li&gt;
    &lt;li&gt;The Perl include path for the library must be declared in the package.conf
      file for the named package.&lt;/li&gt;
    &lt;li&gt;Perl&apos;s &lt;em&gt;strict&lt;/em&gt; and &lt;em&gt;warnings&lt;/em&gt; directives can be very useful
      when writing scripts. To detect warnings, you need to create a handler
      to manage them, since by default, Perl sends them to STDERR, which is not
    easily accessible from within Pipeline Pilot. 
	&lt;p&gt;For example, the following
    script treats warnings as errors:&lt;/p&gt;
	&lt;p&gt;&lt;code&gt;use warnings;&lt;br /&gt;
	$SIG{__WARN__} = sub {die @_;};&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;See Also:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;javascript:DoLink(&apos;sciapps/scitegic/integration/docs/server_side/perl_api.htm&apos;)&quot;&gt;Perl Scripting Component API&lt;/a&gt;&lt;/li&gt; 
&lt;li&gt;&lt;a href=&quot;javascript:DoLink(&apos;sciapps/scitegic/integration/docs/server_side/perl_comp_dev.pdf&apos;)&quot;&gt;Perl Component Development Guide&lt;/a&gt;&lt;/li&gt;  
&lt;/ul&gt;</sci:value>
						<sci:value>None</sci:value>
						<sci:value/>
						<sci:value>None</sci:value>
						<sci:value/>
						<sci:value>None</sci:value>
						<sci:value/>
					</sci:arg>
					<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The server version when this component was registered</sci:help>
						<sci:value>6.0.1.4</sci:value>
					</sci:arg>
					<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:help>Local Component Identifier</sci:help>
						<sci:value>33</sci:value>
					</sci:arg>
					<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The original path within the database of this component.</sci:help>
						<sci:value>Components\Database and Application Integration\Application Integration\Programmatic Integration\Perl (on Server)</sci:value>
					</sci:arg>
				</sci:component>
			</sci:data>
			<sci:data object="SciTegic.Protocol.1">
				<sci:component name="DS Message Viewer" version="2">
					<sci:arg name="Message" type="StringType" required="false" visibility="visible" multi="false" expanded="true">
						<sci:help>After displaying the molecules, pop up a message box. The message can explain the actions applied to the molecules.</sci:help>
						<sci:value>$(ExperimentSummary)</sci:value>
					</sci:arg>
					<sci:arg name="Details" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>&lt;p&gt;
Details to be shown if the user clicks the &quot;MORE&quot; button on the message box.
&lt;/p&gt;&lt;p&gt;
The details message can be plain text or html.</sci:help>
						<sci:enabledscript>parameter(&apos;Message&apos;) ne &apos;&apos;</sci:enabledscript>
					</sci:arg>
					<sci:arg name="Do Not Show Key" type="StringType" required="false" visibility="visible" multi="false" expanded="true" uimpl="false">
						<sci:help>&lt;p&gt;
Text key used to disable showing messages user has already seen.
&lt;/p&gt;&lt;p&gt;
If blank, message is always shown.
&lt;/p&gt;</sci:help>
						<sci:enabledscript>parameter(&apos;Message&apos;) ne &apos;&apos;</sci:enabledscript>
					</sci:arg>
					<sci:arg name="Advanced" type="GroupType" required="false" visibility="visible" multi="false" uimpl="false">
						<sci:help>&lt;p&gt;Contains less commonly used parameters.&lt;/p&gt;</sci:help>
						<sci:member>Script Name</sci:member>
						<sci:member>See Also Report Link</sci:member>
					</sci:arg>
					<sci:arg name="See Also Report Link" type="BoolType" required="false" visibility="visible" multi="false">
						<sci:help>In the &quot;More&quot; message, generate a &quot;See Also&quot; link to the report.</sci:help>
						<sci:enabledscript>parameter(&apos;Message&apos;) ne &apos;&apos;</sci:enabledscript>
						<sci:legalval selected="true">True</sci:legalval>
						<sci:legalval>False</sci:legalval>
					</sci:arg>
					<sci:arg name="Script Name" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
						<sci:help>The name of a file which will be created in the Run Directory containing the script to open with Discovery Studio. If left as &quot;ViewResults.ds_pl&quot; the file will automatically be opened by Discovery Studio if the protocol is run as a Quick Launch protocol.</sci:help>
						<sci:value>ViewResults.ds_pl</sci:value>
					</sci:arg>
					<sci:arg name="Tempfiles" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>&lt;/p&gt;A comma delimited list of global properties, each of which will automatically hold the name of a file in the job&apos;s temporary folder, whose name is guaranteed to be unique.&lt;p/&gt;For each global name, an additional global is created (with the suffix &lt;i&gt;_Filename&lt;/i&gt;) that hold just the leaf file name of the temporary file.&lt;p/&gt;</sci:help>
						<sci:value>streamfile</sci:value>
					</sci:arg>
					<sci:arg name="DeclareLocal" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>&lt;p&gt;Lists a set of properties (without the @) to create on the global property list for this subprotocol. Such properties can only be accessed within the scope of this subprotocol and its descendent subprotocols.&lt;p/&gt;Any global property not declared in this way is created on the top level global property list and is accessible from all protocols, but may collide with another property of the same name.&lt;p/&gt;Scoping global properties to the subprotocol where they are used is highly recommended.&lt;/p&gt;</sci:help>
						<sci:value>MessageBox,ShowReport</sci:value>
					</sci:arg>
					<sci:arg name="RunToCompletion" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>When RunToCompletion is set to True, the subprotocol is re-initialized and executed in its entirety for each record it processes.</sci:help>
						<sci:legalval selected="true">True</sci:legalval>
						<sci:legalval>False</sci:legalval>
					</sci:arg>
					<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
						<sci:help>Component Attributes</sci:help>
						<sci:legalval>ComponentTakesInput</sci:legalval>
						<sci:legalval>ComponentReturnsPass</sci:legalval>
						<sci:legalval>ComponentReturnsFail</sci:legalval>
						<sci:legalval>ComponentRunsLocal</sci:legalval>
					</sci:arg>
					<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
						<sci:value>VIEWERNODE</sci:value>
					</sci:arg>
					<sci:arg name="ComponentRevision" type="LongType" required="true" visibility="nevershow" multi="false">
						<sci:help>Component Revision</sci:help>
						<sci:value>100</sci:value>
					</sci:arg>
					<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The component this component is based upon.</sci:help>
						<sci:value>SubProtocol</sci:value>
					</sci:arg>
					<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>{4563A009-DAFE-4FBA-02E1-7E11F0BBA93F}</sci:value>
					</sci:arg>
					<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>390 -1925</sci:value>
					</sci:arg>
					<sci:arg name="ByReference" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>By Ref</sci:help>
						<sci:value>1</sci:value>
					</sci:arg>
					<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
						<sci:value>100</sci:value>
						<sci:value>Displays a message in Discovery Studio</sci:value>
						<sci:value>&lt;p&gt;
A rich text message is displayed in Discovery Studio.
&lt;/p&gt;</sci:value>
						<sci:value>None</sci:value>
						<sci:value/>
						<sci:value>None</sci:value>
						<sci:value>Records passing out of any unconnected pass ports of components inside the subprotocol</sci:value>
						<sci:value>None</sci:value>
						<sci:value>Records passing out of any unconnected fail ports of components inside the subprotocol</sci:value>
					</sci:arg>
					<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The server version when this component was registered</sci:help>
						<sci:value>8.5.0.200</sci:value>
					</sci:arg>
					<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="Protocol Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Sticky Notes</sci:help>
					</sci:arg>
					<sci:arg name="ProtocolScale2" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Scale</sci:help>
						<sci:value>100</sci:value>
					</sci:arg>
					<sci:arg name="Protocol Options" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Options</sci:help>
						<sci:legalval>Make Shortcut by Default</sci:legalval>
						<sci:legalval>Owner Access Only</sci:legalval>
					</sci:arg>
					<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The user who registered this component.</sci:help>
						<sci:value>scitegic/dscore</sci:value>
					</sci:arg>
					<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The date this component was registered.</sci:help>
						<sci:value>Wed Nov 23 12:49:26 2011</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>DS Message Viewer</sci:value>
					</sci:arg>
					<sci:arg name="ProtocolAutoLayout" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol AutoLayout</sci:help>
						<sci:value>1</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:help>Local Component Identifier</sci:help>
						<sci:value>32</sci:value>
					</sci:arg>
					<sci:arg name="SubProtocolMadeLinkIntoCopy" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Subprotocol Made Link Into Copy</sci:help>
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The original path within the database of this component.</sci:help>
						<sci:value>Components\Chemistry\Data Access and Manipulation\Viewers\DS Message Viewer</sci:value>
					</sci:arg>
				</sci:component>
				<sci:protocol/>
			</sci:data>
			<sci:data object="SciTegic.Protocol.1">
				<sci:component name="Subprotocol" version="2">
					<sci:arg name="Tempfiles" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>&lt;p&gt;A comma delimited list of global properties, each of which will automatically hold the name of a file in the job&apos;s temporary folder, whose name is guaranteed to be unique.&lt;p/&gt;For each global name, an additional global is created (with the suffix &lt;i&gt;_Filename&lt;/i&gt;) that hold just the leaf file name of the temporary file.&lt;/p&gt;</sci:help>
					</sci:arg>
					<sci:arg name="DeclareLocal" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>&lt;p&gt;Lists a set of properties (without the @) to create on the global property list for this subprotocol. Such properties can only be accessed within the scope of this subprotocol and its descendent subprotocols.&lt;p/&gt;Any global property not declared in this way is created on the top level global property list and is accessible from all protocols, but may collide with another property of the same name.&lt;/p&gt;&lt;p&gt;Scoping global properties to the subprotocol where they are used is highly recommended.&lt;/p&gt;</sci:help>
					</sci:arg>
					<sci:arg name="RunToCompletion" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>When &lt;i&gt;RunToCompletion&lt;/i&gt; is set to &quot;True - For Each Data Record&quot;, the subprotocol is re-initialized and executed in its entirety for each individual data record it processes.
&lt;p&gt;
When set to &quot;True - For Each Category&quot;, the data records are divided into categories based on the value of the Categorize Using parameter and then the subprotocol is re-initialized and executed in its entirety for each category of data records. When used in conjunction with &lt;i&gt;Parallel Processing Options&lt;/i&gt;, each category of data records will be sent to the remote server as part of one single batch.</sci:help>
						<sci:member>RunToCompletion Categorize Using</sci:member>
						<sci:legalval selected="true">False</sci:legalval>
						<sci:legalval>True - For Each Data Record</sci:legalval>
						<sci:legalval>True - For Each Category</sci:legalval>
					</sci:arg>
					<sci:arg name="RunToCompletion Categorize Using" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Required when RunToCompletion is set to &lt;i&gt;True - For Each Category&lt;/i&gt;, this parameter specifies the property or properties used to define the categories.</sci:help>
						<sci:validscript>SetInvalidDetails(&apos;This parameter is required when RunToCompletion is set to True - For Each Category&apos;);
Parameter() ne &apos;&apos;;</sci:validscript>
						<sci:enabledscript>SetDisabledDetails(&apos;To Enable, Set RunToCompletion to True - For Each Category&apos;);
Parameter(&apos;RunToCompletion&apos;) eq &apos;True - For Each Category&apos;;</sci:enabledscript>
					</sci:arg>
					<sci:arg name="Parallel Processing Options" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>&lt;p&gt;
When set to True, this set of options allow the subprotocol to execute in parallel on one or more independent Pipeline Pilot servers, running local or remote.  Additional parameters control the number of data records to send in each process batch, the list of Pipeline Pilot servers to use, the number of protocol processes that can be executed on each server, and whether to preserve the order of the processed data records.
&lt;/p&gt;&lt;p&gt;
Use this option judiciously, since it will not increase throughput in all circumstances. In general, it will yield improved performance when the parallelization benefits outweigh the data transfer overhead for the specified batch size.  As a rough guide, performance can be improved when each individual batch requires at least 10 seconds to execute, although this can be affected by the size of each data record.
&lt;/p&gt;&lt;p&gt;
When running the protocol with debugging, the subprotocol will provide debugging messages to detail each of the various steps of execution.  Also, components located within the parallel subprotocol will display their debugging messages as well.
&lt;/p&gt;&lt;p&gt;
For more information on the parallel subprotocol options, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/subprots/subprot_parallel_processing.htm&apos;)&quot;&gt;Parallel Processing Subprotocols&lt;/a&gt;.
&lt;/p&gt;
</sci:help>
						<sci:member>Parallel Processing Options Batch Size</sci:member>
						<sci:member>Parallel Processing Options Server</sci:member>
						<sci:member>Parallel Processing Options Preserve Order</sci:member>
						<sci:legalval>True</sci:legalval>
						<sci:legalval selected="true">False</sci:legalval>
					</sci:arg>
					<sci:arg name="Parallel Processing Options Batch Size" type="LongType" required="true" visibility="visible" multi="false" uimpl="true">
						<sci:help>&lt;p&gt;The number of records to send to the remote server(s) for each subprotocol execution.  In general, performance is optimized when the amount of time required to process each batch is at least 10 seconds (note that this can vary depending on the characteristics of the remote server&apos;s hardware).  Use a batch size of -1 to pass all data in a single batch.&lt;/p&gt;
&lt;p&gt;When &lt;i&gt;RunToCompletion&lt;/i&gt; is set to &quot;True - for each category&quot;, the batch sizes will be determined by the number of records in each individual category.  Therefore, the &lt;i&gt;Batch Size&lt;/i&gt; parameter is not applicable.</sci:help>
						<sci:enabledscript>#parallel := Parameter(&apos;Parallel Processing Options&apos;);
#rtcForEachCategory := (Parameter(&apos;RunToCompletion&apos;) eq &apos;True - For Each Category&apos;);
if (not #parallel) then
	SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
elsif (#rtcForEachCategory) then
	SetDisabledDetails(&quot;This parameter is not applicable when &apos;RunToCompletion&apos; is set to &apos;True - For Each Category&apos;&quot;);
end if;
#parallel and not #rtcForEachCategory;</sci:enabledscript>
					</sci:arg>
					<sci:arg name="Parallel Processing Options Server" type="StringType" required="false" visibility="visible" multi="true" expanded="true" legalvalsenforced="false" uimpl="true">
						<sci:help>&lt;p&gt;
Comma separated list of Pipeline Pilot servers on which to execute the parallel subprotocol.  The server names should be in the same format as the Pipeline Pilot Client&apos;s change server dialog (server-name:port-number).
&lt;/p&gt;&lt;p&gt;
Specifying &lt;b&gt;localhost&lt;/b&gt; as a server will cause the subprotocol to use its own Pipeline Pilot server.  This can be helpful on multi-CPU/multi-core systems (where the subprotocol jobs are spawned on the same machine) and Pipeline Pilot Linux clusters (where &apos;localhost&apos; requests spawning the subprotocol jobs on the same cluster).
&lt;/p&gt;</sci:help>
						<sci:member>Parallel Processing Options Server Processes</sci:member>
						<sci:member>Parallel Processing Options Server Run On Grid</sci:member>
						<sci:validscript>SetInvalidDetails(&apos;This parameter is required.&apos;);
Parameter() ne &apos;&apos;;</sci:validscript>
						<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
					</sci:arg>
					<sci:arg name="Parallel Processing Options Server Processes" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Comma separated list of maximum number of batches that can be simultaneously executed on each remote server.  The number of entries in this parameter must equal the number of servers. If &apos;*&apos; is specified as the number of processes, then that server will only launch as many batches as the administrator of the remote server has permitted.</sci:help>
						<sci:validscript>/* Server Processes must have the same number of comma separated entries as the Server parameter and must have a value*/
#processes := parameter();
expand(&apos;,&apos;, #processes);
#servers := parameter(&apos;Parallel Processing Options Server&apos;);
expand(&apos;,&apos;, #servers);

if (numvalues(#processes) == 0) then
	SetInvalidDetails(&apos;This parameter is required.&apos;);
else
	SetInvalidDetails(&apos;The number of server processes (&apos; . numvalues(#processes) . &apos;) must equal the number of servers (&apos; . numvalues(#servers) . &apos;).&apos;);
end if;
numvalues(#processes) &gt; 0 and numvalues(#processes) == numvalues(#servers);</sci:validscript>
						<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
					</sci:arg>
					<sci:arg name="Parallel Processing Options Server Run On Grid" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Run subprotocol on grid engine if available.</sci:help>
						<sci:member>Parallel Processing Options Server Run On Grid Queue Name</sci:member>
						<sci:enabledscript>parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
						<sci:legalval selected="true">True</sci:legalval>
						<sci:legalval>False</sci:legalval>
					</sci:arg>
					<sci:arg name="Parallel Processing Options Server Run On Grid Queue Name" type="StringType" required="false" visibility="visible" multi="false" legalvalsenforced="false" uimpl="true">
						<sci:help>Select the queue name on the grid to submit jobs to. Leave blank to use default queue name.</sci:help>
						<sci:enabledscript>parameter(&apos;Parallel Processing Options Server Run On Grid&apos;);</sci:enabledscript>
					</sci:arg>
					<sci:arg name="Parallel Processing Options Preserve Order" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Whether to preserve the order of the data as it enters and leaves the remote subprotocol.</sci:help>
						<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
						<sci:legalval selected="true">True</sci:legalval>
						<sci:legalval>False</sci:legalval>
					</sci:arg>
					<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
						<sci:help>Component Attributes</sci:help>
						<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
						<sci:legalval>ComponentReturnsPass</sci:legalval>
						<sci:legalval selected="true">ComponentReturnsFail</sci:legalval>
						<sci:legalval>ComponentRunsLocal</sci:legalval>
					</sci:arg>
					<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>Set Error Message</sci:value>
					</sci:arg>
					<sci:arg name="ProtocolAutoLayout" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol AutoLayout</sci:help>
						<sci:value>1</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
						<sci:value>SUBPROTOCOLNODE</sci:value>
					</sci:arg>
					<sci:arg name="ComponentRevision" type="LongType" required="true" visibility="nevershow" multi="false">
						<sci:help>Component Revision</sci:help>
						<sci:value>790</sci:value>
					</sci:arg>
					<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>{17001C74-63CE-4B4B-B37C-F0EAA19CE4AA}</sci:value>
					</sci:arg>
					<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>1290 -2075</sci:value>
					</sci:arg>
					<sci:arg name="ByReference" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>By Ref</sci:help>
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
						<sci:value>100</sci:value>
						<sci:value>Builds subprotocols in Pipeline Pilot.</sci:value>
						<sci:value>&lt;p&gt;
Use a subprotocol to collapse one or more components into a single item. Open a subprotocol to view or edit its contents. 
&lt;/p&gt;&lt;p&gt;
To define input and output ports, display icon, and parameter settings, right-click and select Edit. You can save subprotocols and reuse them. For more information, see the User Guide help for &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/subprots/subprot_overview.htm&apos;)&quot;&gt;Subprotocols Overview&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;
For more information on the parallel subprotocol options, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/subprots/subprot_parallel_processing.htm&apos;)&quot;&gt;Parallel Processing Subprotocols&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;
Tip: Any component can be made into a shortcut, so that the latest version is always used. For more information, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/subprots/shortcuts.htm&apos;)&quot;&gt;Creating Shortcuts&lt;/a&gt;.
&lt;/p&gt;</sci:value>
						<sci:value>Generic</sci:value>
						<sci:value/>
						<sci:value>Generic</sci:value>
						<sci:value>Records passing out of any unconnected pass ports of components inside the subprotocol</sci:value>
						<sci:value>Generic</sci:value>
						<sci:value>Records passing out of any unconnected fail ports of components inside the subprotocol</sci:value>
					</sci:arg>
					<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The server version when this component was registered</sci:help>
						<sci:value>7.9.0.30</sci:value>
					</sci:arg>
					<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="Protocol Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Sticky Notes</sci:help>
					</sci:arg>
					<sci:arg name="ProtocolScale2" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Scale</sci:help>
						<sci:value>100</sci:value>
					</sci:arg>
					<sci:arg name="Protocol Options" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Options</sci:help>
						<sci:legalval>Owner Access Only</sci:legalval>
					</sci:arg>
					<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The user who registered this component.</sci:help>
						<sci:value>scitegic/coreutils</sci:value>
					</sci:arg>
					<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The date this component was registered.</sci:help>
						<sci:value>Tue Jan 26 10:02:05 2010</sci:value>
					</sci:arg>
					<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:help>Local Component Identifier</sci:help>
						<sci:value>40</sci:value>
					</sci:arg>
					<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The original path within the database of this component.</sci:help>
						<sci:value>Components\Data Access and Manipulation\Utilities\Subprotocol Utilities\Subprotocol</sci:value>
					</sci:arg>
				</sci:component>
				<sci:protocol>
					<sci:data object="SciTegic.EvaluateExpression.1">
						<sci:component name="Custom Filter (PilotScript)" version="2">
							<sci:arg name="Expression" type="ExpressionType" required="true" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
								<sci:help>The PilotScript expression used to filter the data.</sci:help>
								<sci:member>Initial Expression</sci:member>
								<sci:member>Final Expression</sci:member>
								<sci:member>Keep Calculated Properties</sci:member>
								<sci:value>exitStatus is defined and exitStatus &gt; 0 and stderr is defined</sci:value>
							</sci:arg>
							<sci:arg name="Initial Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
								<sci:help>&lt;p&gt;
An expression evaluated only when the component
is first initialized (when the first data record enters).
&lt;p/&gt;
Since there is no data available at initialization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
							</sci:arg>
							<sci:arg name="Final Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
								<sci:help>&lt;p&gt;
An expression evaluated only when the
component is finalized (once the last data
record has passed).
&lt;p/&gt;
Since there is no data available at finalization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
							</sci:arg>
							<sci:arg name="Keep Calculated Properties" type="BoolType" required="true" visibility="visible" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
								<sci:help>Allows any properties that were calculated in
&quot;Expression&quot; to be included with the exiting
record.
Otherwise, these properties are removed after
the evaluation is complete.</sci:help>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
								<sci:help>Component Attributes</sci:help>
								<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
								<sci:legalval selected="true">ComponentReturnsFail</sci:legalval>
								<sci:legalval>ComponentRunsLocal</sci:legalval>
							</sci:arg>
							<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
							<sci:arg name="ExpressionVersion" type="LongType" required="false" visibility="nevershow" multi="false" implbase="{DD58ECD1-516F-48FE-A5DB-8328AED680F2}">
								<sci:help>Version of expression parser to use.</sci:help>
								<sci:value>2</sci:value>
							</sci:arg>
							<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/generic</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The date this component was registered.</sci:help>
								<sci:value>Mon Jan 21 09:57:16 2008</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>exitStatus is defined and exit</sci:value>
							</sci:arg>
							<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:value>FILTERNODE</sci:value>
							</sci:arg>
							<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The component this component is based upon.</sci:help>
								<sci:value>Custom Filter (PilotScript)</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>{DD58ECD1-516F-48FE-A5DB-8328AED680F2}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>90 -95</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:value>100</sci:value>
								<sci:value>Passes data records for which a PilotScript expression evaluates to True

</sci:value>
								<sci:value>&lt;p&gt;For each incoming data record, the PilotScript statements in &lt;i&gt;Expression&lt;/i&gt; are evaluated. If the last statement in the expression evaluates to True or non-zero, the record is sent out the Pass port. Otherwise it is sent out the Fail port.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To initialize global variables such as counters, use &lt;i&gt;Initial Expression&lt;/i&gt;.&lt;/li&gt; 
&lt;li&gt;To clean up global variables or calculate final results use &lt;i&gt;Final Expression&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Parameters on Custom Manipulators do not become global variables that can be accessed via &lt;i&gt;@ParameterName&lt;/i&gt; syntax.  They must be accessed by using the &lt;i&gt;Parameter(&apos;ParameterName&apos;)&lt;/i&gt; function or by using token substitution via &lt;i&gt;$(ParameterName)&lt;/i&gt; syntax.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>Generic</sci:value>
								<sci:value>Data records for which the final expression in the PilotScript evaluates to True or non-zero</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value>Data records for which the final expression in the PilotScript evaluates to False or zero</sci:value>
							</sci:arg>
							<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
							<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Local Component Identifier</sci:help>
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>Components\Data Access and Manipulation\Filters\Custom Filter (PilotScript)</sci:value>
							</sci:arg>
						</sci:component>
						<sci:proplist>
							<sci:propval name="RegistrationVersion">7.0.0.35</sci:propval>
						</sci:proplist>
					</sci:data>
					<sci:data object="SciTegic.EvaluateExpression.1">
						<sci:component name="Custom Manipulator (PilotScript)" version="2">
							<sci:arg name="Expression" type="ExpressionType" required="true" visibility="visible" multi="false" expanded="true" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>Expression (or list of expressions separated by semi-colons) to evaluate.</sci:help>
								<sci:member>Initial Expression</sci:member>
								<sci:member>Final Expression</sci:member>
								<sci:member>Keep Calculated Properties</sci:member>
								<sci:value>@ExperimentError:= stderr;</sci:value>
							</sci:arg>
							<sci:arg name="Initial Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>&lt;p&gt;
This expression is executed only the first time data passes into the component.
&lt;p/&gt; 
Since there is no data available at initialization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
							</sci:arg>
							<sci:arg name="Final Expression" type="ExpressionType" required="false" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>&lt;p&gt;
This expression is executed only at finalization (after the last data passes out of the component).
&lt;p/&gt; 
Since there is no data available at finalization time, only expressions referencing local or global properties are allowed.
&lt;/p&gt;</sci:help>
							</sci:arg>
							<sci:arg name="Keep Calculated Properties" type="BoolType" required="true" visibility="visible" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>Adds any properties calculated in this component to a data record&apos;s property list.</sci:help>
								<sci:legalval selected="true">True</sci:legalval>
								<sci:legalval>False</sci:legalval>
							</sci:arg>
							<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
								<sci:help>Component Attributes</sci:help>
								<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
								<sci:legalval>ComponentReturnsPass</sci:legalval>
								<sci:legalval>ComponentReturnsFail</sci:legalval>
								<sci:legalval>ComponentRunsLocal</sci:legalval>
							</sci:arg>
							<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
								<sci:legalval selected="true">Halt</sci:legalval>
								<sci:legalval>Fail</sci:legalval>
								<sci:legalval>Pass</sci:legalval>
							</sci:arg>
							<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
							<sci:arg name="Do Screen" type="BoolType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>When TRUE, controls which exit port is used for
each data record by evaluating the final expression
(or only one) listed in the &quot;Expression&quot; parameter.
   -Pass (green) port when expression true
   -Fail (red) port when expression false</sci:help>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="ExpressionVersion" type="LongType" required="false" visibility="nevershow" multi="false" implbase="{0995D675-7EE2-432C-95DF-E91C14052B22}">
								<sci:help>Version of expression parser to use.</sci:help>
								<sci:value>2</sci:value>
							</sci:arg>
							<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/generic</sci:value>
							</sci:arg>
							<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The date this component was registered.</sci:help>
								<sci:value>Mon Jan 21 09:55:43 2008</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>Set Error Message</sci:value>
							</sci:arg>
							<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The component this component is based upon.</sci:help>
								<sci:value>Custom Manipulator (PilotScript)</sci:value>
							</sci:arg>
							<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:value>EXPRESSIONNODE</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:value>0</sci:value>
							</sci:arg>
							<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>{0995D675-7EE2-432C-95DF-E91C14052B22}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>378 -95</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:value>100</sci:value>
								<sci:value>Applies a PilotScript expression to each data record
</sci:value>
								<sci:value>&lt;p&gt;PilotScript is the native scripting language in Pipeline Pilot.  It is based on PL/SQL and allows you to query or alter the properties on data records.  For example, the expression:

&lt;blockquote&gt;
&lt;code&gt;A := 10;&lt;/code&gt;
&lt;/blockquote&gt;
creates a property named &quot;A&quot; and sets the value to &quot;10&quot;.&lt;/p&gt;

&lt;p&gt;For each incoming data record the PilotScript statements in &lt;i&gt;Expression&lt;/i&gt; are evaluated.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To initialize global variables such as counters, use &lt;i&gt;Initial Expression&lt;/i&gt;.&lt;/li&gt; 
&lt;li&gt;To clean up global variables or calculate final results use &lt;i&gt;Final Expression&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Parameters on Custom Manipulators do not become global variables that can be accessed via &lt;i&gt;@ParameterName&lt;/i&gt; syntax.  They must be accessed by using the &lt;i&gt;Parameter(&apos;ParameterName&apos;)&lt;/i&gt; function or by using token substitution via &lt;i&gt;$(ParameterName)&lt;/i&gt; syntax.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;See Also:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For more information on PilotScript, see &lt;a href=&quot;javascript:DoLink(&apos;scihelpdocs/user/pscript/pscript_overview.htm&apos;)&quot;&gt;PilotScript Overview&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To use PilotScript to filter data records use &lt;a href=&quot;javascript:DoLink(&apos;{DD58ECD1-516F-48FE-A5DB-8328AED680F2}&apos;)&quot;&gt;Custom Filter (PilotScript)&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>None</sci:value>
								<sci:value/>
								<sci:value>None</sci:value>
								<sci:value/>
							</sci:arg>
							<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The server version when this component was registered</sci:help>
								<sci:value>7.0.0.35</sci:value>
							</sci:arg>
							<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
							<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Local Component Identifier</sci:help>
								<sci:value>1</sci:value>
							</sci:arg>
							<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>Components\Data Access and Manipulation\Manipulators\Custom Manipulator (PilotScript)</sci:value>
							</sci:arg>
						</sci:component>
					</sci:data>
					<sci:connectid from="0" to="1" type="true"/>
				</sci:protocol>
			</sci:data>
			<sci:data object="SciTegic.Protocol.1">
				<sci:component name="Generate DS Report" version="2">
					<sci:arg name="File Name" type="StringType" required="true" visibility="visible" multi="false">
						<sci:help>Comma separated list of filenames in the Output directory.</sci:help>
						<sci:member>File Name Ignore</sci:member>
						<sci:value>$(SequenceFileName).xml,$(SequenceFileName)_profile.pir,blastseqs.fasta, HspLigands.txt, HspSCOPs.txt, PDBResolution.txt </sci:value>
					</sci:arg>
					<sci:arg name="File Name Ignore" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>Comma separated list of file names which won&apos;t show up in the DS Report.</sci:help>
					</sci:arg>
					<sci:arg name="File Name Help" type="StringType" required="true" visibility="visible" multi="false">
						<sci:help>A comma separated list of help text that must match the above file sequnce. The specified text will be used in the Report.</sci:help>
						<sci:member>File Name Help Sort</sci:member>
						<sci:value>BLAST Hits, Multiple Sequence Alignment of Query to Hits, Full Hit Sequences, Ligand Contacts, SCOP Codes,X-ray Resolutions</sci:value>
					</sci:arg>
					<sci:arg name="File Name Help Sort" type="BoolType" required="true" visibility="visible" multi="false" legalvalsenforced="false">
						<sci:help>List the files sorted by the names specified in &lt;em&gt;File Name Help&lt;/em&gt;. If disabled, the files are listed in the order specified in &lt;em&gt;File Name&lt;/em&gt;.</sci:help>
						<sci:enabledscript>parameter(&apos;File Name Help&apos;) ne &apos;&apos;</sci:enabledscript>
						<sci:legalval selected="true">True</sci:legalval>
						<sci:legalval>False</sci:legalval>
					</sci:arg>
					<sci:arg name="Advanced" type="GroupType" required="false" visibility="visible" multi="false">
						<sci:help>Advanced settings.</sci:help>
						<sci:member>Help Text Results</sci:member>
						<sci:member>View Results File Name</sci:member>
						<sci:member>Post Process HTML Files</sci:member>
					</sci:arg>
					<sci:arg name="Help Text Results" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
						<sci:help>This text will be displayed in the Results section of the report. The text can contain html tags.</sci:help>
					</sci:arg>
					<sci:arg name="View Results File Name" type="StringType" required="true" visibility="visible" multi="false">
						<sci:help>Name of the file that will be linked to the &quot;View Results Script&quot; button in the report.</sci:help>
						<sci:value>ViewResults.ds_pl</sci:value>
					</sci:arg>
					<sci:arg name="File Name New Name" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>&lt;p&gt;A comma separated list of names that must match the file sequence in &lt;i&gt;File Name&lt;/i&gt;. The specified names will be used in the report. If an empty field is specified, the base-filename will be used.&lt;/p&gt;</sci:help>
						<sci:validscript>#A1 := parameter();
Expand(&apos;,&apos;,#A1);
#A2 := parameter(&apos;File Name&apos;);
Expand(&apos;,&apos;,#A2);
#N1 := NumValues(#A1);
#N2 := NumValues(#A2);
SetInvalidDetails(
ParameterName() . &apos; must have same number of entries as: File Name&apos;.
&quot; &quot;. #N1. &quot; vs. &quot;. #N2 );
not ( #N1 &gt; 0 and #N1 != #N2)</sci:validscript>
					</sci:arg>
					<sci:arg name="Tempfiles" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>&lt;/p&gt;A comma delimited list of global properties, each of which will automatically hold the name of a file in the job&apos;s temporary folder, whose name is guaranteed to be unique.&lt;p/&gt;For each global name, an additional global is created (with the suffix &lt;i&gt;_Filename&lt;/i&gt;) that hold just the leaf file name of the temporary file.&lt;p/&gt;</sci:help>
					</sci:arg>
					<sci:arg name="DeclareLocal" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>&lt;p&gt;Lists a set of properties (without the @) to create on the global property list for this subprotocol. Such properties can only be accessed within the scope of this subprotocol and its descendent subprotocols.&lt;p/&gt;Any global property not declared in this way is created on the top level global property list and is accessible from all protocols, but may collide with another property of the same name.&lt;p/&gt;Scoping global properties to the subprotocol where they are used is highly recommended.&lt;/p&gt;</sci:help>
					</sci:arg>
					<sci:arg name="RunToCompletion" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>When RunToCompletion is set to True, the subprotocol is re-initialized and executed in its entirety for each record it processes.</sci:help>
						<sci:legalval>True</sci:legalval>
						<sci:legalval selected="true">False</sci:legalval>
					</sci:arg>
					<sci:arg name="Parallel Processing Options" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>&lt;p&gt;Execute this protocol in parallel on Pipeline Pilot servers. You can set the number of data records sent in each process batch, the name of the servers, the number of protocol processes executed on each server, and whether to preserve the order of the processed data records.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Notes&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Not all parts of the protocol are run in parallel, which may affect scaling. In general, performance improves when the parallelization benefits outweigh the data transfer overhead for the specified batch size.&lt;/li&gt;
&lt;li&gt;By default, Pipeline Pilot servers are configured to allow a maximum of four processes per protocol. You can adjust this on the Pipeline Pilot Server Administration Portal.&lt;/li&gt;
&lt;/ul&gt;</sci:help>
						<sci:member>Parallel Processing Options Batch Size</sci:member>
						<sci:member>Parallel Processing Options Server</sci:member>
						<sci:member>Parallel Processing Options Preserve Order</sci:member>
						<sci:legalval>True</sci:legalval>
						<sci:legalval selected="true">False</sci:legalval>
					</sci:arg>
					<sci:arg name="Parallel Processing Options Batch Size" type="LongType" required="true" visibility="visible" multi="false" uimpl="true">
						<sci:help>&lt;p&gt;Execute this protocol in parallel on Pipeline Pilot servers. You can set the number of data records sent in each process batch, the name of the servers, the number of protocol processes executed on each server, and whether to preserve the order of the processed data records.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Notes&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Not all parts of the protocol are run in parallel, which may affect scaling. In general, performance improves when the parallelization benefits outweigh the data transfer overhead for the specified batch size.&lt;/li&gt;
&lt;li&gt;By default, Pipeline Pilot servers are configured to allow a maximum of four processes per protocol. You can adjust this on the Pipeline Pilot Server Administration Portal.&lt;/li&gt;
&lt;/ul&gt;</sci:help>
						<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
						<sci:value>25</sci:value>
					</sci:arg>
					<sci:arg name="Parallel Processing Options Server" type="StringType" required="false" visibility="visible" multi="true" legalvalsenforced="false" uimpl="true">
						<sci:help>&lt;p&gt;
Comma separated list of Pipeline Pilot servers on which to execute the parallel subprotocol.  The server names should be in the same format as the Pipeline Pilot Client&apos;s change server dialog (server-name:port-number).
&lt;/p&gt;&lt;p&gt;
Specifying &lt;b&gt;localhost&lt;/b&gt; as a server will cause the subprotocol to use its own Pipeline Pilot server.  This can be helpful on multi-CPU/multi-core systems (where the subprotocol jobs are spawned on the same machine) and Pipeline Pilot Linux clusters (where &apos;localhost&apos; requests spawning the subprotocol jobs on the same cluster).
&lt;/p&gt;</sci:help>
						<sci:member>Parallel Processing Options Server Processes</sci:member>
						<sci:validscript>SetInvalidDetails(&apos;This parameter is required.&apos;);
Parameter() ne &apos;&apos;;</sci:validscript>
						<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
					</sci:arg>
					<sci:arg name="Parallel Processing Options Server Processes" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Comma separated list of maximum number of batches that can be simultaneously executed on each remote server.  The number of entries in this parameter must equal the number of servers. If &apos;*&apos; is specified as the number of processes, then that server will only launch as many batches as the administrator of the remote server has permitted.</sci:help>
						<sci:validscript>/* Server Processes must have the same number of comma separated entries as the Server parameter and must have a value*/
#processes := parameter();
expand(&apos;,&apos;, #processes);
#servers := parameter(&apos;Parallel Processing Options Server&apos;);
expand(&apos;,&apos;, #servers);

if (numvalues(#processes) == 0) then
	SetInvalidDetails(&apos;This parameter is required.&apos;);
else
	SetInvalidDetails(&apos;The number of server processes (&apos; . numvalues(#processes) . &apos;) must equal the number of servers (&apos; . numvalues(#servers) . &apos;).&apos;);
end if;
numvalues(#processes) &gt; 0 and numvalues(#processes) == numvalues(#servers);</sci:validscript>
						<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
					</sci:arg>
					<sci:arg name="Parallel Processing Options Preserve Order" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>Whether to preserve the order of the data as it enters and leaves the remote subprotocol.</sci:help>
						<sci:enabledscript>SetDisabledDetails(&quot;This parameter is only applicable if &apos;Parallel Processing Options&apos; is &apos;True&apos;&quot;);
Parameter(&apos;Parallel Processing Options&apos;);</sci:enabledscript>
						<sci:legalval selected="true">True</sci:legalval>
						<sci:legalval>False</sci:legalval>
					</sci:arg>
					<sci:arg name="Reporting" type="GroupType" required="false" visibility="visible" multi="false" expanded="true" uimpl="true">
						<sci:help>This group contains parameters specific to protocols containing Reporting components.</sci:help>
						<sci:member>Reporting Stylesheet</sci:member>
					</sci:arg>
					<sci:arg name="Reporting Stylesheet" type="StylesheetType" required="false" visibility="visible" multi="false" expanded="true" uimpl="true">
						<sci:help>Specifies the name of a Stylesheet to be used by this protocol if any of the Reporting components have a Style selected in the &lt;i&gt;Format&lt;/i&gt; and &lt;i&gt;Position&lt;/i&gt; parameters.</sci:help>
						<sci:value>{42691EC8-0CE0-4DB9-8B3C-5379CBB967A7}</sci:value>
					</sci:arg>
					<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
						<sci:help>Component Attributes</sci:help>
						<sci:legalval>ComponentTakesInput</sci:legalval>
						<sci:legalval selected="true">ComponentReturnsPass</sci:legalval>
						<sci:legalval>ComponentReturnsFail</sci:legalval>
						<sci:legalval>ComponentRunsLocal</sci:legalval>
					</sci:arg>
					<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="Post Process HTML Files" type="BoolType" required="true" visibility="visible" multi="false" legalvalsenforced="false">
						<sci:help>&lt;p&gt;Post process HTML files by removing box-sizing script.&lt;/p&gt;</sci:help>
						<sci:legalval selected="true">True</sci:legalval>
						<sci:legalval>False</sci:legalval>
					</sci:arg>
					<sci:arg name="ComponentComment" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Component Comment</sci:help>
						<sci:value>Defines a subprotocol in a pipeline. When you are creating a pipeline that requires a subprotocol as a component, drag this component into the pipeline, open it, and add components to it.</sci:value>
					</sci:arg>
					<sci:arg name="ComponentUsage" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Component Usage</sci:help>
						<sci:value>When you are creating a pipeline which requires a subprotocol as 
a component, you can drag this SubProtocol component into the 
pipeline, open it, and add components into it.</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>Generate DS Report</sci:value>
					</sci:arg>
					<sci:arg name="ProtocolAutoLayout" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol AutoLayout</sci:help>
						<sci:value>1</sci:value>
					</sci:arg>
					<sci:arg name="ProtocolShowComment" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol ShowComment</sci:help>
						<sci:value>true</sci:value>
					</sci:arg>
					<sci:arg name="ProtocolComment" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Add Protocol Comment Here</sci:help>
						<sci:value>Add Protocol Comment Here</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
						<sci:value>REPORTNODE</sci:value>
					</sci:arg>
					<sci:arg name="ComponentRevision" type="LongType" required="true" visibility="nevershow" multi="false">
						<sci:help>Component Revision</sci:help>
						<sci:value>100</sci:value>
					</sci:arg>
					<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The component this component is based upon.</sci:help>
						<sci:value>SubProtocol</sci:value>
					</sci:arg>
					<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>{E9901D25-DA09-42BA-9035-60CC818CA09D}</sci:value>
					</sci:arg>
					<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>90 -2285</sci:value>
					</sci:arg>
					<sci:arg name="ByReference" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>By Ref</sci:help>
						<sci:value>1</sci:value>
					</sci:arg>
					<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
						<sci:value>100</sci:value>
						<sci:value>Generates a Discovery Studio report</sci:value>
						<sci:value>&lt;p&gt;Generates a report of a Discovery Studio protocol run.&lt;/p&gt;

&lt;p&gt;
The report may contain the following sections:
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Description&lt;/strong&gt;: Protocol help text.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Information&lt;/strong&gt;: Run-time information and status.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Errors&lt;/strong&gt;: Error messages created.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Warnings&lt;/strong&gt;: Warning messages created.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Summary&lt;/strong&gt;: Summary of the protocol run.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Details&lt;/strong&gt;: Additional information of the run.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Results&lt;/strong&gt;: Hyperlinks to result files created.
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Parameters&lt;/strong&gt;: Parameter settings used and hyperlinks to input files.
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Notes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; This component should be placed at the end of the protocol to ensure the output files are picked up correctly and the timing information is accurate.
&lt;/li&gt;
&lt;li&gt;Help text can be added to the output files in the Results section.
&lt;/li&gt;
&lt;/li&gt;
&lt;li&gt;Any property values or reporting objects are added to the &lt;strong&gt;Summary&lt;/strong&gt; section.
&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;javascript:DoLink(&apos;{8F288684-93BC-4712-BC9A-73930339BDEB}&apos;)&quot;&gt;DS Messaging&lt;/a&gt; component can be used to add reporting text.&lt;/li&gt;
&lt;/ul&gt;

&lt;/ul&gt;</sci:value>
						<sci:value>None</sci:value>
						<sci:value>Nore or more data records with properties or reporting objects which will be added to the Summary</sci:value>
						<sci:value>Generic</sci:value>
						<sci:value>A reporting object</sci:value>
						<sci:value>None</sci:value>
						<sci:value>Records passing out of any unconnected fail ports of components inside the subprotocol</sci:value>
					</sci:arg>
					<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The server version when this component was registered</sci:help>
						<sci:value>9.0.0.100</sci:value>
					</sci:arg>
					<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="Protocol Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Sticky Notes</sci:help>
					</sci:arg>
					<sci:arg name="ProtocolScale2" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Scale</sci:help>
						<sci:value>100</sci:value>
					</sci:arg>
					<sci:arg name="Protocol Options" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Options</sci:help>
						<sci:legalval>Make Shortcut by Default</sci:legalval>
						<sci:legalval>Owner Access Only</sci:legalval>
					</sci:arg>
					<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The user who registered this component.</sci:help>
						<sci:value>scitegic/dscore</sci:value>
					</sci:arg>
					<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The date this component was registered.</sci:help>
						<sci:value>Wed Nov 21 08:37:38 2012</sci:value>
					</sci:arg>
					<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:help>Local Component Identifier</sci:help>
						<sci:value>26</sci:value>
					</sci:arg>
					<sci:arg name="SubProtocolMadeLinkIntoCopy" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Subprotocol Made Link Into Copy</sci:help>
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="SubProtocolModified" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Subprotocol Modified</sci:help>
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The original path within the database of this component.</sci:help>
						<sci:value>Components\Chemistry\Utilities\Discovery Studio\Generate DS Report</sci:value>
					</sci:arg>
				</sci:component>
				<sci:protocol/>
			</sci:data>
			<sci:data object="SciTegic.Protocol.1">
				<sci:component name="HTML Report Viewer" version="2">
					<sci:arg name="Title" type="StringType" required="false" visibility="visible" multi="false">
						<sci:metaproplist>
							<sci:mpropval name="SCI_PromotedFrom" type="StringType">
								<sci:value>Title</sci:value>
							</sci:mpropval>
							<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
						</sci:metaproplist>
						<sci:help>&lt;p&gt;The optional title of the HTML document. The title is also used as part of the report&apos;s file name.&lt;/p&gt;</sci:help>
						<sci:value>Report</sci:value>
					</sci:arg>
					<sci:arg name="Advanced Options" type="GroupType" required="false" visibility="visible" multi="false">
						<sci:member>Include Format and Position CSS</sci:member>
						<sci:member>Use Default Browser</sci:member>
						<sci:member>Set IE Compatibility</sci:member>
					</sci:arg>
					<sci:arg name="Include Format and Position CSS" type="BoolType" required="false" visibility="visible" multi="false">
						<sci:metaproplist>
							<sci:mpropval name="SCI_PromotedFrom" type="StringType">
								<sci:value>Include Format and Position CSS</sci:value>
							</sci:mpropval>
							<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
						</sci:metaproplist>
						<sci:help>If set to &lt;strong&gt;False&lt;/strong&gt;, all format and position settings will be omitted from the output document, allowing them to be set using an external stylesheet specified with an &lt;a href=&quot;javascript:DoLink(&apos;{6DF7D4FA-28BC-453b-8882-DE55C7CFFBF9}&apos;)&quot;&gt;Include&lt;/a&gt;.</sci:help>
						<sci:legalval selected="true">True</sci:legalval>
						<sci:legalval>False</sci:legalval>
					</sci:arg>
					<sci:arg name="Set IE Compatibility" type="BoolType" required="false" visibility="visible" multi="false" legalvalsenforced="false" uimpl="false">
						<sci:metaproplist>
							<sci:mpropval name="SCI_PromotedFrom" type="StringType">
								<sci:value>Set IE Compatibility</sci:value>
							</sci:mpropval>
							<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
						</sci:metaproplist>
						<sci:help>&lt;p&gt;When this flag is set to True (default), IE compatibility in the report is set to IE 10 (the minimum support level for Pipeline Pilot). For most users of IE, this should provide a stable environment to view Pipeline Pilot reports.
&lt;/p&gt;
&lt;/p&gt;Switch off this setting, if necessary, to allow Internet Explorer to display content in the highest mode available. This is only required for users who view the report in Internet Explorer 11 or above and who need to enable facilities not available in IE 10 mode, such as WebGL and some HTML5/CSS features.
&lt;/p&gt;
&lt;p&gt;Note that even if you are viewing the report in another browser, other users may subsequently run the protocol or view the report in Internet Explorer, and so you may still need to set this IE Compatibility setting - but only in the rare case that your report requires something beyond the default IE 10 compatibility.
&lt;/p&gt;</sci:help>
						<sci:legalval selected="true">True</sci:legalval>
						<sci:legalval>False</sci:legalval>
					</sci:arg>
					<sci:arg name="Use Default Browser" type="BoolType" required="false" visibility="visible" multi="false" expanded="true" legalvalsenforced="false" uimpl="false">
						<sci:metaproplist>
							<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
							<sci:mpropval name="SCI_PromotedFrom" type="StringType">
								<sci:value>Browser</sci:value>
							</sci:mpropval>
						</sci:metaproplist>
						<sci:help>&lt;p&gt;
This parameter is only relevant when running the protocol in the Pipeline Pilot Professional Client.
&lt;/p&gt;
&lt;p&gt;
The value specifies whether to use your default desktop web browser to view the report. When set to False, Internet Explorer is used as a standard fallback option. If IE is your default browser, it is used in either case.
&lt;/p&gt;
&lt;p&gt;
If you use Internet Explorer, note that its behavior can be modified by switching off the &lt;i&gt;Set IE Compatibility&lt;/i&gt; parameter. This is only relevant if you are working with more recently-supported web technologies, such as WebGL, that require at least IE 11 compatibility (and also require that IE 11 is installed, of course).
&lt;/p&gt;</sci:help>
						<sci:legalval selected="true">True</sci:legalval>
						<sci:legalval>False</sci:legalval>
					</sci:arg>
					<sci:arg name="Output Mode" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>&lt;p&gt;Allows some alternative formatting and position settings to be used that may cause the HTML report output to behave and look more like the HTML generated with previous versions of Pipeline Pilot. This parameter is intended to be set on writers in protocols developed with previous versions of Pipeline Pilot where the output looks or behaves differently when run with the current version.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Always use the value of &quot;Default&quot; for new protocols or protocols under active development. The latest Reporting components may not behave correctly in HTML reports written with a non-default mode.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When set to &quot;Pipeline Pilot 7.5&quot;, this parameter rolls back some of the improvements made in the name of standards compliance and formatting consistency, including:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;The report will not include the HTML 4.01 Doctype declaration, which will cause Internet Explorer to render the report using quirks mode.&lt;/li&gt;
	&lt;li&gt;Position rules will not be strictly enforced, so Internet Explorer 6 will render borders and padding outside the specified width.&lt;/li&gt;
	&lt;li&gt;Horizontal alignment of block objects will not be supported, so you will not be able to, for example, center-align a table.&lt;/li&gt;
	&lt;li&gt;The page margins will not be set.&lt;/li&gt;
&lt;/ul&gt;
</sci:help>
						<sci:legalval selected="true">Default</sci:legalval>
						<sci:legalval>Pipeline Pilot 7.5</sci:legalval>
					</sci:arg>
					<sci:arg name="Tempfiles" type="StringType" required="false" visibility="visible" multi="false" implbase="{17001C74-63CE-4B4B-B37C-F0EAA19CE4AA}" uimpl="true">
						<sci:help>Lists the set of temporary files which will be converted by the network to true temporary file names</sci:help>
					</sci:arg>
					<sci:arg name="DeclareLocal" type="StringType" required="false" visibility="visible" multi="false" implbase="{17001C74-63CE-4B4B-B37C-F0EAA19CE4AA}" uimpl="true">
						<sci:help>Lists a set of properties (without the @) to be created on the property list for this protocol.
Other properties are created on the global property list
and so are accessible from all protocols.</sci:help>
						<sci:value>ServerFilePath</sci:value>
					</sci:arg>
					<sci:arg name="RunToCompletion" type="BoolType" required="false" visibility="visible" multi="false" implbase="{17001C74-63CE-4B4B-B37C-F0EAA19CE4AA}" uimpl="true">
						<sci:help>When the network is run, whether we process once or until done for each process call</sci:help>
						<sci:legalval>True</sci:legalval>
						<sci:legalval selected="true">False</sci:legalval>
					</sci:arg>
					<sci:arg name="Internet Explorer" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>The location for Internet Explorer</sci:help>
						<sci:value>internetexplorer.application</sci:value>
					</sci:arg>
					<sci:arg name="Chrome" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
						<sci:help>The location for Chrome</sci:help>
						<sci:value>&quot;C:\Program Files (x86)\Google\Chrome\Application\chrome.exe&quot;</sci:value>
					</sci:arg>
					<sci:arg name="Firefox" type="StringType" required="false" visibility="visible" multi="false" expanded="true" uimpl="true">
						<sci:help>The location for Firefox</sci:help>
						<sci:value>&quot;C:\Program Files (x86)\Mozilla Firefox\firefox.exe&quot;</sci:value>
					</sci:arg>
					<sci:arg name="ComponentAttributes" type="StringType" required="false" visibility="hidden" multi="true">
						<sci:help>Component Attributes</sci:help>
						<sci:legalval selected="true">ComponentTakesInput</sci:legalval>
						<sci:legalval>ComponentReturnsPass</sci:legalval>
						<sci:legalval>ComponentReturnsFail</sci:legalval>
						<sci:legalval>ComponentRunsLocal</sci:legalval>
					</sci:arg>
					<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval selected="true">Halt</sci:legalval>
						<sci:legalval>Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="CustomErrorText" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="ProcessingOrder" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>DrainTopDown</sci:value>
					</sci:arg>
					<sci:arg name="Protocol Options" type="StringType" required="false" visibility="nevershow" multi="true">
						<sci:help>Protocol Options</sci:help>
						<sci:legalval selected="true">Make Shortcut by Default</sci:legalval>
						<sci:legalval>Owner Access Only</sci:legalval>
					</sci:arg>
					<sci:arg name="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The user who registered this component.</sci:help>
						<sci:value>scitegic/report</sci:value>
					</sci:arg>
					<sci:arg name="RegistrationDate" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The date this component was registered.</sci:help>
						<sci:value>Thu Oct 22 23:43:53 2015</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>HTML Report Viewer</sci:value>
					</sci:arg>
					<sci:arg name="ProtocolAutoLayout" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol AutoLayout</sci:help>
						<sci:value>1</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisabled" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
						<sci:value>REPORTVIEWERNODE</sci:value>
					</sci:arg>
					<sci:arg name="ComponentRevision" type="LongType" required="true" visibility="nevershow" multi="false">
						<sci:help>Component Revision</sci:help>
						<sci:value>100</sci:value>
					</sci:arg>
					<sci:arg name="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The component this component is based upon.</sci:help>
						<sci:value>SubProtocol</sci:value>
					</sci:arg>
					<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>{0952D9DF-F95C-4D43-826F-C70450811DD8}</sci:value>
					</sci:arg>
					<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>390 -2285</sci:value>
					</sci:arg>
					<sci:arg name="ByReference" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>By Ref</sci:help>
						<sci:value>1</sci:value>
					</sci:arg>
					<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
						<sci:value>100</sci:value>
						<sci:value>Displays the results of a reporting protocol in HTML format</sci:value>
						<sci:value>&lt;p&gt;This component accepts reporting objects as input (e.g., tables, text and images), and displays the output as an HTML file in Internet Explorer.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Use the &lt;a href=&quot;javascript:DoLink(&apos;{A28703A7-E701-4D34-9A93-1D24AC2039CC}&apos;)&quot;&gt;Page&lt;/a&gt; component to set the report&apos;s margins, borders, padding, and background formatting, or to specify HTML attributes on the report&apos;s &lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt; tag.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;See Also:&lt;/b&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;javascript:DoLink(&apos;sciapps/scitegic/report/docs/reporting_basic.pdf&apos;)&quot;&gt;Report Design Essentials&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;javascript:DoLink(&apos;sciapps/scitegic/report/docs/reporting_charts.pdf&apos;)&quot;&gt;Chart Design&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;javascript:DoLink(&apos;sciapps/scitegic/reportadv/docs/reportadv_interactive.pdf&apos;)&quot;&gt;Interactive Reporting and Form Design&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</sci:value>
						<sci:value>Generic</sci:value>
						<sci:value>This component accepts reporting objects as input.</sci:value>
						<sci:value>None</sci:value>
						<sci:value/>
						<sci:value>None</sci:value>
						<sci:value/>
					</sci:arg>
					<sci:arg name="Component Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false"/>
					<sci:arg name="Protocol Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Sticky Notes</sci:help>
					</sci:arg>
					<sci:arg name="RegistrationVersion" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The server version when this component was registered</sci:help>
						<sci:value>16.1.0.1089</sci:value>
					</sci:arg>
					<sci:arg name="ProtocolScale2" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Scale</sci:help>
						<sci:value>100</sci:value>
					</sci:arg>
					<sci:arg name="ProtocolScale" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:help>Protocol Scale</sci:help>
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
						<sci:help>Local Component Identifier</sci:help>
						<sci:value>27</sci:value>
					</sci:arg>
					<sci:arg name="SubProtocolMadeLinkIntoCopy" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Subprotocol Made Link Into Copy</sci:help>
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="IE Compatibility" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>Output contains default meta header &amp;lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=8&quot;&amp;gt;. This parameter can set different IE version. Valid value could be major version number of IE like &quot;7&quot;, &quot;9&quot; or &quot;EmulateIE7&quot;, &quot;EmulateIE8&quot;, etc.</sci:help>
					</sci:arg>
					<sci:arg name="SubProtocolModified" type="BoolType" required="false" visibility="nevershow" multi="false">
						<sci:help>Subprotocol Modified</sci:help>
						<sci:value>0</sci:value>
					</sci:arg>
					<sci:arg name="Component Path" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:help>The original path within the database of this component.</sci:help>
						<sci:value>Components\Reporting and Visualization\Reporting\Viewers\HTML Report Viewer</sci:value>
					</sci:arg>
				</sci:component>
				<sci:protocol/>
			</sci:data>
			<sci:connectid from="42" to="43" type="true"/>
			<sci:connectid from="29" to="42" type="true"/>
			<sci:connectid from="29" to="19" type="false"/>
			<sci:connectid from="5" to="29" type="true"/>
			<sci:connectid from="5" to="9" type="true"/>
			<sci:connectid from="30" to="20" type="false"/>
			<sci:connectid from="1" to="2" type="true"/>
			<sci:connectid from="2" to="3" type="true"/>
			<sci:connectid from="3" to="4" type="true"/>
			<sci:connectid from="4" to="5" type="true"/>
			<sci:connectid from="4" to="30" type="true"/>
			<sci:connectid from="4" to="39" type="true"/>
			<sci:connectid from="4" to="40" type="false"/>
			<sci:connectid from="26" to="27" type="true"/>
			<sci:version iVal="1"/>
		</sci:protocol>
	</sci:dbitem>
<!-- Exported protocol -->
<sci:component name="8.0 Protocol Warning" version="2">
<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
<sci:help>Component Icon</sci:help>
<sci:value>PROTOCOLNODE</sci:value>
</sci:arg>
<sci:arg name="Protocol Sticky Notes" type="StringType" required="false" visibility="nevershow" multi="false">
<sci:help>Protocol Sticky Notes</sci:help>
<sci:value>%VERSION 3%</sci:value>
<sci:value>400 -219 1222 221</sci:value>
<sci:value>250 120 20</sci:value>
<sci:value>WARNING! This is a Pipeline Pilot protocol written in version 8.0 or later. It contains features that are not supported in earlier versions of Pipeline Pilot.</sci:value>
</sci:arg>
</sci:component>
</sci:data>
