Skip to content

Commit 81d29b9

Browse files
committed
Initial support for animal aliasing in MCC.
1 parent d5a64a9 commit 81d29b9

File tree

4 files changed

+51
-16
lines changed

4 files changed

+51
-16
lines changed

jbrowse/src/client/JBrowse/Browser/Browser.tsx

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -69,13 +69,6 @@ function applyUrlParams(json, queryParam) {
6969
}
7070
}
7171
}
72-
73-
let activeTracks = queryParam.get('activeTracks')
74-
if (activeTracks) {
75-
activeTracks = activeTracks.split(',')
76-
77-
//TODO
78-
}
7972
}
8073

8174
function View(){
@@ -86,6 +79,15 @@ function View(){
8679
const [bgColor, setBgColor] = useState(null)
8780
const [plugins, setPlugins] = useState<PluginConstructor[]>();
8881
useEffect(() => {
82+
let activeTracks = []
83+
if (queryParam.get('activeTracks')) {
84+
activeTracks = activeTracks.concat(queryParam.get('activeTracks').split(','))
85+
}
86+
87+
if (queryParam.get('tracks')) {
88+
activeTracks = activeTracks.concat(queryParam.get('tracks').split(','))
89+
}
90+
8991
Ajax.request({
9092
url: ActionURL.buildURL('jbrowse', 'getSession.api'),
9193
method: 'GET',
@@ -129,7 +131,7 @@ function View(){
129131
setState("invalid");
130132
console.log(res);
131133
},
132-
params: {session: session}
134+
params: {session: session, activeTracks: activeTracks.join(',')}
133135
});
134136
}, []);
135137

jbrowse/src/org/labkey/jbrowse/JBrowseController.java

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -626,16 +626,27 @@ public void setStop(Integer stop)
626626

627627
public static class GetSessionForm
628628
{
629-
private String session;
629+
private String _session;
630+
private String _activeTracks;
630631

631632
public String getSession()
632633
{
633-
return session;
634+
return _session;
634635
}
635636

636637
public void setSession(String session)
637638
{
638-
this.session = session;
639+
_session = session;
640+
}
641+
642+
public String getActiveTracks()
643+
{
644+
return _activeTracks;
645+
}
646+
647+
public void setActiveTracks(String activeTracks)
648+
{
649+
_activeTracks = activeTracks;
639650
}
640651
}
641652

@@ -687,7 +698,17 @@ else if (MGAP_FILTERED.equalsIgnoreCase(form.getSession()))
687698
return null;
688699
}
689700

690-
resp = db.getConfigJson(getUser(), _log);
701+
List<String> additionalActiveTracks = null;
702+
if (form.getActiveTracks() != null)
703+
{
704+
String val = StringUtils.trimToNull(form.getActiveTracks());
705+
if (val != null)
706+
{
707+
additionalActiveTracks.addAll(Arrays.asList(val.split(",")));
708+
}
709+
}
710+
711+
resp = db.getConfigJson(getUser(), _log, additionalActiveTracks);
691712
}
692713

693714
// The rationale of this is to take the site theme, and map this to the primary site color.

jbrowse/src/org/labkey/jbrowse/model/JBrowseSession.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import org.apache.logging.log4j.LogManager;
44
import org.apache.logging.log4j.Logger;
5+
import org.jetbrains.annotations.Nullable;
56
import org.json.JSONArray;
67
import org.json.JSONObject;
78
import org.labkey.api.data.CompareType;
@@ -217,7 +218,7 @@ public void ensureJsonFilesPrepared(User u, Logger log) throws PipelineJobExcept
217218
}
218219
}
219220

220-
public JSONObject getConfigJson(User u, Logger log) throws PipelineJobException
221+
public JSONObject getConfigJson(User u, Logger log, @Nullable List<String> additionalActiveTracks) throws PipelineJobException
221222
{
222223
JSONObject ret = new JSONObject();
223224

@@ -245,7 +246,7 @@ public JSONObject getConfigJson(User u, Logger log) throws PipelineJobException
245246
}
246247

247248
ret.put("tracks", tracks);
248-
ret.put("defaultSession", getDefaultSessionJson(visibleTracks));
249+
ret.put("defaultSession", getDefaultSessionJson(visibleTracks, additionalActiveTracks));
249250

250251
if (getJsonConfig() != null)
251252
{
@@ -295,7 +296,7 @@ private List<JsonFile> getGenomeTracks(User u, boolean createInDatabaseIfMissing
295296
return ret;
296297
}
297298

298-
public JSONObject getDefaultSessionJson(List<JsonFile> tracks)
299+
public JSONObject getDefaultSessionJson(List<JsonFile> tracks, @Nullable List<String> additionalActiveTracks)
299300
{
300301
JSONObject ret = new JSONObject();
301302
ret.put("name", getName());
@@ -307,7 +308,8 @@ public JSONObject getDefaultSessionJson(List<JsonFile> tracks)
307308
JSONArray defaultTracks = new JSONArray();
308309
for (JsonFile jf : tracks)
309310
{
310-
if (jf.isVisibleByDefault()) {
311+
boolean visibleByDefault = jf.isVisibleByDefault() || jf.matchesTrackSelector(additionalActiveTracks);
312+
if (visibleByDefault) {
311313
String trackId = jf.getObjectId();
312314
defaultTracks.put(new JSONObject(){{
313315
put("type", jf.getTrackType());

jbrowse/src/org/labkey/jbrowse/model/JsonFile.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -525,6 +525,16 @@ private JSONObject getVcfTrack(Logger log, ExpData targetFile, ReferenceGenome r
525525
return ret;
526526
}
527527

528+
public boolean matchesTrackSelector(List<String> toTest)
529+
{
530+
if (toTest == null)
531+
{
532+
return false;
533+
}
534+
535+
return toTest.contains(getObjectId()) || toTest.contains(getLabel());
536+
}
537+
528538
private JSONObject getBamTrack(Logger log, ExpData targetFile, ReferenceGenome rg)
529539
{
530540
JSONObject ret = new JSONObject();

0 commit comments

Comments
 (0)