Script Documentation: Difference between revisions

From Eterna Wiki

No edit summary
(wiki formatting)
Line 1: Line 1:
<p>
<p>__TOC__</p>
<div class="script-section-title">Pervasives</div>
<p>&nbsp;</p>
<div class="script-functions">
<div style="clear: both; float: left; overflow: hidden;">
<div class="script-title">out(text)</div>
<div style="right: 50%; float: left; position: relative;">
<div class="script-description">display text in result textarea</div>
<div style="width: 46%; left: 52%; float: left; position: relative; padding: 0 0 1em 0; overflow: hidden;">
<p class="script-section-title">== Pervasives ==</p>
<p class="script-functions">&nbsp;</p>
<p class="script-title">=== out(text) ===</p>
<p class="script-description">display text in result textarea</p>
<p>&nbsp;</p>
<p class="script-title">=== outln(text) ===</p>
<p class="script-description">display text in result textarea with newline</p>
<p>&nbsp;</p>
<p class="script-functions">=== clear() ===</p>
<p class="script-description">clear result textarea</p>
<p>&nbsp;</p>
<p>== Library functions ==</p>
<p class="script-functions">=== Lib.bases ===</p>
<p class="script-description">"AGCU"</p>
<p>&nbsp;</p>
<p class="script-functions">=== Lib.fold(sequence) ===</p>
<p class="script-description">return folded structure with sequence</p>
<p>ex) Lib.fold("GGGGCCCC") = "((....))";</p>
<p>&nbsp;</p>
<p>=== Lib.energyOfStruct(sequence, structure) ===</p>
<p class="script-description">return energy of structure</p>
<p>&nbsp;</p>
<p>=== Lib.EternaScript(script id) ===</p>
<p class="script-description">return other user's script</p>
<p>ex) var func = Lib.EternaScript(script_id);</p>
<p>ex) func(parameters);</p>
<p>&nbsp;</p>
<p>=== Lib.getStructure(puzzle id) ===</p>
<p class="script-description">return structure of puzzle</p>
<p>ex) Lib.getStructure(1001759)</p>
<p>&nbsp;</p>
<p>=== Lib.replace(sequence, index, target) ===</p>
<p class="script-description">return sequence which character at index in sequence replaced to target</p>
<p>ex) Lib.replace("AGCU", 2, "A") = "AGAU";</p>
<p>&nbsp;</p>
<p>=== Lib.nextSequence(sequence) ===</p>
<p class="script-description">return next sequence of sequence in the order of default bases</p>
<p>ex) Lib.nextSequence("AAAA") = "GAAA";</p>
<p>&nbsp;</p>
<p>=== Lib.nextSequenceWithBases(sequence, bases) ===</p>
<p class="script-description">return next sequence of sequence in the order of bases</p>
<p>ex) Lib.nextSequenceWithBases("UUUU", "UCGA") = "CUUU";</p>
<p>ex) Lib.nextSequenceWithBases("AUAA", "UCGA") = "UCAA";</p>
<p>&nbsp;</p>
<p>=== Lib.random(from, to) ===</p>
<p class="script-description">return random number between from and to</p>
<p>&nbsp;</p>
<p class="script-functions">=== Lib.randomSequence(size) ===</p>
<p class="script-description">return random sequence with length of size</p>
<p>&nbsp;</p>
<p>=== Lib.map(function, sequence) ===</p>
<p class="script-description">applies function to each sequence bases</p>
<p>&nbsp;</p>
<p class="script-functions">=== Lib.filter(function, sequence) ===</p>
<p class="script-description">return sequences only satisfy the function</p>
<p>&nbsp;</p>
<p class="script-functions">=== Lib.splitDefault(structure) ===</p>
<p class="script-description">split structure into a structure array</p>
<p>ex) Lib.splitDefault("((..))") = ["((", "..", "))"];</p>
<p>&nbsp;</p>
<p>=== Lib.join(array) ===</p>
<p class="script-description">join array with each element to sequence</p>
<p>ex) Lib.join(Lib.split("((..))")) = "((..))";</p>
<p>&nbsp;</p>
<p>=== Lib.distance(source structure, destination structure) ===</p>
<p class="script-description">return differences between source structure and destination structure</p>
<p>if same then 0 else +1</p>
<p>if different length then just return -1</p>
<p>ex) Lib.distance("((..))", "((()))") = 2</p>
<p>ex) Lib.distance("(((())))", "(())") = -1</p>
<p>&nbsp;</p>
<p>=== Lib.distanceCustom(function, source structure, destination structure) ===</p>
<p class="script-description">return differences between source structure and destination structure with custom rule</p>
<p>ex) Lib.distanceCustom(function(index){ ... }, source, dest);</p>
<p>&nbsp;</p>
</div>
</div>
<div class="script-functions">
<div style="width: 46%; left: 56%; float: left; position: relative; padding: 0 0 1em 0; overflow: hidden;">
<div class="script-title">outln(text)</div>
<p>== Class RNA ==</p>
<div class="script-description">display text in result textarea with newline</div>
<p><a href="http://kws.eternadev.org/web/script/">example code</a></p>
<p class="script-functions">&nbsp;</p>
<p class="script-title">=== getPairmap(structure) ===</p>
<p class="script-description">return the array of pair information</p>
<p>ex) getPairmap("((..))") = [5,4, , ,2,1]</p>
<p>&nbsp;</p>
<p>=== getStructure() ===</p>
<p class="script-description">return structure</p>
<p>&nbsp;</p>
<p>=== getRootElement() ===</p>
<p class="script-description">return root RNAElement class of rna object</p>
<p>&nbsp;</p>
<p>=== map() ===</p>
<p class="script-description">applies function to all RNAElement</p>
<p>&nbsp;</p>
<p>== Class RNAElement ==</p>
<p class="script-functions">&nbsp;</p>
<p class="script-title">=== getParent() ===</p>
<p class="script-description">return the parent RNAElement class</p>
<p>&nbsp;</p>
<p>=== getChilds() ===</p>
<p class="script-description">return the child RNAElement class array</p>
<p>&nbsp;</p>
<p>=== getElements() ===</p>
<p class="script-description">return the array of structure and index JSON objects</p>
<p>&nbsp;</p>
<p>=== isPaired() ===</p>
<p class="script-description">return boolean whether the stack element is paired or not</p>
<p>&nbsp;</p>
<p>=== getBaseType() ===</p>
<p class="script-description">return RNAElement.Stack or RNAElement.Loop if the element is stack or loop</p>
<p>&nbsp;</p>
<p>=== getType() ===</p>
<p class="script-description">return RNAElement.Hairpin, RNAElement.Bulge, RNAElement.Internal, RNAElement.Multiloop or RNAElement.Dangling if the element is hairpin, bulge, internal, multiloop or dangling</p>
<p>&nbsp;</p>
<p>=== getIndices() ===</p>
<p class="script-description">return the array of indices</p>
<p>&nbsp;</p>
<p>=== isStack() / isLoop() / isHairpin() / isBulge() /<br /> isInternal() / isMultiloop() / isDangling() ===</p>
<p class="script-description">return boolean wheter the element is stack, loop, hairpin, bulge, internal, multiloop or dangling</p>
<p>&nbsp;</p>
<p>=== getSegmentCount() ===</p>
<p class="script-description">return how many structure segments included</p>
<p>if the multiloop consists of 2 branches then getSegmentCount() of multiloop returns 2</p>
</div>
</div>
<div class="script-functions">
<div class="script-title">clear()</div>
<div class="script-description">clear result textarea</div>
</div>
</div>
<div>
<div class="script-section-title">Library functions</div>
<div class="script-functions">
<div class="script-title">Lib.bases</div>
<div class="script-description">"AGCU"</div>
</div>
</div>
<div class="script-functions">
<div class="script-title">Lib.fold(sequence)</div>
<div class="script-description">
<div>return folded structure with sequence</div>
<div>ex) Lib.fold("GGGGCCCC") = "((....))";</div>
</div>
</div>
<div class="script-functions">
<div class="script-title">Lib.energyOfStruct(sequence, structure)</div>
<div class="script-description">
<div>return energy of structure</div>
</div>
</div>
<div class="script-functions">
<div class="script-title">Lib.EternaScript(script id)</div>
<div class="script-description">
<div>return other user's script</div>
<div>ex) var func = Lib.EternaScript(script_id);</div>
<div>ex) func(parameters);</div>
</div>
</div>
<div class="script-functions">
<div class="script-title">Lib.getStructure(puzzle id)</div>
<div class="script-description">
<div>return structure of puzzle</div>
<div>ex) Lib.getStructure(1001759)</div>
</div>
</div>
<div class="script-functions">
<div class="script-title">Lib.replace(sequence, index, target)</div>
<div class="script-description">
<div>return sequence which character at index in sequence replaced to target</div>
<div>ex) Lib.replace("AGCU", 2, "A") = "AGAU";</div>
</div>
</div>
<div class="script-functions">
<div class="script-title">Lib.nextSequence(sequence)</div>
<div class="script-description">
<div>return next sequence of sequence in the order of default bases</div>
<div>ex) Lib.nextSequence("AAAA") = "GAAA";</div>
</div>
</div>
<div class="script-functions">
<div class="script-title">Lib.nextSequenceWithBases(sequence, bases)</div>
<div class="script-description">
<div>return next sequence of sequence in the order of bases</div>
<div>ex) Lib.nextSequenceWithBases("UUUU", "UCGA") = "CUUU";</div>
<div>ex) Lib.nextSequenceWithBases("AUAA", "UCGA") = "UCAA";</div>
</div>
</div>
<div class="script-functions">
<div class="script-title">Lib.random(from, to)</div>
<div class="script-description">return random number between from to</div>
</div>
<div class="script-functions">
<div class="script-title">Lib.randomSequence(size)</div>
<div class="script-description">return random sequence with length of size</div>
</div>
<div class="script-functions">
<div class="script-title">Lib.map(function, sequence)</div>
<div class="script-description">applies function to each sequence bases</div>
</div>
<div class="script-functions">
<div class="script-title">Lib.filter(function, sequence)</div>
<div class="script-description">return sequences only satisfy the function</div>
</div>
<div class="script-functions">
<div class="script-title">Lib.splitDefault(structure)</div>
<div class="script-description">
<div>split structure into a structure array</div>
<div>ex) Lib.splitDefault("((..))") = ["((", "..", "))"];</div>
</div>
</div>
<div class="script-functions">
<div class="script-title">Lib.join(array)</div>
<div class="script-description">
<div>join array with each element to sequence</div>
<div>ex) Lib.join(Lib.split("((..))")) = "((..))";</div>
</div>
</div>
<div class="script-functions">
<div class="script-title">Lib.distance(source structure, destination structure)</div>
<div class="script-description">
<div>return differences between source structure and destination structure</div>
<div>if same then 0 else +1</div>
<div>if different length then just return -1</div>
<div>ex) Lib.distance("((..))", "((()))") = 2</div>
<div>ex) Lib.distance("(((())))", "(())") = -1</div>
</div>
</div>
<div class="script-functions">
<div class="script-title">Lib.distanceCustom(function, source structure, destination structure)</div>
<div class="script-description">
<div>return differences between source structure and destination structure with custom rule</div>
<div>ex) Lib.distanceCustom(function(index){ ... }, source, dest);</div>
</div>
</div>
</div>
<div>
<div class="script-section-title">Class RNA<a href="http://kws.eternadev.org/web/script/">example code</a></div>
<div class="script-functions">
<div class="script-title">getPairmap(structure)</div>
<div class="script-description">
<div>return the array of pair information</div>
<div>ex) getPairmap("((..))") = [5,4, , ,2,1]</div>
</div>
</div>
<div class="script-functions">
<div class="script-title">getStructure</div>
<div class="script-description">
<div>return structure</div>
</div>
</div>
<div class="script-functions">
<div class="script-title">getRootElement</div>
<div class="script-description">
<div>return root RNAElement class of rna object</div>
</div>
</div>
<div class="script-functions">
<div class="script-title">map</div>
<div class="script-description">
<div>applies function to all RNAElement</div>
</div>
</div>
</div>
<div>
<div class="script-section-title">Class RNAElement</div>
<div class="script-functions">
<div class="script-title">getParent()</div>
<div class="script-description">
<div>return the parent RNAElement class</div>
</div>
</div>
<div class="script-functions">
<div class="script-title">getChilds()</div>
<div class="script-description">
<div>return the child RNAElement class array</div>
</div>
</div>
<div class="script-functions">
<div class="script-title">getElements()</div>
<div class="script-description">
<div>return the array of structure and index JSON objects</div>
</div>
</div>
<div class="script-functions">
<div class="script-title">isPaired()</div>
<div class="script-description">
<div>return boolean whether the stack element is paired or not</div>
</div>
</div>
<div class="script-functions">
<div class="script-title">getBaseType()</div>
<div class="script-description">
<div>return RNAElement.Stack or RNAElement.Loop if the element is stack or loop</div>
</div>
</div>
<div class="script-functions">
<div class="script-title">getType()</div>
<div class="script-description">
<div>return RNAElement.Hairpin, RNAElement.Bulge, RNAElement.Internal, RNAElement.Multiloop or RNAElement.Dangling if the element is hairpin, bulge, internal, multiloop or dangling</div>
</div>
</div>
<div class="script-functions">
<div class="script-title">getIndices()</div>
<div class="script-description">
<div>return the array of indices</div>
</div>
</div>
<div class="script-functions">
<div class="script-title">isStack()/isLoop()/isHairpin()/isBulge()/isInternal()/isMultiloop()/isDangling()</div>
<div class="script-description">
<div>return boolean wheter the element is stack, loop, hairpin, bulge, internal, multiloop or dangling</div>
</div>
</div>
<div class="script-functions">
<div class="script-title">getSegmentCount()</div>
<div class="script-description">
<div>return how many structure segments included</div>
<div>if the multiloop consists of 2 branches then getSegmentCount() of multiloop returns 2</div>
</div>
</div>
</div>
</p>

