Jump to content

Bioinformatics/Global alignment: Difference between revisions

Line 320:
end);
 
# Given an array of deduplicated strings, attempt to find a superstring composed
# composed of these strings in the same order;
# return it if found, else null.
def relevant($min):
. as $in
| reduce range(0; length-1) as $i (.[0];length
| {s: .[0], if .i:0}
| until (.s == null or .i >= $length - 1;
then overlap_info(.; $in[$i+1]; $min) as $overlap
.i as else null$i
| if $overlap then (. + $in[$i+1][$overlap.overlap|length:])
# Since the strings have been deduplicated we can use $in[$i]:
else null
then| overlap_info(.$in[$i]; $in[$i+1]; $min) as $overlap
| if $overlap then (.s += $in[$i+1][$overlap.overlap|length:])
else .s = null
end
else| .i end)+= ;1 )
| .s ;
# Input: an array of strings
Line 346 ⟶ 350:
'''The specific tasks'''
<lang jq>
def task1examples:
[
["TA", "AAG", "TA", "GAA", "TA"];,
 
["CATTAGGG", "ATTAG", "GGG", "TA"];,
def task2:
["CATTAGGG", "ATTAG", "GGG", "TA"];
 
["AAGAUGGA", "GGAGCGCAUC", "AUCGCAAUAAGGA"];,
def task3:
["AAGAUGGA", "GGAGCGCAUC", "AUCGCAAUAAGGA"];
 
def task4:
["ATGAAATGGATGTTCTGAGTTGGTCAGTCCCAATGTGCGGGGTTTCTTTTAGTACGTCGGGAGTGGTATTAT",
"GGTCGATTCTGAGGACAAAGGTCAAGATGGAGCGCATCGAACGCAATAAGGATCATTTGATGGGACGTTTCGTCGACAAAGT",
Line 368 ⟶ 370:
"TTTCCAATTATGTAAGCGTTCCGAGACGGGGTGGTCGATTCTGAGGACAAAGGTCAAGATGGAGCGCATC",
"CTATGTTCTTATGAAATGGATGTTCTGAGTTGGTCAGTCCCAATGTGCGGGGTTTCTTTTAGTACGTCGGGAGTGGTATTATA",
"TCTCTTAAACTCCTGCTAAATGCTCGTGCTTTCCAATTATGTAAGCGTTCCGAGACGGGGTGGTCGATTCTGAGGACAAAGGTCAAGA"];
];
 
def tasks:
def t: shortest_common_superstring | synopsis;
 
"Task 1:", (task1|t),
examples
"\nTask 2:", (task2|t),
| . as $examples
"\nTask 3:", (task3|t),
| range(0;length) as $i
"\nTask 4:", (task4|t);
| "Task \($i+1):", (task1$examples[$i]|t), "";
 
tasks</lang>
2,465

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.