Skip to content

Commit d7b3fea

Browse files
authored
Merge pull request #349 from BimberLab/25.7_fb_merge
Merge discvr-25.3 to discvr-25.7
2 parents 73a13ef + 37affa3 commit d7b3fea

File tree

15 files changed

+205
-17
lines changed

15 files changed

+205
-17
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<customView xmlns="http://labkey.org/data/xml/queryCustomView" hidden="false" canOverride="false">
2+
<columns>
3+
<column name="rowId"/>
4+
<column name="studyName"/>
5+
<column name="label"/>
6+
<column name="category"/>
7+
<column name="description"/>
8+
<column name="cohorts"/>
9+
</columns>
10+
<sorts>
11+
<sort column="studyName" descending="false"/>
12+
</sorts>
13+
</customView>

Studies/resources/schemas/studies.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@
132132
<auditLogging>DETAILED</auditLogging>
133133
<columns>
134134
<column columnName="rowid">
135+
<columnTitle>Study Id</columnTitle>
135136
<isAutoInc>true</isAutoInc>
136137
<shownInUpdateView>false</shownInUpdateView>
137138
<shownInInsertView>false</shownInInsertView>

Studies/resources/views/studiesOverview.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
name: 'query',
1313
schemaName: 'studies',
1414
queryName: 'studies',
15-
maxRows: 20
15+
maxRows: 10
1616
}).render(webpart.wrapperDivId + '-studies');
1717

1818
// LABKEY.Query.selectRows({
@@ -62,4 +62,5 @@
6262
}(jQuery, LABKEY));
6363

6464
</script>
65+
<div style="padding-bottom: 20px;">Below is a list of the studies tracked in this folder. Please use the <a href="<%=contextPath%>/project/<%=containerPath%>/begin.view?pageId=dataBrowser">Data Browser</a> tab to browse the dataset tracked in this project.</div>
6566

Studies/src/org/labkey/studies/query/LookupSetTable.java

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import org.labkey.api.ldk.LDKService;
2323
import org.labkey.api.ldk.table.AbstractDataDefinedTable;
2424
import org.labkey.api.query.QueryUpdateService;
25-
import org.labkey.api.query.SimpleUserSchema;
2625

2726
import java.util.Map;
2827

@@ -101,15 +100,7 @@ public LookupSetTable init()
101100
@Override
102101
public QueryUpdateService getUpdateService()
103102
{
104-
return new EHRLookupsUpdateService(this);
105-
}
106-
107-
protected class EHRLookupsUpdateService extends UpdateService
108-
{
109-
public EHRLookupsUpdateService(SimpleUserSchema.SimpleTable<StudiesUserSchema> ti)
110-
{
111-
super(ti);
112-
}
103+
return new UpdateService(this);
113104
}
114105
}
115106

Studies/src/org/labkey/studies/query/StudiesUserSchema.java

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,22 @@
11
package org.labkey.studies.query;
22

3+
import com.google.gwt.user.client.ui.TabBar;
34
import org.apache.logging.log4j.Logger;
45
import org.labkey.api.collections.CaseInsensitiveHashMap;
56
import org.labkey.api.collections.CaseInsensitiveTreeSet;
67
import org.labkey.api.data.AbstractTableInfo;
78
import org.labkey.api.data.Container;
89
import org.labkey.api.data.ContainerFilter;
910
import org.labkey.api.data.DbSchema;
11+
import org.labkey.api.data.JdbcType;
12+
import org.labkey.api.data.SQLFragment;
1013
import org.labkey.api.data.SchemaTableInfo;
1114
import org.labkey.api.data.SimpleFilter;
1215
import org.labkey.api.data.TableInfo;
1316
import org.labkey.api.data.TableSelector;
1417
import org.labkey.api.ldk.table.ContainerScopedTable;
1518
import org.labkey.api.ldk.table.CustomPermissionsTable;
19+
import org.labkey.api.query.ExprColumn;
1620
import org.labkey.api.query.FieldKey;
1721
import org.labkey.api.query.QueryDefinition;
1822
import org.labkey.api.query.QueryException;
@@ -134,7 +138,7 @@ else if (TABLE_LOOKUPS.equalsIgnoreCase(name))
134138
}
135139
else if (TABLE_STUDIES.equalsIgnoreCase(name))
136140
{
137-
return createStudyDesignTable(name, cf, false);
141+
return createStudiesTable(name, cf, false);
138142
}
139143
else if (TABLE_COHORTS.equalsIgnoreCase(name))
140144
{
@@ -165,7 +169,22 @@ else if (TABLE_EVENT_TYPES.equalsIgnoreCase(name))
165169
return super.createTable(name, cf);
166170
}
167171

