<?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="RCSB Structure Search (JSON)" version="2">
			<sci:arg name="ID" type="StringType" required="false" visibility="visible" multi="false">
				<sci:metaproplist>
					<sci:propval name="SCI_PromotionRenameRule" ishidden="true">UsingParent</sci:propval>
					<sci:mpropval name="SCI_PromotedFrom" ishidden="true" type="StringType">
						<sci:value>ID</sci:value>
					</sci:mpropval>
				</sci:metaproplist>
				<sci:help>&lt;p&gt;Search the PDB for known identifiers (IDs). You can do various different types of ID searches by changing the &lt;i&gt;ID Type&lt;/i&gt; parameter. Four-letter PDB IDs are the default.&lt;/p&gt;
&lt;p&gt;For all ID types you can type in multiple space or comma separated IDs to search for several IDs at once.&lt;/p&gt;</sci:help>
				<sci:member>ID Type</sci:member>
				<sci:enabledscript>Parameter(&apos;RCSB JSON&apos;) eq &apos;&apos;</sci:enabledscript>
			</sci:arg>
			<sci:arg name="ID Type" type="StringType" required="false" visibility="visible" multi="false">
				<sci:metaproplist>
					<sci:mpropval name="SCI_PromotedFrom" ishidden="true" type="StringType">
						<sci:value>ID Type</sci:value>
					</sci:mpropval>
				</sci:metaproplist>
				<sci:help>&lt;p&gt;You can search for a number of different ID types:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;b&gt;PDB&lt;/b&gt;: Four letter PDB ID, e.g. &quot;1crn&quot;.&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;PubMed&lt;/b&gt;: Numeric PubMed ID (PMID), e.g. &quot;12929391&quot;&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;UniProt&lt;/b&gt;: Universal Protein Accession ID, combining Swiss-Prot, TrEMBL and PIR databases, e.g. &quot;P80280&quot;.&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;Chemical Component&lt;/b&gt;: PDB chemical component, e.g. &quot;RSD&quot; or &quot;RET&quot; or &quot;ALA&quot; or &quot;TYS&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All types allow multiple IDs separated by space, comma or newline.&lt;/p&gt;</sci:help>
				<sci:legalval selected="true">PDB</sci:legalval>
				<sci:legalval>PubMed</sci:legalval>
				<sci:legalval>UniProt</sci:legalval>
				<sci:legalval>Chemical Component</sci:legalval>
			</sci:arg>
			<sci:arg name="Keywords" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
				<sci:metaproplist>
					<sci:propval name="SCI_PromotionRenameRule" ishidden="true">UsingParent</sci:propval>
					<sci:mpropval name="SCI_PromotedFrom" ishidden="true" type="StringType">
						<sci:value>Keywords</sci:value>
					</sci:mpropval>
				</sci:metaproplist>
				<sci:help>&lt;p&gt;Enter a keyword, phrase or series of keywords. Use the &lt;i&gt;Search Scope&lt;/i&gt; to control what attributes to search and the &lt;i&gt;Operator&lt;/i&gt; parameter to control whether to match the whole phrase or individual words.&lt;/p&gt;
</sci:help>
				<sci:member>Keywords Operator</sci:member>
				<sci:member>Keywords Search Scope</sci:member>
				<sci:enabledscript>Parameter(&apos;RCSB JSON&apos;) eq &apos;&apos;</sci:enabledscript>
			</sci:arg>
			<sci:arg name="Keywords Search Scope" type="StringType" required="false" visibility="visible" multi="false">
				<sci:metaproplist>
					<sci:mpropval name="SCI_PromotedFrom" ishidden="true" type="StringType">
						<sci:value>Keywords Search Scope</sci:value>
					</sci:mpropval>
				</sci:metaproplist>
				<sci:help>&lt;p&gt;Specify whether to search the full text or specific fields.&lt;/p&gt;
&lt;p&gt;The options are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Structure Attributes&lt;/strong&gt;: searches the &lt;code&gt;struct_keywords.text,struct.title&lt;/code&gt; and &lt;code&gt;citation.title&lt;/code&gt; attributes. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Full Text&lt;/strong&gt;: searches the full text&lt;/li&gt;
&lt;/ul&gt;</sci:help>
				<sci:legalval selected="true">Structure Attributes</sci:legalval>
				<sci:legalval>Full Text</sci:legalval>
			</sci:arg>
			<sci:arg name="Keywords Operator" type="StringType" required="false" visibility="visible" multi="false">
				<sci:metaproplist>
					<sci:mpropval name="SCI_PromotedFrom" ishidden="true" type="StringType">
						<sci:value>Keywords Operator</sci:value>
					</sci:mpropval>
				</sci:metaproplist>
				<sci:help>&lt;ul&gt;
	&lt;li&gt;&lt;b&gt;contains_words&lt;/b&gt;: Any given word can match for a hit.&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;contains_phrase&lt;/b&gt;: The whole given phrase must match for a hit.&lt;/li&gt;
&lt;/ul&gt;</sci:help>
				<sci:enabledscript>Parameter(&apos;RCSB JSON&apos;) eq &apos;&apos; /*and Parameter(&apos;Keywords&apos;) ne &apos;&apos;*/</sci:enabledscript>
				<sci:legalval>contains_words</sci:legalval>
				<sci:legalval selected="true">contains_phrase</sci:legalval>
			</sci:arg>
			<sci:arg name="Ligand Query" type="URLType" required="false" visibility="visible" multi="false" legalvalsenforced="false" uimpl="false">
				<sci:help>&lt;p&gt;Specify an MDL MOL/SD file that contains a substructure query.&lt;/p&gt; 
&lt;p&gt;In Discovery Studio, select one of the visible molecules from a list.&lt;/p&gt;
&lt;p&gt;Query atoms are not currently supported and Hydrogen atoms are ignored.&lt;/p&gt;

&lt;!-- &lt;DSClientParameterType=StructureassdType&gt; --&gt;
&lt;!-- &lt;DSNoAutoFill&gt; --&gt;
</sci:help>
				<sci:member>Align to Query</sci:member>
				<sci:member>Match Type</sci:member>
				<sci:enabledscript>Parameter(&apos;RCSB JSON&apos;) eq &apos;&apos;</sci:enabledscript>
			</sci:arg>
			<sci:arg name="Match Type" type="StringType" required="false" visibility="visible" multi="false">
				<sci:metaproplist>
					<sci:propval name="SCI_PromotionRenameRule" ishidden="true">UsingParent</sci:propval>
					<sci:mpropval name="SCI_PromotedFrom" ishidden="true" type="StringType">
						<sci:value>Match Type</sci:value>
					</sci:mpropval>
				</sci:metaproplist>
				<sci:help>&lt;p&gt;Exact or qualitative substructure searches. Please note that the searches depend on the input ligand structure having bond orders and formal charges correctly assigned. The options are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Exact&lt;/strong&gt;: Uses the InChIKey descriptor to find exact matches.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;graph-relaxed&lt;/strong&gt;: Graph matching comparison using element, formal charge and bond order. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;graph-relaxed-stereo&lt;/strong&gt;: Graph matching comparison using element, formal charge, bond order and atom/bond stereochemistry. &lt;/li&gt; 
&lt;li&gt;&lt;strong&gt;fingerprint-similarity&lt;/strong&gt;: TREE and MACCS.&lt;/li&gt;
&lt;/ul&gt;</sci:help>
				<sci:enabledscript>Parameter(&apos;RCSB JSON&apos;) eq &apos;&apos;</sci:enabledscript>
				<sci:legalval selected="true">Exact</sci:legalval>
				<sci:legalval>graph-relaxed</sci:legalval>
				<sci:legalval>graph-relaxed-stereo</sci:legalval>
				<sci:legalval>fingerprint-similarity</sci:legalval>
			</sci:arg>
			<sci:arg name="Align to Query" type="BoolType" required="false" visibility="visible" multi="false" legalvalsenforced="false">
				<sci:help>Align the structures to the Ligand Query, if they contain a matching substructure. &lt;b&gt;AlignmentRMS&lt;/b&gt; (&amp;Aring;) is added to each aligned structure.</sci:help>
				<sci:legalval selected="true">True</sci:legalval>
				<sci:legalval>False</sci:legalval>
			</sci:arg>
			<sci:arg name="Experimental Method" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
				<sci:metaproplist>
					<sci:mpropval name="SCI_PromotedFrom" type="StringType">
						<sci:value>Experimental Method</sci:value>
					</sci:mpropval>
					<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
				</sci:metaproplist>
				<sci:help>&lt;p&gt;Method used to determine the structure. Most structures in the PDB have primary data associated with the experiment and therefore it sometimes useful to search based on this criteria.  With the exception of NMR data where retrain coordinates are supplied, most associated data are in the form of structure factors. Valid options are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;ELECTRON CRYSTALLOGRAPHY&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ELECTRON MICROSCOPY&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;EPR&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;FIBER DIFFRACTION&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;FLUORESCENCE TRANSFER&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;INFRARED SPECTROSCOPY&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NEUTRON DIFFRACTION&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;POWDER DIFFRACTION&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SOLID-STATE NMR&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SOLUTION NMR&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SOLUTION SCATTERING&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;THEORETICAL MODEL&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;X-RAY DIFFRACTION&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;</sci:help>
				<sci:member>Has Experimental Data</sci:member>
				<sci:member>Resolution</sci:member>
				<sci:enabledscript>Parameter(&apos;RCSB JSON&apos;) eq &apos;&apos;</sci:enabledscript>
				<sci:legalval/>
				<sci:legalval>ELECTRON CRYSTALLOGRAPHY</sci:legalval>
				<sci:legalval>ELECTRON MICROSCOPY</sci:legalval>
				<sci:legalval>EPR</sci:legalval>
				<sci:legalval>FIBER DIFFRACTION</sci:legalval>
				<sci:legalval>FLUORESCENCE TRANSFER</sci:legalval>
				<sci:legalval>INFRARED SPECTROSCOPY</sci:legalval>
				<sci:legalval>NEUTRON DIFFRACTION</sci:legalval>
				<sci:legalval>POWDER DIFFRACTION</sci:legalval>
				<sci:legalval>SOLID-STATE NMR</sci:legalval>
				<sci:legalval>SOLUTION NMR</sci:legalval>
				<sci:legalval>SOLUTION SCATTERING</sci:legalval>
				<sci:legalval>THEORETICAL MODEL</sci:legalval>
				<sci:legalval>X-RAY DIFFRACTION</sci:legalval>
			</sci:arg>
			<sci:arg name="Has Experimental Data" type="StringType" required="false" visibility="visible" multi="false" expanded="true">
				<sci:metaproplist>
					<sci:mpropval name="SCI_PromotedFrom" type="StringType">
						<sci:value>Has Experimental Data</sci:value>
					</sci:mpropval>
				</sci:metaproplist>
				<sci:help>Filter results based on whether experimental data is provided. This is most commonly used to find X-ray structures which have structure factors. If blank, no such filtering is performed. Note this can be used without specifying an experimental method.</sci:help>
				<sci:enabledscript>Parameter(&apos;RCSB JSON&apos;) eq &apos;&apos;</sci:enabledscript>
				<sci:legalval/>
				<sci:legalval>True</sci:legalval>
				<sci:legalval>False</sci:legalval>
			</sci:arg>
			<sci:arg name="Resolution" type="GroupType" required="false" visibility="visible" multi="false" legalvalsenforced="false" uimpl="false">
				<sci:metaproplist>
					<sci:mpropval name="SCI_PromotedFrom" type="StringType">
						<sci:value>Resolution</sci:value>
					</sci:mpropval>
				</sci:metaproplist>
				<sci:help>The X-ray resolution (&amp;Aring;). The smallest value for the interplanar spacings for the reflection data used in the refinement.</sci:help>
				<sci:member>Resolution Lower Bound</sci:member>
				<sci:member>Resolution Upper Bound</sci:member>
				<sci:enabledscript>Parameter(&apos;RCSB JSON&apos;) eq &apos;&apos;</sci:enabledscript>
			</sci:arg>
			<sci:arg name="Resolution Lower Bound" type="DoubleType" required="false" visibility="visible" multi="false" uimpl="false">
				<sci:metaproplist>
					<sci:mpropval name="SCI_PromotedFrom" type="StringType">
						<sci:value>Resolution Lower Bound</sci:value>
					</sci:mpropval>
				</sci:metaproplist>
				<sci:help>Results will all have a resolution equal to or higher than this value. Setting this value will filter out higher quality structures.</sci:help>
				<sci:validscript>SetInvalidDetails(&quot;Parameter must be blank or a positive number&quot;);
trim(Parameter()) eq &quot;&quot; or Parameter() &gt; 0;</sci:validscript>
			</sci:arg>
			<sci:arg name="Resolution Upper Bound" type="DoubleType" required="false" visibility="visible" multi="false" uimpl="false">
				<sci:metaproplist>
					<sci:mpropval name="SCI_PromotedFrom" type="StringType">
						<sci:value>Resolution Upper Bound</sci:value>
					</sci:mpropval>
				</sci:metaproplist>
				<sci:help>Results will all have a resolution equal to or lower than this value. Setting this value will filter out lower quality structures.</sci:help>
				<sci:validscript>SetInvalidDetails(&quot;Parameter must be blank or a positive number&quot;);
trim(Parameter()) eq &quot;&quot; or Parameter() &gt; 0;</sci:validscript>
			</sci:arg>
			<sci:arg name="Release Date" type="GroupType" required="false" visibility="visible" multi="false" legalvalsenforced="false" uimpl="false">
				<sci:metaproplist>
					<sci:mpropval name="SCI_PromotedFrom" type="StringType">
						<sci:value>Release Date</sci:value>
					</sci:mpropval>
					<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
				</sci:metaproplist>
				<sci:help>Search on the date the structure was released  to the public by the depositor.</sci:help>
				<sci:member>Release Date Earliest</sci:member>
				<sci:member>Release Date Latest</sci:member>
				<sci:enabledscript>Parameter(&apos;RCSB JSON&apos;) eq &apos;&apos;</sci:enabledscript>
			</sci:arg>
			<sci:arg name="Release Date Earliest" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
				<sci:metaproplist>
					<sci:mpropval name="SCI_PromotedFrom" type="StringType">
						<sci:value>Release Date Earliest</sci:value>
					</sci:mpropval>
				</sci:metaproplist>
				<sci:help>&lt;p&gt;Search for structures deposited after this date. The date can be provided in many different formats. If the date is not fully specified, missing fields will be filled based on today&apos;s date. It is the user&apos;s responsibility to ensure there is no ambiguity; if a single number is entered then it will be interpreted as a month if it lies between 1-12, as a day if between 13-31 and otherwise as a year.&lt;/p&gt;
&lt;p&gt;The following table lists the meaning of several different dates if the search was performed on August 17, 2009.&lt;/p&gt;
&lt;table&gt;&lt;tr&gt;&lt;th&gt;Date&lt;/th&gt;&lt;th&gt;Meaning&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/11/12&lt;/td&gt;&lt;td&gt;November 12, 2008&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;February&lt;/td&gt;&lt;td&gt;February 17, 2009&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2007&lt;/td&gt;&lt;td&gt;August 17, 2007&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;31st&lt;/td&gt;&lt;td&gt;August 31, 2009&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
</sci:help>
				<sci:validscript>#valid := true;
