Commit 9f1a52b5 authored by Thonier Florian's avatar Thonier Florian

index; update content of right menu with new organisation

link to #3535
parents 936c7254 9df9609b
Pipeline #71882 failed with stages
in 44 minutes and 29 seconds
# seq1, 2, 3, 4 are identical
# One insertion has been added both in seq4 and seq5 (different ones) in uppercase.
>seq1
ggctggagtgggtttcatacattagtagtaatagtggtgccatatactacgcagactctgtgaagggccgattcaccatc
tccagaaacaatgccaaggactcactgtatctgcaaatgaacagcctgagagccgaggacacggctgtgtattactgtgc
gagagcgatcccccggtattactatgatactagtggcccaaacgactactggggccagggaaccctggtcaccgtctcct
cag
>seq2
ggctggagtgggtttcatacattagtagtaatagtggtgccatatactacgcagactctgtgaagggccgattcaccatc
tccagaaacaatgccaaggactcactgtatctgcaaatgaacagcctgagagccgaggacacggctgtgtattactgtgc
gagagcgatcccccggtattactatgatactagtggcccaaacgactactggggccagggaaccctggtcaccgtctcct
cag
>seq3
ggctggagtgggtttcatacattagtagtaatagtggtgccatatactacgcagactctgtgaagggccgattcaccatc
tccagaaacaatgccaaggactcactgtatctgcaaatgaacagcctgagagccgaggacacggctgtgtattactgtgc
gagagcgatcccccggtattactatgatactagtggcccaaacgactactggggccagggaaccctggtcaccgtctcct
cag
>seq4
ggctggagtgggtttcatacattagtagtaatagtggtgccatatactacgcagactctgtgaagggccgattcaccatc
tccagaaacaatgccaaggactcactgtatctgcaaatgAaacagcctgagagccgaggacacggctgtgtattactgtgc
gagagcgatcccccggtattactatgatactagtggcccaaacgactactggggccagggaaccctggtcaccgtctcct
cag
>seq5
ggctggagtgggtttcatacattagtagtaatagtggtgccatatactacgcagactctgtgaagggccgattcaccatc
tccagaaacaatgccaaggactcactgtatctgcaaatgaacagcctgagagAccgaggacacggctgtgtattactgtgc
gagagcgatcccccggtattactatgatactagtggcccaaacgactactggggccagggaaccctggtcaccgtctcct
cag
......@@ -5,5 +5,5 @@ $ Compilation was run with -Wall
>30: -Wall
$ No compilation warning
f0:warning
a0:warning
......@@ -43,8 +43,8 @@ $ Junction of the first clone appears once, but CDR3 twice (it is also included
1:CTREEQYSSWYFDFW
w2:TREEQYSSWYFDF
$ The first clone has three warnings
1:W51 W69 W69
$ The first clone has one warning
1:TATTACTGTACCCGGGAGGAACAATATAGCAGCTGGTACTTTGACTTCTG .* W69
$ No spurious character
0:"
......
......@@ -5,7 +5,7 @@ $ Presence of alternative:
1: "3alt"
1: "name": "IGHJ4.02"
1: "name": "IGHJ4.01"
f1: "name": "IGHJ5.01"
1: "name": "IGHJ5.01"
1: "4alt"
1: "name": "IGHD3-22.01"
1: "name": "IGHD3-10.02"
......
......@@ -4,7 +4,7 @@ $ The KmerSegmenter segments the chimera reads on PSEUDO_MAX12 germline (-2)
f1:unexpected .* -> .* 2
$ The FineSegmenter gives the locus information (-2)
f1:Unexpected [+]IGHD/[+]TRBJ
1:Unexpected [+]IGHD/[+]TRBJ
f1:Unexpected [+]TRAV/[+]TRDD
$ The FineSegmenter correclty segments the V-D and D-J sequences (-2)
......
!LAUNCH: $VIDJIL_DIR/$EXEC $VIDJIL_DEFAULT_OPTIONS -r 5 -g $VIDJIL_DIR/germline/homo-sapiens.g:IGH $VIDJIL_DATA/representative-few-reads.fa
$ Consensus sequence should span on the whole sequence
1: clone.*99% of 243
......@@ -3,7 +3,7 @@
$ Detailed clone output (out/seq/clone.fa-2), germline
# IGHV1-8*01 could also be detected
1:>IGHV4-59.09
1:>IGHV1-69
1:>IGHD3-22.01
1:>IGHJ6.03
......
......@@ -16,7 +16,7 @@ $ Most abundant window
1:"id": "CCACCTATTACTGTACCCGGGAGGAACAATATAGCAGCTGGTACTTTGACTTCTGGGGCC".*"reads": \[8\]
$ Affect values are over all the sequence
1: "affectValues": .[^}]*"start": 1, "stop": 127
1: "affectValues": .[^}]*"start": 1, "stop": 145
$ No quality information here
0: "quality"
......@@ -40,21 +40,21 @@ $ Segmentation
$ Segmentation details - V
# IGHV3-11*03 may also be detected
1:"5": ."delRight": 6, "name": "IGHV3-23.05", "stop": 54.
1:"5": ."delRight": 6, "name": "IGHV3-23.05", "stop": 72.
$ Segmentation details - D
1:"4": ."delLeft": 9, "delRight": 0, "name": "IGHD6-13.01", "start": 73, "stop": 84.
1:"4": ."delLeft": 9, "delRight": 0, "name": "IGHD6-13.01", "start": 91, "stop": 102.
$ Segmentation details - J
1:"3": ."delLeft": 5, "name": "IGHJ4.02", "start": 85.
1:"3": ."delLeft": 5, "name": "IGHJ4.02", "start": 103.
$ Segmentation details - N1, N2
1:"N1": 18,
1:"N2": 0,
$ Segmentation details - CDR3, JUNCTION
1:"cdr3": ."aa": "TREEQYSSWYFDF", "start": 55, "stop": 93.
1:"junction": ."aa": "CTREEQYSSWYFDFW", .* "start": 52, "stop": 96.
1:"cdr3": ."aa": "TREEQYSSWYFDF", "start": 73, "stop": 111.
1:"junction": ."aa": "CTREEQYSSWYFDFW", .* "start": 70, "stop": 114.
$ Second sequence has a DNA sequence provided
1:"id": "TGTGCGAGAGGTTACTATGATAGTAGTGGTTATTACGGGGTAGGGCAGTACTACTACTAC".*"sequence": "[ACGT]+",
......@@ -65,5 +65,5 @@ $ Second sequence also has evalues
$ All 'start' fields are 1-based, they never equal to zero
0: "start": 0
$ Warning on low coverage
1: "code": "W51", "level": "warn", "msg": "Low coverage: 0.442"
$ Warning on common genes
1: "code": "W69", "level": "warn", "msg": "Several genes with equal[^"]*"
......@@ -26,7 +26,7 @@ $ First clone -- find the good number of reads
2:clone-001--.*--0000008
$ First clone -- find the good representative
1:clone-001--.*--lcl.FLN1FA001CPAUQ.1.-.106,232.-.2
1:clone-001--.*--lcl.FLN1FA001BQ9J5.1.-.88,232.-.4
$ First clone -- find the good coverage
1:clone-001--.* 127 bp .54. of 232.0 bp.
1:clone-001--.* 145 bp .62. of 232.0 bp.
......@@ -17,4 +17,4 @@ $ Display advanced options
: custom Cost
$ Correct number of options
B52:^ -
52:^..-
......@@ -15,4 +15,4 @@ $ Do not display advanced options
0: custom Cost
$ Correct number of regular options
B24:^ -
24:^..-
......@@ -112,6 +112,11 @@ enum { CMD_WINDOWS, CMD_CLONES, CMD_SEGMENT, CMD_GERMLINES } ;
#define DEFAULT_MAX_AUDITIONED 2000
#define DEFAULT_RATIO_REPRESENTATIVE 0.5
#define DEFAULT_MIN_COVER_REPRESENTATIVE 3 // At least 3 reads to support a
// representative (consisting of at
// least
// DEFAULT_RATIO_REPRESENTATIVE of
// the clone's reads)
#define DEFAULT_KMER_THRESHOLD 1
......@@ -684,7 +689,7 @@ int main (int argc, char **argv)
cout << "# using default sequence file: " << f_reads << endl ;
}
size_t min_cover_representative = (size_t) (min_reads_clone < (int) max_auditionned ? min_reads_clone : max_auditionned) ;
size_t min_cover_representative = (size_t) min(min_reads_clone, DEFAULT_MIN_COVER_REPRESENTATIVE);
// Check seed buffer
if (seed.size() >= MAX_SEED_SIZE)
......
......@@ -84,11 +84,7 @@ ul {
top: 32px;
}
#upload_summary {
float: right;
display: none;
margin-right: 200px;
position: relative;
right: 200px;
z-index: 10;
background-color: #000000;
}
......@@ -812,6 +808,11 @@ span .end-codon {
#add_clone_menu > #addclone_input.error {
border: 1px solid darkred;
}
#menu_right_part {
float: right;
display: flex;
justify-content: flex-end;
}
.buttonSelector {
background: #000000;
cursor: pointer;
......
......@@ -84,11 +84,7 @@ ul {
top: 32px;
}
#upload_summary {
float: right;
display: none;
margin-right: 200px;
position: relative;
right: 200px;
z-index: 10;
background-color: #ffffff;
}
......@@ -812,6 +808,11 @@ span .end-codon {
#add_clone_menu > #addclone_input.error {
border: 1px solid #8b0000;
}
#menu_right_part {
float: right;
display: flex;
justify-content: flex-end;
}
.buttonSelector {
background: #ffffff;
cursor: pointer;
......
......@@ -84,11 +84,7 @@ ul {
top: 32px;
}
#upload_summary {
float: right;
display: none;
margin-right: 200px;
position: relative;
right: 200px;
z-index: 10;
background-color: #ffffff;
}
......@@ -812,6 +808,11 @@ span .end-codon {
#add_clone_menu > #addclone_input.error {
border: 1px solid #8b0000;
}
#menu_right_part {
float: right;
display: flex;
justify-content: flex-end;
}
.buttonSelector {
background: #ffffff;
cursor: pointer;
......
......@@ -83,11 +83,7 @@ ul {
top: 32px;
}
#upload_summary {
float: right;
display: none;
margin-right: 200px;
position: relative;
right: 200px;
z-index: 10;
background-color: #ffffff;
}
......@@ -810,6 +806,11 @@ span .end-codon {
#add_clone_menu > #addclone_input.error {
border: 1px solid darkred;
}
#menu_right_part {
float: right;
display: flex;
justify-content: flex-end;
}
.buttonSelector {
background: #ffffff;
cursor: pointer;
......
......@@ -84,11 +84,7 @@ ul {
top: 32px;
}
#upload_summary {
float: right;
display: none;
margin-right: 200px;
position: relative;
right: 200px;
z-index: 10;
background-color: #ffffff;
}
......@@ -812,6 +808,11 @@ span .end-codon {
#add_clone_menu > #addclone_input.error {
border: 1px solid darkred;
}
#menu_right_part {
float: right;
display: flex;
justify-content: flex-end;
}
.buttonSelector {
background: #ffffff;
cursor: pointer;
......
......@@ -123,11 +123,7 @@ ul{
}
#upload_summary {
float: right;
display:none;
margin-right: 200px;
position: relative;
right: 200px;
z-index: 10;
background-color: @background;
}
......@@ -983,6 +979,12 @@ span .end-codon-not-first {
border: 1px solid @message_border_red;
}
#menu_right_part {
float:right;
display: flex;
justify-content: flex-end;
}
.buttonSelector {
background : @background;
cursor:pointer;
......
......@@ -70,13 +70,6 @@
m.loadAnalysis('upload_analysis');">start</button>
</div>
<div id="upload_summary" style="" class="menu" onmouseover="showSelector('upload_summary_selector');" onmouseout="hideSelector();">
<span id="upload_summary_label">upload</span>
<div id="upload_summary_selector" class="selector"><div>
</div></div>
</div>
<div id="add_clone_menu">
<span class="closeButton" onclick="cancel();">X</span>
<h2>Add clones from sequences</h2>
......@@ -281,26 +274,10 @@
</div></div>
</div>
</div>
<!-- </div> -->
<div class="menu" id="alert" style="float: right;"></div>
<div id="logo" style="float: right;" onclick="console.log({'type': 'popup', 'default':'welcome'})">Vidjil <span class='logo'>(beta)</span></div>
<div class="menu" style="float: right" onmouseover="showSelector('helpSelector');"> help
<div id="helpSelector" class="selector"><div>
<a class="buttonSelector getHelp" onclick="report.sendMail()">get support</a>
<a class="buttonSelector" href="http://www.vidjil.org/doc/user" target="_blank">manual</a>
<a class="buttonSelector" href="http://www.vidjil.org/doc/tutorial/mastering-vidjil.html" target="_blank">tutorial</a>
<a class="buttonSelector devel-mode" onclick="my_tips.reset()">reset tips of the day</a>
</div></div>
</div>
<div style="float: right" class="menu" onmouseover="showSelector('paletteSelector');"> palette
<div id="paletteSelector" class="selector"><div>
<a class="buttonSelector" onclick="changeStyle('solarizeL')">light</a>
<a class="buttonSelector" onclick="changeStyle('display')">light (presentation)</a>
<a class="buttonSelector" onclick="changeStyle('solarizeD')">dark</a>
</div></div>
</div>
<div id="menu_right_part">
<div style="float: right; margin: 5px;" id='live-ajax'>
<div style="float: right; margin: 5px;" id='live-ajax-icon'>
</div>
......@@ -308,14 +285,42 @@
</div>
</div>
<div id="fps" style="float: right; display: none"> </div>
<div id="upload_summary" class="menu" onmouseover="showSelector('upload_summary_selector');" onmouseout="hideSelector();">
<span id="upload_summary_label">upload</span>
<div id="upload_summary_selector" class="selector"><div>
</div></div>
</div>
<div id="palette_menu" class="menu" onmouseover="showSelector('paletteSelector');"> palette
<div id="paletteSelector" class="selector"><div>
<a id="palette_light" class="buttonSelector" onclick="changeStyle('solarizeL')">light</a>
<a id="palette_light_presentation" class="buttonSelector" onclick="changeStyle('display')">light (presentation)</a>
<a id="palette_dark" class="buttonSelector" onclick="changeStyle('solarizeD')">dark</a>
</div></div>
</div>
<div id="help_menu" class="menu" onmouseover="showSelector('helpSelector');"> help
<div id="helpSelector" class="selector"><div>
<a id="help_support" class="buttonSelector getHelp" onclick="report.sendMail()">get support</a>
<a id="help_manual" class="buttonSelector" href="http://www.vidjil.org/doc/user" target="_blank">manual</a>
<a id="help_tutorial" class="buttonSelector" href="http://www.vidjil.org/doc/tutorial/mastering-vidjil.html" target="_blank">tutorial</a>
<a class="buttonSelector devel-mode" onclick="my_tips.reset()">reset tips of the day</a>
</div></div>
</div>
<div id="fps" style="display: none"> </div>
<div id="header_messages" class="message_container header"></div>
<div class="menu" id="alert"></div>
<div id="logo" onclick="console.log({'type': 'popup', 'default':'welcome'})">Vidjil <span class='logo'>(beta)</span></div>
<!--
<div class="menu" style="float: right; margin-right:100px"><span style="padding: 4px 5px; background-color: #fef6e3; font-family: ubuntulight;">
<b>Maintenance:</b> Vidjil will be offline Tuesday 7, 11:00 → 13:00 CEST. Thank you for your understanding.
</span></div>
-->
</div>
</div>
<!-- fin top-container-->
......
......@@ -12,6 +12,9 @@ class TestMultilocus < BrowserTest
if $b.div(id: 'tip-container').present?
$b.div(:id => 'tip-container').div(:class => 'tip_1').element(:class => 'icon-cancel').click
end
# Make upload menu appear to test the application with this menu too
$b.execute_script("$('#upload_summary')[0].style.display='block';")
end
end
......@@ -132,7 +135,6 @@ class TestMultilocus < BrowserTest
def check_when_list_or_scatterplot_clicked
clone_name = $b.clone_info('25')[:name]
assert ( $b.infoline.inner_html == clone_name.title), ">> Clone name is not correct in focus div"
assert ( $b.clone_in_list('25').class_name.include? "list_select" ), ">> Incorrect class name, clone is not selected"
assert ( $b.clone_in_scatterplot('25', :class => "circle_select").exists?)
assert ( $b.clone_in_graph('25', :class=> "graph_select").exists?)
......@@ -195,7 +197,7 @@ class TestMultilocus < BrowserTest
name = $b.tag_item('0')[:name]
name.wait_until(&:present?)
name.click
name.wait_while(&:present?)
$b.until { not $b.tag_item('0')[:name].present? }
$b.until {$b.clone_info('25')[:name].style('color') == 'rgba(220, 50, 47, 1)' }
end
......@@ -385,6 +387,34 @@ class TestMultilocus < BrowserTest
end
end
def test_20_menu_palette
original_color = $b.body.style('background-color')
dark = $b.menu_item('palette_dark')
dark.click
assert ($b.body.style('background-color') != original_color)
assert ($b.body.style('background-color').include? "51, 51, 51"), "Background should be dark"
$b.menu_item('palette_light').click
assert ($b.body.style('background-color') == original_color)
end
def test_21_menu_manual
$b.menu_item('help_manual').click
assert ($b.window(:title => /user manual/)), "User manual is opened"
$b.window(:title => /user manual/).use do
assert ($b.h1(:text => /user manual/).present?), "Make sure the page is loaded"
end
end
def test_22_menu_tutorial
$b.menu_item('help_tutorial').click
assert ($b.window(:title => /Mastering the Vidjil web application/)), "Tutorial is opened"
end
# Not really a test
def test_zz_close
close_everything
......
......@@ -171,6 +171,18 @@ class VidjilBrowser < Watir::Browser
return div(:id => 'settings_menu')
end
def menu_palette
return div(:id => 'palette_menu')
end
def menu_help
return div(:id => 'help_menu')
end
def menu_upload
return div(:id => 'upload_summary')
end
def menu_item_export(id, extra = {})
menu = menu_import_export
menu.click
......@@ -185,6 +197,19 @@ class VidjilBrowser < Watir::Browser
return menu_item_export('export_fasta_align', extra)
end
def menu_item(id, extra = {})
item = element(extra.merge(:id => id))
assert(item.exists?)
parent = item.parent
while parent.tag_name != "body" and not parent.classes.include? "menu"
parent = parent.parent
end
if parent.tag_name != "body"
parent.click
end
return item
end
def merge
return element(:id => 'merge')
end
......
......@@ -11,11 +11,11 @@ import os
parser = argparse.ArgumentParser(description='Use PEAR read merger to make a new fastq file and keep unmerged reads')
parser.add_argument("pear_dir", help="path to pear executable")
parser.add_argument("file_R1", help="reverse read file")
parser.add_argument("file_R2", help="forward read file")
parser.add_argument("file_R1", help="forward read file")
parser.add_argument("file_R2", help="reverse read file")
parser.add_argument("output_file", help="output file")
parser.add_argument("-r1", "--keep_r1", help="keep unmerged reverse reads", action="store_true")
parser.add_argument("-r2", "--keep_r2", help="keep unmerged forward reads", action="store_true")
parser.add_argument("-r1", "--keep_r1", help="keep unmerged forward reads", action="store_true")
parser.add_argument("-r2", "--keep_r2", help="keep unmerged reverse reads", action="store_true")
parser.add_argument("-p", "--pear-options", help="additional options passed to PEAR", default="")
parser.add_argument("-k", "--keep", help="keep temporary files (may take lots of disk space in the end)", action = 'store_true')
......@@ -42,10 +42,10 @@ try :
with open(f_out+'.assembled.fastq', 'rb') as f1:
shutil.copyfileobj(f1, outFile)
if (args.keep_r1):
with open(f_out+'.unassembled.reverse.fastq', 'rb') as f2:
with open(f_out+'.unassembled.forward.fastq', 'rb') as f2:
shutil.copyfileobj(f2, outFile)
if (args.keep_r2):
with open(f_out+'.unassembled.forward.fastq', 'rb') as f3:
with open(f_out+'.unassembled.reverse.fastq', 'rb') as f3:
shutil.copyfileobj(f3, outFile)
if not args.keep:
os.remove(f_out+'.assembled.fastq')
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment