Skip to content

Commit ab0227a

Browse files
committed
Refactor code from GeneticsCore module into GenotypeAssays and PrimeSeq modules
SVN r64008 |2019-06-20 17:30:57 +0000
1 parent 2c1fef4 commit ab0227a

5 files changed

Lines changed: 215 additions & 0 deletions

File tree

.gitattributes

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -798,6 +798,7 @@ labModules/SequenceAnalysis/resources/web/SequenceAnalysis/sequenceanalysisButto
798798
labModules/SequenceAnalysis/resources/web/SequenceAnalysis/snp_haplotype.js -text
799799
labModules/SequenceAnalysis/resources/web/SequenceAnalysis/window/AddFileSetsWindow.js -text
800800
labModules/SequenceAnalysis/resources/web/SequenceAnalysis/window/AddSraRunWindow.js -text
801+
labModules/SequenceAnalysis/resources/web/SequenceAnalysis/window/ChangeReadsetStatusWindow.js -text
801802
labModules/SequenceAnalysis/resources/web/SequenceAnalysis/window/CompareSequencesWindow.js -text
802803
labModules/SequenceAnalysis/resources/web/SequenceAnalysis/window/ConcatenatedSequenceWindow.js -text
803804
labModules/SequenceAnalysis/resources/web/SequenceAnalysis/window/CreateAnalysisSetWindow.js -text
@@ -868,6 +869,8 @@ labModules/SequenceAnalysis/src/org/labkey/sequenceanalysis/analysis/UnmappedSeq
868869
labModules/SequenceAnalysis/src/org/labkey/sequenceanalysis/api/picard/CigarPositionIterable.java -text
869870
labModules/SequenceAnalysis/src/org/labkey/sequenceanalysis/button/AddSraRunButton.java -text
870871
labModules/SequenceAnalysis/src/org/labkey/sequenceanalysis/button/CellHashingButton.java -text
872+
labModules/SequenceAnalysis/src/org/labkey/sequenceanalysis/button/ChangeReadsetStatusButton.java -text
873+
labModules/SequenceAnalysis/src/org/labkey/sequenceanalysis/button/ChangeReadsetStatusForAnalysesButton.java -text
871874
labModules/SequenceAnalysis/src/org/labkey/sequenceanalysis/button/ReprocessLibraryButton.java -text
872875
labModules/SequenceAnalysis/src/org/labkey/sequenceanalysis/button/RunMultiQCButton.java -text
873876
labModules/SequenceAnalysis/src/org/labkey/sequenceanalysis/model/AdapterModel.java -text
Lines changed: 163 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,163 @@
1+
Ext4.define('SequenceBasedGenotyping.window.ChangeReadsetStatusWindow', {
2+
extend: 'Ext.window.Window',
3+
4+
statics: {
5+
buttonHandlerForAnalyses: function (dataRegionName) {
6+
var dr = LABKEY.DataRegions[dataRegionName];
7+
LDK.Assert.assertNotEmpty('Unable to find dataregion in ChangeReadsetStatusWindow', dr);
8+
9+
var checked = dr.getChecked();
10+
if (!checked.length) {
11+
Ext4.Msg.alert('Error', 'No rows selected');
12+
return;
13+
}
14+
15+
Ext4.create('SequenceBasedGenotyping.window.ChangeReadsetStatusWindow', {
16+
targetQuery: 'sequence_analyses',
17+
targetColumns: 'readset/rowid,readset/container',
18+
readsetField: 'readset/rowid',
19+
containerField: 'readset/container',
20+
dataRegionName: dataRegionName,
21+
checked: checked
22+
}).show();
23+
},
24+
25+
buttonHandlerForReadsets: function (dataRegionName) {
26+
var dr = LABKEY.DataRegions[dataRegionName];
27+
LDK.Assert.assertNotEmpty('Unable to find dataregion in ChangeReadsetStatusWindow', dr);
28+
29+
var checked = dr.getChecked();
30+
if (!checked.length) {
31+
Ext4.Msg.alert('Error', 'No rows selected');
32+
return;
33+
}
34+
35+
Ext4.create('SequenceBasedGenotyping.window.ChangeReadsetStatusWindow', {
36+
targetQuery: 'sequence_readsets',
37+
targetColumns: 'rowid,container',
38+
readsetField: 'rowid',
39+
containerField: 'container',
40+
dataRegionName: dataRegionName,
41+
checked: checked
42+
}).show();
43+
}
44+
},
45+
46+
initComponent: function() {
47+
Ext4.apply(this, {
48+
modal: true,
49+
title: 'Change Readset Status',
50+
bodyStyle: 'padding: 5px;',
51+
closeAction: 'destroy',
52+
width: 500,
53+
defaults: {
54+
border: false
55+
},
56+
items: [{
57+
html: 'This will update the status for the readsets associated with the ' + this.checked.length + ' selected rows.',
58+
style: 'padding-bottom: 10px;'
59+
},{
60+
xtype: 'labkey-combo',
61+
itemId: 'statusField',
62+
forceSelection: true,
63+
width: 400,
64+
fieldLabel: 'Status',
65+
displayField: 'status',
66+
valueField: 'status',
67+
queryMode: 'local',
68+
store: {
69+
type: 'labkey-store',
70+
containerPath: Laboratory.Utils.getQueryContainerPath(),
71+
schemaName: 'sequenceanalysis',
72+
queryName: 'readset_status',
73+
autoLoad: true
74+
}
75+
}],
76+
buttons: [{
77+
text: 'Submit',
78+
scope: this,
79+
handler: this.onSubmit
80+
},{
81+
text: 'Cancel',
82+
handler: function (btn) {
83+
btn.up('window').close();
84+
}
85+
}]
86+
});
87+
88+
this.callParent(arguments);
89+
},
90+
91+
onSubmit: function(){
92+
var rowIds = this.checked;
93+
var status = this.down('#statusField').getValue();
94+
//NOTE: allow a blank value
95+
//if (!status){
96+
//
97+
//}
98+
99+
Ext4.Msg.wait('Loading...');
100+
101+
LABKEY.Query.selectRows({
102+
method: 'POST',
103+
schemaName: 'sequenceanalysis',
104+
queryName: this.targetQuery,
105+
columns: this.targetColumns,
106+
filterArray: [LABKEY.Filter.create('rowid', rowIds.join(';'), LABKEY.Filter.Types.IN)],
107+
scope: this,
108+
failure: LDK.Utils.getErrorCallback(),
109+
success: function(results){
110+
if (!results || !results.rows){
111+
Ext4.Msg.hide();
112+
Ext4.Msg.alert('Error', 'Unable to find matching rows');
113+
return;
114+
}
115+
116+
var readsetIds = [];
117+
Ext4.Array.forEach(results.rows, function(row){
118+
if (row[this.readsetField]) {
119+
readsetIds.push(row[this.readsetField] + '<>' + row[this.containerField]);
120+
}
121+
}, this);
122+
123+
readsetIds = Ext4.unique(readsetIds);
124+
125+
var toUpdate = [];
126+
Ext4.Array.forEach(readsetIds, function(r){
127+
var tokens = r.split('<>');
128+
toUpdate.push({
129+
rowid: tokens[0],
130+
container: tokens[1],
131+
status: status || null
132+
});
133+
}, this);
134+
135+
if (toUpdate.length) {
136+
LABKEY.Query.updateRows({
137+
method: 'POST',
138+
schemaName: 'sequenceanalysis',
139+
queryName: 'sequence_readsets',
140+
rows: toUpdate,
141+
scope: this,
142+
failure: LDK.Utils.getErrorCallback(),
143+
success: function (results) {
144+
Ext4.Msg.hide();
145+
146+
if (this.dataRegionName){
147+
LABKEY.DataRegions[this.dataRegionName].clearSelected();
148+
}
149+
150+
Ext4.Msg.alert('Success', 'Readsets updated', function () {
151+
LABKEY.DataRegions[this.dataRegionName].refresh();
152+
}, this);
153+
}
154+
});
155+
}
156+
else {
157+
Ext4.Msg.hide();
158+
Ext4.Msg.alert('Error', 'No matching readsets found for the selected rows');
159+
}
160+
}
161+
});
162+
}
163+
});

