Skip to content

Commit b1fd512

Browse files
committed
Update sequence barcode reverse_complement field automatically
1 parent e6b1781 commit b1fd512

File tree

6 files changed

+36
-3
lines changed

6 files changed

+36
-3
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
SELECT core.executeJavaUpgradeCode('updateBarcodeRC');
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
SELECT core.executeJavaUpgradeCode('updateBarcodeRC');

SequenceAnalysis/resources/views/illuminaSampleSheetExport.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
LABKEY.Filter.create('rowid', pks.join(';'), LABKEY.Filter.Types.EQUALS_ONE_OF)
1515
],
1616
sort: 'rowid,barcode5,barcode3',
17-
columns: 'rowid,name,barcode5,barcode3,barcode5/sequence,barcode3/sequence,platform,sampleid',
17+
columns: 'rowid,name,barcode5,barcode3,barcode5/sequence,barcode5/reverse_complement,barcode3/sequence,platform,sampleid',
1818
scope: this,
1919
success: function(result){
2020
if(result && result.rows.length){

SequenceAnalysis/resources/web/SequenceAnalysis/panel/IlluminaSampleExportPanel.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -604,7 +604,7 @@ Ext4.define('SequenceAnalysis.panel.IlluminaSampleExportPanel', {
604604
['Sample_Well', ''],
605605
['Sample_Project', ''],
606606
['I7_Index_ID', 'barcode5'],
607-
['index', 'barcode5/sequence'],
607+
['index', 'barcode5/reverse_complement'],
608608
['I5_Index_ID', 'barcode3'],
609609
['index2', 'barcode3/sequence'],
610610
['Description', ''],

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ public String getName()
160160
@Override
161161
public Double getSchemaVersion()
162162
{
163-
return 12.321;
163+
return 12.322;
164164
}
165165

166166
@Override

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

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,26 @@
33
import org.apache.commons.io.FileUtils;
44
import org.apache.commons.lang3.StringUtils;
55
import org.apache.log4j.Logger;
6+
import org.biojava3.core.sequence.DNASequence;
7+
import org.labkey.api.collections.CaseInsensitiveHashMap;
8+
import org.labkey.api.data.CompareType;
69
import org.labkey.api.data.Container;
710
import org.labkey.api.data.ContainerManager;
811
import org.labkey.api.data.DeferredUpgrade;
12+
import org.labkey.api.data.SimpleFilter;
13+
import org.labkey.api.data.Table;
914
import org.labkey.api.data.TableInfo;
1015
import org.labkey.api.data.TableSelector;
1116
import org.labkey.api.data.UpgradeCode;
1217
import org.labkey.api.exp.api.ExpData;
1318
import org.labkey.api.exp.api.ExperimentService;
1419
import org.labkey.api.module.ModuleContext;
20+
import org.labkey.api.query.FieldKey;
1521
import org.labkey.api.sequenceanalysis.RefNtSequenceModel;
1622
import org.labkey.api.util.PageFlowUtil;
1723

1824
import java.io.File;
25+
import java.util.ArrayList;
1926
import java.util.List;
2027
import java.util.Map;
2128

@@ -177,4 +184,28 @@ public void appendSequenceLength(final ModuleContext moduleContext)
177184

178185
SequenceAnalysisManager.get().apppendSequenceLength(moduleContext.getUpgradeUser(), _log);
179186
}
187+
188+
/** called at 12.321-12.322*/
189+
@SuppressWarnings({"UnusedDeclaration"})
190+
@DeferredUpgrade
191+
public void updateBarcodeRC(final ModuleContext moduleContext)
192+
{
193+
TableInfo ti = SequenceAnalysisSchema.getTable(SequenceAnalysisSchema.TABLE_BARCODES);
194+
TableSelector ts = new TableSelector(ti, PageFlowUtil.set("tag_name", "sequence"), new SimpleFilter(FieldKey.fromString("reverse_complement"), null, CompareType.ISBLANK), null);
195+
if (ts.exists())
196+
{
197+
List<Map<String, Object>> toUpdate = new ArrayList<>();
198+
ts.forEachResults(rs -> {
199+
Map<String, Object> r = new CaseInsensitiveHashMap<>();
200+
r.put("tag_name", rs.getString(FieldKey.fromString("tag_name")));
201+
DNASequence seq = new DNASequence(rs.getString(FieldKey.fromString("sequence")));
202+
r.put("reverse_complement", seq.getReverseComplement().getSequenceAsString());
203+
toUpdate.add(r);
204+
});
205+
206+
toUpdate.forEach(row -> {
207+
Table.update(moduleContext.getUpgradeUser(), ti, row, row.get("tag_name"));
208+
});
209+
}
210+
}
180211
}

0 commit comments

Comments
 (0)