168-
private TableInfo createStudyDesignTable(String name, ContainerFilter cf, boolean addTriggers)
172+
private TableInfo createStudiesTable(String name, ContainerFilter cf, boolean addTriggers)
173+
{
174+
CustomPermissionsTable<?> ret = createStudyDesignTable(name, cf, addTriggers);
175+
176+
final String chr = ret.getSqlDialect().isPostgreSQL() ? "chr" : "char";
177+
SQLFragment sql1 = new SQLFragment("(SELECT ").append(ret.getSqlDialect().getGroupConcat(new SQLFragment("c.label"), true, true, new SQLFragment(chr + "(10)"))).append(" as expr FROM " + StudiesSchema.NAME + "." + TABLE_COHORTS + " c WHERE c.studyId = " + ExprColumn.STR_TABLE_ALIAS + ".rowId)");
178+
ExprColumn col1 = new ExprColumn(ret, "cohorts", sql1, JdbcType.VARCHAR, ret.getColumn("rowid"));
179+
col1.setLabel("Cohort(s)");
180+
col1.setDescription("This column lists the cohort labels for this study");
181+
182+
ret.addColumn(col1);
183+
184+
return ret;
185+
}
186+
187+
private CustomPermissionsTable<?> createStudyDesignTable(String name, ContainerFilter cf, boolean addTriggers)
169188
{
170189
CustomPermissionsTable<SimpleUserSchema> ret = new CustomPermissionsTable<>(this, createSourceTable(name), cf);
171190
ret.addPermissionMapping(InsertPermission.class, StudiesDataAdminPermission.class);

singlecell/resources/chunks/AppendMetadata.R

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,16 @@ if (!file.exists(netRc)) {
44
stop(paste0('Unable to find file: ', netRc))
55
}
66

7-
invisible(Rlabkey::labkey.setCurlOptions(NETRC_FILE = netRc))
7+
invisible(Rlabkey::labkey.setCurlOptions(NETRC_FILE = netRc, timeout = 60, timeout_ms = 60000, connecttimeout = 20, connecttimeout_ms = 20000))
88
Rdiscvr::SetLabKeyDefaults(baseUrl = serverBaseUrl, defaultFolder = defaultLabKeyFolder)
99

10+
curlOpt <- curl::curl_options('timeout')
11+
logger::log_info('Curl options:')
12+
for (x in names(curlOpt)) {
13+
logger::log_info(paste0(x, ': ', curlOpt[x]))
14+
}
15+
rm(curlOpt)
16+
1017
for (datasetId in names(seuratObjects)) {
1118
printName(datasetId)
1219
seuratObj <- readSeuratRDS(seuratObjects[[datasetId]])

singlecell/resources/chunks/ApplyKnownClontypicData.R renamed to singlecell/resources/chunks/ApplyKnownClonotypicData.R

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ if (!file.exists(netRc)) {
44
stop(paste0('Unable to find file: ', netRc))
55
}
66

7-
invisible(Rlabkey::labkey.setCurlOptions(NETRC_FILE = netRc, connect-timeout = 10))
7+
invisible(Rlabkey::labkey.setCurlOptions(NETRC_FILE = netRc))
88
Rdiscvr::SetLabKeyDefaults(baseUrl = serverBaseUrl, defaultFolder = defaultLabKeyFolder)
99

1010
for (datasetId in names(seuratObjects)) {
1111
printName(datasetId)
1212
seuratObj <- readSeuratRDS(seuratObjects[[datasetId]])
1313

14-
seuratObj <- ApplyKnownClontypicData(seuratObj, groupFields = groupFields, addMetadata = addMetadata)
14+
seuratObj <- ApplyKnownClonotypicData(seuratObj)
1515
saveData(seuratObj, datasetId)
1616

1717
# Cleanup
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
netRc <- paste0(Sys.getenv('USER_HOME'), '/.netrc')
2+
if (!file.exists(netRc)) {
3+
print(list.files(Sys.getenv('USER_HOME')))
4+
stop(paste0('Unable to find file: ', netRc))
5+
}
6+
7+
invisible(Rlabkey::labkey.setCurlOptions(NETRC_FILE = netRc))
8+
Rdiscvr::SetLabKeyDefaults(baseUrl = serverBaseUrl, defaultFolder = defaultLabKeyFolder)
9+
10+
for (datasetId in names(seuratObjects)) {
11+
printName(datasetId)
12+
seuratObj <- readSeuratRDS(seuratObjects[[datasetId]])
13+
14+
outputFile <- gsub(seuratObjects[[datasetId]], pattern = '.rds', replacement = '.tcrStats.txt')
15+
df <- Rdiscvr::CalculateAndStoreTcrRepertoireStats(seuratObj, outputFile = outputFile)
16+
17+
# Cleanup
18+
rm(seuratObj)
19+
rm(df)
20+
gc()
21+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
for (datasetId in names(seuratObjects)) {
2+
printName(datasetId)
3+
seuratObj <- readSeuratRDS(seuratObjects[[datasetId]])
4+
5+
seuratObj <- RIRA::PredictTcellActivation(seuratObj)
6+
7+
saveData(seuratObj, datasetId)
8+
9+
# Cleanup
10+
rm(seuratObj)
11+
gc()
12+
}

singlecell/resources/chunks/StudyMetadata.R

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,16 @@ if (!file.exists(netRc)) {
44
stop(paste0('Unable to find file: ', netRc))
55
}
66

7-
invisible(Rlabkey::labkey.setCurlOptions(NETRC_FILE = netRc))
7+
invisible(Rlabkey::labkey.setCurlOptions(NETRC_FILE = netRc, timeout = 60, timeout_ms = 60000, connecttimeout = 20, connecttimeout_ms = 20000))
88
Rdiscvr::SetLabKeyDefaults(baseUrl = serverBaseUrl, defaultFolder = defaultLabKeyFolder)
99

10+
curlOpt <- curl::curl_options('timeout')
11+
logger::log_info('Curl options:')
12+
for (x in names(curlOpt)) {
13+
logger::log_info(paste0(x, ': ', curlOpt[x]))
14+
}
15+
rm(curlOpt)
16+
1017
for (datasetId in names(seuratObjects)) {
1118
printName(datasetId)
1219
seuratObj <- readSeuratRDS(seuratObjects[[datasetId]])

0 commit comments

Comments
 (0)