SequenceAnalysis/src/org/labkey/sequenceanalysis/SequenceAnalysisModule.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@
6060
import org.labkey.sequenceanalysis.analysis.UnmappedSequenceBasedGenotypeHandler;
6161
import org.labkey.sequenceanalysis.button.AddSraRunButton;
6262
import org.labkey.sequenceanalysis.button.CellHashingButton;
63+
import org.labkey.sequenceanalysis.button.ChangeReadsetStatusButton;
64+
import org.labkey.sequenceanalysis.button.ChangeReadsetStatusForAnalysesButton;
6365
import org.labkey.sequenceanalysis.button.ReprocessLibraryButton;
6466
import org.labkey.sequenceanalysis.button.RunMultiQCButton;
6567
import org.labkey.sequenceanalysis.pipeline.AlignmentAnalysisJob;
@@ -366,6 +368,9 @@ public void doStartupAfterSpringConfig(ModuleContext moduleContext)
366368
LDKService.get().registerQueryButton(new RunMultiQCButton(), SequenceAnalysisSchema.SCHEMA_NAME, SequenceAnalysisSchema.TABLE_READSETS);
367369
LDKService.get().registerQueryButton(new CellHashingButton(), SequenceAnalysisSchema.SCHEMA_NAME, SequenceAnalysisSchema.TABLE_READSETS);
368370

