higlass
Version:
HiGlass Hi-C / genomic / large data viewer
47 lines (40 loc) • 1.42 kB
JavaScript
// @ts-nocheck
import { DEFAULT_TRACKS_FOR_DATATYPE, TRACKS_INFO_BY_TYPE } from '../configs';
/** Get the default tracks for a datatype. Uses the known track definitions as
* well as any extra definitions that may be passed in. */
export default function getDefaultTracksForDatatype(
datatype,
otherDefaultTracks,
) {
if (window.higlassTracksByType) {
// Extend `TRACKS_INFO_BY_TYPE` with the configs of plugin tracks.
Object.keys(window.higlassTracksByType).forEach((pluginTrackType) => {
TRACKS_INFO_BY_TYPE[pluginTrackType] =
window.higlassTracksByType[pluginTrackType].config;
});
}
if (!(datatype in DEFAULT_TRACKS_FOR_DATATYPE) && !otherDefaultTracks) {
console.warn('unknown data type:', datatype);
return undefined;
}
const orientationToPositions = {
'1d-horizontal': ['top', 'bottom', 'left', 'right'],
'2d': ['center'],
'1d-vertical': ['left', 'right'],
};
const defaultTracks = DEFAULT_TRACKS_FOR_DATATYPE[datatype] || {};
if (otherDefaultTracks) {
for (const trackType of otherDefaultTracks) {
if (!TRACKS_INFO_BY_TYPE[trackType]) {
console.warn('unknown track type', trackType);
} else {
for (const position of orientationToPositions[
TRACKS_INFO_BY_TYPE[trackType].orientation
]) {
defaultTracks[position] = trackType;
}
}
}
}
return defaultTracks;
}