Revision as of 19:34, 7 May 2013

 

== Pervasives ==

 

=== out(text) ===

display text in result textarea

 

=== outln(text) ===

display text in result textarea with newline

 

=== clear() ===

clear result textarea

 

== Library functions ==

=== Lib.bases ===

"AGCU"

 

=== Lib.fold(sequence) ===

return folded structure with sequence

ex) Lib.fold("GGGGCCCC") = "((....))";

 

=== Lib.energyOfStruct(sequence, structure) ===

return energy of structure

 

=== Lib.EternaScript(script id) ===

return other user's script

ex) var func = Lib.EternaScript(script_id);

ex) func(parameters);

 

=== Lib.getStructure(puzzle id) ===

return structure of puzzle

ex) Lib.getStructure(1001759)

 

=== Lib.replace(sequence, index, target) ===

return sequence which character at index in sequence replaced to target

ex) Lib.replace("AGCU", 2, "A") = "AGAU";

 

=== Lib.nextSequence(sequence) ===

return next sequence of sequence in the order of default bases

ex) Lib.nextSequence("AAAA") = "GAAA";

 

=== Lib.nextSequenceWithBases(sequence, bases) ===

return next sequence of sequence in the order of bases

ex) Lib.nextSequenceWithBases("UUUU", "UCGA") = "CUUU";