371+
LDKService.get().registerQueryButton(new ChangeReadsetStatusForAnalysesButton(), "sequenceanalysis", "sequence_analyses");
372+
LDKService.get().registerQueryButton(new ChangeReadsetStatusButton(), "sequenceanalysis", "sequence_readsets");
373+
369374
ExperimentService.get().registerExperimentRunTypeSource(new ExperimentRunTypeSource()
370375
{
371376
@NotNull
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package org.labkey.sequenceanalysis.button;
2+
3+
import org.labkey.api.ldk.table.SimpleButtonConfigFactory;
4+
import org.labkey.api.module.ModuleLoader;
5+
import org.labkey.api.view.template.ClientDependency;
6+
import org.labkey.sequenceanalysis.SequenceAnalysisModule;
7+
8+
import java.util.Arrays;
9+
import java.util.LinkedHashSet;
10+
11+
/**
12+
* User: bimber
13+
* Date: 7/16/2014
14+
* Time: 5:37 PM
15+
*/
16+
public class ChangeReadsetStatusButton extends SimpleButtonConfigFactory
17+
{
18+
public ChangeReadsetStatusButton()
19+
{
20+
super(ModuleLoader.getInstance().getModule(SequenceAnalysisModule.class), "Change Readset Status", "SequenceAnalysis.window.ChangeReadsetStatusWindow.buttonHandlerForReadsets(dataRegionName);", new LinkedHashSet<>(Arrays.asList(ClientDependency.fromPath("sequenceanalysis/window/ChangeReadsetStatusWindow.js"))));
21+
}
22+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package org.labkey.sequenceanalysis.button;
2+
3+
import org.labkey.api.ldk.table.SimpleButtonConfigFactory;
4+
import org.labkey.api.module.ModuleLoader;
5+
import org.labkey.api.view.template.ClientDependency;
6+
import org.labkey.sequenceanalysis.SequenceAnalysisModule;
7+
8+
import java.util.Arrays;
9+
import java.util.LinkedHashSet;
10+
11+
/**
12+
* User: bimber
13+
* Date: 7/16/2014
14+
* Time: 5:37 PM
15+
*/
16+
public class ChangeReadsetStatusForAnalysesButton extends SimpleButtonConfigFactory
17+
{
18+
public ChangeReadsetStatusForAnalysesButton()
19+
{
20+
super(ModuleLoader.getInstance().getModule(SequenceAnalysisModule.class), "Change Readset Status", "SequenceAnalysis.window.ChangeReadsetStatusWindow.buttonHandlerForAnalyses(dataRegionName);", new LinkedHashSet<>(Arrays.asList(ClientDependency.fromPath("sequenceanalysis/window/ChangeReadsetStatusWindow.js"))));
21+
}
22+
}

0 commit comments

Comments
 (0)