if(Parameter() ne &quot;&quot;) then
	#foo := Date(Parameter());
	SetInvalidDetails(&apos;&quot;&apos; . Parameter() . 
		   &apos;&quot; cannot be converted to a date.&apos;);
	if(DateFieldIsDefined(#foo, 1) or 
		DateFieldIsDefined(#foo, 2) or 
		DateFieldIsDefined(#foo, 3)) then
		/* valid */
	else
		#valid := false;
	end if;
end if;

#valid;</sci:validscript>
			</sci:arg>
			<sci:arg name="Release Date Latest" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
				<sci:metaproplist>
					<sci:mpropval name="SCI_PromotedFrom" type="StringType">
						<sci:value>Release Date Latest</sci:value>
					</sci:mpropval>
				</sci:metaproplist>
				<sci:help>&lt;p&gt;Search for structures deposited before this date. The date can be provided in many different formats. If the date is not fully specified, missing fields will be filled based on today&apos;s date. It is the user&apos;s responsibility to ensure there is no ambiguity; if a single number is entered then it will be interpreted as a month if it lies between 1-12, as a day if between 13-31 and otherwise as a year.&lt;/p&gt;
&lt;p&gt;The following table lists the meaning of several different dates if the search was performed on August 17, 2009.&lt;/p&gt;
&lt;table&gt;&lt;tr&gt;&lt;th&gt;Date&lt;/th&gt;&lt;th&gt;Meaning&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/11/12&lt;/td&gt;&lt;td&gt;November 12, 2008&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;February&lt;/td&gt;&lt;td&gt;February 17, 2009&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2007&lt;/td&gt;&lt;td&gt;August 17, 2007&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;31st&lt;/td&gt;&lt;td&gt;August 31, 2009&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</sci:help>
				<sci:validscript>#valid := true;
if(Parameter() ne &quot;&quot;) then
	#foo := Date(Parameter());
	SetInvalidDetails(&apos;&quot;&apos; . Parameter() . 
		   &apos;&quot; cannot be converted to a date.&apos;);
	if(DateFieldIsDefined(#foo, 1) or 
		DateFieldIsDefined(#foo, 2) or 
		DateFieldIsDefined(#foo, 3)) then
		/* valid */
	else
		#valid := false;
	end if;
end if;

#valid;</sci:validscript>
			</sci:arg>
			<sci:arg name="Author Name" type="StringType" required="false" 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>Author Name</sci:value>
					</sci:mpropval>
				</sci:metaproplist>
				<sci:help>&lt;p&gt;The name of an author. Format is &quot;Lastname, Initials.&quot;. Multiple authors can be included separated by semicolon, e.g., &quot;Peat, T.S.;Newman, J.&quot;&lt;/p&gt;

&lt;p&gt;The search uses exact matching, so it is necessary to specify the name in the form stored in the RCSB database, including punctuation, whitespace and initials. If multiple authors are specified then only hits which refer to all of them will be returned. &lt;/p&gt;</sci:help>
				<sci:enabledscript>Parameter(&apos;RCSB JSON&apos;) eq &apos;&apos;</sci:enabledscript>
			</sci:arg>
			<sci:arg name="Maximum" type="LongType" required="false" visibility="visible" multi="false">
				<sci:help>Maximum number of hits to return. Note that some PDB files contain multiple models, which are returned as separate structures. Use the &lt;i&gt;First Model Only&lt;/i&gt; parameter, which is in the &lt;i&gt;Advanced&lt;/i&gt; group, to control whether all models for such hits should be returned or just the first.</sci:help>
				<sci:validscript>SetInvalidDetails(&apos;Parameter must be a positive number&apos;);
Parameter() &gt; 0;</sci:validscript>
				<sci:value>25</sci:value>
			</sci:arg>
			<sci:arg name="Advanced" type="StringType" required="false" visibility="visible" multi="false">
				<sci:metaproplist>
					<sci:mpropval name="SCI_PromotedFrom" type="StringType">
						<sci:value>Advanced</sci:value>
					</sci:mpropval>
					<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
				</sci:metaproplist>
				<sci:help>Contains less commonly used parameters.</sci:help>
				<sci:member>SCOP Classification</sci:member>
				<sci:member>Motif</sci:member>
				<sci:member>RCSB JSON</sci:member>
				<sci:member>First Model Only</sci:member>
			</sci:arg>
			<sci:arg name="SCOP Classification" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
				<sci:metaproplist>
					<sci:mpropval name="SCI_PromotedFrom" type="StringType">
						<sci:value>SCOP Classification</sci:value>
					</sci:mpropval>
					<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
				</sci:metaproplist>
				<sci:help>Structural Classification of Proteins (SCOP) Classification Index. SCOP is a classification scheme for protein folds, useful in determining common structures where sequences may not be similar. Filtering by SCOP index allows you to retrieve hits in the same structural class as a protein of interest.

Currently this requires the SCOP index number. You can find the number you need by searching http://scop.berkeley.edu/. It is the number in square brackets.</sci:help>
				<sci:enabledscript>Parameter(&apos;RCSB JSON&apos;) eq &apos;&apos;</sci:enabledscript>
			</sci:arg>
			<sci:arg name="Motif" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
				<sci:metaproplist>
					<sci:mpropval name="SCI_PromotedFrom" type="StringType">
						<sci:value>Motif</sci:value>
					</sci:mpropval>
					<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
				</sci:metaproplist>
				<sci:help>Search for a given sequence motif. The search allows for three types of patterns, simple, prosite or regex.</sci:help>
				<sci:member>Pattern Type</sci:member>
				<sci:member>Sequence Type</sci:member>
				<sci:enabledscript>Parameter(&apos;RCSB JSON&apos;) eq &apos;&apos;</sci:enabledscript>
			</sci:arg>
			<sci:arg name="Pattern Type" type="StringType" required="false" visibility="visible" multi="false">
				<sci:metaproplist>
					<sci:mpropval name="SCI_PromotedFrom" type="StringType">
						<sci:value>Pattern Type</sci:value>
					</sci:mpropval>
				</sci:metaproplist>
				<sci:help>&lt;ul&gt;
	&lt;li&gt;&lt;b&gt;simple&lt;/b&gt;: Exact match.&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;prosite&lt;/b&gt;: Looks for a Prosite pattern. See https://prosite.expasy.org/scanprosite/scanprosite_doc.html#mo_motifs for details.&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;regex&lt;/b&gt;: Evaluates the pattern as a regular expression to find hits.&lt;/li&gt;
&lt;/ul&gt;</sci:help>
				<sci:enabledscript>Parameter(&apos;RCSB JSON&apos;) eq &apos;&apos; /*and Parameter(&apos;Motif&apos;) ne &apos;&apos;*/</sci:enabledscript>
				<sci:legalval selected="true">prosite</sci:legalval>
				<sci:legalval>regex</sci:legalval>
				<sci:legalval>simple</sci:legalval>
			</sci:arg>
			<sci:arg name="Sequence Type" type="StringType" required="false" visibility="visible" multi="false">
				<sci:metaproplist>
					<sci:mpropval name="SCI_PromotedFrom" type="StringType">
						<sci:value>Sequence Type</sci:value>
					</sci:mpropval>
				</sci:metaproplist>
				<sci:help>This parameter controls the target sequence type of the motif query. Either protein (pdb_protein_sequence), DNA (pdb_dna_sequence) or RNA (pdb_rna_sequence).</sci:help>
				<sci:enabledscript>Parameter(&apos;RCSB JSON&apos;) eq &apos;&apos; /*and Parameter(&apos;Motif&apos;) ne &apos;&apos;*/</sci:enabledscript>
				<sci:legalval selected="true">pdb_protein_sequence</sci:legalval>
				<sci:legalval>pdb_rna_sequence</sci:legalval>
				<sci:legalval>pdb_dna_sequence</sci:legalval>
			</sci:arg>
			<sci:arg name="RCSB JSON" type="TextType" required="false" visibility="visible" multi="false" legalvalsenforced="false" uimpl="false">
				<sci:metaproplist>
					<sci:mpropval name="SCI_PromotedFrom" type="StringType">
						<sci:value>RCSB JSON</sci:value>
					</sci:mpropval>
					<sci:propval name="SCI_PromotionRenameRule">UsingParent</sci:propval>
				</sci:metaproplist>
				<sci:help>&lt;p&gt;Search using existing JSON file/data. These files need to be written according to the documentation on the RCSB PDB website that provides this search. See https://search.rcsb.org/ for details.&lt;/p&gt;
&lt;p&gt;In order for the hits to be returned in the correct form for retrieval of the structures, you should include the term: &lt;/p&gt;
&lt;pre&gt;
 &quot;request_options&quot; {
     &quot;return_all_hits&quot;: true}
&lt;/pre&gt;
&lt;p&gt;and the return_type must be set to &lt;code&gt;&quot;entry&quot;&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;This option is mutually exclusive to all of the other search types.&lt;/p&gt;</sci:help>
			</sci:arg>
			<sci:arg name="First Model Only" type="BoolType" required="true" visibility="visible" multi="false" legalvalsenforced="false">
				<sci:help>Specifies whether to return only the first structure from PDB files containing multiple models.</sci:help>
				<sci:legalval selected="true">True</sci:legalval>
				<sci:legalval>False</sci:legalval>
			</sci:arg>
			<sci:arg name="Sequence Similarity Filter" type="StringType" required="false" visibility="visible" multi="false" uimpl="true">
				<sci:help>&lt;p&gt;Sequence similarity filter used to filter results from all other criteria. If no other criteria are defined this filter will not be applied.&lt;/p&gt;

&lt;p&gt;The CD-HIT algorithm is used to remove structures with similar sequences, up to the level of identity specified.
In most cases, the selected subset will contain far fewer structures than the complete result set. However, the following caveats should be kept in mind:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sequence homology is defined on a chain basis, but results are returned on a structure basis.&lt;/li&gt;
&lt;li&gt;Many structures in the PDB contain multiple protein chains, or even hybrids of DNA and protein chains.&lt;/li&gt;
&lt;li&gt;Sequence homology is only assessed for protein chains.&lt;/li&gt;
&lt;/ul&gt;</sci:help>
				<sci:enabledscript>Parameter(&apos;RCSB JSON&apos;) eq &apos;&apos;</sci:enabledscript>
				<sci:legalval/>
				<sci:legalval>95</sci:legalval>
				<sci:legalval>90</sci:legalval>
				<sci:legalval>70</sci:legalval>
				<sci:legalval>50</sci:legalval>
				<sci:legalval>40</sci:legalval>
				<sci:legalval>30</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;

&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="Protocol Form" type="ProtocolType" required="false" visibility="visible" multi="false" uimpl="true">
				<sci:help>&lt;p&gt;The path to a protocol that will render an HTML user interface for this protocol.  This optional parameter is used by Web Port to provide a custom user interface for a protocol.&lt;/p&gt;</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="Run On Grid" type="BoolType" required="false" visibility="visible" multi="false" uimpl="true">
				<sci:help>The Run On Grid parameter tells the server to run the protocol on the grid engine if SES is configured to run with grid integration.</sci:help>
				<sci:member>Queue Name</sci:member>
				<sci:legalval>True</sci:legalval>
				<sci:legalval selected="true">False</sci:legalval>
			</sci:arg>
			<sci:arg name="Queue Name" type="StringType" required="false" visibility="visible" multi="false" legalvalsenforced="false" uimpl="true">
				<sci:help>The Queue Name allows you to specify the name of the queue on the grid engine to submit the job to. Leave blank to specify the default queue.</sci:help>
				<sci:enabledscript>parameter(&apos;Run On Grid&apos;);</sci:enabledscript>
			</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>Halt</sci:legalval>
				<sci:legalval selected="true">Fail</sci:legalval>
				<sci:legalval>Pass</sci:legalval>
			</sci:arg>
			<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
				<sci:legalval>Halt</sci:legalval>
				<sci:legalval selected="true">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="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 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>1225 -51 416 177</sci:value>
				<sci:value>255 255 0</sci:value>
				<sci:value>Take DS Ligand Query and save as MOL</sci:value>
				<sci:value>961 -470 417 177</sci:value>
				<sci:value>255 255 0</sci:value>
				<sci:value>Search the database and save the hit list</sci:value>
				<sci:value>2017 -1020 417 177</sci:value>
				<sci:value>255 255 0</sci:value>
				<sci:value>Download the hits and align if desired</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="WebExports" type="StringType" required="false" visibility="nevershow" multi="false" uimpl="true">
				<sci:help>&lt;p&gt;A comma delimited list of global properties which will be automatically 
exported if this protocol is published as a web service.&lt;/p&gt;

&lt;p&gt;Each global property in the list is created with an empty value at the start of the protocol run.&lt;/p&gt;</sci:help>
			</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="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 the RCSB structure database with JSON API</sci:value>
				<sci:value>&lt;p&gt;Searches the Research Collaboratory for Structural Bioinformatics (RCSB) Protein Data Bank (PDB) structure database.&lt;/p&gt;

&lt;p&gt;You can perform advanced searches of the RCSB with a variety of criteria:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;ID&lt;/b&gt;: A number of different &lt;i&gt;ID Type&lt;/i&gt;s are allowed, including PDB and PubMed.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Keyword&lt;/b&gt;: Such as &quot;P38 Map Kinase&quot;.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Ligand&lt;/b&gt;: Search for ligands using fingerprint or qualitative graph matching criteria.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Experimental Method&lt;/b&gt;: e.g. &quot;X-RAY&quot;, &quot;SOLUTION NMR&quot;.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Resolution&lt;/b&gt;: To filter out low (or high) resolution structures.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Release Date&lt;/b&gt;: The date the structures were released.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Author Name&lt;/b&gt;: Find structures deposited by a particular author.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SCOP Classification&lt;/b&gt;: Structural classification.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Motif&lt;/b&gt;: Sequence motifs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If searching for a ligand, the results can be aligned to the ligand query&lt;/p&gt;

&lt;p&gt;Alternatively, you can search using the &lt;i&gt;RCSB JSON&lt;/i&gt; advanced parameter. The query needs to be written according to the documentation on the RCSB PDB website that provides this search, and must specify the return_type as &quot;entry&quot;. See https://search.rcsb.org/ for details. &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="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>Thu Oct  8 21:30:33 2020</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.2.0.2533</sci:value>
			</sci:arg>
			<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
				<sci:value>RCSB Structure Search</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="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="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="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
				<sci:value>{B7A142B7-3C96-479C-B572-A2B6DE23AE5B}</sci:value>
			</sci:arg>
			<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
				<sci:value>88 -50</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\General Purpose\RCSB Structure Search (JSON)</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" 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>if(@&apos;Ligand Query&apos; is defined and @&apos;Ligand Query&apos; ne &apos;&apos; and trim(@&apos;RCSB JSON&apos; eq &quot;&quot;)) then
	#status := true;
else
	@&apos;Ligand Query File&apos; := &apos;&apos;;
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:value>@&apos;Ligand Query File&apos; := @JobDir .&apos;/ligandQuery.mol&apos;;
#status := false;
@NumberOfHits := 0;</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>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="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>Ligand Query?</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>None</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">7.0.0.35</sci:propval>
				</sci:proplist>
			</sci:data>
			<sci:data object="SciTegic.Protocol.1">
				<sci:component name="DS Molecule Reader" version="2">
					<sci:arg name="Source" type="URLType" required="true" visibility="visible" multi="false">
						<sci:help>The molecule file(s) or URL to read

&lt;!-- &lt;DSClientParameterType=MolecularsystemType&gt; --&gt;</sci:help>
						<sci:member>Read Conformations</sci:member>
						<sci:member>Maximum</sci:member>
						<sci:member>SourceTag</sci:member>
						<sci:member>Write DCD File</sci:member>
						<sci:member>Remove Alternate Conformers</sci:member>
						<sci:member>Generate Simulation Files</sci:member>
						<sci:member>KekulizeAromaticBonds</sci:member>
						<sci:value>$(Ligand Query)</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 read (all if value is empty).</sci:help>
					</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 selected="true">Filename</sci:legalval>
						<sci:legalval>FilenameAndExtension</sci:legalval>
						<sci:legalval>FullFilename</sci:legalval>
					</sci:arg>
					<sci:arg name="Read Conformations" type="BoolType" required="false" visibility="visible" multi="false">
						<sci:help>Whether to read conformations in a &lt;i&gt;Source&lt;/i&gt; file into individual molecules.

When set to true, each conformation in a &lt;i&gt;Source&lt;/i&gt; file will be expanded as a separate data record.

Currently, only a single molecule with conformations is supported. If there are no conformations or multiple molecules no data records will be produced.</sci:help>
						<sci:legalval>True</sci:legalval>
						<sci:legalval selected="true">False</sci:legalval>
					</sci:arg>
					<sci:arg name="Write DCD File" type="BoolType" required="false" visibility="visible" multi="false">
						<sci:help>Whether to write out DCD (trajectory) file used by CHARMm simulation engine. Only molecules with conformations are supported. The DCD file will be written out $(JobDir)/Input, and a new data property &quot;DCD File&quot; will be used to specify the URL of the DCD File.</sci:help>
						<sci:legalval>True</sci:legalval>
						<sci:legalval selected="true">False</sci:legalval>
					</sci:arg>
					<sci:arg name="Remove Alternate Conformers" type="BoolType" required="false" visibility="visible" multi="false">
						<sci:help>If True, all alternate conformers will be removed.</sci:help>
						<sci:legalval selected="true">True</sci:legalval>
						<sci:legalval>False</sci:legalval>
					</sci:arg>
					<sci:arg name="Generate Simulation Files" type="BoolType" required="false" visibility="visible" multi="false" uimpl="false">
						<sci:help>Whether simulation files used by CHARMm should be generated.</sci:help>
						<sci:member>Simulation Files Folder</sci:member>
						<sci:legalval>True</sci:legalval>
						<sci:legalval selected="true">False</sci:legalval>
					</sci:arg>
					<sci:arg name="Simulation Files Folder" type="DirectoryType" required="false" visibility="visible" multi="false" uimpl="false">
						<sci:help>The folder where the simulation files will be generated. If empty, simulation files will be generated under the same folder as the Input Typed Molecule.</sci:help>
						<sci:enabledscript>parameter(&apos;Generate Simulation Files&apos;)</sci:enabledscript>
					</sci:arg>
					<sci:arg name="KekulizeAromaticBonds" type="BoolType" required="false" visibility="visible" multi="false">
						<sci:help>Turn aromatic bonds into single/double bonds or into aromatic query bonds. Molecules created with aromatic query bonds are more suitable as queries than as specific molecules. They should not be used as input for property calculators such as Molecular Weight, pKa and others, which require the structure to be uniquely defined. </sci:help>
						<sci:member>Reset Kekulization</sci:member>
						<sci:legalval>True</sci:legalval>
						<sci:legalval selected="true">False</sci:legalval>
					</sci:arg>
					<sci:arg name="Reset Kekulization" type="BoolType" required="true" visibility="visible" multi="false" legalvalsenforced="false">
						<sci:help>&lt;p&gt;If enabled, and the first molecule contains aromatic bonds, 
&lt;em&gt;KekulizeAromaticBonds&lt;/em&gt; is changed from False to True.
&lt;/p&gt;</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" 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>OutPutFile,InitialSourceFile</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="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="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 Aug  5 14:57:39 2019</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>Read the Query</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>{61CFC2E3-3BD6-4739-8FCE-38E1B8290E24}</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>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 molecule file(s)</sci:value>
						<sci:value>Creates a molecule data record for each molecule and conformations represented in the &lt;i&gt;Source&lt;/i&gt;. 

Molecule file formats supported by Discovery Studio client are valid inputs, including DSV, MSV, PDB, MOL2, CRD, PSF files.  If a PSF file is specified, it requires that a corresponding CRD or PDB file for the same molecule exists in the same folder.  It will read in the molecular structure and the corresponding forcefield information stored in the PSF and CRD (or PDB) files.

Internally the MOL2 reader is used. Only features supported by that file format will be included in the data record. Display style information, for example, will not be included.
</sci:value>
						<sci:value>None</sci:value>
						<sci:value/>
						<sci:value>Generic</sci:value>
						<sci:value>Data fields in the file will be added to the property fields.</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.2087</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="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="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\Data Access and Manipulation\Readers\Discovery Studio\DS Molecule Reader</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;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" 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>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>Cleanup</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>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>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>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>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.0.0.48</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/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 Feb 25 11:10:06 2008</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\Data Access and Manipulation\Utilities\Subprotocol Utilities\Subprotocol</sci:value>
					</sci:arg>
				</sci:component>
				<sci:protocol>
					<sci:data object="SciTegic.Calculate3DCoords.1">
						<sci:component name="3D Coords" version="2">
							<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="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/chemistryadv</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 17:40:13 2006</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>3D Coordinates</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>{E145CB33-02C3-455E-94CC-F0FA0B88B2AC}</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>3D Coords</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>Generates 3D coordinates for the input molecules.</sci:value>
								<sci:value>This component calculates three-dimensional atomic coordinates for each incoming molecule. The calculated coordinates are assigned to the molecule, discarding any existing original coordinates, either 2D or 3D.
&lt;p&gt;
The coordinates are calculated by dividing the molecule into chains and ring systems, generating 3D coordinates for each fragment and putting them together. A few cycles or energy minimization are carried out at the end to clean up the structure and remove any bumps.
&lt;p&gt;
&lt;b&gt;See also:&lt;/b&gt;
&lt;li&gt;To optimize the 3D coordinates to minimize the molecular energy, see &lt;a href=&quot;javascript:DoLink(&apos;{FA683576-279B-429B-A1D1-D6B784A8FF8F}&apos;)&quot;&gt;Minimize Molecule&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To generate different 3D conformations of the molecule, see &lt;a href=&quot;javascript:DoLink(&apos;{E88DC05D-6E85-40D2-933C-F49DABE0F3BA}&apos;)&quot;&gt;3D Conformations&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

</sci:value>
								<sci:value>Molecule</sci:value>
								<sci:value/>
								<sci:value>Molecule</sci:value>
								<sci:value>Molecules with 3D coordinates</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>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\Manipulators\3D Methods\3D Coords</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>CoordDimension == 2</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>Is 2D?</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.  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>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\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.TransformMolecule.1">
						<sci:component name="Remove Hydrogens" version="2">
							<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="false" visibility="nevershow" multi="false">
								<sci:help>Parameter Help</sci:help>
								<sci:legalval>ClearMolecule</sci:legalval>
								<sci:legalval>ClearStereo</sci:legalval>
								<sci:legalval>ClearCharges</sci:legalval>
								<sci:legalval>StandardizeStereo</sci:legalval>
								<sci:legalval>StandardizeCharges</sci:legalval>
								<sci:legalval>AddHydrogens</sci:legalval>
								<sci:legalval selected="true">RemoveHydrogens</sci:legalval>
								<sci:legalval>AddHeteroHydrogens</sci:legalval>
								<sci:legalval>MakeAllAtomsCarbon</sci:legalval>
								<sci:legalval>MakeAllBondsSingle</sci:legalval>
								<sci:legalval>RandomizeAtoms</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/chemistry</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 31 12:37:01 2006</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>Remove Hydrogens</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>Remove Hydrogens</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>{5A520938-939F-4210-A816-A023520422D7}</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="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>Removes all explicit hydrogens from the molecule</sci:value>
								<sci:value>&lt;p&gt;Removes all explicit hydrogens.  Hydrogens can be re-added later using the &lt;i&gt;Add Hydrogens&lt;/i&gt; component.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;See Also:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;To add explicit hydrogens, use &lt;a href=&quot;javascript:DoLink(&apos;{4A7D57EA-6B39-43DE-B92C-858BD216569A}&apos;)&quot;&gt;Add Hydrogens&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;


</sci:value>
								<sci:value>Molecule</sci:value>
								<sci:value/>
								<sci:value>Molecule</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>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\Chemistry\Data Access and Manipulation\Manipulators\Remove Hydrogens</sci:value>
							</sci:arg>
						</sci:component>
						<sci:proplist>
							<sci:propval name="RegistrationVersion">6.0.1.7</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" 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>@&apos;Ligand Query File&apos; := @JobDir.&quot;/ligandQuery.mol&quot;</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>Set Output Filename</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 -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>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\Property Manipulators\Custom Manipulator (PilotScript)</sci:value>
							</sci:arg>
						</sci:component>
					</sci:data>
					<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: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>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>390 -455</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>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\No-op</sci:value>
							</sci:arg>
						</sci:component>
					</sci:data>
					<sci:connectid from="0" to="1" type="true"/>
					<sci:connectid from="3" to="0" type="true"/>
					<sci:connectid from="3" to="4" type="false"/>
					<sci:connectid from="1" to="2" type="true"/>
					<sci:connectid from="4" to="1" type="true"/>
				</sci:protocol>
			</sci:data>
			<sci:data object="SciTegic.SDWriter.1">
				<sci:component name="SD Writer" version="2">
					<sci:arg name="Destination" type="DestinationURLType" required="true" visibility="visible" multi="false">
						<sci:help>The filename or URL for the destination data. 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>$(JobDir)/ligandQuery.mol</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;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 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;/li&gt;
&lt;/ul&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="SD Format Options" type="StringType" required="false" visibility="visible" multi="true">
						<sci:help>Options for the SD Writer:
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Write Structure&lt;/b&gt;:  Includes available structure information with each record.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Write Properties&lt;/b&gt;:  Includes available property information with each record.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Write Date&lt;/b&gt;:  Writes the current date into the file.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Write Fully Padded Lines&lt;/b&gt;:  Writes all the fields in the Atoms and Bonds lines, padding with zeroes those fields with undefined values.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Write Query Info&lt;/b&gt;:  Writes out MDL query information and also additional SciTegic molecule query information to the properties of the SD record.
To read the SciTegic-specific part of this information back in, use a SciTegic SD Reader with the ReadQueryInfo parameter set to True. (This option writes out substructure queries that may have come from SMARTS queries. It also stops writing query information for viewers that cannot handle it).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Write Two Spaces In Data Header Line&lt;/b&gt;:  When on, data headers will be &lt;TT&gt;&amp;gt&amp;nbsp&amp;nbsp&amp;ltPropName&amp;gt&lt;/TT&gt;.  When off, data headers will be &lt;TT&gt;&quot;&amp;gt&amp;nbsp&amp;ltPropName&amp;gt&quot;&lt;/TT&gt;.  The standard does not specify how many spaces there should be. Making this option available for compatibility with 3rd party readers.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Wrap Long Property Lines&lt;/b&gt;:  By the MDL CTFile standard property lines are limited to 200 characters.  When selected, properties longer than 200 characters are with newlines every 200 characters.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Skip Null Or Empty String Properties&lt;/b&gt;:  When selected, properties that are either null or empty strings will be skipped upon SD export.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Write Dot For Empty String Properties&lt;/b&gt;:  In the MDL CTFile format, an empty line is used to terminate a property value.  Because of this, there is a convention of writing a &apos;.&apos; on an empty line to distinguish between a property that has an empty string value (&quot;&quot;) and a property that has no value (or a null value).  Selecting this option enables this convention and empty string properties are written with a &apos;.&apos; on the first line and an empty second line to terminate the property.  When not selected, empty string properties will be written with only a single empty terminating line (the same as null properties).  The default for this option is &quot;on&quot; to match the behavior in previous versions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&amp;nbsp
&lt;/p&gt;
&lt;b&gt;V2000 and V3000 Format Parameters&lt;/b&gt;
&lt;p&gt;
The next two options can be used to force the SD file format to be exclusively V2000 or V3000. If none of the options is selected, the input molecules are written in V2000 format unless they contain features that require the use of the V3000 format. These features include presence of enhanced stereo markings, more than 999 atoms or bonds, and atom lists with more than 16 atom types. In this case, the output SD file might contain a mix of V2000 and V300 molecules.
&lt;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Use V3000 Format&lt;/b&gt;:  Force the format to be MDL V3000 for all molecules.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Use V2000 Format&lt;/b&gt;:  Force the format to be MDL V2000 for all molecules. Any molecule with features that require the V3000 format is sent to the Fail port. Note that the Fail port in the SD Writer is not active by default. If you want to use this option, make sure to activate the component Fail port by right-clicking on the component and selecting the &lt;i&gt;Toggle Ports&lt;/i&gt; menu.&lt;/li&gt;
&lt;/ul&gt;

</sci:help>
						<sci:legalval selected="true">Write Structure</sci:legalval>
						<sci:legalval selected="true">Write Properties</sci:legalval>
						<sci:legalval selected="true">Write Date</sci:legalval>
						<sci:legalval>Write Fully Padded Lines</sci:legalval>
						<sci:legalval selected="true">Write Query Info</sci:legalval>
						<sci:legalval>Write Two Spaces In Data Header Line</sci:legalval>
						<sci:legalval selected="true">Wrap Long Property Lines</sci:legalval>
						<sci:legalval>Skip Null Or Empty String Properties</sci:legalval>
						<sci:legalval selected="true">Write Dot For Empty String Properties</sci:legalval>
						<sci:legalval>Use V3000 Format</sci:legalval>
						<sci:legalval>Use V2000 Format</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>Name</sci:member>
					</sci:arg>
					<sci:arg name="Name" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>Name of property that holds the name of each molecule</sci:help>
						<sci:value>Name</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/chemistry</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 Jun 11 15:29:57 2008</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>SD 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>{DC8EE7B0-0620-42FE-944C-B4CD1E79480E}</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>SD 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="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>990 -95</sci:value>
					</sci:arg>
					<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
						<sci:value>100</sci:value>
						<sci:value>Writes an MDL SD (structured data) file</sci:value>
						<sci:value>Writes the molecule and associated property data to the &lt;i&gt;Destination&lt;/i&gt; file in MDL SD format.

&lt;p&gt;&lt;b&gt;See Also:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;To read files in MDL SD format, use the &lt;a href=&quot;javascript:DoLink(&apos;{CA65B896-4FE6-4E3A-B884-DC16B53B8D26}&apos;)&quot;&gt;SD Reader&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To convert molecules to and from a text property containing the molecular connection table (CTAB) in MDL format, use &lt;a href=&quot;javascript:DoLink(&apos;{E622FBD9-9FA9-451A-A102-1800B5F28B6D}&apos;)&quot;&gt;Molecule to CTAB&lt;/a&gt; and &lt;a href=&quot;javascript:DoLink(&apos;{7D354B65-DDD8-4EA4-83A7-21501A8A6852}&apos;)&quot;&gt;Molecule from CTAB&lt;/a&gt;.&lt;/li&gt; 
&lt;/ul&gt;

</sci:value>
						<sci:value>Molecule</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.1.0.7</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\Chemistry\Data Access and Manipulation\Writers\SD Writer</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="StringType" 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>@NumberOfHits</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>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="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 Sep 08 07:31:45 2006</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>990 -455</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>6.0.0.44</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\Data Manipulators\Count and Index Data</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>$(JobDir)/PDBIDs.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 selected="true">True</sci:legalval>
						<sci:legalval>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: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>Mon Dec 11 15:05:11 2006</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>Save Hitlist</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="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="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>{9B0081A4-6085-4FF0-BD12-AEB8B7BD9CB5}</sci:value>
					</sci:arg>
					<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>1290 -455</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 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: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\File Writers\Delimited Text Writer</sci:value>
					</sci:arg>
				</sci:component>
			</sci:data>
			<sci:data object="SciTegic.Protocol.1">
				<sci:component name="Search RCSB" version="2">
					<sci:arg name="ID" type="LinkParentParameterType" required="false" visibility="visible" multi="false">
						<sci:metaproplist>
							<sci:propval name="SCI_InitializeUsingOrigType" ishidden="true">StringType</sci:propval>
						</sci:metaproplist>
						<sci:help>&lt;p&gt;Search the PDB for known identifiers (IDs). You can do various different types of ID searches by changing the &lt;i&gt;ID Type&lt;/i&gt; parameter. Four-letter PDB IDs are the default.&lt;/p&gt;
&lt;p&gt;For all ID types you can type in multiple space or comma separated IDs to search for several IDs at once.&lt;/p&gt;</sci:help>
						<sci:member>ID Type</sci:member>
						<sci:value>ID</sci:value>
					</sci:arg>
					<sci:arg name="Keywords" type="LinkParentParameterType" required="false" visibility="visible" multi="false" uimpl="false">
						<sci:metaproplist>
							<sci:propval name="SCI_InitializeUsingOrigType" ishidden="true">StringType</sci:propval>
						</sci:metaproplist>
						<sci:help>&lt;p&gt;Enter a keyword, phrase or series of keywords. Use the &lt;i&gt;Search Scope&lt;/i&gt; to control what attributes to search and the &lt;i&gt;Operator&lt;/i&gt; parameter to control whether to match the whole phrase or individual words.&lt;/p&gt;
</sci:help>
						<sci:member>Keywords Operator</sci:member>
						<sci:member>Keywords Search Scope</sci:member>
						<sci:value>Keywords</sci:value>
					</sci:arg>
					<sci:arg name="Ligand Descriptor" type="URLType" required="false" visibility="visible" multi="false" legalvalsenforced="false">
						<sci:help>&lt;p&gt;Specify an MDL MOL/SD files that contain a substructure query.&lt;/p&gt; 
&lt;p&gt;In Discovery Studio, you also have the option to select one of the visible molecules from a list.&lt;/p&gt;
&lt;p&gt;Query atoms are not currently supported and Hydrogen atoms are ignored.&lt;/p&gt;

&lt;!-- &lt;DSClientParameterType=StructureassdType&gt; --&gt;</sci:help>
						<sci:member>Match Type</sci:member>
						<sci:enabledscript>Parameter(&apos;RCSB JSON&apos;) eq &apos;&apos;</sci:enabledscript>
						<sci:value>$(Ligand Query File)</sci:value>
					</sci:arg>
					<sci:arg name="Match Type" type="LinkSingleParentParameterType" required="false" visibility="visible" multi="false">
						<sci:metaproplist>
							<sci:propval name="SCI_InitializeUsingOrigType" ishidden="true">StringType</sci:propval>
						</sci:metaproplist>
						<sci:help>&lt;p&gt;Exact or qualitative substructure searches. Please note that the searches depend on the input ligand structure having bond orders and formal charges correctly assigned. The options are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Exact&lt;/strong&gt;: Uses the InChIKey descriptor to find exact matches.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;graph-strict&lt;/strong&gt;: Graph matching comparison using element, formal charge, aromaticity, bond order and atom/bond stereochemistry.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;graph-relaxed&lt;/strong&gt;: Graph matching comparison using element, formal charge and bond order. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;graph-relaxed-stereo&lt;/strong&gt;: Graph matching comparison using element, formal charge, bond order and atom/bond stereochemistry. &lt;/li&gt; 
&lt;li&gt;&lt;strong&gt;fingerprint-similarity&lt;/strong&gt;: TREE and MACCS.&lt;/li&gt;

&lt;/ul&gt;</sci:help>
						<sci:value>Match Type</sci:value>
					</sci:arg>
					<sci:arg name="Experimental Method" type="LinkParentParameterType" required="false" visibility="visible" multi="false" uimpl="false">
						<sci:help>&lt;p&gt;Method used to determine the structure. Most structures in the PDB have primary data associated with the experiment and therefore it sometimes useful to search based on this criteria.  With the exception of NMR data where retrain coordinates are supplied, most associated data are in the form of structure factors. Valid options are:&lt;/p&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;b&gt;ELECTRON CRYSTALLOGRAPHY&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ELECTRON MICROSCOPY&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;EPR&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;FIBER DIFFRACTION&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;FLUORESCENCE TRANSFER&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;INFRARED SPECTROSCOPY&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NEUTRON DIFFRACTION&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;POWDER DIFFRACTION&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SOLID-STATE NMR&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SOLUTION NMR&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SOLUTION SCATTERING&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;THEORETICAL MODEL&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;X-RAY DIFFRACTION&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;</sci:help>
						<sci:member>Has Experimental Data</sci:member>
						<sci:member>Resolution</sci:member>
						<sci:value>Experimental Method</sci:value>
					</sci:arg>
					<sci:arg name="Release Date" type="LinkParentParameterType" required="false" visibility="visible" multi="false" legalvalsenforced="false" uimpl="false">
						<sci:help>Search on the date the structure was released  to the public by the depositor.</sci:help>
						<sci:member>Release Date Earliest</sci:member>
						<sci:member>Release Date Latest</sci:member>
						<sci:value>Release Date</sci:value>
					</sci:arg>
					<sci:arg name="Author Name" type="LinkSingleParentParameterType" required="false" visibility="visible" multi="false" uimpl="false">
						<sci:metaproplist>
							<sci:propval name="SCI_InitializeUsingOrigType">StringType</sci:propval>
						</sci:metaproplist>
						<sci:help>&lt;p&gt;The name of an author. Format is &quot;Lastname, Initials.&quot;. Multiple authors can be included separated by semicolon, e.g., &quot;Peat, T.S.;Newman, J.&quot;&lt;/p&gt;

&lt;p&gt;The search uses exact matching, so it is necessary to specify the name in the form stored in the RCSB database, including punctuation, whitespace and initials.  &lt;/p&gt;</sci:help>
						<sci:value>Author Name</sci:value>
					</sci:arg>
					<sci:arg name="Advanced" type="LinkSingleParentParameterType" required="false" visibility="visible" multi="false">
						<sci:help>Contains less commonly used parameters.</sci:help>
						<sci:member>RCSB JSON</sci:member>
						<sci:member>SCOP Classification</sci:member>
						<sci:member>Motif</sci:member>
						<sci:value>Advanced</sci:value>
					</sci:arg>
					<sci:arg name="SCOP Classification" type="LinkSingleParentParameterType" required="false" visibility="visible" multi="false" uimpl="false">
						<sci:help>Structural Classification of Proteins (SCOP) Classification Index. SCOP is a classification scheme for protein folds, useful in determining common structures where sequences may not be similar. Filtering by SCOP index allows you to retrieve hits in the same structural class as a protein of interest.

Currently this requires the SCOP index number. You can find the number you need by searching http://scop.berkeley.edu/. It is the number in square brackets.</sci:help>
						<sci:value>SCOP Classification</sci:value>
					</sci:arg>
					<sci:arg name="Motif" type="LinkParentParameterType" required="false" visibility="visible" multi="false" expanded="true" uimpl="false">
						<sci:help>Search for a given sequence motif. The search allows for three types of patterns, simple, prosite or regex.</sci:help>
						<sci:member>Pattern Type</sci:member>
						<sci:member>Sequence Type</sci:member>
						<sci:value>Motif</sci:value>
					</sci:arg>
					<sci:arg name="RCSB JSON" type="LinkSingleParentParameterType" required="false" visibility="visible" multi="false" legalvalsenforced="false" uimpl="false">
						<sci:help>&lt;p&gt;Search using existing JSON file/data. These files need to be written according to the documentation on the RCSB PDB website that provides this search. See https://search.rcsb.org/ for details.&lt;/p&gt;
&lt;p&gt;This option is mutually exclusive to all of the other search types.&lt;/p&gt;</sci:help>
						<sci:value>RCSB JSON</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="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: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: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>Halt</sci:legalval>
						<sci:legalval selected="true">Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval>Halt</sci:legalval>
						<sci:legalval selected="true">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="ID Type" type="PromotedGroupMemberType" required="false" visibility="nevershow" multi="false">
						<sci:help>&lt;p&gt;You can search for a number of different ID types:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;b&gt;PDB&lt;/b&gt;: Four letter PDB ID, e.g. &quot;1crn&quot;.&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;PubMed&lt;/b&gt;: Numeric PubMed ID (PMID), e.g. &quot;12929391&quot;&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;UniProt&lt;/b&gt;: Universal Protein Accession ID, combining Swiss-Prot, TrEMBL and PIR databases, e.g. &quot;P80280&quot;.&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;Chemical Component&lt;/b&gt;: PDB chemical component, e.g. &quot;RSD&quot; or &quot;RET&quot; or &quot;ALA&quot; or &quot;TYS&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All types allow multiple IDs separated by space, comma or newline.&lt;/p&gt;</sci:help>
						<sci:value>ID Type</sci:value>
					</sci:arg>
					<sci:arg name="Keywords Search Scope" type="PromotedGroupMemberType" required="false" visibility="nevershow" multi="false">
						<sci:help>&lt;p&gt;Specify whether to search the full text or specific fields.&lt;/p&gt;
&lt;p&gt;The options are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Structure Attributes&lt;/strong&gt;: searches the &lt;code&gt;struct_keywords.text,struct.title&lt;/code&gt; and &lt;code&gt;citation.title&lt;/code&gt; attributes. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Full Text&lt;/strong&gt;: searches the full text&lt;/li&gt;
&lt;/ul&gt;</sci:help>
						<sci:value>Keywords Search Scope</sci:value>
					</sci:arg>
					<sci:arg name="Keywords Operator" type="PromotedGroupMemberType" required="false" visibility="nevershow" multi="false">
						<sci:help>&lt;ul&gt;
	&lt;li&gt;&lt;b&gt;contains_words&lt;/b&gt;: Any given word can match for a hit.&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;contains_phrase&lt;/b&gt;: The whole given phrase must match for a hit.&lt;/li&gt;
&lt;/ul&gt;</sci:help>
						<sci:value>Keywords Operator</sci:value>
					</sci:arg>
					<sci:arg name="Has Experimental Data" type="PromotedGroupMemberType" required="false" visibility="nevershow" multi="false" expanded="true">
						<sci:help>Filter results based on whether experimental data is provided. This is most commonly used to find X-ray structures which have structure factors. If blank, no such filtering is performed. NOte, can be used without specifying an experimental method.</sci:help>
						<sci:value>Has Experimental Data</sci:value>
					</sci:arg>
					<sci:arg name="Resolution" type="PromotedGroupMemberType" required="false" visibility="nevershow" multi="false" legalvalsenforced="false" uimpl="false">
						<sci:help>The X-ray resolution (&amp;Aring;). The smallest value for the interplanar spacings for the reflection data used in the refinement.</sci:help>
						<sci:member>Resolution Lower Bound</sci:member>
						<sci:member>Resolution Upper Bound</sci:member>
						<sci:value>Resolution</sci:value>
					</sci:arg>
					<sci:arg name="Resolution Lower Bound" type="PromotedGroupMemberType" required="false" visibility="nevershow" multi="false" uimpl="false">
						<sci:help>Results will all have a resolution equal to or higher than this value. Setting this value will remove lower quality structures.</sci:help>
						<sci:value>Resolution Lower Bound</sci:value>
					</sci:arg>
					<sci:arg name="Resolution Upper Bound" type="PromotedGroupMemberType" required="false" visibility="nevershow" multi="false" uimpl="false">
						<sci:help>Results will all have a resolution equal to or lower than this value. Setting this value will remove higher quality structures.</sci:help>
						<sci:value>Resolution Upper Bound</sci:value>
					</sci:arg>
					<sci:arg name="Release Date Earliest" type="PromotedGroupMemberType" required="false" visibility="nevershow" multi="false" uimpl="false">
						<sci:help>&lt;p&gt;Search for structures deposited after this date. The date can be provided in many different formats. If the date is not fully specified, missing fields will be filled based on today&apos;s date. The following table lists the meaning of several different dates if the search was performed on August 17, 2009.&lt;/p&gt;
&lt;table&gt;&lt;tr&gt;&lt;th&gt;Date&lt;/th&gt;&lt;th&gt;Meaning&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/11/12&lt;/td&gt;&lt;td&gt;November 12, 2008&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;February&lt;/td&gt;&lt;td&gt;February 17, 2009&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2007&lt;/td&gt;&lt;td&gt;August 17, 2007&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;31st&lt;/td&gt;&lt;td&gt;August 31, 2009&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
</sci:help>
						<sci:value>Release Date Earliest</sci:value>
					</sci:arg>
					<sci:arg name="Release Date Latest" type="PromotedGroupMemberType" required="false" visibility="nevershow" multi="false" uimpl="false">
						<sci:help>&lt;p&gt;Search for structures deposited before this date. The date can be provided in many different formats. If the date is not fully specified, missing fields will be filled based on today&apos;s date. The following table lists the meaning of several different dates if the search was performed on August 17, 2009.&lt;/p&gt;
&lt;table&gt;&lt;tr&gt;&lt;th&gt;Date&lt;/th&gt;&lt;th&gt;Meaning&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/11/12&lt;/td&gt;&lt;td&gt;November 12, 2008&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;February&lt;/td&gt;&lt;td&gt;February 17, 2009&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2007&lt;/td&gt;&lt;td&gt;August 17, 2007&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;31st&lt;/td&gt;&lt;td&gt;August 31, 2009&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</sci:help>
						<sci:value>Release Date Latest</sci:value>
					</sci:arg>
					<sci:arg name="Pattern Type" type="PromotedGroupMemberType" required="false" visibility="nevershow" multi="false">
						<sci:help>&lt;ul&gt;
	&lt;li&gt;&lt;b&gt;simple&lt;/b&gt;: Exact match.&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;prosite&lt;/b&gt;: Looks for a Prosite pattern. See https://prosite.expasy.org/scanprosite/scanprosite_doc.html#mo_motifs for details.&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;regex&lt;/b&gt;: Evaluates the pattern as a regular expression to find hits.&lt;/li&gt;
&lt;/ul&gt;</sci:help>
						<sci:value>Pattern Type</sci:value>
					</sci:arg>
					<sci:arg name="Sequence Type" type="PromotedGroupMemberType" required="false" visibility="nevershow" multi="false">
						<sci:help>This parameter controls the target sequence type of the motif query. Either protein (pdb_protein_sequence), DNA (pdb_dna_sequence) or RNA (pdb_rna_sequence).</sci:help>
						<sci:value>Sequence Type</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>Search RCSB</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>{60571B99-5A50-4C19-8034-60E95AD44078}</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="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>Search the RCSB PDB structure database</sci:value>
						<sci:value>&lt;p&gt;Search the Research Collaboratory for Structural Bioinformatics (RCSB) Protein Data Bank (PDB) structure database using the JSON API.&lt;/p&gt;

&lt;p&gt;You can perform advanced searches of the RCSB with a variety of criteria:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;ID&lt;/b&gt;: A number of different &lt;i&gt;ID Type&lt;/i&gt;s are allowed, including PDB and PubMed.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Keyword&lt;/b&gt;: Such as &quot;P38 Map Kinase&quot;.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Ligand Descriptor&lt;/b&gt;: Substructure search using qualitative graph matching or fingerprint comparison criteria.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Experimental Method&lt;/b&gt;: e.g. &quot;X-RAY DIFFRACTION&quot;, &quot;SOLUTION NMR&quot;.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Resolution&lt;/b&gt;: To filter out low (or high) resolution structures.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Release Date&lt;/b&gt;: The date the structures were released.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Author Name&lt;/b&gt;: Find structures deposited by a particular author.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SCOP Classification&lt;/b&gt;: Structural classification.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Motif&lt;/b&gt;: Sequence motifs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Four letter PDB Identifiers that are found are put on the data stream as the &lt;b&gt;PDBID&lt;/b&gt; property.&lt;/p&gt;
&lt;p&gt;You can also search using an JSON query written according to the specification on the RCSB website at https://search.rcsb.org&lt;/p&gt;</sci:value>
						<sci:value>None</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.2.0.2467</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 Jul 27 13:46:51 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>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="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\Search RCSB</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" 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>@query_nodes := Array();</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>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="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/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="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:value>header</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>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>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.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>@ID is defined AND trim(@ID) 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: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="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/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="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>ID search</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 -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>None</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>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\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>/*clean up input*/
#id := trim(@id);
#id := rsubst(#id,&apos;\s+|\n|,&apos;,&apos;,&apos;,&apos;g&apos;);
#id := rsubst(#id,&apos;,+&apos;,&apos;&quot;,&quot;&apos;,&apos;g&apos;);

if (contains(@&apos;ID Type&apos;, &quot;PDB&quot;)) then /* e.g. 1cma */
	Append(@query_nodes, &apos;{
	  &quot;type&quot;: &quot;terminal&quot;,
	  &quot;service&quot;: &quot;text&quot;,
	  &quot;parameters&quot;: {
		&quot;attribute&quot;: &quot;rcsb_entry_container_identifiers.entry_id&quot;,
		&quot;operator&quot;: &quot;in&quot;,
		&quot;value&quot;: [&quot;&apos; . ToUpper(#id) . &apos;&quot;]
	  }
	}&apos;);
end if;

if (contains(@&apos;ID Type&apos;, &quot;PubMed&quot;)) then /* e.g 21389988 */
	Append(@query_nodes, &apos;{
	  &quot;type&quot;: &quot;terminal&quot;,
	  &quot;service&quot;: &quot;text&quot;,
	  &quot;parameters&quot;: {
		&quot;attribute&quot;: &quot;rcsb_pubmed_container_identifiers.pubmed_id&quot;,
		&quot;operator&quot;: &quot;in&quot;,
		&quot;value&quot;: [&apos; . #ID . &apos;]
	  }
	}&apos;);
end if;

if (contains(@&apos;ID Type&apos;, &quot;UniProt&quot;)) then /* e.g P02699 */
	Append(@query_nodes, &apos;{
	  &quot;type&quot;: &quot;terminal&quot;,
	  &quot;service&quot;: &quot;text&quot;,
	  &quot;parameters&quot;: {
		&quot;attribute&quot;: &quot;rcsb_polymer_entity_container_identifiers.reference_sequence_identifiers.database_accession&quot;,
		&quot;operator&quot;: &quot;in&quot;,
		&quot;value&quot;: [&quot;&apos; . ToUpper(#id) . &apos;&quot;]
	  }
	}, {
	  &quot;type&quot;: &quot;terminal&quot;,
	  &quot;service&quot;: &quot;text&quot;,
	  &quot;parameters&quot;: {
		&quot;attribute&quot;: &quot;rcsb_polymer_entity_container_identifiers.reference_sequence_identifiers.database_name&quot;,
		&quot;operator&quot;: &quot;exact_match&quot;,
		&quot;value&quot;: &quot;UniProt&quot;
	  }
	}&apos;);
end if;

if (contains(@&apos;ID Type&apos;, &quot;Chemical Component&quot;)) then /* e.g. RET */
	Append(@query_nodes, &apos;{
	  &quot;type&quot;: &quot;terminal&quot;,
	  &quot;service&quot;: &quot;text&quot;,
	  &quot;parameters&quot;: {
		&quot;attribute&quot;: &quot;rcsb_chem_comp_container_identifiers.comp_id&quot;,
		&quot;operator&quot;: &quot;in&quot;,
		&quot;value&quot;: [&quot;&apos; . ToUpper(#id) . &apos;&quot;]
	  }
	}&apos;);
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="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/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="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: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="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 -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>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>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\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>@&apos;Keywords&apos; is defined AND trim(@&apos;Keywords&apos;) ne &apos;&apos; and @&apos;Keywords Search Scope&apos; ne &apos;Full Text&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>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="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/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="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>Keywords</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>None</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>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\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" 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>Append(@query_nodes, &apos;{
	&quot;type&quot;: &quot;group&quot;,
	&quot;logical_operator&quot;: &quot;or&quot;,
	&quot;nodes&quot;: [
	{
		&quot;type&quot;: &quot;terminal&quot;,
		&quot;service&quot;: &quot;text&quot;,
		&quot;parameters&quot;:
		{ &quot;attribute&quot;: &quot;struct_keywords.text&quot;, &quot;operator&quot;: &quot;&apos;.@&apos;Keywords Operator&apos;.&apos;&quot;, &quot;value&quot;: &quot;&apos;.@keywords.&apos;&quot; }
	},
	{
		&quot;type&quot;: &quot;terminal&quot;,
		&quot;service&quot;: &quot;text&quot;,
		&quot;parameters&quot;:
		{ &quot;attribute&quot;: &quot;struct.title&quot;, &quot;operator&quot;: &quot;&apos;.@&apos;Keywords Operator&apos;.&apos;&quot;, &quot;value&quot;: &quot;&apos;.@keywords.&apos;&quot; }
	},
	{
		&quot;type&quot;: &quot;terminal&quot;,
		&quot;service&quot;: &quot;text&quot;,
		&quot;parameters&quot;:
		{ &quot;attribute&quot;: &quot;citation.title&quot;, &quot;operator&quot;: &quot;&apos;.@&apos;Keywords Operator&apos;.&apos;&quot;, &quot;value&quot;: &quot;&apos;.@keywords.&apos;&quot; }

	}
	]
}&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="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/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="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: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="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 -815</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>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\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>@&apos;Keywords&apos; is defined AND trim(@&apos;Keywords&apos;) ne &apos;&apos; and @&apos;Keywords Search Scope&apos; eq &quot;Full Text&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>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="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/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="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>Full text</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 -1175</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>None</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>61</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" 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;text &quot; . @&apos;Keywords&apos;);
#text := trim(@&apos;Keywords&apos;);
if(@&apos;Keywords Operator&apos; eq &quot;contains_phrase&quot;)then
	#text := &apos;\&quot;&apos; . #text . &apos;\&quot;&apos;;
end if;
debugMessage(&quot;text &quot; . #text);
Append(@query_nodes, &apos;{
&quot;type&quot;: &quot;terminal&quot;,
  &quot;service&quot;: &quot;text&quot;,
  &quot;parameters&quot;: {
    &quot;value&quot;: &quot;&apos; . #text . &apos; &quot;
  }
}&apos;);
#str := &apos;{
&quot;type&quot;: &quot;terminal&quot;,
  &quot;service&quot;: &quot;text&quot;,
  &quot;parameters&quot;: {
    &quot;value&quot;: &quot;&apos; . #text . &apos; &quot;
  }
}&apos; ;
debugMessage(&quot;str &lt;&quot;.#str .&quot;&gt;&quot;);</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="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/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="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: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="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 -1175</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>62</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>(@&apos;Release Date Earliest&apos; is defined 
	and trim(@&apos;Release Date Earliest&apos;) ne &apos;&apos;)
OR
(@&apos;Release Date Latest&apos; is defined 
and trim(@&apos;Release Date Latest&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: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="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/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="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>Release Date</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 -1535</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>None</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>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.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>format := DateProposeFormat(&apos;2008-10-17&apos;);
#start := @&apos;Release Date Earliest&apos;;
#end := @&apos;Release Date Latest&apos;;

if not (#start eq &apos;&apos;)then
	datefillundefined(#start, True);
	datesetformat(#start,format);
	#mindate := datetext(#start).&apos;T00:00:00Z&apos;;
	Append(@query_nodes, &apos;{
	  &quot;type&quot;: &quot;terminal&quot;,
	  &quot;service&quot;: &quot;text&quot;,
	  &quot;parameters&quot;: {
		&quot;attribute&quot;: &quot;rcsb_accession_info.initial_release_date&quot;,
		&quot;operator&quot;: &quot;greater_or_equal&quot;,
		&quot;value&quot;: &quot;&apos;.#mindate.&apos;&quot;
	  }
	}&apos;);
end if;

if not (#end eq &apos;&apos;)then
	datefillundefined(#end, True);
	datesetformat(#end,format);
	#maxdate := datetext(#end).&apos;T00:00:00Z&apos;;
	Append(@query_nodes, &apos;{
	  &quot;type&quot;: &quot;terminal&quot;,
	  &quot;service&quot;: &quot;text&quot;,
	  &quot;parameters&quot;: {
		&quot;attribute&quot;: &quot;rcsb_accession_info.initial_release_date&quot;,
		&quot;operator&quot;: &quot;less_or_equal&quot;,
		&quot;value&quot;: &quot;&apos;.#maxdate.&apos;&quot;
	  }
	}&apos;);
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="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/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="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: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="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 -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>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>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 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>(@&apos;Author Name&apos; is defined and trim(@&apos;Author Name&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: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="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/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="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>Author Name</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 -1895</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>None</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>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 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" 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>#names := rsplit(@&apos;Author Name&apos;, &quot;;&quot;);
for #i in 1 .. ArrayNumValues(#names) loop
  #names[#i] := trim(#names[#i]);

  Append(@query_nodes, &apos;{
  &quot;type&quot;: &quot;terminal&quot;,
  &quot;service&quot;: &quot;text&quot;,
  &quot;parameters&quot;: {
	&quot;attribute&quot;: &quot;audit_author.name&quot;,
	&quot;operator&quot;: &quot;exact_match&quot;,
	&quot;value&quot;: &quot;&apos;.#names[#i].&apos;&quot;
  }
}&apos;);

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: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="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/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="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: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="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 -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>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>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.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;Resolution Lower Bound&apos; is defined and trim(@&apos;Resolution Lower Bound&apos;) ne &apos;&apos;) OR (@&apos;Resolution Upper Bound&apos; is defined and trim(@&apos;Resolution Upper Bound&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: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="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/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="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>Resolution</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 -2255</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>None</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>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\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" 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>// note that this checks not only X-ray resolution but also others like EM
// to limit to X-ray use `reflns.d_resolution_high`

if not (@&apos;Resolution Lower Bound&apos; eq &apos;&apos;) then
	Append(@query_nodes, &apos;{
  &quot;type&quot;: &quot;terminal&quot;,
  &quot;service&quot;: &quot;text&quot;,
  &quot;parameters&quot;: {
	&quot;attribute&quot;: &quot;rcsb_entry_info.resolution_combined&quot;,
	&quot;operator&quot;: &quot;greater_or_equal&quot;,
	&quot;value&quot;: &apos;.@&apos;Resolution Lower Bound&apos;.&apos;
  }
}&apos;);
end if;

if not (@&apos;Resolution Upper Bound&apos; eq &apos;&apos;) then
	Append(@query_nodes, &apos;{
  &quot;type&quot;: &quot;terminal&quot;,
  &quot;service&quot;: &quot;text&quot;,
  &quot;parameters&quot;: {
	&quot;attribute&quot;: &quot;rcsb_entry_info.resolution_combined&quot;,
	&quot;operator&quot;: &quot;less_or_equal&quot;,
	&quot;value&quot;: &apos;.@&apos;Resolution Upper Bound&apos;.&apos;
  }
}&apos;);
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="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/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="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: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="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 -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>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>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\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" 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;InChIKey &quot; . InChIKey);
Append(@query_nodes, &apos;{
	&quot;type&quot;: &quot;terminal&quot;,
	&quot;service&quot;: &quot;text&quot;,
	&quot;parameters&quot;: {
	&quot;attribute&quot;: &quot;rcsb_chem_comp_descriptor.InChIKey&quot;,
    &quot;operator&quot;: &quot;exact_match&quot;,
	&quot;value&quot;: &quot;&apos;.InChIKey.&apos;&quot;}
}&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="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/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="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:value>Exact match</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>1290 -2435</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>63</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>@&apos;Ligand Descriptor&apos; is defined and @&apos;Ligand Descriptor&apos; is not eq &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: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="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/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="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>Ligand Descriptor</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 -2615</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>None</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>51</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 Ligand Reader" version="2">
							<sci:arg name="Source" type="URLType" required="true" visibility="visible" multi="false">
								<sci:help>&lt;p&gt;Creates a molecular data record for each molecule represented in the &lt;i&gt;Source&lt;/i&gt; data file. This component wraps the &lt;a href=&quot;javascript:DoLink(&apos;{CA65B896-4FE6-4E3A-B884-DC16B53B8D26}&apos;)&quot;&gt;SD Reader&lt;/a&gt; component.&lt;/p&gt;

&lt;p&gt;In Discovery Studio, you can choose either a 3D window, a Table Browser window or a regular SD file as the source. Only small molecules (&amp;lt;1000 atoms/bonds) are used.&lt;/p&gt;

&lt;p&gt;For large files, the fastest option is from a file. This has the advantage that 2D SD files can be sent  to the protocol without converting to 3D first. If a file is chosen, and the file is visible to the server than a link is created in the Input folder, rather than a copy of the entire file.&lt;p&gt;

&lt;!-- 

&lt;DSClientParameterType=LigandsType&gt;

--&gt;</sci:help>
								<sci:member>Maximum</sci:member>
								<sci:member>SourceTag</sci:member>
								<sci:member>Keep Properties</sci:member>
								<sci:value>$(Ligand Descriptor)</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 read (all if value is empty)</sci:help>
							</sci:arg>
							<sci:arg name="SourceTag" type="StringType" required="true" visibility="visible" multi="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;li&gt;&lt;b&gt;ZipFilename&lt;/b&gt;: When reading a compressed zip file, the filename within the compressed archive.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Number&lt;/b&gt;: When multiple files are read in this component, they are numbered 1,2,3...&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Letter&lt;/b&gt;: When multiple files are read in this component, they are lettered A, B, C...&lt;/li&gt;

&lt;li&gt;&lt;b&gt;KeepCurrent&lt;/b&gt;: Keeps the current value of SourceTag.&lt;/li&gt;

&lt;/ul&gt;</sci:help>
								<sci:legalval selected="true">None</sci:legalval>
								<sci:legalval>Filename</sci:legalval>
								<sci:legalval>FilenameAndExtension</sci:legalval>
								<sci:legalval>FullFilename</sci:legalval>
								<sci:legalval>ZipFilename</sci:legalval>
								<sci:legalval>Number</sci:legalval>
								<sci:legalval>Letter</sci:legalval>
								<sci:legalval>KeepCurrent</sci:legalval>
							</sci:arg>
							<sci:arg name="Keep Properties" type="PropertyPreviewType" required="false" visibility="visible" multi="false">
								<sci:help>A list of properties the reader should retain for each data record that is output. If a value is not defined, retains all properties. If the parameter contains the value &quot;-&quot; (minus sign), properties are not retained.</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>ReadProperties</sci:member>
								<sci:member>PutNameInProperty</sci:member>
								<sci:member>ReadQueryInfo</sci:member>
								<sci:member>PutCommentInProperty</sci:member>
								<sci:member>SD Format Options</sci:member>
							</sci:arg>
							<sci:arg name="SD Format Options" type="StringType" required="false" visibility="visible" multi="true">
								<sci:help>&lt;p&gt;Options available for the SD Reader:&lt;/p&gt;

&lt;ul&gt;

&lt;li&gt;&lt;b&gt;Properties Can Contain $$$$:&lt;/b&gt;  By the MDL CTFile standard, a property can contain a &apos;$$$$&apos;-line.  Properties or data field values are terminated by a blank line.  Only then will the &apos;$$$$&apos;-line terminate the full data block.  Setting this option off will terminate the data block upon any read of a &apos;$$$$&apos;-line.  This option is available to provide compatibility with some 3rd Party SD files.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;One-space Lines Terminate Properties:&lt;/b&gt;  By the MDL CTFile standard, properties or data fields values are terminated by a blank line. Selecting this option will terminate the data block when encountering a line containing a space as the only character in the line.  This option is available to provide compatibility with some 3rd Party SD files.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Unwrap Long Property Lines:&lt;/b&gt;  By the MDL CTFile standard, lines in property fields cannot exceed 200 characters.  When this option is selected and a property line of exactly 200 characters is found, the newline character will be ignored and property string will continue on the next line.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Read Unknown Stereo Parity:&lt;/b&gt;  When selected, the SD Reader will use the &apos;Atom Parity&apos; value (parity of &apos;3&apos;) to mark unknown stereo centers in 3D mol files.  This will leave these atoms marked as &apos;unknown stereo&apos; and will not calculate the stereo from the coordinates.&lt;/li&gt;

&lt;/ul&gt;

</sci:help>
								<sci:legalval selected="true">Properties Can Contain $$$$</sci:legalval>
								<sci:legalval>One-space Lines Terminate Properties</sci:legalval>
								<sci:legalval selected="true">Unwrap Long Property Lines</sci:legalval>
								<sci:legalval>Read Unknown Stereo Parity</sci:legalval>
							</sci:arg>
							<sci:arg name="ReadProperties" type="BoolType" required="true" visibility="visible" multi="false">
								<sci:help>Select True to read the properties for each molecule (in addition to the structures)</sci:help>
								<sci:legalval selected="true">True</sci:legalval>
								<sci:legalval>False</sci:legalval>
							</sci:arg>
							<sci:arg name="ReadQueryInfo" type="BoolType" required="true" visibility="visible" multi="false">
								<sci:help>If properties starting with &quot;QueryInfo&quot; are present, use them to set up query information on the atoms and bonds. (This is how, for example, SMARTS query information can be preserved when writing to an MDL SD format file.) For molecules saved in MDL format, this information only contains information that cannot be written out in MDL SD format.</sci:help>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="PutNameInProperty" type="StringType" required="false" visibility="visible" multi="false">
								<sci:help>What to call the property that holds the name of each molecule</sci:help>
								<sci:value>Name</sci:value>
							</sci:arg>
							<sci:arg name="PutCommentInProperty" type="StringType" required="false" visibility="visible" multi="false">
								<sci:help>What to call the property that holds the comment associated with each molecule</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="Maximum Atom Number" type="LongType" required="false" visibility="visible" multi="false" uimpl="true">
								<sci:help>Any molecule with an atom or bond count larger will be send to the fail port.</sci:help>
								<sci:value>999</sci:value>
							</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="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="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>{F44AAA0B-C855-43C4-96FE-44622546FDA6}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>390 -2615</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 small molecules (ligands) from an SD file</sci:value>
								<sci:value>&lt;p&gt;Creates a molecular data record for each molecule in the &lt;i&gt;Source&lt;/i&gt; data file. This component wraps the &lt;a href=&quot;javascript:DoLink(&apos;{CA65B896-4FE6-4E3A-B884-DC16B53B8D26}&apos;)&quot;&gt;SD Reader&lt;/a&gt; component, and converts 3D fingerprint properties (&lt;strong&gt;FP3D_3P&lt;/strong&gt;, &lt;strong&gt;FP3D_4P&lt;/strong&gt;) to the correct internal value type.&lt;/p&gt;</sci:value>
								<sci:value>None</sci:value>
								<sci:value/>
								<sci:value>None</sci:value>
								<sci:value>Data fields in the SD file will be added to the property fields.</sci:value>
								<sci:value>None</sci:value>
								<sci:value>Empty records or molecules that exceed 999 atoms/bonds.</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.1.0.13</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>Fri Feb 07 10:26:40 2014</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 Ligand 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="ComponentLocalID" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:help>Local Component Identifier</sci:help>
								<sci:value>52</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\Data Access and Manipulation\Readers\Discovery Studio\DS Ligand Reader</sci:value>
							</sci:arg>
						</sci:component>
						<sci:protocol/>
					</sci:data>
					<sci:data object="SciTegic.CalculateInChI.1">
						<sci:component name="Molecule to InChI" version="2">
							<sci:arg name="Output" type="StringType" required="true" visibility="visible" multi="true" expanded="true">
								<sci:help>&lt;ul&gt;&lt;li&gt;&lt;b&gt;InChI&lt;/b&gt;:  The IUPAC unique identifier.  It is capable 
of uniquely representing a chemical substance. It is derived from a structural representation of that 
substance in a way designed to be independent of the way that the structure was drawn.&lt;/li&gt;&lt;li&gt;&lt;b&gt;InChI_AuxInfo&lt;/b&gt;:  
Auxiliary information string, much more verbose than &lt;b&gt;InChI&lt;/b&gt; in that it contains non-canonical 
information such as atom coordinates and explicit bond orders.  The original molecule can be recreated 
from this string using &lt;i&gt;Molecule from InChI_AuxInfo&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;InChIKey&lt;/b&gt;:  
A fixed-length (25-character) condensed digital representation of the InChI Identifier known as InChIKey.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;i&gt;Output&lt;/i&gt; 
properties can be calculated &quot;on demand&quot; by simply using their names within a PilotScript expression 
or as the parameter value to many parameters that require a property name.&lt;/p&gt;</sci:help>
								<sci:member>OutputMessageString</sci:member>
								<sci:member>OutputInChIKeyExtraHashes</sci:member>
								<sci:legalval type="StringType" selected="true">InChI</sci:legalval>
								<sci:legalval type="StringType" selected="true">InChI_AuxInfo</sci:legalval>
								<sci:legalval type="StringType">InChIKey</sci:legalval>
							</sci:arg>
							<sci:arg name="OutputMessageString" type="BoolType" required="false" visibility="visible" multi="false" expanded="true">
								<sci:help>Toggles output of InChI message string.  Contains warning and error information from the InChI function calls.</sci:help>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="OutputInChIKeyExtraHashes" type="BoolType" required="false" visibility="visible" multi="false">
								<sci:help>Toggles whether to include the &lt;b&gt;InChIKey_XHash1&lt;/b&gt; and &lt;b&gt;InChIKey_XHash2&lt;/b&gt; properties along with the &lt;b&gt;InChIKey&lt;/b&gt;.  These strings are optionally calculated by the InChI library and represent the rest of the 256-bit SHA-2 signature for the first and second blocks of the InChIKey.</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" expanded="true">
								<sci:member>Stereochemistry</sci:member>
								<sci:member>InChIOptions</sci:member>
								<sci:member>SaveOptionsInInChIString</sci:member>
								<sci:member>UseMolToInChI</sci:member>
							</sci:arg>
							<sci:arg name="InChIOptions" type="StringType" required="false" visibility="visible" multi="true">
								<sci:help>InChI commandline options available for customizing the way the InChI string is calculated:
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;FixedH&lt;/b&gt;: (#F) Adds &quot;fixed hydrogen layer&quot; (/f) to InChI string which details where mobile hydrogens are located in this particular molecule.  By default, all tautomers will have the same InChI string.  
When this option is selected, each tautomeric representation will have a distinct InChI string.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RecMet&lt;/b&gt;: (#R) Adds &quot;(metal) reconnected layer&quot; (/r) to InChI string which details where bonds to metal are located in this particular molecule.  By default, bonds to metal are not included in the InChI representation and organometallic compounds are treated as multiple-fragments.  When this option is selected, the organometallic linkages are included in the InChI string.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SUU&lt;/b&gt;: (#U) Always indicate unknown/undefined stereo.  By default, unknown/undefined stereo is only defined if at least one other stereocenter is present.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SLUUD&lt;/b&gt;: (#L) Stereo labels for unknown and undefined are different, &apos;u&apos; and &apos;?&apos;, respectively.  By default these are both labeled as &apos;?&apos;.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;KET&lt;/b&gt;: (#K) Account for keto-enol tautomerism.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;15T&lt;/b&gt;: (#T) Account for 1,5 tautomerism.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NEWPSOFF&lt;/b&gt;: (#V1) Both ends of a stereo wedge to point to stereocenters.  This was the behavior in InChI 1.01, but in later releases the default was changed so that only the narrow end of a wedge pointed to a stereocenter.&lt;/li&gt;
&lt;/ul&gt;</sci:help>
								<sci:legalval>FixedH</sci:legalval>
								<sci:legalval>RecMet</sci:legalval>
								<sci:legalval>SUU</sci:legalval>
								<sci:legalval>SLUUD</sci:legalval>
								<sci:legalval>KET</sci:legalval>
								<sci:legalval>15T</sci:legalval>
								<sci:legalval>NEWPSOFF</sci:legalval>
							</sci:arg>
							<sci:arg name="Stereochemistry" type="StringType" required="false" visibility="visible" multi="false" expanded="true">
								<sci:help>Choices for dealing with InChI&apos;s stereochemical layer:&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Default:&lt;/b&gt;  No special command-line option given, the same as SAbs.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SAbs:&lt;/b&gt;  Calculates absolute stereochemistry, generates standard InChI like: inchi=1S/....../s1.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SRel:&lt;/b&gt;  Calculates relative stereochemistry, generates non-standard InChI like: inchi=1/....../s2.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SRac:&lt;/b&gt;  Calculates racemic stereochemistry, generates non-standard InChI like: inchi=1/....../s3.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SUCF:&lt;/b&gt;  Uses the chiral flag of the input molecule 
to calculate stereochemistry and generates non-standard InChI. Must be used with the &quot;UseMolToInChI&quot; option to True. 
&lt;ul&gt;
&lt;li&gt;Whole Molecule Chiral Flag &lt;b&gt;On&lt;/b&gt; generates non-standard InChI with Absolute stereochemistry like: inchi=1/....../s1 &lt;/li&gt; 
&lt;li&gt;Whole Molecule Chiral Flag &lt;b&gt;Off&lt;/b&gt; generates non-standard InChI with Relative stereochemistry like: inchi=1/....../s2 &lt;/li&gt; &lt;/ul&gt; 
&lt;/li&gt;&lt;li&gt;&lt;b&gt;SNon:&lt;/b&gt;  Exclude stereochemical layer, generates standard InChI without the stereochemical layer.&lt;/li&gt;&lt;/ul&gt;</sci:help>
								<sci:legalval selected="true">Default</sci:legalval>
								<sci:legalval>SAbs</sci:legalval>
								<sci:legalval>SRel</sci:legalval>
								<sci:legalval>SRac</sci:legalval>
								<sci:legalval>SUCF</sci:legalval>
								<sci:legalval>SNon</sci:legalval>
							</sci:arg>
							<sci:arg name="SaveOptionsInInChIString" type="BoolType" required="false" visibility="visible" multi="false">
								<sci:help>Utilizes the InChI libraries &quot;SaveOpt&quot; commandline option which incorporates six of the non-default options into three character appendix to the InChI string.  This appendix consists of a backslash &quot;\&quot; followed by two letters.  The first letter incorporates the sixteen (2*2*2*2) permutations of the &quot;RecMet&quot;, &quot;FixedH&quot;, &quot;SUU&quot; and &quot;SLUUD&quot; options while the second letter incorporates the four (2*2) permutations of the &quot;Ket&quot; and &quot;15T&quot; options.</sci:help>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="UseMolToInChI" type="BoolType" required="false" visibility="visible" multi="false" legalvalsenforced="false" uimpl="false">
								<sci:help>Use the new &quot;Molfile to InChI function&quot; in InChI Version 1.05 for Polymer InChI. Polymer InChI string starts with &quot;InChI=1B&quot;. </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/chemistry</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 Jul 29 13:25:38 2019</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>Molecule to InChI</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>Canonical Smiles</sci:value>
							</sci:arg>
							<sci:arg name="ComponentIcon" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:value>CALCULATORNODE</sci:value>
							</sci:arg>
							<sci:arg name="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>{EB62CC30-BC6A-4d5f-8618-3EB9AF611C69}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>690 -2615</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>Creates a text property containing the InChI(TM) representation of the molecule</sci:value>
								<sci:value>&lt;p&gt;Calculates InChI properties and puts them on the output data stream.
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;InChI&lt;/b&gt;: The IUPAC unique identifier.  It is capable of uniquely representing a chemical substance. It is derived from a structural representation of that substance in a way designed to be independent of the way that the structure was drawn.  The &lt;i&gt;Molecule from InChI_AuxInfo&lt;/i&gt; component can be used to recover the structure with loss of coordinates and some possible tautomeric bond order changes. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;InChI_AuxInfo&lt;/b&gt;:  Auxiliary information string, much more verbose than &lt;b&gt;InChI&lt;/b&gt; in that it contains non-canonical information 
such as atom coordinates and explicit bond orders.  The original molecule can be recreated from this string using &lt;i&gt;Molecule from InChI_AuxInfo&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InChIKey&lt;/b&gt;:  A fixed-length (25-character) condensed digital representation of the InChI Identifier known as InChIKey.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &quot;InChI=&quot; and &quot;AuxInfo=&quot; prefixes are considered by IUPAC to be part of the result strings and are necessary for converting back to a molecule with &lt;i&gt;Molecule from InChI_AuxInfo&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Records for which InChI could not be calculated are sent to the Fail port.&lt;/li&gt;
&lt;li&gt;Set &lt;i&gt;UseMolToInChI = True&lt;/i&gt; for Polymer InChI.&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;Information about InChI&lt;sup&gt;TM&lt;/sup&gt; and its algorithm are available from IUPAC:&lt;a href=&quot;javascript:DoLink(&apos;http://www.iupac.org/inchi/&apos;)&quot;&gt;http://www.iupac.org/inchi/&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To generate a molecule from an InChI_AuxInfo or InChI string, use &lt;a href=&quot;javascript:DoLink(&apos;{5E5EBE7B-B438-4316-B799-65B80EA9CFB4}&apos;)&quot;&gt;Molecule from InChI_AuxInfo&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;</sci:value>
								<sci:value>Molecule</sci:value>
								<sci:value/>
								<sci:value>Molecule</sci:value>
								<sci:value>Molecular data records augmented with text properties containing  the InChI and/or the InChI_AuxInfo strings for the molecule</sci:value>
								<sci:value>Molecule</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.2087</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>64</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\Converters\Molecule To Text\Molecule to InChI</sci:value>
							</sci:arg>
						</sci:component>
						<sci:proplist>
							<sci:propval name="InChI|Category">Molecular Formats</sci:propval>
							<sci:propval name="InChI_AuxInfo|Category">Molecular Formats</sci:propval>
							<sci:propval name="InChIKey|Category">Molecular Formats</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>@&apos;match type&apos; rlike &quot;exact&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 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>990 -2615</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>65</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" 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>Append(@query_nodes, &apos;{
	&quot;type&quot;: &quot;terminal&quot;,
	&quot;service&quot;: &quot;chemical&quot;,
	&quot;parameters&quot;: {
	  &quot;value&quot;: &quot;&apos;. InChI .&apos;&quot;,
	  &quot;type&quot;: &quot;descriptor&quot;,
	  &quot;descriptor_type&quot;: &quot;InChI&quot;,
	  &quot;match_type&quot;: &quot;&apos;.@&apos;Match Type&apos;.&apos;&quot;
	}
}&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="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/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="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:value>substructure matches</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>1290 -2795</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>66</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>(@&apos;SCOP Classification&apos; is defined and trim(@&apos;SCOP Classification&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: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="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/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="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>SCOP Classification</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 -2975</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>None</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: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>Append(@query_nodes, &apos;{
  &quot;type&quot;: &quot;terminal&quot;,
  &quot;service&quot;: &quot;text&quot;,
  &quot;parameters&quot;: {
	&quot;attribute&quot;: &quot;rcsb_polymer_instance_annotation.annotation_lineage.id&quot;,
	&quot;operator&quot;: &quot;in&quot;,
	&quot;value&quot;: [&quot;&apos;.rsubst(@&apos;SCOP Classification&apos;, &apos;\n&apos;, &apos;&quot;,&quot;&apos;,&apos;g&apos;).&apos;&quot;]
  }
}, {
  &quot;type&quot;: &quot;terminal&quot;,
  &quot;service&quot;: &quot;text&quot;,
  &quot;parameters&quot;: {
	&quot;attribute&quot;: &quot;rcsb_polymer_instance_annotation.type&quot;,
	&quot;operator&quot;: &quot;exact_match&quot;,
	&quot;value&quot;: &quot;SCOP&quot;
  }
}&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="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/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="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: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="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 -2975</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>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\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>(@&apos;Experimental Method&apos; is defined and trim(@&apos;Experimental Method&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: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="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/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="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>Experimental Method</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 -3335</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>None</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>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 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" 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 (@&apos;Experimental Method&apos; is not eq &apos;&apos;) then
	Append(@query_nodes, &apos;{
	  &quot;type&quot;: &quot;terminal&quot;,
	  &quot;service&quot;: &quot;text&quot;,
	  &quot;parameters&quot;: {
		&quot;attribute&quot;: &quot;exptl.method&quot;,
		&quot;operator&quot;: &quot;exact_match&quot;,
		&quot;value&quot;: &quot;&apos;.@&apos;Experimental Method&apos;.&apos;&quot;
	  }
	}&apos;);
end if;

if (@&apos;Has Experimental Data&apos; is defined and @&apos;Has Experimental Data&apos; ne &apos;&apos;) then 
	if (@&apos;Has Experimental Data&apos; eq &quot;True&quot;) then
		#hasExpData := &quot;Y&quot;;
	else
		#hasExpData := &quot;N&quot;;
	end if;
	Append(@query_nodes, &apos;{
	  &quot;type&quot;: &quot;terminal&quot;,
	  &quot;service&quot;: &quot;text&quot;,
	  &quot;parameters&quot;: {
		&quot;attribute&quot;: &quot;rcsb_accession_info.has_released_experimental_data&quot;,
		&quot;operator&quot;: &quot;exact_match&quot;,
		&quot;value&quot;: &quot;&apos;.#hasExpData.&apos;&quot;
	  }
	}&apos;);
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="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/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="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: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="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 -3335</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>21</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>(@&apos;Motif&apos; is defined and trim(@&apos;Motif&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: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="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/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="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>Sequence Motif</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 -3695</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>None</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>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 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" 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>Append(@query_nodes, &apos;{
  &quot;type&quot;: &quot;terminal&quot;,
  &quot;service&quot;: &quot;seqmotif&quot;,
  &quot;parameters&quot;: {
	&quot;value&quot;: &quot;&apos;.@Motif.&apos;&quot;,
	&quot;pattern_type&quot;: &quot;&apos;.@&apos;Pattern Type&apos;.&apos;&quot;,
	&quot;target&quot;: &quot;&apos;.@&apos;Sequence Type&apos;.&apos;&quot;
  }
}&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="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/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="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: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="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 -3695</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>23</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" 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>// TODO add sequence similarity filter here when available at RCSB

@json_query := &apos;&apos;;

if ArrayNumValues(@query_nodes) &gt; 0 then
	Contract(&apos;&quot;&quot;,&quot;&quot;&apos;, @query_nodes);

	@json_query := &apos;{
		&quot;request_options&quot;: {
			&quot;return_all_hits&quot;: true
		},
		&quot;query&quot;: {
			&quot;type&quot;: &quot;group&quot;,
			&quot;logical_operator&quot;: &quot;and&quot;,
			&quot;nodes&quot;: [&quot;&quot;&apos;.@query_nodes.&apos;&quot;&quot;]
		},
	  
		&quot;return_type&quot;: &quot;entry&quot;
	}&apos;;
	
	@json_query := RSubst(@json_query, &quot;\&quot;\&quot;\&quot;&quot;, &quot;&quot;, &apos;g&apos;);
	@json_query := RSubst(@json_query, &quot;\&quot;\&quot;&quot;, &quot;\&quot;&quot;, &apos;g&apos;);
end if;

Remove(@query_nodes);


</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>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="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/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="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:value>footer</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 -4055</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>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>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>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\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>@&apos;RCSB JSON&apos; is defined and  trim(@&apos;RCSB JSON&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: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="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/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="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>Native JSON</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 -4415</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>None</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>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\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" 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>@json_query := @&apos;RCSB JSON&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="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/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="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: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="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 -4415</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>28</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>@json_query 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: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="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/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="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>If there&apos;s a query write file</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 -4775</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>None</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>56</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" 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>Text := &apos;$(json_query)&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: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="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>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="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 -4775</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>None</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.TextWriter.1">
						<sci:component name="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 .doc. 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>$(JobDir)/query.json</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;http://www.unicode.org/&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 Options" type="GroupType" required="false" visibility="visible" multi="false">
								<sci:member>BeginningText</sci:member>
								<sci:member>EndingText</sci:member>
							</sci:arg>
							<sci:arg name="BeginningText" type="StringType" required="false" visibility="visible" multi="false">
								<sci:help>Text that should precede each record written out.</sci:help>
							</sci:arg>
							<sci:arg name="EndingText" type="StringType" required="false" visibility="visible" multi="false">
								<sci:help>Any text to be included after each record written out.</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>PropertyNames</sci:member>
								<sci:member>IncludePropertyNames</sci:member>
								<sci:member>HierarchyDepth</sci:member>
							</sci:arg>
							<sci:arg name="PropertyNames" type="StringType" required="false" visibility="visible" multi="false">
								<sci:help>List of properties to write (separated by commas). &quot;*&quot; indicates to write all properties.</sci:help>
								<sci:value>*</sci:value>
							</sci:arg>
							<sci:arg name="IncludePropertyNames" type="BoolType" required="true" visibility="visible" multi="false">
								<sci:help>Display the name of each property along with its values</sci:help>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="HierarchyDepth" type="LongType" required="false" visibility="visible" multi="false">
								<sci:help>Controls the maximum depth within hierarchical data records to display node and property information.  No hierarchical information will be displayed if depth is set to -1.  If no value is set, the default is 0.</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>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/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 Mar 22 18:53:27 2007</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>Text 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>{63DD362C-76B3-49A7-9CEF-2C45D21F90CB}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>690 -4775</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 data records to a text file
</sci:value>
								<sci:value>&lt;p&gt;Data records are formatted as text and written to the file specified by &lt;i&gt;Destination&lt;/i&gt;. Each property value is separated by a new line. Separation of data records can be controlled using the parameters under &lt;i&gt;Delimiter Options&lt;/i&gt;.
&lt;/p&gt;
&lt;b&gt;Note:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Use &lt;i&gt;HierarchyDepth&lt;/i&gt; to control the display of deep properties and nodes from hierarchical data records.&lt;/li&gt; 
&lt;/ul&gt;
&lt;b&gt;See Also:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To write a file formatted with one data record per row with delimiters 
  between the property values, use the
&lt;a href=&quot;javascript:DoLink(&apos;{9B0081A4-6085-4FF0-BD12-AEB8B7BD9CB5}&apos;)&quot;&gt;Delimited Text Writer&lt;/a&gt;.  &lt;/li&gt;
&lt;li&gt;To write out binary data (e.g. a .png file),
use the &lt;a href=&quot;javascript:DoLink(&apos;{BF2A2E90-418A-4C0B-8550-B2C4D5554628}&apos;)&quot;&gt;Binary Writer&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>6.1.0.9</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\File Writers\Text 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>@json_query 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: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="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/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="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>If there&apos;s a query, run it.</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 -5135</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>None</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>31</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.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>https://search.rcsb.org/rcsbsearch/v1/query?json=URLEncode(@json_query)</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>@json_query</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/json</sci:value>
							</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="TextType" required="true" visibility="visible" multi="false" expanded="true" legalvalsenforced="false">
								<sci:help>Each POST parameter requires a name and value.</sci:help>
								<sci:member>Parameter 1 Name</sci:member>
								<sci:member>Parameter 1 Value</sci:member>
								<sci:value>JSON</sci:value>
							</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:value>json</sci:value>
							</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:value>@json_query</sci:value>
							</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>Maximum Property Size</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: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>StrLength(Parameter(&apos;Put Response In Property&apos;)) &gt; 0;</sci:enabledscript>
							</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>Set to &lt;b&gt;True&lt;/b&gt; if the response data saved is binary. This will cause the type of the property to be set to &lt;i&gt;SciTegic.value.ByteArrayValue&lt;/i&gt; and can be used in any Reader component that accepts a property reference as the source (for example, the &lt;a href=&quot;javascript:DoLink(&apos;{93C4D73F-0B4D-03F4-B0E3-D82C4FE04C6F}&apos;)&quot;&gt;XML Reader (Generic)&lt;/a&gt; component) or any other component that takes binary data, such as the &lt;a href=&quot;javascript:DoLink(&apos;{BF2A2E90-418A-4C0B-8550-B2C4D5554628}&apos;)&quot;&gt;Binary Writer&lt;/a&gt;.  If 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 any other component.</sci:help>
								<sci:member>Detect Character Encodings</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="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;/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: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 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; or &lt;a href=&quot;javascript:DoLink(&apos;{1B8A375D-C211-4E80-8983-F4E37AF17B63}&apos;)&quot;&gt;JSON Reader&lt;/a&gt; to provide inline decoding of the body data.  If you do this, 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.
&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;To set HTTP Cookies on the request, use the &lt;b&gt;Additional Headers&lt;/b&gt; parameters and set the header name to &lt;b&gt;Cookie&lt;/b&gt; and the value to &lt;b&gt;CookieName=CookieValue; CookieName2=CookieValue2;&lt;/b&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 Accelrys Enterprise Platform 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.&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.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>37</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>390 -5135</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>Tue Feb 05 19:44:40 2013</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.VJSONReader.1">
						<sci:component name="Data from JSON" version="2">
							<sci:arg name="JSON Property" type="PropertyNameType" required="true" visibility="visible" multi="false">
								<sci:help>The property name of the property that will contain the JSON, as a string.</sci:help>
								<sci:value>response</sci:value>
							</sci:arg>
							<sci:arg name="Join Behavior" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
								<sci:help>&lt;p&gt;How to merge the created data record onto the incoming data record. Options are:&lt;/p&gt;
 
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;OverwriteOrCreate&lt;/i&gt;: Copies all properties from the joining data onto the base data, overwriting the values of any properties that already exist.
&lt;li&gt;&lt;i&gt;OverwriteExisting&lt;/i&gt;: Copies only those properties from the joining data to the base data that already exist on the base.
&lt;li&gt;&lt;i&gt;CreateIfNew&lt;/i&gt;: Copies only those properties from the joining data to the base data that do not already exist on the base data.
&lt;li&gt;&lt;i&gt;AppendOrCreate&lt;/i&gt;: The value of a joining property that already exists in the base data is appended  (as an array) to the value in the base property.  The other joining properties that are not already present in the base data are copied there.
&lt;li&gt;&lt;i&gt;AppendExisting&lt;/i&gt;: The value of a joining property that already exists in the base data is appended  (as an array) to the value in the base property.  No other properties are copied. 
&lt;li&gt;&lt;i&gt;Replace&lt;/i&gt;: The input data record is replaced by the created data record. &lt;/ul&gt;

</sci:help>
								<sci:legalval selected="true">OverwriteOrCreate</sci:legalval>
								<sci:legalval>OverwriteExisting</sci:legalval>
								<sci:legalval>CreateIfNew</sci:legalval>
								<sci:legalval>AppendOrCreate</sci:legalval>
								<sci:legalval>AppendExisting</sci:legalval>
								<sci:legalval>Replace</sci:legalval>
							</sci:arg>
							<sci:arg name="Additional Options" type="GroupType" required="false" visibility="visible" multi="false" expanded="true" legalvalsenforced="false">
								<sci:help>Contains less commonly used parameters

</sci:help>
								<sci:member>Repeat Tag</sci:member>
								<sci:member>Repeat Level</sci:member>
								<sci:member>Format Options</sci:member>
							</sci:arg>
							<sci:arg name="Repeat Tag" type="StringType" required="false" visibility="visible" multi="false">
								<sci:help>If not provided, then all top-level objects in the Source are returned.

If provided, then each top-level object is scanned for nodes that have the given name, and only those nodes are returned. </sci:help>
								<sci:value>result_set</sci:value>
							</sci:arg>
							<sci:arg name="Repeat Level" type="LongType" required="false" visibility="visible" multi="false" expanded="true">
								<sci:help>If not provided, or if provided and equal to 1, then all top-level objects in the Source are returned.

If provided and &gt;1, then each top-level object is scanned and the descendents on the requested level are returned.
</sci:help>
								<sci:value>2</sci:value>
							</sci:arg>
							<sci:arg name="Format Options" type="StringType" required="false" visibility="visible" multi="true" expanded="true">
								<sci:metaproplist>
									<sci:propval name="SCI_MimeType">ACCL/TEXT</sci:propval>
								</sci:metaproplist>
								<sci:help>These are options that control interpretation of the JSON as it is converted into a Pipeline Pilot data record.

Options are:
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Object Values Are Hash Tables:&lt;/b&gt; If selected, then object values that are objects themselves are parsed as hash table values. If not selected, then object values that are objects are added to the parent node as children.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;b&gt;Allow Duplicate Object Names:&lt;/b&gt; If selected, then duplicate object names are allowed. If not selected, then duplicate object names are detected and throw an error.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Mixed Arrays Use Value Arrays:&lt;/b&gt; If selected, then arrays containing mixed types are returned as ValueArrays. If not selected, and if the array contains only strings, floating-point numbers, integers, and booleans, then the minimally-abstract array type is used. (For example, an array of floating-point numbers and integers would be a DoubleArrayValue.)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Convert Arrays-of-Arrays:&lt;/b&gt; If selected, then ValueArrays containing ValueArrays are converted into NDimensionalArrayValues if possible.&lt;/li&gt;
&lt;/ul&gt;
</sci:help>
								<sci:legalval>Object Values Are Hash Tables</sci:legalval>
								<sci:legalval>Allow Duplicate Object Names</sci:legalval>
								<sci:legalval>Mixed Arrays Use Value Arrays</sci:legalval>
								<sci:legalval>Convert Arrays-of-Arrays</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="Source" type="ExpressionType" required="true" visibility="nevershow" multi="false" expanded="true" legalvalsenforced="false">
								<sci:metaproplist>
									<sci:propval name="SCI_HiddenParameter" boolVal="true"/>
									<sci:propval name="SCI_GetValueFromOrigValue">property://$(JSON Property)</sci:propval>
									<sci:propval name="SCI_GetValueFromOrigType">URLType</sci:propval>
								</sci:metaproplist>
								<sci:help>&lt;p&gt;
The name or path name for the source data. The source can be a file, a network resource, a data record property, or a global property.
&lt;/p&gt; 
&lt;p&gt;
&lt;ul&gt;
&lt;li&gt;Use a file path name for files&lt;/li&gt;
&lt;li&gt;Use a network URL for network resources&lt;/li&gt;
&lt;li&gt;Use &quot;global://property-name&quot; for global properties&lt;/li&gt;
&lt;/ul&gt;
</sci:help>
								<sci:member>Maximum</sci:member>
								<sci:value>&quot;property://&quot; . parameter(&apos;JSON Property&apos;)</sci:value>
							</sci:arg>
							<sci:arg name="Maximum" type="LongType" required="false" visibility="nevershow" multi="false">
								<sci:metaproplist>
									<sci:propval name="SCI_HiddenParameter" boolVal="true"/>
								</sci:metaproplist>
								<sci:help>The maximum number of data records to read (all if value is empty)</sci:help>
							</sci:arg>
							<sci:arg name="Object Values Are" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:metaproplist>
									<sci:propval name="SCI_HiddenParameter" boolVal="true"/>
								</sci:metaproplist>
								<sci:help>When a JSON value is of object type, this is how to interpret it -- as a child node of the current node, or as a hash table value on the current node.</sci:help>
								<sci:legalval selected="true">Child Nodes</sci:legalval>
								<sci:legalval>Hash Table Values</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>Tue Sep 13 08:33:13 2016</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>Data from JSON</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>690 -5135</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>{C515C623-DA9A-414E-BD66-C14A922EFA60}</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>Augments the incoming data record with data from JSON text</sci:value>
								<sci:value>&lt;p&gt;
Reads a JSON-encoded string from the input data record property, global property, network resource, or file specified in the &lt;i&gt;Source&lt;/i&gt; parameter, and converts the JSON data into Pipeline Pilot data records.
&lt;/p&gt;
&lt;p&gt;
The JSON string can represent a single object or a single array whose elements are objects. When the JSON data represents a single object, a single data record will be output. When the JSON data represents an array of objects, then one data record for each object in that array will be output.
&lt;/p&gt;
&lt;p&gt;
The values of each name - value pair within an object can be scalar values (boolean, floating point, integer, or string) or arrays of scalar values. These name - value pairs will become properties of the new data records output by the component. The type of the value or array in Pipeline Pilot will be the most specific type that fits.
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;
To learn more about JSON, visit the &lt;a href=&quot;javascript:DoLink(&apos;http://www.json.org&apos;)&quot;&gt;JSON.org&lt;/a&gt; web site.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value>Input data record containing a JSON source property (optional).</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value>One or more new data records representing the objects in the JSON source.</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>17.1.0.119</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>48</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\Converters\Data from JSON</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 := False;
if %identifier IS DEFINED then
	%PDBID := %identifier;
	Remove(&apos;response&apos;);
	Remove(&apos;identifier&apos;);
	Remove(&apos;score&apos;);
	#status := true;
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 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:value>Extract PDB ID</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>990 -5135</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>54</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.SortData.1">
						<sci:component name="Sort Data" version="2">
							<sci:arg name="Sort By" type="GroupType" required="false" visibility="visible" multi="true" expanded="true">
								<sci:help>Defines properties for sorting. Use this parameter to add, remove and reorder properties to be used for sorting.</sci:help>
								<sci:member>Property 1</sci:member>
								<sci:member>Property 2</sci:member>
								<sci:member>Property 3</sci:member>
							</sci:arg>
							<sci:arg name="Property 1" type="PropertyNameType" required="true" visibility="visible" multi="false" expanded="true">
								<sci:help>The property to sort by.</sci:help>
								<sci:member>Property 1 Sort Order</sci:member>
								<sci:member>Property 1 Sort As</sci:member>
								<sci:value>PDBID</sci:value>
							</sci:arg>
							<sci:arg name="Property 1 Sort Order" type="StringType" required="true" visibility="visible" multi="false">
								<sci:help>Whether to sort in ascending or descending order.</sci:help>
								<sci:legalval selected="true">Ascending</sci:legalval>
								<sci:legalval>Descending</sci:legalval>
							</sci:arg>
							<sci:arg name="Property 1 Sort As" type="StringType" required="true" visibility="visible" multi="false">
								<sci:help>Whether to sort as numbers, dates, or text. 
&lt;p&gt;
Text can be case-sensitive or case-insensitive, and text containing numbers can be sorted based on the numbers (e.g., &quot;test5&quot; comes before &quot;test23&quot;).
&lt;/p&gt;</sci:help>
								<sci:legalval>Numbers</sci:legalval>
								<sci:legalval>Text</sci:legalval>
								<sci:legalval>Case Sensitive Text</sci:legalval>
								<sci:legalval selected="true">Text Containing Numbers</sci:legalval>
								<sci:legalval>Case Sensitive Text Containing Numbers</sci:legalval>
								<sci:legalval>Dates</sci:legalval>
							</sci:arg>
							<sci:arg name="Property 2" type="PropertyNameType" required="false" visibility="visible" multi="false">
								<sci:help>The property to sort by.</sci:help>
								<sci:member>Property 2 Sort Order</sci:member>
								<sci:member>Property 2 Sort As</sci:member>
							</sci:arg>
							<sci:arg name="Property 2 Sort Order" type="StringType" required="false" visibility="visible" multi="false">
								<sci:help>Whether to sort in ascending or descending order.</sci:help>
								<sci:legalval selected="true">Ascending</sci:legalval>
								<sci:legalval>Descending</sci:legalval>
							</sci:arg>
							<sci:arg name="Property 2 Sort As" type="StringType" required="false" visibility="visible" multi="false">
								<sci:help>Whether to sort as numbers, dates, or text. 
&lt;p&gt;
Text can be case-sensitive or case-insensitive, and text containing numbers can be sorted based on the numbers (e.g., &quot;test5&quot; comes before &quot;test23&quot;).
&lt;/p&gt;</sci:help>
								<sci:legalval selected="true">Numbers</sci:legalval>
								<sci:legalval>Text</sci:legalval>
								<sci:legalval>Case Sensitive Text</sci:legalval>
								<sci:legalval>Text Containing Numbers</sci:legalval>
								<sci:legalval>Case Sensitive Text Containing Numbers</sci:legalval>
								<sci:legalval>Dates</sci:legalval>
							</sci:arg>
							<sci:arg name="Property 3" type="PropertyNameType" required="false" visibility="visible" multi="false">
								<sci:help>The property to sort by.</sci:help>
								<sci:member>Property 3 Sort Order</sci:member>
								<sci:member>Property 3 Sort As</sci:member>
							</sci:arg>
							<sci:arg name="Property 3 Sort Order" type="StringType" required="false" visibility="visible" multi="false">
								<sci:help>Whether to sort in ascending or descending order.</sci:help>
								<sci:legalval selected="true">Ascending</sci:legalval>
								<sci:legalval>Descending</sci:legalval>
							</sci:arg>
							<sci:arg name="Property 3 Sort As" type="StringType" required="false" visibility="visible" multi="false">
								<sci:help>Whether to sort as numbers, dates, or text. 
&lt;p&gt;
Text can be case-sensitive or case-insensitive, and text containing numbers can be sorted based on the numbers (e.g., &quot;test5&quot; comes before &quot;test23&quot;).
&lt;/p&gt;</sci:help>
								<sci:legalval selected="true">Numbers</sci:legalval>
								<sci:legalval>Text</sci:legalval>
								<sci:legalval>Case Sensitive Text</sci:legalval>
								<sci:legalval>Text Containing Numbers</sci:legalval>
								<sci:legalval>Case Sensitive Text Containing Numbers</sci:legalval>
								<sci:legalval>Dates</sci:legalval>
							</sci:arg>
							<sci:arg name="Maximum" type="LongType" required="false" visibility="visible" multi="false">
								<sci:help>You can provide this to only return this number of records. This is useful when you only want to see the &quot;best&quot; record or records.</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="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 27 13:39:02 2017</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>Sort on PDBID </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>/* Start from &apos;Property 1&apos; since it must be defined.
   Keep this following line for the client auto-rename to use.
	 Parameter(&apos;Property 1&apos;), 
     Parameter(&apos;Property 2&apos;), 
	 Parameter(&apos;Property 3&apos;)
	 Parameter(&apos;Property 4&apos;)
	 Parameter(&apos;Property 5&apos;)
 */
if (trim(strlength(parameter(&apos;Property 1&apos;, 2))) &gt; 0) then
	#name := &quot;Sort on &quot; . trim(parameter(&apos;Property 1&apos;, 2));
	
	/* Get other sort properties that have values */
	#paramKey := &apos;Property &apos;;
	#count := 2;
	#paramName := #paramKey . #count;

	while (#count &lt;= 5 and parameter(#paramName, 2) is defined)
	loop
		if (strlength(parameter(#paramName, 2)) &gt; 0) then		
			#name := #name . &apos;, &apos;;
			#name := #name . parameter(#paramName, 2);
		end if;
	
		#count++;
		#paramName := #paramKey . #count;
	end loop;
	#name;
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>Sort 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="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>{BC934106-6EA5-44e1-93C3-8787DECA9D15}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>1290 -5135</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>Sorts data records according to one or more properties</sci:value>
								<sci:value>&lt;p&gt;The incoming data records are re-ordered on output using the specified sort criteria. The sort criteria are defined by one or more properties whose values are used to order the records.&lt;/p&gt;

&lt;p&gt;Use &lt;i&gt;Sort By&lt;/i&gt; parameter to add more properties for sorting.&lt;/p&gt;

&lt;p&gt;When multiple properties are used by sorting, the property values of &lt;i&gt;Property 1&lt;/i&gt; are checked first.  If the values are equal, then the values specified by &lt;i&gt;Property 2&lt;/I&gt; are checked; if they are equal, then &lt;i&gt;Property 3&lt;/i&gt; is checked, and so on.&lt;/p&gt;

&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;The order of sorting can be changed using &lt;i&gt;Sort Order&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;The order of a set of records can be randomized by sorting on the property RandomNumber.&lt;/li&gt;
&lt;li&gt;Records containing Null or undefined &lt;i&gt;Sort By&lt;/i&gt; properties will be output to the Fail Port.
&lt;/ul&gt;

&lt;b&gt;See Also:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Often, sorting of records is performed so that you can retain some number of records at the head of the sorted list.  &lt;a href=&quot;javascript:DoLink(&apos;{75F04448-3A09-4ECD-A462-D427268653D0}&apos;)&quot;&gt;Top N Filter&lt;/a&gt; is the most efficient way to do this.&lt;/li&gt;
&lt;/ul&gt;
</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>Generic</sci:value>
								<sci:value>Data records in sorted order</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value>Data records that do not contain the sort field(s)</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.1396</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>55</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\Sort Data</sci:value>
							</sci:arg>
						</sci:component>
					</sci:data>
					<sci:connectid from="1" to="2" type="true"/>
					<sci:connectid from="3" to="4" type="true"/>
					<sci:connectid from="61" to="62" type="true"/>
					<sci:connectid from="5" to="6" type="true"/>
					<sci:connectid from="7" to="8" type="true"/>
					<sci:connectid from="9" to="10" type="true"/>
					<sci:connectid from="51" to="52" type="true"/>
					<sci:connectid from="52" to="64" type="true"/>
					<sci:connectid from="64" to="65" type="true"/>
					<sci:connectid from="65" to="63" type="true"/>
					<sci:connectid from="65" to="66" type="false"/>
					<sci:connectid from="18" to="19" type="true"/>
					<sci:connectid from="20" to="21" type="true"/>
					<sci:connectid from="22" to="23" type="true"/>
					<sci:connectid from="27" to="28" type="true"/>
					<sci:connectid from="56" to="29" type="true"/>
					<sci:connectid from="29" to="30" type="true"/>
					<sci:connectid from="31" to="37" type="true"/>
					<sci:connectid from="37" to="48" type="true"/>
					<sci:connectid from="48" to="54" type="true"/>
					<sci:connectid from="54" to="55" type="true"/>
					<sci:version iVal="1"/>
				</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>#status := true;
if(PDBID is not defined )then
	ErrorText := &quot;Hit record returned from Search RCSB does not contain a PDBID&quot;;
	#status := false;
else
	PDBID := trim(PDBID);
	If (stringlen(PDBID) ne 4)then
		ErrorText := &quot;Hit &quot; . PDBID . &quot; is not a valid PDB ID&quot;;
	    #status := false;
	elsif(PDBID not rlike &quot;^[0-9]&quot;)then
			ErrorText := &quot;Hit &quot; . PDBID . &quot; is not a valid PDB ID&quot;;
			#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>&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>Sanity check the output</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>690 -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>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 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 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;Ligand Query File&apos; eq &apos;&apos; or FileExists(@&apos;Ligand Query File&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>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>Ligand OK, if specified?</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>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 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="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>&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;Number of GPUs=&amp;lt;4&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>Number of GPUs=</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: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="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>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>990 -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>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>20.1.0.2181</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>35</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="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:arg>
							<sci:arg name="Report Error" type="LinkDataPropertyType" required="false" visibility="visible" multi="false" legalvalsenforced="false">
								<sci:metaproplist>
									<sci:propval name="SCI_InitializeUsingRevertInfo" ishidden="true" base64="UI1">Al1HAAKjAFRleHQgYWRkZWQgdG8gPHN0cm9uZz5FcnJvcjwvc3Ryb25nPiBzZWN0aW9uIGluIHRoZSBEUyByZXBvcnQuCgo8c3Ryb25nPk5vdGU6PC9zdHJvbmc+Cjx1bD4KPGxpPkEgc3BlY2lmaWVkIHRleHQgd2lsbCBjaGFuZ2UgdGhlIHJ1biBzdGF0dXMgdG8gZmFpbHVyZS48L2xpPgo8L3VsPixTdHJpbmdUeXBlAAgAAAABAQABAAQA/AAAAAAAAAAAADRSZXBvcnQgRXJyb3IDzFPPuwQA</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;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:value>ErrorText</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>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>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>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: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:component>
						<sci:protocol/>
					</sci:data>
				</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>&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: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:value>Ligand Query file could not be read</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>390 -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>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>30</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="DS Molecule Viewer" version="2">
					<sci:arg name="Action" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>&lt;p&gt;Where to open the molecule in Discovery Studio:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Open in a new window&lt;/b&gt;: Open the file in a new Molecule window using your default Discovery Studio settings.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Append to the input window&lt;/b&gt;: Inserts the molecules into the input window. &lt;b&gt;Note&lt;/b&gt;: if the protocol was not run interactively this action will open the results in a new window, including the input objects referenced by &lt;i&gt;Input Window Parameter Name&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Update the input window&lt;/b&gt;: Update molecules in the input window with molecules in the file. This merge is done by name, and the names in both the input window, and the file must match in order for the molecule to be updated. Duplicate names in either file are not allowed. &lt;b&gt;Note&lt;/b&gt;: if the protocol was not run interactively this action will open the results in a new window.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Merge properties only&lt;/b&gt; Only update the properties of the file. Updating only the properties is faster than updating the molecules in the current active window. &lt;b&gt;Note&lt;/b&gt;: if the protocol was not run interactively this action will open the results in a new window.&lt;/li&gt;
</sci:help>
						<sci:member>Input Window Parameter Name</sci:member>
						<sci:legalval selected="true">Open in a new window</sci:legalval>
						<sci:legalval>Append to the input window</sci:legalval>
						<sci:legalval>Update the input window</sci:legalval>
						<sci:legalval>Merge properties only</sci:legalval>
					</sci:arg>
					<sci:arg name="Input Window Parameter Name" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
						<sci:help>&lt;p&gt;
Protocols run from the Discovery Studio client may use a ViewResults perl script to apply the results to the active window in Discovery Studio. The results should be applied to the active window only if the protocol inputs came from that window. 
&lt;/p&gt;&lt;p&gt;
This parameter specifies which input parameter should be checked, it&apos;s value must refer to an object or objects from the active window.
&lt;/p&gt;</sci:help>
						<sci:validscript>SetInvalidDetails(&apos;Input Window Parameter Name required&apos;);
parameter() ne &apos;&apos; OR
parameter(&apos;Action&apos;) eq &apos;Open in a new window&apos;</sci:validscript>
						<sci:enabledscript>parameter(&apos;Action&apos;) eq &apos;Update the input window&apos; OR
parameter(&apos;Action&apos;) eq &apos;Append to the input window&apos; OR
parameter(&apos;Action&apos;) eq &apos;Merge properties only&apos;</sci:enabledscript>
					</sci:arg>
					<sci:arg name="Advanced" type="GroupType" required="false" visibility="visible" multi="false" uimpl="false">
						<sci:help>Advanced</sci:help>
						<sci:member>Output File Name</sci:member>
						<sci:member>Script Name</sci:member>
					</sci:arg>
					<sci:arg name="Output File Name" type="StringType" required="false" visibility="visible" multi="false" expanded="true" uimpl="false">
						<sci:help>&lt;p&gt;
Filename to be used in saving the molecules. 
The filename must end in either &lt;b&gt;.mol2&lt;/b&gt; or &lt;b&gt;.sd&lt;/b&gt;. 
&lt;/p&gt;
&lt;p&gt;
The &lt;i&gt;Update the input window&lt;/i&gt; option is only supported for &lt;b&gt;.mol2&lt;/b&gt; files.
&lt;p&gt;
This parameter is optional. By specifying the filename for the molecules, the protocol designer can reuse the saved molecules in later charting or script components.
&lt;/p&gt;
&lt;p&gt;
If the filename is not specified, the molecules are written to a &lt;b&gt;mol2&lt;/b&gt; file using a unique file name.
&lt;/p&gt;</sci:help>
						<sci:member>SD Format Options</sci:member>
						<sci:member>Comment</sci:member>
						<sci:member>Name</sci:member>
						<sci:validscript>parameter() eq &apos;&apos; OR
parameter() rlike &apos;\.sd$&apos; OR
parameter() rlike &apos;\.mol2$&apos;</sci:validscript>
						<sci:value>rcsb_results.mol2</sci:value>
					</sci:arg>
					<sci:arg name="SD Format Options" type="StringType" required="false" visibility="visible" multi="true">
						<sci:metaproplist>
							<sci:mpropval name="SCI_PromotedFrom" ishidden="true" type="StringType">
								<sci:value>SD Format Options</sci:value>
							</sci:mpropval>
							<sci:propval name="SCI_PromotionRenameRule" ishidden="true">UsingParent</sci:propval>
						</sci:metaproplist>
						<sci:help>Options for the SD Writer:
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Write Structure&lt;/b&gt;:  Includes available structure information with each record.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Write Properties&lt;/b&gt;:  Includes available property information with each record.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Write Date&lt;/b&gt;:  Writes the current date into the file.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Write Fully Padded Lines&lt;/b&gt;:  Writes all the fields in the Atoms and Bonds lines, padding with zeroes those fields with undefined values.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Write Query Info&lt;/b&gt;:  Writes out MDL query information and also additional SciTegic molecule query information to the properties of the SD record.
To read the SciTegic-specific part of this information back in, use a SciTegic SD Reader with the ReadQueryInfo parameter set to True. (This option writes out substructure queries that may have come from SMARTS queries. It also stops writing query information for viewers that cannot handle it).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Write Two Spaces In Data Header Line&lt;/b&gt;:  When on, data headers will be &lt;TT&gt;&amp;gt&amp;nbsp&amp;nbsp&amp;ltPropName&amp;gt&lt;/TT&gt;.  When off, data headers will be &lt;TT&gt;&quot;&amp;gt&amp;nbsp&amp;ltPropName&amp;gt&quot;&lt;/TT&gt;.  The standard does not specify how many spaces there should be. Making this option available for compatibility with 3rd party readers.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Wrap Long Property Lines&lt;/b&gt;:  By the MDL CTFile standard property lines are limited to 200 characters.  When selected, properties longer than 200 characters are with newlines every 200 characters.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Skip Null Or Empty String Properties&lt;/b&gt;:  When selected, properties that are either null or empty strings will be skipped upon SD export.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Write Dot For Empty String Properties&lt;/b&gt;:  In the MDL CTFile format, an empty line is used to terminate a property value.  Because of this, there is a convention of writing a &apos;.&apos; on an empty line to distinguish between a property that has an empty string value (&quot;&quot;) and a property that has no value (or a null value).  Selecting this option enables this convention and empty string properties are written with a &apos;.&apos; on the first line and an empty second line to terminate the property.  When not selected, empty string properties will be written with only a single empty terminating line (the same as null properties).  The default for this option is &quot;on&quot; to match the behavior in previous versions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&amp;nbsp
&lt;/p&gt;
&lt;b&gt;V2000 and V3000 Format Parameters&lt;/b&gt;
&lt;p&gt;
The next two options can be used to force the SD file format to be exclusively V2000 or V3000. If none of the options is selected, the input molecules are written in V2000 format unless they contain features that require the use of the V3000 format. These features include presence of enhanced stereo markings, more than 999 atoms or bonds, and atom lists with more than 16 atom types. In this case, the output SD file might contain a mix of V2000 and V300 molecules.
&lt;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Use V3000 Format&lt;/b&gt;:  Force the format to be MDL V3000 for all molecules.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Use V2000 Format&lt;/b&gt;:  Force the format to be MDL V2000 for all molecules. Any molecule with features that require the V3000 format is sent to the Fail port. Note that the Fail port in the SD Writer is not active by default. If you want to use this option, make sure to activate the component Fail port by right-clicking on the component and selecting the &lt;i&gt;Toggle Ports&lt;/i&gt; menu.&lt;/li&gt;
&lt;/ul&gt;

</sci:help>
						<sci:enabledscript>#NAME := trim(Parameter(&apos;Output File Name&apos;));
SetDisabledDetails(&apos;Only available if &quot;Output File Name&quot; is SD&apos;);
numvalues( rmatch(#NAME, &apos;\.mol2$&apos;,&apos;i&apos;) ) = 0;</sci:enabledscript>
						<sci:legalval selected="true">Write Structure</sci:legalval>
						<sci:legalval selected="true">Write Properties</sci:legalval>
						<sci:legalval selected="true">Write Date</sci:legalval>
						<sci:legalval>Write Fully Padded Lines</sci:legalval>
						<sci:legalval selected="true">Write Query Info</sci:legalval>
						<sci:legalval>Write Two Spaces In Data Header Line</sci:legalval>
						<sci:legalval selected="true">Wrap Long Property Lines</sci:legalval>
						<sci:legalval>Skip Null Or Empty String Properties</sci:legalval>
						<sci:legalval selected="true">Write Dot For Empty String Properties</sci:legalval>
						<sci:legalval>Use V3000 Format</sci:legalval>
						<sci:legalval>Use V2000 Format</sci:legalval>
					</sci:arg>
					<sci:arg name="Comment" type="StringType" required="false" visibility="visible" multi="false">
						<sci:metaproplist>
							<sci:mpropval name="SCI_PromotedFrom" ishidden="true" type="StringType">
								<sci:value>Comment</sci:value>
							</sci:mpropval>
							<sci:propval name="SCI_PromotionRenameRule" ishidden="true">UsingParent</sci:propval>
						</sci:metaproplist>
						<sci:help>Name of the property that holds the comment to write in the CTAB header for each molecule</sci:help>
						<sci:enabledscript>#NAME := trim(Parameter(&apos;Output File Name&apos;));
SetDisabledDetails(&apos;Only available if &quot;Output File Name&quot; is SD&apos;);
numvalues( rmatch(#NAME, &apos;\.mol2$&apos;,&apos;i&apos;) ) = 0;</sci:enabledscript>
						<sci:value>Comment</sci:value>
					</sci:arg>
					<sci:arg name="Name" type="StringType" required="false" visibility="visible" multi="false">
						<sci:metaproplist>
							<sci:mpropval name="SCI_PromotedFrom" ishidden="true" type="StringType">
								<sci:value>Name</sci:value>
							</sci:mpropval>
							<sci:propval name="SCI_PromotionRenameRule" ishidden="true">UsingParent</sci:propval>
						</sci:metaproplist>
						<sci:help>Name of property that holds the name of each molecule</sci:help>
						<sci:value>Name</sci:value>
					</sci:arg>
					<sci:arg name="Script Name" type="StringType" required="false" visibility="visible" multi="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>Destination,MergeOption,Update</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="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>{63225887-7E61-973B-13E1-1F5ED23CF727}</sci:value>
					</sci:arg>
					<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>1890 -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>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 molecules in Discovery Studio</sci:value>
						<sci:value>&lt;p&gt;
Sends molecules to Discovery Studio for display and further interactive analysis. All molecules and their properties are preserved.
&lt;/p&gt;&lt;p&gt;
If you are running a protocol interactively in Discovery Studio, the Discovery Studio input window can be modified by the molecules.
&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>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.1.0.13</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>Fri Aug 23 11:34:52 2013</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>DS Molecule 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>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="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 Molecule Viewer</sci:value>
					</sci:arg>
				</sci:component>
				<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>fileexists(@JobDir.&quot;/PDBIDs.txt&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>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="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>Hitlist Exists?</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 -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>None</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>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\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="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:value>Message</sci:value>
					</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 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>Client 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>390 -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>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>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>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\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>/* See Initial */</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>
/* Hits or hit */
#s := &quot; hit&quot;;
if (@NumberOfHits != 1) then
	#s .= &quot;s&quot;;
end if;

/* Capped? */
#Capped := &quot;&quot;;
if (@NumberOfHits &gt; @Maximum) then
	#Capped := &apos;First &apos; . @Maximum . &apos; of &apos;;
end if;

@Message := #Capped . @NumberOfHits . #s .&quot; downloading...&quot;;</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: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>Setup 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>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>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\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>Short message to send to the client.</sci:help>
								<sci:member>Client Message Final</sci:member>
								<sci:value>$(Message)</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>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>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>0</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:connectid from="1" to="0" type="true"/>
				</sci:protocol>
			</sci:data>
			<sci:data object="SciTegic.DelimitedReader.1">
				<sci:component name="Delimited Text Reader" version="2">
					<sci:arg name="Source" type="URLType" required="true" visibility="visible" multi="false">
						<sci:help>The file(s) or URL source to read</sci:help>
						<sci:member>Maximum</sci:member>
						<sci:member>Keep Properties</sci:member>
						<sci:member>SourceTag</sci:member>
						<sci:member>HasColumnNames</sci:member>
						<sci:value>$(JobDir)/PDBIDs.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 read (all if value is empty)</sci:help>
					</sci:arg>
					<sci:arg name="SourceTag" type="StringType" required="true" visibility="visible" multi="false">
						<sci:help>The type of tag to create to identify the source of data records. A property called &quot;SourceTag&quot; is created and holds the value indicated.

 - None: No SourceTag property is created and any existing ones are removed.

 - Filename: The name of the file read.

 - FilenameAndExtension: The name of the file read with its file extension.

 - FullFilename: The name of the file read, including the directory path.

 - ZipFilename: When reading a compressed zip file, the filename within the compressed archive.

 - Number: When multiple files are read in this component, they are numbered 1,2,3...

 - Letter: When multiple files are read in this component, they are lettered A, B, C...

 - KeepCurrent: Keeps the current value of SourceTag.</sci:help>
						<sci:legalval selected="true">None</sci:legalval>
						<sci:legalval>Filename</sci:legalval>
						<sci:legalval>FilenameAndExtension</sci:legalval>
						<sci:legalval>FullFilename</sci:legalval>
						<sci:legalval>ZipFilename</sci:legalval>
						<sci:legalval>Number</sci:legalval>
						<sci:legalval>Letter</sci:legalval>
						<sci:legalval>KeepCurrent</sci:legalval>
					</sci:arg>
					<sci:arg name="Keep Properties" type="PropertyPreviewType" required="false" visibility="visible" multi="false">
						<sci:help>A list of properties the reader should retain for each data record that is output. If a value is not defined, retains all properties. If the parameter contains the value &quot;-&quot; (minus sign), properties are not retained.</sci:help>
					</sci:arg>
					<sci:arg name="HasColumnNames" type="BoolType" required="true" visibility="visible" multi="false">
						<sci:help>When True, property names are taken from the first line of data in the file. When False, properties are named Column1,Column2, etc.</sci:help>
						<sci:legalval selected="true">True</sci:legalval>
						<sci:legalval>False</sci:legalval>
					</sci:arg>
					<sci:arg name="Delimiter" type="StringType" required="true" visibility="visible" multi="false">
						<sci:help>Specifies the character that separates fields. Options include:
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;FigureOut:&lt;/b&gt; Determines the type automatically (looks for, in order: tab, comma, space, colon, semicolon).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Tab:&lt;/b&gt; For tab-delimited fields.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Space:&lt;/b&gt; For space-delimited fields.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Comma:&lt;/b&gt; For comma-delimited fields.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Colon:&lt;/b&gt; For colon-delimited fields.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Semicolon:&lt;/b&gt; For semicolon-delimited fields.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;$:&lt;/b&gt; For fields delimited bty the &quot;$&quot; character.&lt;/li&gt;
&lt;/ul&gt;
</sci:help>
						<sci:member>MultipleValueDelimiter</sci:member>
						<sci:member>ParseNDimensionalArrayStrings</sci:member>
						<sci:legalval selected="true">FigureOut</sci:legalval>
						<sci:legalval>Tab</sci:legalval>
						<sci:legalval>Space</sci:legalval>
						<sci:legalval>Comma</sci:legalval>
						<sci:legalval>Colon</sci:legalval>
						<sci:legalval>Semicolon</sci:legalval>
						<sci:legalval>$</sci:legalval>
					</sci:arg>
					<sci:arg name="MultipleValueDelimiter" type="StringType" required="true" visibility="visible" multi="false">
						<sci:help>The delimiter to use between multiple values contained in a single property. If the multiple value delimited exists in any of the input strings in any property, they are separated into an array of values. If &quot;None&quot;, 
values are never separated into multiple values.</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="ParseNDimensionalArrayStrings" type="BoolType" required="false" visibility="visible" multi="false">
						<sci:help>Toggles whether to parse delimited N-Dimensional Array strings into N-Dimensional Array values.</sci:help>
						<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>Contains less commonly used parameters</sci:help>
						<sci:member>UndefinedString</sci:member>
						<sci:member>AllLines</sci:member>
						<sci:member>TrimWhitespace</sci:member>
						<sci:member>CheckSyntax</sci:member>
						<sci:member>CommentLines</sci:member>
						<sci:member>AddEmptyProperties</sci:member>
					</sci:arg>
					<sci:arg name="CommentLines" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>A comma-separated list of line numbers and
line ranges to specify which lines should be 
ignored by the parser (column headers will be
read from the line that comes next).</sci:help>
					</sci:arg>
					<sci:arg name="UndefinedString" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>Character or string used to represent an undefined string read in the file.  If you wish an empty string to be treated as an undefined value, then set the parameter value to &quot;EmptyString&quot;.</sci:help>
					</sci:arg>
					<sci:arg name="AllLines" type="BoolType" required="true" visibility="visible" multi="false">
						<sci:help>When True, all lines of the text file become part of a single data record. The values for a column from each row become multiple [array] values for the property (column).</sci:help>
						<sci:legalval>True</sci:legalval>
						<sci:legalval selected="true">False</sci:legalval>
					</sci:arg>
					<sci:arg name="TrimWhitespace" type="BoolType" required="true" visibility="visible" multi="false">
						<sci:help>Trims whitespace from the left and right ends of each value</sci:help>
						<sci:legalval selected="true">True</sci:legalval>
						<sci:legalval>False</sci:legalval>
					</sci:arg>
					<sci:arg name="CheckSyntax" type="BoolType" required="true" visibility="visible" multi="false">
						<sci:help>Whether to perform a quick syntax check at the beginning of the file when we open it, and if a problem is found, throw an error.</sci:help>
						<sci:legalval selected="true">True</sci:legalval>
						<sci:legalval>False</sci:legalval>
					</sci:arg>
					<sci:arg name="AddEmptyProperties" type="BoolType" required="true" visibility="visible" multi="false">
						<sci:help>If True, then if a row does not have as many values as the number of columns, the missing properties are added to the data record as empty properties</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: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/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 05 09:15:06 2008</sci:value>
					</sci:arg>
					<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>Read Hitlist</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 Reader</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="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>{7D2AF7C7-A077-4201-B10B-8E8283A5EADD}</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>Reads data from text files containing one record per line with data separated by delimiters</sci:value>
						<sci:value>&lt;p&gt;The file or files are specified by &lt;i&gt;Source&lt;/i&gt;.  The file(s) should contain textual data formatted with a single record per line. Individual property values on each line should be separated by a delimiter character (e.g., space, comma, tab), as specified by &lt;i&gt;Delimiter&lt;/i&gt;.&lt;/p&gt;

&lt;p&gt;If &lt;i&gt;HasColumnNames&lt;/i&gt; is True, the values on the first line of the file are treated as the property names. Otherwise, &lt;b&gt;Column1&lt;/b&gt;, &lt;b&gt;Column2&lt;/b&gt;, etc. are used as the property names.&lt;/p&gt;

&lt;b&gt;See Also:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;For Excel (.xls) files use either &lt;a href=&quot;javascript:DoLink(&apos;{F0D460F7-BF69-4D27-AAD9-A678E2EA6D50}&apos;)&quot;&gt;Excel Reader (on Server)&lt;/a&gt; or &lt;a href=&quot;javascript:DoLink(&apos;{A8323ECE-4478-4A98-88C4-E21C6F9ED11B}&apos;)&quot;&gt;Excel Reader (on Client)&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;For non-delimited textual data, use &lt;a href=&quot;javascript:DoLink(&apos;{8056E8AD-33EA-42BB-9099-EAB24C3D08E6}&apos;)&quot;&gt;Text Reader&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

</sci:value>
						<sci:value>Generic Data</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.0.0.51</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\Data Access and Manipulation\File Readers\Delimited Text Reader</sci:value>
					</sci:arg>
				</sci:component>
			</sci:data>
			<sci:data object="SciTegic.Protocol.1">
				<sci:component name="Subprotocol" version="2">
					<sci:arg name="PDBID Property" type="StringType" required="false" visibility="visible" multi="false" expanded="true">
						<sci:help>Name of the property containing the PDB IDs.</sci:help>
						<sci:member>SourceTag</sci:member>
						<sci:member>Keep Properties</sci:member>
						<sci:member>Maximum</sci:member>
						<sci:member>First Model Only</sci:member>
						<sci:value>PDBID</sci:value>
					</sci:arg>
					<sci:arg name="Maximum" type="LongType" required="false" visibility="visible" multi="false">
						<sci:value>$(Maximum)</sci:value>
					</sci:arg>
					<sci:arg name="First Model Only" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>Specifies whether to read only the first structure from PDB files containing multiple models</sci:help>
						<sci:value>$(First Model Only)</sci:value>
					</sci:arg>
					<sci:arg name="SourceTag" type="StringType" required="true" visibility="visible" multi="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;li&gt;&lt;b&gt;ZipFilename&lt;/b&gt;: When reading a compressed zip file, the filename within the compressed archive.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Number&lt;/b&gt;: When multiple files are read in this component, they are numbered 1,2,3...&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Letter&lt;/b&gt;: When multiple files are read in this component, they are lettered A, B, C...&lt;/li&gt;
&lt;li&gt;&lt;b&gt;KeepCurrent&lt;/b&gt;: Keeps the current value of SourceTag.&lt;/li&gt;
&lt;/ul&gt;</sci:help>
						<sci:legalval>None</sci:legalval>
						<sci:legalval selected="true">Filename</sci:legalval>
						<sci:legalval>FilenameAndExtension</sci:legalval>
						<sci:legalval>FullFilename</sci:legalval>
						<sci:legalval>ZipFilename</sci:legalval>
						<sci:legalval>Number</sci:legalval>
						<sci:legalval>Letter</sci:legalval>
						<sci:legalval>KeepCurrent</sci:legalval>
					</sci:arg>
					<sci:arg name="Keep Properties" type="PropertyPreviewType" required="false" visibility="visible" multi="false">
						<sci:help>A list of properties that are to be retained in each data record output by the reader component. If the value is left blank, then all properties are retained.  If the parameter contains the value &quot;-&quot; (minus sign), then no properties are retained.</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>ReferenceData</sci:member>
						<sci:member>Generate Error When</sci:member>
						<sci:member>Create Bonds From Distances For Unknown Residues</sci:member>
						<sci:member>Create Bonds From Distances For Hydrogen Atoms</sci:member>
						<sci:member>Create Disulfide Bridges</sci:member>
						<sci:member>Base URL</sci:member>
					</sci:arg>
					<sci:arg name="ReferenceData" type="URLType" required="false" visibility="visible" multi="false">
						<sci:help>Location of one or more reference files used to load data for residue bonds and charges.  Multiple files are delimited by commas.  Data from earlier files in the list take precedence over residue definitions read later in the list. </sci:help>
						<sci:value>data\PDB\ResidueData.xml,data/PDB/pdb_ligand_templates.xml.gz</sci:value>
					</sci:arg>
					<sci:arg name="Generate Error When" type="StringType" required="false" visibility="visible" multi="true">
						<sci:help>Determines the cases in which a PDB reader error is generated and the protocol is terminated.  This parameter offers some flexibility in behavior, to handle PDB files that have unknown or incomplete data. When the option &lt;b&gt;Residue is Unknown&lt;/b&gt; is not selected for this parameter and an unknown residue is found, the bonds for the unknown residue are defined based on the distance between atoms.  A single bond is defined for any pair of atoms closer than 2.0 angstroms. </sci:help>
						<sci:legalval>Residue is unknown</sci:legalval>
						<sci:legalval>Residue is incomplete</sci:legalval>
					</sci:arg>
					<sci:arg name="Create Bonds From Distances For Unknown Residues" type="BoolType" required="false" visibility="visible" multi="false">
						<sci:help>Create bonds based on interatomic distances for unknown residues. When this parameter is set to &lt;i&gt;false&lt;/i&gt;, only bonds specified by &apos;CONECT&apos; lines are created for unknown residues.</sci:help>
						<sci:legalval selected="true">True</sci:legalval>
						<sci:legalval>False</sci:legalval>
					</sci:arg>
					<sci:arg name="Create Bonds From Distances For Hydrogen Atoms" type="BoolType" required="false" visibility="visible" multi="false">
						<sci:help>Control whether or not to create bonds to Hydrogen atoms based on interatomic distances. Any hydrogen within 1.20 angstroms of a heavy atom is connected to that atom.</sci:help>
						<sci:legalval selected="true">True</sci:legalval>
						<sci:legalval>False</sci:legalval>
					</sci:arg>
					<sci:arg name="Create Disulfide Bridges" type="BoolType" required="false" visibility="visible" multi="false">
						<sci:help>Control whether or not to create disulfide bridge bonds based on interatomic distances. Any pair of unbonded Sulfur atoms within 2.50 angstroms are connected together.</sci:help>
						<sci:legalval>True</sci:legalval>
						<sci:legalval selected="true">False</sci:legalval>
					</sci:arg>
					<sci:arg name="Base URL" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>The base URL to use. /&amp;lt;id&amp;gt;.pdb.gz is appended.</sci:help>
						<sci:value>https://files.rcsb.org/download</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:value>Source</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" 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>ComponentReturnsFail</sci:legalval>
						<sci:legalval>ComponentRunsLocal</sci:legalval>
					</sci:arg>
					<sci:arg name="OnDataTypeError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval>Halt</sci:legalval>
						<sci:legalval selected="true">Fail</sci:legalval>
						<sci:legalval>Pass</sci:legalval>
					</sci:arg>
					<sci:arg name="OnGeneralError" type="StringType" required="true" visibility="hidden" multi="false">
						<sci:legalval>Halt</sci:legalval>
						<sci:legalval selected="true">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="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>Reads PDB files from the RCSB</sci:value>
						<sci:value>&lt;p&gt;Reads protein data bank (PDB) format files from the Research Collaboratory for Structural Bioinformatics (RCSB) website.&lt;/p&gt;
&lt;p&gt;Incoming data records with a valid id in the PDBID property are downloaded an read on to the data stream.&lt;/p&gt;</sci:value>
						<sci:value>Generic</sci:value>
						<sci:value>Data record with PDBID property</sci:value>
						<sci:value>Molecule</sci:value>
						<sci:value>Molecules from RCSB</sci:value>
						<sci:value>None</sci:value>
						<sci:value>Records without PDBID or invalid identifiers</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.48</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/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 Feb 25 11:10:06 2008</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="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>Read PDB from RCSB</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>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="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
						<sci:value>990 -1355</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: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" 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>#PDBID := property(@&apos;PDBID Property&apos;);
@Source .= @&apos;Base URL&apos; . &quot;/&quot; . #PDBID . &quot;.pdb,&quot;;
</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>@URL := &apos;&apos;;@MaximumReached := &apos;&apos;</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>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>Setup Source</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 -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: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.RangeScreen.1">
						<sci:component name="Range Filter" version="2">
							<sci:arg name="List" type="StringType" required="true" visibility="visible" multi="false">
								<sci:help>A list of which data records to pass:
  e.g.,  1,3-5,7,10-11
     will pass the first, third, fourth, fifth and so on.</sci:help>
								<sci:value>1-$(Maximum)</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/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 Dec 13 12:38:32 2002</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>Maximum?</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="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>{0C71D911-BF35-4A1B-8B2C-B9A586BD39F3}</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>Range Filter</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 -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 within a specified range based on the order in which they arrive</sci:value>
								<sci:value>&lt;p&gt;Data records are numbered consecutively (from 1) as they arrive at the component.  The record numbers specified by &lt;i&gt;List&lt;/i&gt; are sent out the Pass port. Records not specified are sent out the Fail port.&lt;/p&gt;

&lt;p&gt;&lt;i&gt;List&lt;/i&gt; items need to be entered as comma-separated values. &lt;i&gt;List&lt;/i&gt; can accept single item indices or ranges (such as &quot;1-5,7,9,13-15&quot;).&lt;/p&gt; 

</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value/>
								<sci:value>Generic</sci:value>
								<sci:value>Data records whose indices match the specified list</sci:value>
								<sci:value>None</sci:value>
								<sci:value>Data records whose indices do not match the specified list</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\Data Filters\Range Filter</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: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>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>690 -455</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>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\Utilities\Subprotocol Utilities\Data to Fail Port</sci:value>
							</sci:arg>
						</sci:component>
					</sci:data>
					<sci:data object="SciTegic.PropertyFunctions.1">
						<sci:component name="First Occurrence Filter" version="2">
							<sci:arg name="KeyProperty" type="StringType" required="true" visibility="visible" multi="false">
								<sci:help>Name of the property holding values to keep only one of.  If you give a comma-separated list of multiple keys, then all values must have occurred at the same time on some other record for it to be rejected.</sci:help>
								<sci:member>CaseSensitive</sci:member>
								<sci:value>PDBID</sci:value>
							</sci:arg>
							<sci:arg name="CaseSensitive" type="BoolType" required="true" visibility="visible" multi="false">
								<sci:help>Whether to perform the comparison as case-sensitive or case-insensitive 
strings</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="Action" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:help>the action to perform</sci:help>
								<sci:value>FirstOccurrence</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 Jan 16 14:54:51 2003</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>First Occurrence
Filter</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>Expression Filter</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="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>{D2EC3EBB-CD17-4093-93A9-D9FB603DE083}</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 the values of specified properties have not been seen on any previous record

</sci:value>
								<sci:value>&lt;p&gt;For each incoming data record, the value of the property specified by &lt;i&gt;KeyProperty&lt;/i&gt; is checked.  If the value has not been seen in earlier records, the record is sent out the Pass port.  Otherwise it is sent out the Fail port.&lt;/p&gt;

&lt;b&gt;See Also:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To filter for data records with property values that occur once and only once in the input stream, use &lt;a href=&quot;javascript:DoLink(&apos;{2FD9ECF2-C47F-4A20-AC72-5F352E08FC98}&apos;)&quot;&gt;Unique Filter&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>Data records with the first occurrence of a value of the given property.</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value>Data records with the second and subsequent occurrences of a value of the given property.</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\Data Filters\First Occurrence Filter</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>@NumDuplicateHits +=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:value>@NumDuplicateHits := 0;</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: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>Count duplicates</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>390 -815</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.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: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>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>690 -815</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>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\Utilities\Subprotocol Utilities\Data to Fail Port</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(@NumModels &gt; 1) then /*previous model had multiple models*/
	@ReportString += @ModelName . &quot;(&quot; . @NumModels . &quot; models)&lt;br&gt;&quot;;
	@NumWithMultipleModels +=1;
	@NumModels :=1;
end if;
	
@ModelName := SourceTag;
</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>@ModelName := &quot;&quot;;
@NumWithMultipleModels :=0;
@NumModels := 1;
@ReportString := &quot;&quot;;</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: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 multi-model message</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 -1175</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.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: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>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>990 -1175</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>21</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.PDBReader.1">
						<sci:component name="PDB Reader" version="2">
							<sci:arg name="Source" type="StringType" required="true" visibility="visible" multi="false">
								<sci:help>The file or URL source to read.</sci:help>
								<sci:member>Maximum</sci:member>
								<sci:member>SourceTag</sci:member>
								<sci:member>Keep Properties</sci:member>
								<sci:value>$(Source)</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 read (all if value is empty).</sci:help>
							</sci:arg>
							<sci:arg name="SourceTag" type="StringType" required="true" visibility="visible" multi="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;li&gt;&lt;b&gt;ZipFilename&lt;/b&gt;: When reading a compressed zip file, the filename within the compressed archive.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Number&lt;/b&gt;: When multiple files are read in this component, they are numbered 1,2,3...&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Letter&lt;/b&gt;: When multiple files are read in this component, they are lettered A, B, C...&lt;/li&gt;
&lt;li&gt;&lt;b&gt;KeepCurrent&lt;/b&gt;: Keeps the current value of SourceTag.&lt;/li&gt;
&lt;/ul&gt;</sci:help>
								<sci:value>$(SourceTag)</sci:value>
							</sci:arg>
							<sci:arg name="Keep Properties" type="StringType" required="false" visibility="visible" multi="false">
								<sci:help>A list of properties that are to be retained in each data record output by the reader component. If the value is left blank, then all properties are retained.  If the parameter contains the value &quot;-&quot; (minus sign), then no properties are retained.</sci:help>
								<sci:value>$(Keep Properties)</sci:value>
							</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>ReferenceData</sci:member>
								<sci:member>Generate Error When</sci:member>
								<sci:member>Create Bonds From Distances For Unknown Residues</sci:member>
								<sci:member>Create Bonds From Distances For Hydrogen Atoms</sci:member>
								<sci:member>Create Disulfide Bridges</sci:member>
							</sci:arg>
							<sci:arg name="ReferenceData" type="StringType" required="false" visibility="visible" multi="false">
								<sci:help>Location of one or more reference files used to load data for residue bonds and charges.  Multiple files are delimited by commas.  Data from earlier files in the list take precedence over residue definitions read later in the list. </sci:help>
								<sci:value>$(ReferenceData)</sci:value>
							</sci:arg>
							<sci:arg name="Generate Error When" type="StringType" required="false" visibility="visible" multi="true">
								<sci:help>Determines the cases in which a PDB reader error is generated and the protocol is terminated.  This parameter offers some flexibility in behavior, to handle PDB files that have unknown or incomplete data. When the option &lt;b&gt;Residue is Unknown&lt;/b&gt; is not selected for this parameter and an unknown residue is found, the bonds for the unknown residue are defined based on the distance between atoms.  A single bond is defined for any pair of atoms closer than 2.0 angstroms. </sci:help>
								<sci:value>$(Generate Error When)</sci:value>
							</sci:arg>
							<sci:arg name="Create Bonds From Distances For Unknown Residues" type="StringType" required="false" visibility="visible" multi="false">
								<sci:help>Create bonds based on interatomic distances for unknown residues. When this parameter is set to &lt;i&gt;false&lt;/i&gt;, only bonds specified by &apos;CONECT&apos; lines are created for unknown residues.</sci:help>
								<sci:value>$(Create Bonds From Distances For Unknown Residues)</sci:value>
							</sci:arg>
							<sci:arg name="Create Bonds From Distances For Hydrogen Atoms" type="StringType" required="false" visibility="visible" multi="false">
								<sci:help>Control whether or not to create bonds to Hydrogen atoms based on interatomic distances. Any hydrogen within 1.20 angstroms of a heavy atom is connected to that atom.</sci:help>
								<sci:value>$(Create Bonds From Distances For Hydrogen Atoms)</sci:value>
							</sci:arg>
							<sci:arg name="Create Disulfide Bridges" type="StringType" required="false" visibility="visible" multi="false">
								<sci:help>Control whether or not to create disulfide bridge bonds based on interatomic distances. Any pair of unbonded Sulfur atoms within 2.50 angstroms are connected together.</sci:help>
								<sci:value>$(Create Disulfide Bridges)</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="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/chemistry</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 09 13:54:40 2007</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>PDB Reader</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>{CEDE6219-9866-4EC5-B15A-E523439FD86C}</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>PDB 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="ComponentPoint2" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>Component Point</sci:help>
								<sci:value>85 -50</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="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:value>100</sci:value>
								<sci:value>Reads a data file of molecules in PDB format</sci:value>
								<sci:value>&lt;p&gt;Creates a molecular data record for each molecule represented in the &lt;i&gt;Source&lt;/i&gt; Protein Data Bank (PDB) format data file.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;All bonds specified in &apos;CONECT&apos; records are read as single bonds.&lt;/li&gt;
&lt;li&gt;This component can also read zipped (.zip) and URL-based files.&lt;/li&gt;
&lt;/ul&gt;


</sci:value>
								<sci:value>None</sci:value>
								<sci:value/>
								<sci:value>Molecule</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.0.0.23</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\Chemistry\Data Access and Manipulation\Readers\PDB Reader</sci:value>
							</sci:arg>
						</sci:component>
					</sci:data>
					<sci:data object="SciTegic.PropertyFunctions.1">
						<sci:component name="First Occurrence Filter" version="2">
							<sci:arg name="KeyProperty" type="StringType" required="true" visibility="visible" multi="false">
								<sci:help>Name of the property holding values to keep only one of.  If you give a comma-separated list of multiple keys, then all values must have occurred at the same time on some other record for it to be rejected.</sci:help>
								<sci:member>CaseSensitive</sci:member>
								<sci:value>SourceTag</sci:value>
							</sci:arg>
							<sci:arg name="CaseSensitive" type="BoolType" required="true" visibility="visible" multi="false">
								<sci:help>Whether to perform the comparison as case-sensitive or case-insensitive 
strings</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="Action" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:help>the action to perform</sci:help>
								<sci:value>FirstOccurrence</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 Jan 16 14:54:51 2003</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>First Occurrence
Filter</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>Expression Filter</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="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>{D2EC3EBB-CD17-4093-93A9-D9FB603DE083}</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 the values of specified properties have not been seen on any previous record

</sci:value>
								<sci:value>&lt;p&gt;For each incoming data record, the value of the property specified by &lt;i&gt;KeyProperty&lt;/i&gt; is checked.  If the value has not been seen in earlier records, the record is sent out the Pass port.  Otherwise it is sent out the Fail port.&lt;/p&gt;

&lt;b&gt;See Also:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;To filter for data records with property values that occur once and only once in the input stream, use &lt;a href=&quot;javascript:DoLink(&apos;{2FD9ECF2-C47F-4A20-AC72-5F352E08FC98}&apos;)&quot;&gt;Unique Filter&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>Data records with the first occurrence of a value of the given property.</sci:value>
								<sci:value>Generic</sci:value>
								<sci:value>Data records with the second and subsequent occurrences of a value of the given property.</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>973 -779 439 352</sci:value>
								<sci:value>255 255 0</sci:value>
								<sci:value>For multi-model files, just keep the first. (Ideally PDB reader should have option to allow only the first to be read, like DS does.)</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: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 Filters\First Occurrence Filter</sci:value>
							</sci:arg>
						</sci:component>
					</sci:data>
					<sci:data object="SciTegic.TransformMolecule.1">
						<sci:component name="Standardize Molecule" version="2">
							<sci:arg name="Action" type="StringType" required="false" visibility="visible" multi="true">
								<sci:help>Options for the type of standardization you can perform. The default is to standardize the charging and stereochemistry of the molecule. If multiple actions are selected, they are performed in  the given order.</sci:help>
								<sci:member>Invert Wedge Bond When Changing Direction</sci:member>
								<sci:member>Single Halogen Atoms</sci:member>
								<sci:member>Single Metal Atoms</sci:member>
								<sci:member>Process Pseudo Stereo Atoms</sci:member>
								<sci:legalval>StandardizeStereo</sci:legalval>
								<sci:legalval selected="true">StandardizeCharges</sci:legalval>
								<sci:legalval>CenterMolecule</sci:legalval>
								<sci:legalval>RemoveSingleAtomFragments</sci:legalval>
								<sci:legalval>KeepSmallestFragment</sci:legalval>
								<sci:legalval>KeepLargestFragment</sci:legalval>
								<sci:legalval>RemoveLargestFragment</sci:legalval>
								<sci:legalval>MakeNon[H]Atoms[C]Atoms</sci:legalval>
								<sci:legalval>MakeNon[H]Atoms[A]Atoms</sci:legalval>
								<sci:legalval>MakeNon[C,H]Atoms[Q]Atoms</sci:legalval>
								<sci:legalval>MakeAllBondsSingle</sci:legalval>
								<sci:legalval>ClearCoordinates</sci:legalval>
								<sci:legalval>FixCoordinateDimension</sci:legalval>
								<sci:legalval>ClearMolecule</sci:legalval>
								<sci:legalval>RemoveMolecule</sci:legalval>
								<sci:legalval>ClearStereo</sci:legalval>
								<sci:legalval>ClearEnhancedStereo</sci:legalval>
								<sci:legalval>ClearUnknownStereo</sci:legalval>
								<sci:legalval>ClearUnknownAtomStereo</sci:legalval>
								<sci:legalval>ClearUnknownCisTransBondStereo</sci:legalval>
								<sci:legalval>ClearCisTransBondStereo</sci:legalval>
								<sci:legalval>SetStereoFromCoordinates</sci:legalval>
								<sci:legalval>RepositionStereoBonds</sci:legalval>
								<sci:legalval>FixDirectionOfWedgeBonds</sci:legalval>
								<sci:legalval>ClearCharges</sci:legalval>
								<sci:legalval>ClearSgroupData</sci:legalval>
								<sci:legalval>ClearCustomData</sci:legalval>
								<sci:legalval>ClearRepeatUnits</sci:legalval>
								<sci:legalval>ClearPiBonds</sci:legalval>
								<sci:legalval>ClearHighlightColors</sci:legalval>
								<sci:legalval>ClearQueryInfo</sci:legalval>
								<sci:legalval>ClearAtomLabels</sci:legalval>
								<sci:legalval>ClearBondLabels</sci:legalval>
								<sci:legalval>NeutralizeBondedZwitterions</sci:legalval>
								<sci:legalval>ClearUnusualValence</sci:legalval>
								<sci:legalval>ClearIsotopes</sci:legalval>
								<sci:legalval>LocalizeMarkushRAtomsOnRings</sci:legalval>
								<sci:legalval>InvalidateCustomDataCoordinates</sci:legalval>
								<sci:legalval>InvalidateRepeatUnitCoordinates</sci:legalval>
							</sci:arg>
							<sci:arg name="Single Halogen Atoms" type="StringType" required="false" visibility="visible" multi="false">
								<sci:help>Specify whether to charge, uncharge or keep the current charge for  any unconnected halogen atom found in the molecule.
&lt;br&gt;
This option is enabled only when &quot;StandardizeCharges&quot; is selected in the &lt;i&gt;Action&lt;/i&gt; parameter.</sci:help>
								<sci:enabledscript>contains(parameter(&apos;Action&apos;), &apos;StandardizeCharges&apos;)</sci:enabledscript>
								<sci:legalval selected="true">Charge</sci:legalval>
								<sci:legalval>Uncharge</sci:legalval>
								<sci:legalval>Keep Current Charge</sci:legalval>
							</sci:arg>
							<sci:arg name="Single Metal Atoms" type="StringType" required="false" visibility="visible" multi="false">
								<sci:help>Specify whether to charge, uncharge or keep the current charge for  any unconnected metal atom found in the molecule.
&lt;br&gt;
This option is enabled only when &quot;StandardizeCharges&quot; is selected in the &lt;i&gt;Action&lt;/i&gt; parameter.</sci:help>
								<sci:enabledscript>contains(parameter(&apos;Action&apos;), &apos;StandardizeCharges&apos;)</sci:enabledscript>
								<sci:legalval selected="true">Charge</sci:legalval>
								<sci:legalval>Uncharge</sci:legalval>
								<sci:legalval>Keep Current Charge</sci:legalval>
							</sci:arg>
							<sci:arg name="Process Pseudo Stereo Atoms" type="BoolType" required="false" visibility="visible" multi="false">
								<sci:help>Whether or not to include pseudo stereo atoms not marked with up or down bond wedges (unknown pseudo stereo) when doing &quot;StandardizeStereo&quot; or &quot;SetStereoFromCoordinates&quot;. </sci:help>
								<sci:enabledscript>contains(parameter(&apos;Action&apos;), &apos;SetStereoFromCoordinates&apos;) or
contains(parameter(&apos;Action&apos;), &apos;StandardizeStereo&apos;)</sci:enabledscript>
								<sci:legalval selected="true">True</sci:legalval>
								<sci:legalval>False</sci:legalval>
							</sci:arg>
							<sci:arg name="Invert Wedge Bond When Changing Direction" type="BoolType" required="false" visibility="visible" multi="false">
								<sci:help>This parameter controls whether or not to invert the bond stereo (up or down) when changing the direction of the wedge bond by selecting &quot;FixDirectionOfWedgeBonds&quot; in the &lt;i&gt;Action&lt;/i&gt; parameter.</sci:help>
								<sci:enabledscript>contains(parameter(&apos;Action&apos;), &apos;FixDirectionOfWedgeBonds&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>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="Registrant" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:help>The user who registered this component.</sci:help>
								<sci:value>scitegic/chemistry</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 14 13:25:59 2009</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>Standardize Charges</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>Standardize Charges</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>{EFEA1A46-A6DB-4DB9-A5A9-C7F3D2ADFDE2}</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>Applies selected predefined actions to the input molecules</sci:value>
								<sci:value>&lt;p&gt;One or more actions can be applied to each molecule to standardize the way molecules are presented to downstream components. 
&lt;p&gt;
Standardization is important when comparing molecular libraries from different sources. If different rules were used for structural representation when creating these libraries, a straight comparison would yield incorrect results. This component allows you to apply a consistent set of rules to structures before comparing them.
&lt;p&gt;
Available actions:
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;StandardizeStereo: &lt;/b&gt; 
Atoms that are perceived as true stereo atoms but which have no stereochemical 
markings (UnknownAtomStereo, EvenAtomStereo, or OddAtomStereo) are set to UnknownAtomStereo. 
Atoms that have stereochemical markings but which are not true stereoatoms are 
set to NoAtomStereo. 2D or 3D coordinates are not used in this process. &lt;br /&gt;
Similarly, bonds that are perceived as true stereo double bonds, but which have 
no stereochemical markings (UnknownBondStereo, CisBondStereo, or TransBondStereo) 
are set to UnknownBondStereo. Bonds that have stereochemical markings but which 
are not true stereo bonds are set to NoBondStereo. Again, 2D or 3D coordinates 
are not used in this process.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StandardizeCharges:&lt;/b&gt; 
Sets standard formal charges for common functional groups: Quaternary Nitrogen: 
+1 &lt;br /&gt;
Nitro groups: N+(=O)O- &lt;br&gt;
Diazonium N: +1 &lt;br&gt;
Oxygen with three attachments: +1 &lt;br&gt;
X=O-C Oxygen: +1 &lt;br&gt;
Sulfur with three attachments: +1 &lt;br&gt;
S=O-C Sulfur: +1 &lt;br&gt;
F, Cl, Br, I with no attachments: -1 &lt;br&gt;
Note that halogen acids with explicit hydrogens (H-X) are not modified. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;CenterMolecule:&lt;/b&gt; 
Translates the molecule to the center of geometry. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;RemoveSingleAtomFragments:&lt;/b&gt; 
Removes all unattached atoms from the molecule. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;KeepSmallestFragment:&lt;/b&gt; 
Keeps only the fragment with fewer atoms in the case of multifragment molecules. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;MakeNon[H]Atoms[C]Atoms:&lt;/b&gt; 
Converts all the atoms in the molecule to Carbon. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;MakeNon[C,H]Atoms[Q]Atoms: &lt;/b&gt; 
Converts all non-carbon, non-hydrogen atoms in the molecule to the Q query atom type. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;MakeNon[H]Atoms[A]Atoms: &lt;/b&gt; 
Converts all non-hydrogen atoms in the molecule to the A query atom type. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;MakeAllBondsSingle: &lt;/b&gt; 
Converts all the bonds in the molecule to Single bonds. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;ClearCoordinates:&lt;/b&gt; 
Sets all x, y, z coordinates to zero. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;FixCoordinateDimension:&lt;/b&gt; 
Checks the x, y, z atomic coordinates and sets the dimension for the molecule accordingly:
&lt;ul&gt;
&lt;li&gt;3 if non-zero values are found for x or y, and for z.&lt;/li&gt;
&lt;li&gt;2 if non-zero values are found for x or y, but not for z.&lt;/li&gt;
&lt;li&gt;0 if all x, y, z coordinates are zero.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ClearMolecule:&lt;/strong&gt; 
Deletes all atoms and bonds in the molecule, keeping the molecule object in the data record. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;RemoveMolecule:&lt;/b&gt; 
Deletes the molecule object from the data record. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;ClearStereo: &lt;/b&gt; 
Sets all atoms and bonds to NoStereo. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;ClearEnhancedStereo: &lt;/b&gt; 
Clears all relative atom stereo groups (enhanced stereo) from the molecule.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ClearUnknownStereo:&lt;/b&gt; 
Sets all atoms and bonds that are marked UnknownStereo to NoStereo. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;ClearUnknownAtomStereo:&lt;/b&gt; 
Sets all atoms that are marked UnknownStereo to NoStereo. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;ClearUnknownCisTransBondStereo:&lt;/b&gt; 
Sets all bonds that are marked UnknownStereo to NoStereo. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;ClearCisTransBondStereo:&lt;/b&gt; 
Sets all bonds that are marked CisStereo or TransStereo to UnknownStereo. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;ClearCharges: &lt;/b&gt; 
Sets all formal charges to zero. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;SetStereoFromCoordinates: &lt;/b&gt; 
This option uses the 2D coordinates and up/down bond markings, or the 
3D coordinates, to assign the stereochemistry of the atoms or bonds. Typically, 
this is done by the readers or the molecules from text components. Occasionally, 
components may create molecules that need to have their stereo reperceived. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;RepositionStereoBonds: &lt;/b&gt; 
This option repositions the stereo bond markings, trying to find the best bond to mark as a wedge bond for each stereo atom. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;FixDirectionOfWedgeBonds: &lt;/b&gt; 
This option checks the wedge bonds in the molecule to make sure that the wedge is drawn with the stereo atom at the narrow end of the wedge. Any wedge bond for which there is a stereo atom at the wide end and no stereo atom at the narrow end is reversed to point in the other direction. A separate option, &lt;i&gt;Invert Wedge Bond When Changing Direction&lt;/i&gt;, controls whether or not to invert the bond stereo (up or down) when changing the direction of the wedge bond. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;ClearQueryInfo: &lt;/b&gt; 
Deletes all query information from atoms and bonds. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;NeutralizeBondedZwitterions:&lt;/b&gt; 
Converts directly bonded zwitterions (positively charged atom bonded to negatively charged atom, A+B-) to the neutral representation (A=B). &lt;/li&gt;
&lt;li&gt;&lt;b&gt;ClearSGroupData:&lt;/b&gt; 
Clears any SGroup information from the molecule. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;ClearHighlightColors:&lt;/b&gt; 
Clears any highlight colors from atoms and bonds. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;ClearAtomLabels:&lt;/b&gt; 
Clears any labels assigned to the atoms. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;ClearBondLabels:&lt;/b&gt; 
Clears any labels assigned to the bonds. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;NeutralizeBondedZwitterions:&lt;/b&gt; 
Converts directly bonded zwitterions (positively charged atom bonded to negatively charged atom, A+B-) to the neutral representation (A=B)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ClearUnusualValence:&lt;/b&gt; 
Clears any atom valence query features and resets all implicit hydrogen counts to their standard values.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ClearIsotopes:&lt;/b&gt; 
Clears any isotope information from the atoms in the molecule, setting all to the most common isotopes.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LocalizeMarkushRAtomsOnRings:&lt;/b&gt; 
Takes molecules with delocalized R atoms (R atoms pointing to center of the ring) and replaces them with R atoms attached to all available positions in the ring.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InvalidateCustomDataCoordinates:&lt;/b&gt;
Clears any specified coordinate information that is stored with the custom data objects.  This can be helpful if the molecule&apos;s coordinates have changed.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InvalidateRepeatUnitCoordinates:&lt;/b&gt;
Clears any specified coordinate information that is stored with the repeat unit objects.  This can be helpful if the molecule&apos;s coordinates have changed.&lt;/li&gt;
&lt;/ul&gt;</sci:value>
								<sci:value>Molecule</sci:value>
								<sci:value/>
								<sci:value>Molecule</sci:value>
								<sci:value>Transformed molecules </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:value>%VERSION 3%</sci:value>
								<sci:value>2161 -1054 851 264</sci:value>
								<sci:value>255 255 0</sci:value>
								<sci:value>While we read charges from the template, some structures (e.g. 1fax) have explicit hydrogens which suggest a different protonation state. This will reset charges for known bad groups.</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.300</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\Chemistry\Data Access and Manipulation\Manipulators\Standardize Molecule</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>Name</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 -1355</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>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\Remove Properties</sci:value>
							</sci:arg>
						</sci:component>
					</sci:data>
					<sci:data object="SciTegic.PropertyFunctions.1">
						<sci:component name="Rename Property" version="2">
							<sci:arg name="Property" type="StringType" required="true" visibility="visible" multi="false">
								<sci:help>Property name to change</sci:help>
								<sci:value>SourceTag</sci:value>
							</sci:arg>
							<sci:arg name="NewProperty" type="StringType" required="true" visibility="visible" multi="false">
								<sci:help>Name of the new property</sci:help>
								<sci:value>Name</sci:value>
							</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: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>Rename</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="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 Sep 15 10:07:49 2006</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>Rename Property</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>{5A384E06-8AF2-4C10-A9B7-7302DD110A48}</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>1890 -1355</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:value>100</sci:value>
								<sci:value>Renames a property</sci:value>
								<sci:value>For each data record entering the component, the property with name specified by &lt;i&gt;Property&lt;/i&gt; is renamed to the name specified by &lt;i&gt;NewProperty&lt;/i&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.0.46</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\Deprecated\Rename Property</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>@NumModels +=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:value>Count models</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>23</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>Not $(First Model Only)</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>Not First model only </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>990 -1535</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>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 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="0" to="1" type="true"/>
					<sci:connectid from="0" to="19" type="false"/>
					<sci:connectid from="14" to="0" type="true"/>
					<sci:connectid from="14" to="16" type="false"/>
					<sci:connectid from="16" to="20" type="true"/>
					<sci:connectid from="22" to="21" type="true"/>
					<sci:connectid from="21" to="4" type="true"/>
					<sci:connectid from="2" to="8" type="true"/>
					<sci:connectid from="8" to="22" type="true"/>
					<sci:connectid from="8" to="23" type="false"/>
					<sci:connectid from="4" to="5" type="true"/>
					<sci:connectid from="5" to="6" type="true"/>
					<sci:connectid from="23" to="12" type="true"/>
					<sci:connectid from="12" to="4" type="true"/>
				</sci:protocol>
			</sci:data>
			<sci:data object="SciTegic.CountRecords.1">
				<sci:component name="Count and Index Data" version="2">
					<sci:arg name="Counter Property" type="StringType" 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>@NumberOfStructures</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: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>Fri Sep 08 07:31:45 2006</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>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>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>6.0.0.44</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>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\Data Manipulators\Count and Index Data</sci:value>
					</sci:arg>
				</sci:component>
			</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;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" 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: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>Align to Substructure</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>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 -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>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.0.0.48</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/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 Feb 25 11:10:06 2008</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\Subprotocol Utilities\Subprotocol</sci:value>
					</sci:arg>
				</sci:component>
				<sci:protocol>
					<sci:data object="SciTegic.SubgraphScreen.1">
						<sci:component name="Align Molecules using Substructure" version="2">
							<sci:arg name="Source" type="URLType" required="true" visibility="visible" multi="false">
								<sci:help>Query structure for which the targets are aligned. If more than one query is given, the first matching query is used for the alignment.</sci:help>
								<sci:member>SourceComponent</sci:member>
								<sci:value>$(Ligand Query File)</sci:value>
							</sci:arg>
							<sci:arg name="SourceComponent" type="ComponentType" required="true" visibility="visible" multi="false">
								<sci:help>The component to use to read the query file</sci:help>
								<sci:value>File Reader</sci:value>
							</sci:arg>
							<sci:arg name="MapOutput" type="StringType" required="false" visibility="visible" multi="true">
								<sci:help>Specifies the mapping properties to output:&lt;ul&gt;&lt;li&gt;&lt;b&gt;AtomToAtomMaps:&lt;/b&gt; 
Output query to target mappings.&lt;/li&gt;&lt;li&gt;&lt;b&gt;BondToBondMaps:&lt;/b&gt; Output query 
bond to target bond mappings.&lt;/li&gt;&lt;li&gt;&lt;b&gt;QueriesMapped:&lt;/b&gt; The name of the query 
used for the alignment.  This is useful for when multiple queries are given (only the first query mapped 
is used in the alignment.&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 
either &lt;b&gt;AtomToAtomMaps&lt;/b&gt; or &lt;b&gt;BondToBondMaps&lt;/b&gt; is selected, the &lt;b&gt;QueriesMapped&lt;/b&gt; 
is automatically added to the output.&lt;/li&gt;&lt;/ul&gt;</sci:help>
								<sci:legalval>AtomToAtomMaps</sci:legalval>
								<sci:legalval>BondToBondMaps</sci:legalval>
								<sci:legalval>QueriesMapped</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>OutputAlignmentRMS</sci:member>
								<sci:member>Search Options</sci:member>
								<sci:member>Return After First Alignment</sci:member>
								<sci:member>Maximum Number of Alignments</sci:member>
							</sci:arg>
							<sci:arg name="Search Options" type="StringType" required="false" visibility="visible" multi="true">
								<sci:help>Options for substructure searching. For maximum ISIS compatibility, select the first five 
options. Substructure Search options:&lt;ul&gt;&lt;li&gt;&lt;b&gt;Use 
Localized Aromatic Bonds&lt;/b&gt;:  &quot;Localized&quot; aromatic bonds are bonds for which all kekule 
representations have the bond always the same type (single or double).  For example, the single and double 
bonds in pyrrole are localized, while the bonds in pyridine are not. ISIS allows single or double bond 
queries to map onto localized aromatic bonds.  Setting this option will make this component compatible 
with ISIS with respect to these bonds. This replaces the old &lt;b&gt;Use ISIS Aromaticity&lt;/b&gt; option.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Uncharged Atoms Can Map Charged Atoms&lt;/b&gt;: 
Allow uncharged query atoms to map onto charged target atoms.&lt;/li&gt;&lt;li&gt;&lt;b&gt;NonChiral 
Queries are Enantiomers&lt;/b&gt;: Queries containing stereoatoms are considered as a mixture of enantiomers 
rather than absolute.&lt;p&gt;For molecules with relative stereo groups (MDL Enhanced Stereo), this flag 
controls whether or not to check all the possible stereo configurations represented by the relative stereo 
groups when checking stereo. When the flag is OFF, only the actual stereo configurations present in the 
molecules (as drawn) are compared. When the flag is ON, all the possible combinations of stereo configurations 
for the query and the target are compared to look for a match.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Chiral Queries 
Only Map Chiral Targets&lt;/b&gt;: A query marked Chiral can map only onto targets marked Chiral.&lt;p&gt;For 
molecules with relative stereo groups (MDL Enhanced Stereo), this flag controls whether or not check 
the types of stereo groups when checking stereo. When the flag is OFF, all stereo groups (ABS, OR, AND) 
are allowed to map each other. When the flag is ON, the matching rules for the relative stereo groups 
are:&lt;ul&gt;&lt;li&gt;ABS group in query can only map ABS group in target&lt;/li&gt;&lt;li&gt;OR groups 
in query can map OR and ABS groups in target&lt;/li&gt;&lt;li&gt;AND groups in query can map AND, OR, 
and ABS groups in target.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Stereo Atoms Can Map Nonstereo 
Atoms&lt;/b&gt;: Marked stereoatoms must map onto stereo-appropriate atoms in the targets, instead of 
being allowed to also map onto unknown or unmarked atoms.&lt;/li&gt;&lt;li&gt;&lt;b&gt;HFill if RAtoms 
Found&lt;/b&gt;: If RAtoms are found in the query, hydrogen-fill all other atoms; allow substituents 
only in the locations marked by the RAtoms.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Check Bonds To RAtoms&lt;/b&gt;:  
Toggles the check of query features (e.g. order, Chain/Ring) on bonds to RAtoms.  By default, this option 
is off to match ISIS behavior.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Interpret RAtoms Literally&lt;/b&gt;: Treat 
R atoms as literal atoms, rather than as query types. Useful for searching and manipulating literal RAtoms 
in target molecules.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Interpret ZAtoms Literally&lt;/b&gt;: Treat R atoms 
as literal atoms, rather than as attachment markers. Template (Z) atoms in queries are treated as A atoms 
attached by a bond which can be of any type (single, double, triple, or aromatic)&lt;/li&gt;&lt;li&gt;&lt;b&gt;Interpret 
StarAtoms Literally&lt;/b&gt;: Treat Star (*) atoms as literal atoms, rather than as query features.&lt;/li&gt;&lt;li&gt;&lt;b&gt;StarAtoms 
Can Map Hydrogens&lt;/b&gt;: Toggles whether Star (*) atoms can map hydrogen atoms.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Match 
Cis Trans Double Bonds&lt;/b&gt;: Toggles the checking of double-bond stereo.  When this option is not 
checked, only the stereo for double bonds flagged with the stereo-care query feature will be checked.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Ignore 
Reaction Mappings&lt;/b&gt;: Toggles whether to ignore a reaction&apos;s atom-atom mappings and bond-status 
flags when matching against a reaction query.  When checked, only a substructure match is performed.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Ignore 
Isotopes&lt;/b&gt;: Toggles whether to check isotope query features.  Enabling this overrides other isotope 
options.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Marked Isotopes Only Map Marked Isotopes&lt;/b&gt;: When set, query 
atoms with isotopes marked will only map target atoms that have their isotopes marked.  This is true 
even if the isotope marked matches natural abundance.  That is, &quot;16O&quot; maps &quot;16O&quot; 
but not O.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Unmarked Isotopes Only Map Unmarked Isotopes&lt;/b&gt;: When 
set, query atoms with isotopes unmarked will only map target atoms that also have their isotopes unmarked.  
That is, &quot;O&quot; maps &quot;O&quot;, but will not map either &quot;16O&quot; or &quot;18O&quot;.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Exact 
Match&lt;/b&gt;: Return only targets that are an exact match to the query.  That is, queries are required 
to match the entire target and not just a substructure of the target.&lt;/li&gt;&lt;/ul&gt;</sci:help>
								<sci:legalval>Use Localized Aromatic Bonds</sci:legalval>
								<sci:legalval>Uncharged Atoms Can Map Charged Atoms</sci:legalval>
								<sci:legalval>NonChiral Queries are Enantiomers</sci:legalval>
								<sci:legalval>Chiral Queries Only Map Chiral Targets</sci:legalval>
								<sci:legalval selected="true">Stereo Atoms Can Map Nonstereo Atoms</sci:legalval>
								<sci:legalval selected="true">HFill if RAtoms Found</sci:legalval>
								<sci:legalval>Check Bonds To RAtoms</sci:legalval>
								<sci:legalval>Interpret RAtoms Literally</sci:legalval>
								<sci:legalval>Interpret ZAtoms Literally</sci:legalval>
								<sci:legalval>Interpret StarAtoms Literally</sci:legalval>
								<sci:legalval>StarAtoms Can Map Hydrogens</sci:legalval>
								<sci:legalval>Match Cis Trans Double Bonds</sci:legalval>
								<sci:legalval>Ignore Isotopes</sci:legalval>
								<sci:legalval>Marked Isotopes Only Map Marked Isotopes</sci:legalval>
								<sci:legalval>Unmarked Isotopes Only Map Unmarked Isotopes</sci:legalval>
								<sci:legalval>Exact Match</sci:legalval>
							</sci:arg>
							<sci:arg name="OutputAlignmentRMS" type="BoolType" required="true" visibility="visible" multi="false">
								<sci:help>Output the calculated RMS Deviation between target and template atoms after the alignment is done.</sci:help>
								<sci:legalval selected="true">True</sci:legalval>
								<sci:legalval>False</sci:legalval>
							</sci:arg>
							<sci:arg name="Return After First Alignment" type="BoolType" required="false" visibility="visible" multi="false">
								<sci:help>When set to true, the query and target molecules are aligned using only the first mapping found between the two molecules. Otherwise, the molecules are aligned using all the mappings (up to the maximum defined by &lt;i&gt;Maximum Number of Alignments&lt;/i&gt;) and the one with the best RMSD is selected.
&lt;p&gt;
When this parameter is set to true and the number of mappings is greater than one, the mapping with the best RMSD is output in the properties &lt;b&gt;Query_BestRMSMap&lt;/b&gt; and &lt;b&gt;Query_BestRMSBondMap&lt;/b&gt;, provided that the options to output atom-atom maps and bond-bond maps are selected in &lt;i&gt;MapOutput&lt;/i&gt;.</sci:help>
								<sci:legalval selected="true">True</sci:legalval>
								<sci:legalval>False</sci:legalval>
							</sci:arg>
							<sci:arg name="Maximum Number of Alignments" type="LongType" required="false" visibility="visible" multi="false">
								<sci:help>Maximum number of mappings between the query and target molecules to try in the alignment.</sci:help>
								<sci:enabledscript>parameter(&apos;Return After First Alignment&apos;) eq false</sci:enabledscript>
								<sci:value>1000</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="SeparateQueryOutputs" type="BoolType" required="true" visibility="nevershow" multi="false">
								<sci:help>Whether to separate atom-to-atom maps from different queries into separate properties, or use the Query_Maps, Query_AllMapped, Query_Names properties for all queries</sci:help>
								<sci:legalval>True</sci:legalval>
								<sci:legalval selected="true">False</sci:legalval>
							</sci:arg>
							<sci:arg name="MatchType" type="StringType" required="true" visibility="nevershow" multi="false">
								<sci:help>Specifies matching behavior when more thanone query substructure is present:  AllQueries - Record must match ALL of the given substructures to pass  AnyQuery - Record must match ANY of the given substructures to pass  NoQueries - Record must match NONE of the given substructures to pass</sci:help>
								<sci:legalval>AllQueries</sci:legalval>
								<sci:legalval selected="true">AnyQuery</sci:legalval>
								<sci:legalval>NoQueries</sci:legalval>
							</sci:arg>
							<sci:arg name="OutputAtomToAtomMaps" type="BoolType" required="true" visibility="nevershow" multi="false">
								<sci:help>Whether to output query-to-target mapping information on the output data</sci:help>
								<sci:legalval selected="true">True</sci:legalval>
								<sci:legalval>False</sci:legalval>
							</sci:arg>
							<sci:arg name="AlignTargetToQuery" type="BoolType" required="true" visibility="nevershow" multi="false">
								<sci:help>Whether to re-orient the first discovered substructure in the target molecule to try to align it to the query molecule</sci:help>
								<sci:legalval selected="true">True</sci:legalval>
								<sci:legalval>False</sci:legalval>
							</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="DerivedFrom" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>Substructure Filter From File</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/chemistry</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 Feb 24 09:36:10 2011</sci:value>
							</sci:arg>
							<sci:arg name="ComponentDisplayName" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>Align Molecules using Substructure</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="ComponentGUID" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>{FB6C3F5B-E70C-4607-9945-F2040B723239}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentHelp" type="StringType" required="false" visibility="nevershow" multi="true">
								<sci:value>100</sci:value>
								<sci:value>Aligns input molecules to a substructure template</sci:value>
								<sci:value>Input molecules that match the substructure query specified by &lt;i&gt;Source&lt;/i&gt; are translated and rotated to maximize their fit onto the query. Molecules that contain the query substructure are sent to the Pass port with their coordinates modified. Molecules that don&apos;t contain the query are sent to the Fail port.&lt;p&gt;
&lt;b&gt;Notes:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;The alignment is done treating both the query and the target molecules as a rigid bodies. The internal coordinates (bond lengths, bond angles and torsion angles) are not modified.&lt;/li&gt;
&lt;li&gt;For best results, use rigid structures (with none or few rotatable bonds) as templates for alignment.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;
&lt;b&gt;See also:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;For an example of aligning molecules, see &lt;a href=&quot;javascript:DoLink(&apos;{5F00EA11-B76F-4D74-BEA4-B31EB6B6BB9A}&apos;)&quot;&gt;Align Molecules Example&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;</sci:value>
								<sci:value>Molecule</sci:value>
								<sci:value/>
								<sci:value>Molecule</sci:value>
								<sci:value>Molecules that contain the query substructure with coordinates of aligned orientation</sci:value>
								<sci:value>Molecule</sci:value>
								<sci:value>Molecules that do not contain the query substructure</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.17</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\Chemistry\Utilities\Internals\Deprecated\Structure Mapping\Align Molecules using Substructure (Deprecated)</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;Ligand Query File&apos; is defined and @&apos;Ligand Query File&apos; is not eq &apos;&apos; and
@&apos;Align to Query&apos; is defined and @&apos;Align to Query&apos; eq &apos;True&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: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="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/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="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>Ligand Substructure?</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.  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 Data</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 Data</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>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\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="Data to Pass 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 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>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>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 Pass 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>{3162E91B-4C82-4303-BCF1-C4D59B36709E}</sci:value>
							</sci:arg>
							<sci:arg name="ComponentPoint" type="StringType" required="false" visibility="nevershow" multi="false">
								<sci:value>390 -455</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 Pass 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 Pass port of the subprotocol.</sci:value>
								<sci:value>Generic Data</sci:value>
								<sci:value/>
								<sci:value>Generic Data</sci:value>
								<sci:value>All data records</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>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>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\Subprotocol Utilities\Data to Pass Port</sci:value>
							</sci:arg>
						</sci:component>
					</sci:data>
					<sci:connectid from="1" to="0" type="true"/>
					<sci:connectid from="1" to="2" type="false"/>
				</sci:protocol>
			</sci:data>
			<sci:data object="SciTegic.Protocol.1">
				<sci:component name="DS Mol2 Writer" version="2">
					<sci:arg name="Destination" type="DestinationURLType" required="true" visibility="visible" multi="false" uimpl="false">
						<sci:help>The filename for the destination data. Be sure to specify an extension such as .txt or .doc. To save in compressed (zipped) format, add the extension .gz or .zip to the filename.</sci:help>
						<sci:member>Maximum</sci:member>
						<sci:member>CharacterEncoding</sci:member>
						<sci:value>$(JobDir)/rcsb_results_noalign.mol2</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="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;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 files of a reasonable length.  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: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="Additional Options" type="GroupType" required="false" visibility="visible" multi="false">
						<sci:help>Contains less commonly used parameters</sci:help>
						<sci:member>Name</sci:member>
						<sci:member>WriteAromaticInfo</sci:member>
					</sci:arg>
					<sci:arg name="Name" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>The name of the property currently holding the name of each molecule</sci:help>
						<sci:value>Name</sci:value>
					</sci:arg>
					<sci:arg name="WriteAromaticInfo" type="BoolType" required="true" visibility="visible" multi="false">
						<sci:help>If true, write aromatic atom and bond types instead of Kekule structures</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>&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="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="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>{8DB070DB-C088-41E8-9775-1601EA469A3A}</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="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 file containing molecular data records in Tripos Mol2 format with charges</sci:value>
						<sci:value>&lt;p&gt;Writes the molecule and associated property data to the &lt;i&gt;Destination&lt;/i&gt; file in Tripos Mol2 format.&lt;/p&gt;

In addition:
&lt;ul&gt;
&lt;li&gt;Add formal atom charge property&lt;/li&gt;
&lt;li&gt;Kekulize bond types for charged groups (&lt;em&gt;e.g.&lt;/em&gt;, carboxyl, nitro)&lt;/li&gt;
&lt;/ul&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>Tue Sep 21 13:18:12 2010</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 Mol2 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>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="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="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\Writers\Discovery Studio\DS Mol2 Writer</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>@WarningMessage := &apos;&apos;;

if (@NumberOfStructures is defined and @NumberOfStructures &gt; 0 ) then
	@ClientMessage := format(&quot;%d structure(s) retrieved&quot;, @NumberOfStructures);
	@FinalMessage := format(&quot;%d structure(s) from %d hit(s)&quot;, @NumberOfStructures, @NumberOfHits);
	if ($(Maximum) &lt; @NumberOfHits) then
		@FinalMessage := format(&quot;%d structure(s) from the first %d of %d hit(s)&quot;,@NumberOfStructures,$(Maximum),@NumberOfHits);
	end if;
	
	#hits :=format(&quot;%d hits&quot;,@NumberOfHits);
	if($(Maximum) &lt; @NumberOfHits) then
		#hits := format(&quot;First %d of %d hits&quot;,$(Maximum),@NumberOfHits);
	end if;
	#unique :=&quot;&quot;;
	if( @NumDuplicateHits is defined ) then
		if(@NumDuplicateHits &gt;0) then
		  #unique := format(&quot;, of which %d are unique&quot;,@NumberOfHits - @NumDuplicateHits);
		end if;
	end if;
	#structures :=format(&quot;; %d structures retrieved. &lt;br&gt;&quot;,@NumberOfStructures);
	@SummaryMessage := #hits . #unique . #structures;
	DebugMessage( #hits . #unique . #structures);
	DebugMessage(&quot;Num with multiple models &quot; . @NumWithMultipleModels . &quot;\n&quot;);
	DebugMessage(&quot; Report string &quot; . @ReportString . &quot;\n&quot;);
	if(@NumWithMultipleModels &gt; 0) then
		if(@NumWithMultipleModels == 1)then
			@SummaryMessage := @SummaryMessage .&quot;&lt;br&gt;The following &quot;.  @NumWithMultipleModels . &quot; hit contains multiple models&quot;;
		else			
		@SummaryMessage := @SummaryMessage .&quot;&lt;br&gt;The following &quot;.  @NumWithMultipleModels . &quot; hits contain multiple models&quot;;
		end if;
		if($(First Model Only))then
			@SummaryMessage := @SummaryMessage . &quot;, the first of which has been retrieved:&lt;br&gt;&quot;;
			@SummaryMessage := @SummaryMessage  . @ReportString;
			@SummaryMessage := @SummaryMessage . &quot;To return all models, change the First Model Only parameter under the Advanced section.&lt;br&gt;&quot;;
		else
			@SummaryMessage := @SummaryMessage . &quot; which have all been retrieved:&lt;br&gt;&quot;;
			@SummaryMessage := @SummaryMessage . @ReportString;
			@SummaryMessage := @SummaryMessage . &quot;To return only the first model for each hit, change the First Model Only parameter under the Advanced section.&lt;br&gt;&quot;;
		end if;
		
	end if;
	DebugMessage(&quot;summary &quot; .@SummaryMessage. &quot;\n&quot;);
else
	@WarningMessage := &quot;No hits found&quot;;
	@FinalMessage := &quot;No hits found&quot;;
	@ClientMessage := &quot;No hits found&quot;;
	@SummaryMessage := &quot;&quot;;
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>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>Set Messages</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 -1715</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>None</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.Protocol.1">
				<sci:component name="DS Messaging" version="2">
					<sci:arg name="Client Message" type="StringType" required="false" visibility="visible" multi="false" expanded="true">
						<sci:help>Short message to send to the client.</sci:help>
						<sci:member>Client Message Final</sci:member>
						<sci:value>$(ClientMessage)</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:value>$(FinalMessage)</sci:value>
					</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:value>$(SummaryMessage)</sci:value>
					</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:value>$(WarningMessage)</sci:value>
					</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>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>390 -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>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>17</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="Generate DS Report" version="2">
					<sci:arg name="File Name" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>&lt;p&gt;Comma separated list of filenames in the run directory. Use this in conjunction with &lt;i&gt;File Name Help&lt;/i&gt; to replace the file names in the Results section with more meaning full names.&lt;/p&gt;
&lt;p&gt;
For example, if &lt;i&gt;File Name&lt;/i&gt; is &quot;output.sd, failures.sd&quot; and &lt;i&gt;File Name Help&lt;/i&gt;
is &quot;Ligands containing the calculated properties, Ligands that failed &quot;. Then the 
following section will appear in the Discovery Studio Results Section:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Results&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;u&gt;&lt;font color=&quot;blue&quot;&gt;Ligands containing the calculated properties&lt;/font&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p&gt;&lt;u&gt;&lt;font color=&quot;blue&quot;&gt;Ligands that failed&lt;/font&gt;&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;By default, each file in the run directory folder is included in this list (except in the Input and temp folders). If no help text is specified, the file base name is reported.  
&lt;/li&gt;
&lt;/ul&gt;
</sci:help>
						<sci:member>File Name Ignore</sci:member>
						<sci:validscript>#A1 := parameter();
Expand(&apos;,&apos;,#A1);
#A2 := parameter(&apos;File Name Help&apos;);
Expand(&apos;,&apos;,#A2);
#N1 := NumValues(#A1);
#N2 := NumValues(#A2);
SetInvalidDetails(
ParameterName() . &apos; must have same number of entries as: File Name Help&apos;.
&quot; &quot;. #N1. &quot; vs. &quot;. #N2 );
#N1 == #N2;</sci:validscript>
						<sci:value>ligandQuery.mol,PDBIDs.txt,rcsb_results.mol2,rcsb_results_noalign.mol2,query.json</sci:value>
					</sci:arg>
					<sci:arg name="File Name Ignore" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>&lt;p&gt;Comma separated list of file names will be excluded from the Results section.&lt;/p&gt;  
&lt;p&gt;For example, &quot;.pl, output.sd&quot; will exclude all files ending in .pl and the file named output.sd from being added to the Results section.&lt;/p&gt;</sci:help>
					</sci:arg>
					<sci:arg name="File Name Help" type="StringType" required="false" visibility="visible" multi="false">
						<sci:help>&lt;p&gt;A comma separated list of help text that must match the file sequence in &lt;i&gt;File Name&lt;/i&gt;. The specified text will be used in the Results section. See &lt;em&gt;File Name&lt;/em&gt; for more information&lt;/p&gt;</sci:help>
						<sci:member>File Name Help Sort</sci:member>
						<sci:validscript>#A1 := parameter(&apos;File Name&apos;);
Expand(&apos;,&apos;,#A1);
#A2 := parameter(&apos;File Name Help&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 );
#N1 == #N2;</sci:validscript>
						<sci:value>Ligand query,PDB IDs,Output Structures,Structures that failed to align,JSON Query</sci:value>
					</sci:arg>
					<sci:arg name="File Name Help Sort" type="BoolType" required="true" visibility="visible" multi="false" legalvalsenforced="false">
						<sci:help>Sort file names.</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:arg>
					<sci:arg name="Help Text Results" type="StringType" required="false" visibility="visible" multi="false" uimpl="false">
						<sci:help>&lt;p&gt;Text added to the Results section.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The text may contain html tags.  
&lt;/li&gt;
&lt;/ul&gt;</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="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 -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>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>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="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" ishidden="true">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" ishidden="true">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" ishidden="true" type="StringType">
								<sci:value>Set IE Compatibility</sci:value>
							</sci:mpropval>
							<sci:propval name="SCI_PromotionRenameRule" ishidden="true">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 -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>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>21</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="0" to="1" type="true"/>
			<sci:connectid from="1" to="2" type="true"/>
			<sci:connectid from="2" to="3" type="true"/>
			<sci:connectid from="6" to="7" type="true"/>
			<sci:connectid from="27" to="33" type="true"/>
			<sci:connectid from="33" to="6" type="true"/>
			<sci:connectid from="33" to="35" type="false"/>
			<sci:connectid from="29" to="27" type="true"/>
			<sci:connectid from="29" to="30" type="false"/>
			<sci:connectid from="10" to="25" type="true"/>
			<sci:connectid from="25" to="11" 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="26" type="true"/>
			<sci:connectid from="14" to="15" type="false"/>
			<sci:connectid from="22" to="17" type="true"/>
			<sci:connectid from="20" to="21" 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>
