ASPL Manual v 1.00
© 2024 by SetSphere.COM
7. 1f%& aligns two sequences based on their elements intersection
f%& a1 a2 | a1 a2 a3 where a1 a2 | a1 a2 a3 are set variables
f%&`mtm~ a1 a2 | a1 a2 a3
f%&/mtm~ a1 a2 | a1 a2 a3
f%&
When specified by itself then the operation is performed on the object on top of the stack and the one that is one below it
seqop seqoid 23 notcommu ins:H_H_H text:alignment
Use the operator f%& to align two set variables according to their intersecting elements and display their alignment on the terminal. It is assumed that each set variable has one group label, otherwise the first group (in the set variable) is explicitly implied. If you specify two set variables that have the same named group label, then you need to labinate the operator (see example below). If the operator f%& is followed by three set variables then the alignment is performed on the datasets resulted by concatenating the third variable to the first and to the second. Hence this is similar to performing an alignment after joining with an "and" operation the first variable and the third variable, and the second variable and the third variable. You can change the sequence alignment algorithm selectively. The sequence alignment can be selected: the command sequencing lcs selects the algorithm for the longest common sequence, and the command sequencing ssa selects the algorithm for the sequence similarity analysis.
f%& EXAMPLEIn this example we will compare the files in two directories by displaying their sequence alignment. We will start ASPL by loading the WS1 workspace, then we will issue the command f%& to display the alignment of the elements (which are the files) between the two set variables a1 and a2.
f%& OPERATION# aspl WS1
(start ASPL loading the sample workspace WS1)
① aspl>
f%& a1 a2
(show the alignment of the intersecting elements between a1 and a2)
We expect to have perfect alignment if two set variables are similar. As an example we align a1 and a copy of itself.
② aspl>
a11 = a1
(a11 is assigned to a1 so a11 and a1 are similar)
③ aspl>
v
(display the symbol table, notice that a1 and a11 have the same label under the Lvr column)
④ aspl>
f%& a11 a1
(align the operator based on their elements but nothing is displayed)
⑤ aspl>
f%&, a11 a1
(labinate the operator f%& to show the perfect alignment between a1 and a11)
⑥ aspl>
,f%& a11 a1
(the labinate comma can also precede the operator)
● Tickable Predicates for f%&
This f%& is tickable with predicates that are shown in the following table:
a yellow note
f%&`_ aligns two sequences based on their elements intersection f%&`c= aligns two sequences based on their elements intersection such that they have the same checksum f%&`c~ aligns two sequences based on their elements intersection such that they have different checksums f%&`c~~ aligns two sequences based on their elements intersection such that they have all over different checksums f%&`h= aligns two sequences based on their elements intersection such that they have the same entropy f%&`h~ aligns two sequences based on their elements intersection such that they have different entropies f%&`h~~ aligns two sequences based on their elements intersection such that they have all over different entropies f%&`mtm= aligns two sequences based on their elements intersection such that they have the same make time f%&`mtm~ aligns two sequences based on their elements intersection such that they have different make times f%&`mtm~~ aligns two sequences based on their elements intersection such that they have all over different make times f%&`mtm< aligns two sequences based on their elements intersection such that they have a prior make time f%&`mtm<= aligns two sequences based on their elements intersection such that they have prior or same make time f%&`mtm> aligns two sequences based on their elements intersection such that they have more recent make time f%&`mtm>= aligns two sequences based on their elements intersection such that they have more recent or same make time f%&`ks= aligns two sequences based on their elements intersection such that they have the same ksum f%&`ks~ aligns two sequences based on their elements intersection such that they have different ksums f%&`ks~~ aligns two sequences based on their elements intersection such that they have all over different ksums