Skip to content

Commit 3a1fbe7

Browse files
committed
Add calculated columns
1 parent 44de7ee commit 3a1fbe7

3 files changed

Lines changed: 45 additions & 1 deletion

File tree

tcrdb/src/org/labkey/tcrdb/TCRdbModule.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ protected void doStartupAfterSpringConfig(ModuleContext moduleContext)
7272
LaboratoryService.get().registerTableCustomizer(this, TCRdbTableCustomizer.class, TCRdbSchema.SEQUENCE_ANALYSIS, "sequence_readsets");
7373
LaboratoryService.get().registerTableCustomizer(this, TCRdbTableCustomizer.class, TCRdbSchema.SEQUENCE_ANALYSIS, "sequence_analyses");
7474
LaboratoryService.get().registerTableCustomizer(this, TCRdbTableCustomizer.class, TCRdbSchema.NAME, TCRdbSchema.TABLE_CLONES);
75+
LaboratoryService.get().registerTableCustomizer(this, TCRdbTableCustomizer.class, TCRdbSchema.NAME, TCRdbSchema.TABLE_CLONE_RESPONSES);
76+
LaboratoryService.get().registerTableCustomizer(this, TCRdbTableCustomizer.class, TCRdbSchema.NAME, TCRdbSchema.TABLE_STIM_EXPERIMENTS);
7577
LaboratoryService.get().registerTableCustomizer(this, TCRdbTableCustomizer.class, TCRdbSchema.SINGLE_CELL, TCRdbSchema.TABLE_CDNAS);
7678

7779
LDKService.get().registerQueryButton(new ChangeStatusButton(), TCRdbSchema.SINGLE_CELL, "samples");

tcrdb/src/org/labkey/tcrdb/TCRdbTableCustomizer.java

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,15 @@
1212
import org.labkey.api.data.SimpleFilter;
1313
import org.labkey.api.data.Table;
1414
import org.labkey.api.data.TableInfo;
15+
import org.labkey.api.data.WrappedColumn;
1516
import org.labkey.api.exp.api.ExpProtocol;
1617
import org.labkey.api.laboratory.LaboratoryService;
1718
import org.labkey.api.ldk.LDKService;
1819
import org.labkey.api.ldk.table.AbstractTableCustomizer;
1920
import org.labkey.api.query.DetailsURL;
2021
import org.labkey.api.query.ExprColumn;
2122
import org.labkey.api.query.FieldKey;
23+
import org.labkey.api.query.QueryForeignKey;
2224
import org.labkey.api.query.QueryService;
2325

2426
import java.util.Arrays;
@@ -48,6 +50,14 @@ else if (matches(ti, TCRdbSchema.NAME, TCRdbSchema.TABLE_CLONES))
4850
{
4951
customizeClones(ti);
5052
}
53+
else if (matches(ti, TCRdbSchema.NAME, TCRdbSchema.TABLE_CLONE_RESPONSES))
54+
{
55+
customizeCloneResponses(ti);
56+
}
57+
else if (matches(ti, TCRdbSchema.NAME, TCRdbSchema.TABLE_STIM_EXPERIMENTS))
58+
{
59+
customizeStims(ti);
60+
}
5161
else if (ti instanceof AssayResultTable)
5262
{
5363
customizeAssayData(ti);
@@ -223,6 +233,34 @@ private void addClonotypeForLocusCol(AbstractTableInfo ti, SQLFragment selectSql
223233
ti.addColumn(newCol);
224234
}
225235

236+
private void customizeCloneResponses(AbstractTableInfo ti)
237+
{
238+
if (ti.getColumn("stimId") == null)
239+
{
240+
WrappedColumn col = new WrappedColumn(ti.getColumn("cDNA_ID"), "stimId");
241+
col.setReadOnly(true);
242+
col.setUserEditable(false);
243+
col.setLabel("Stim Experiment");
244+
col.setFk(new QueryForeignKey(ti.getUserSchema(), null, ti.getUserSchema(), null, TCRdbSchema.TABLE_STIM_EXPERIMENTS, "cdna_id", "cdna_id"));
245+
246+
ti.addColumn(col);
247+
}
248+
}
249+
250+
private void customizeStims(AbstractTableInfo ti)
251+
{
252+
if (ti.getColumn("controlStim") == null)
253+
{
254+
WrappedColumn col = new WrappedColumn(ti.getColumn("controlStimId"), "controlStim");
255+
col.setReadOnly(true);
256+
col.setUserEditable(false);
257+
col.setLabel("Control Stim Info");
258+
col.setFk(new QueryForeignKey(ti.getUserSchema(), null, ti.getUserSchema(), null, TCRdbSchema.TABLE_STIM_EXPERIMENTS, "cdna_id", "cdna_id"));
259+
260+
ti.addColumn(col);
261+
}
262+
}
263+
226264
private void customizeClones(AbstractTableInfo ti)
227265
{
228266
LDKService.get().applyNaturalSort(ti, "cloneName");

tcrdb/src/org/labkey/tcrdb/TCRdbUserSchema.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import org.labkey.api.data.ContainerFilter;
77
import org.labkey.api.data.DbSchema;
88
import org.labkey.api.data.TableInfo;
9+
import org.labkey.api.ldk.table.ContainerScopedTable;
910
import org.labkey.api.ldk.table.SharedDataTable;
1011
import org.labkey.api.module.Module;
1112
import org.labkey.api.query.DefaultSchema;
@@ -43,9 +44,12 @@ protected TableInfo createWrappedTable(String name, @NotNull TableInfo sourceTab
4344
{
4445
if (TCRdbSchema.TABLE_MIXCR_LIBRARIES.equalsIgnoreCase(name))
4546
{
46-
// TODO: assert cf is null or not default?
4747
return new SharedDataTable<>(this, sourceTable).init();
4848
}
49+
else if (TCRdbSchema.TABLE_STIM_EXPERIMENTS.equalsIgnoreCase(name))
50+
{
51+
return new ContainerScopedTable<>(this, sourceTable, null, "cdna_id").init();
52+
}
4953

5054
return super.createWrappedTable(name, sourceTable, cf);
5155
}

0 commit comments

Comments
 (0)