ex) Lib.nextSequenceWithBases("AUAA", "UCGA") = "UCAA";

 

=== Lib.random(from, to) ===

return random number between from and to

 

=== Lib.randomSequence(size) ===

return random sequence with length of size

 

=== Lib.map(function, sequence) ===

applies function to each sequence bases

 

=== Lib.filter(function, sequence) ===

return sequences only satisfy the function

 

=== Lib.splitDefault(structure) ===

split structure into a structure array

ex) Lib.splitDefault("((..))") = ["((", "..", "))"];

 

=== Lib.join(array) ===

join array with each element to sequence

ex) Lib.join(Lib.split("((..))")) = "((..))";

 

=== Lib.distance(source structure, destination structure) ===

return differences between source structure and destination structure

if same then 0 else +1

if different length then just return -1

ex) Lib.distance("((..))", "((()))") = 2

ex) Lib.distance("(((())))", "(())") = -1

 

=== Lib.distanceCustom(function, source structure, destination structure) ===

return differences between source structure and destination structure with custom rule

ex) Lib.distanceCustom(function(index){ ... }, source, dest);

 

== Class RNA ==

<a href="http://kws.eternadev.org/web/script/">example code</a>

 

=== getPairmap(structure) ===

return the array of pair information

ex) getPairmap("((..))") = [5,4, , ,2,1]

 

=== getStructure() ===

return structure

 

=== getRootElement() ===

return root RNAElement class of rna object

 

=== map() ===

applies function to all RNAElement

 

== Class RNAElement ==

 

=== getParent() ===

return the parent RNAElement class

 

=== getChilds() ===

return the child RNAElement class array

 

=== getElements() ===

return the array of structure and index JSON objects

 

=== isPaired() ===

return boolean whether the stack element is paired or not

 

=== getBaseType() ===

return RNAElement.Stack or RNAElement.Loop if the element is stack or loop

 

=== getType() ===

return RNAElement.Hairpin, RNAElement.Bulge, RNAElement.Internal, RNAElement.Multiloop or RNAElement.Dangling if the element is hairpin, bulge, internal, multiloop or dangling

 

=== getIndices() ===

return the array of indices

 

=== isStack() / isLoop() / isHairpin() / isBulge() /
isInternal() / isMultiloop() / isDangling() ===

return boolean wheter the element is stack, loop, hairpin, bulge, internal, multiloop or dangling

 

=== getSegmentCount() ===

return how many structure segments included

if the multiloop consists of 2 branches then getSegmentCount() of multiloop returns 2