diff --git a/.circleci/config.yml b/.circleci/config.yml index a271668..1c6cc3f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -4,7 +4,7 @@ executors: node-executor: working_directory: ~/phovea docker: - - image: circleci/node:12.13-buster-browsers + - image: circleci/node:14.17-buster jobs: build: diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index c2cdfb8..0000000 --- a/.editorconfig +++ /dev/null @@ -1,21 +0,0 @@ -# EditorConfig helps developers define and maintain consistent -# coding styles between different editors and IDEs -# editorconfig.org - -root = true - - -[*] - -# Change these settings to your own preference -indent_style = space -indent_size = 2 - -# We recommend you to keep these unchanged -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -[*.md] -trim_trailing_whitespace = false diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..6fb3810 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,71 @@ +module.exports = { + root: true, + extends: [ + "airbnb", + "airbnb-typescript", + "airbnb/hooks", + "eslint:recommended", + "plugin:import/recommended", + "plugin:react/recommended", + "plugin:@typescript-eslint/recommended", + "plugin:jest/recommended", + "plugin:prettier/recommended" + ], + plugins: ["react", "@typescript-eslint", "jest"], + ignorePatterns: ["*.js"], + env: { + browser: true, + es6: true, + jest: true + }, + globals: { + Atomics: "readonly", + SharedArrayBuffer: "readonly", + }, + parser: "@typescript-eslint/parser", + parserOptions: { + // Make sure eslint and VS Code use the same path for the tsconfig.json: + // https://github.com/typescript-eslint/typescript-eslint/issues/251 + tsconfigRootDir: __dirname, + project: "./tsconfig.eslint.json" + }, + rules: { + // Disables jsx-a11y https://github.com/import-js/eslint-plugin-import/blob/v2.25.4/docs/rules/no-webpack-loader-syntax.md + ...Object.keys(require('eslint-plugin-jsx-a11y').rules).reduce((acc, rule) => { acc[`jsx-a11y/${rule}`] = 'off'; return acc }, {}), + "class-methods-use-this":"off", + "linebreak-style": "off", + "no-continue": "off", + "no-multi-assign": "warn", + "no-nested-ternary": "off", + "no-param-reassign": ["error", { "props": false }], + "no-return-assign": "warn", + "no-restricted-syntax": "off", + "no-plusplus": "off", + "no-prototype-builtins": "warn", + "no-minusminus": "off", + "no-underscore-dangle": "off", + "max-classes-per-file": "off", + "no-param-reassign": "warn", + "import/no-extraneous-dependencies": "off", + // Disable the following 2 lines because to allow webpack file-loaders syntax + "import/no-webpack-loader-syntax": "off", + "import/no-unresolved": "off", + "import/prefer-default-export": "off", + "import/order": "error", + "prefer-destructuring": ["warn", {"object": true, "array": false}], + "prefer-promise-reject-errors": "warn", + "prefer-spread": "warn", + "@typescript-eslint/ban-ts-comment": "warn", + "react/destructuring-assignment": "warn", + "react/jsx-props-no-spreading": "off", + "react/no-unused-class-component-methods": "warn", + "react/prop-types": "off", + "react/require-default-props": "off", + "react/static-property-placement": ["warn", "property assignment", { + childContextTypes: "static getter", + contextTypes: "static public field", + contextType: "static public field", + displayName: "static public field", + }] + } +}; \ No newline at end of file diff --git a/.gitignore b/.gitignore index bd3ee02..101a208 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ # general things to ignore /.tscache +/.eslintcache /.idea /build/ /dist/tsBuildInfoFile diff --git a/.prettierrc.js b/.prettierrc.js new file mode 100644 index 0000000..a73b2a5 --- /dev/null +++ b/.prettierrc.js @@ -0,0 +1,6 @@ +module.exports = { + "endOfLine": "auto", + "singleQuote": true, + "trailingComma": "all", + "printWidth": 160 +}; diff --git a/dist/common/Categories.d.ts b/dist/common/Categories.d.ts index 44015f1..0830615 100644 --- a/dist/common/Categories.d.ts +++ b/dist/common/Categories.d.ts @@ -1,7 +1,7 @@ /** * Created by Samuel Gratzl on 11.05.2016. */ -export declare module Categories { +export declare namespace Categories { const copyNumberCat: { value: number; name: string; @@ -18,3 +18,4 @@ export declare module Categories { const unknownMutationValue: any; const GENE_IDTYPE = "Ensembl"; } +//# sourceMappingURL=Categories.d.ts.map \ No newline at end of file diff --git a/dist/common/Categories.d.ts.map b/dist/common/Categories.d.ts.map new file mode 100644 index 0000000..89cb83d --- /dev/null +++ b/dist/common/Categories.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"Categories.d.ts","sourceRoot":"","sources":["../../src/common/Categories.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,yBAAiB,UAAU,CAAC;IACnB,MAAM,aAAa;;;;;OAQzB,CAAC;IACK,MAAM,sBAAsB,EAAE,GAAS,CAAC;IAExC,MAAM,WAAW;;;;;OAIvB,CAAC;IACK,MAAM,oBAAoB,EAAE,GAAS,CAAC;IAEtC,MAAM,WAAW,YAAY,CAAC;CACtC"} \ No newline at end of file diff --git a/dist/common/Categories.js b/dist/common/Categories.js index ef4f2ad..3a2bb8f 100644 --- a/dist/common/Categories.js +++ b/dist/common/Categories.js @@ -2,18 +2,23 @@ * Created by Samuel Gratzl on 11.05.2016. */ // see also _onco_print.scss +// eslint-disable-next-line @typescript-eslint/no-namespace export var Categories; (function (Categories) { Categories.copyNumberCat = [ { value: 2, name: 'Amplification', color: '#efb3bc', border: 'transparent' }, { value: -2, name: 'Deep Deletion', color: '#92c5de', border: 'transparent' }, - //{value: -1, name: 'Heterozygous deletion', color: '#92c5de'}, + // {value: -1, name: 'Heterozygous deletion', color: '#92c5de'}, { value: 0, name: 'NORMAL', color: '#dcdcdc', border: 'transparent' }, + // {value: 1, name: 'Low level amplification', color: '#f4a582'}, + // {value: 2, name: 'High level amplification', color: '#ca0020'}, + // {value: 'null', name: 'Unknown', color: '#FCFCFC', border: '#dcdcdc'} ]; Categories.unknownCopyNumberValue = NaN; Categories.mutationCat = [ { value: 'true', name: 'Mutated', color: '#1BA64E', border: 'transparent' }, { value: 'false', name: 'Non Mutated', color: '#aaa', border: 'transparent' }, + // {value: 'null', name: 'Unknown', color: 'transparent', border: '#999'} ]; Categories.unknownMutationValue = NaN; Categories.GENE_IDTYPE = 'Ensembl'; diff --git a/dist/common/Categories.js.map b/dist/common/Categories.js.map index c5577fb..0be29b4 100644 --- a/dist/common/Categories.js.map +++ b/dist/common/Categories.js.map @@ -1 +1 @@ -{"version":3,"file":"Categories.js","sourceRoot":"","sources":["../../src/common/Categories.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,4BAA4B;AAE5B,MAAM,KAAQ,UAAU,CAqBvB;AArBD,WAAc,UAAU;IAET,wBAAa,GAAG;QAC3B,EAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAC;QAC1E,EAAC,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAC;QAC3E,+DAA+D;QAC/D,EAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAC;KAIpE,CAAC;IACW,iCAAsB,GAAQ,GAAG,CAAC;IAElC,sBAAW,GAAG;QACzB,EAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAC;QACzE,EAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAC;KAE5E,CAAC;IACW,+BAAoB,GAAQ,GAAG,CAAC;IAEhC,sBAAW,GAAG,SAAS,CAAC;AACvC,CAAC,EArBa,UAAU,KAAV,UAAU,QAqBvB"} \ No newline at end of file +{"version":3,"file":"Categories.js","sourceRoot":"","sources":["../../src/common/Categories.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,4BAA4B;AAE5B,2DAA2D;AAC3D,MAAM,KAAW,UAAU,CAoB1B;AApBD,WAAiB,UAAU;IACZ,wBAAa,GAAG;QAC3B,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE;QAC5E,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE;QAC7E,gEAAgE;QAChE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE;QACrE,iEAAiE;QACjE,kEAAkE;QAClE,wEAAwE;KACzE,CAAC;IACW,iCAAsB,GAAQ,GAAG,CAAC;IAElC,sBAAW,GAAG;QACzB,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE;QAC3E,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE;QAC7E,yEAAyE;KAC1E,CAAC;IACW,+BAAoB,GAAQ,GAAG,CAAC;IAEhC,sBAAW,GAAG,SAAS,CAAC;AACvC,CAAC,EApBgB,UAAU,KAAV,UAAU,QAoB1B"} \ No newline at end of file diff --git a/dist/common/common.d.ts b/dist/common/common.d.ts index c709d98..e0c508b 100644 --- a/dist/common/common.d.ts +++ b/dist/common/common.d.ts @@ -1,10 +1,7 @@ /** * Created by Samuel Gratzl on 11.05.2016. */ -import { IDType } from 'phovea_core'; -import { IFormSelectOption } from 'tdp_core'; -import { ISelection } from 'tdp_core'; -import { Range } from 'phovea_core'; +import { IDType, IFormSelectOption, ISelection } from 'tdp_core'; interface IAvailableSpecies { name: string; value: string; @@ -14,7 +11,7 @@ interface ISpeciesFilterObject { species: string; [key: string]: any; } -export declare module Species { +export declare namespace Species { const availableSpecies: IAvailableSpecies[]; const defaultSpecies: string; const DEFAULT_ENTITY_TYPE = "Ensembl"; @@ -33,7 +30,7 @@ export declare class SpeciesUtils { * @returns {Promise} */ static selectReadableIDType(idType: IDType): Promise; - static mapToId(selection: ISelection, target?: IDType): Range | Promise; + static mapToId(selection: ISelection, target?: IDType): string[] | Promise; static createOptions(ensgs: string[], selection: ISelection, base: IDType): Promise; /** * Creates a converter to use GeneSymbols, translate them to Ensembl IDs, add these IDs and change the previously detected options (e.g. add a new header, change IDType, ...) @@ -47,3 +44,4 @@ export declare class SpeciesUtils { static filterSpecies(filter: ISpeciesFilterObject): boolean; } export {}; +//# sourceMappingURL=common.d.ts.map \ No newline at end of file diff --git a/dist/common/common.d.ts.map b/dist/common/common.d.ts.map new file mode 100644 index 0000000..4b9f648 --- /dev/null +++ b/dist/common/common.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/common/common.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAe,MAAM,EAAE,iBAAiB,EAAE,UAAU,EAAiB,MAAM,UAAU,CAAC;AAI7F,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AACD,UAAU,oBAAoB;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAGD,yBAAiB,OAAO,CAAC;IAChB,MAAM,gBAAgB,EAAE,iBAAiB,EAI/C,CAAC;IAEK,MAAM,cAAc,QAA4B,CAAC;IACjD,MAAM,mBAAmB,YAAyB,CAAC;IAEnD,MAAM,mBAAmB,YAAY,CAAC;CAC9C;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,CAAC,aAAa,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;CAC3F;AAED,qBAAa,YAAY;IACvB,MAAM,CAAC,kBAAkB;IAIzB;;;;OAIG;WACU,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAezE,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,GAAE,MAAa;IAQ3D,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IA2BxG;;OAEG;IACH,MAAM,CAAC,0BAA0B,IAAI,cAAc;IAmDnD;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,oBAAoB;CAGlD"} \ No newline at end of file diff --git a/dist/common/common.js b/dist/common/common.js index bc9c621..bd76528 100644 --- a/dist/common/common.js +++ b/dist/common/common.js @@ -1,16 +1,15 @@ /** * Created by Samuel Gratzl on 11.05.2016. */ -import { UserSession } from 'phovea_core'; -import { IDTypeManager } from 'phovea_core'; +import { UserSession, IDTypeManager } from 'tdp_core'; import { Categories } from './Categories'; -import { Range } from 'phovea_core'; +// eslint-disable-next-line @typescript-eslint/no-namespace export var Species; (function (Species) { Species.availableSpecies = [ { name: 'Human', value: 'human', iconClass: 'fa-male' }, - //{ name: 'Rat', value: 'rat' }, - { name: 'Mouse', value: 'mouse', iconClass: 'mouse-icon' } + // { name: 'Rat', value: 'rat' }, + { name: 'Mouse', value: 'mouse', iconClass: 'mouse-icon' }, ]; Species.defaultSpecies = Species.availableSpecies[0].value; Species.DEFAULT_ENTITY_TYPE = Categories.GENE_IDTYPE; @@ -30,7 +29,7 @@ export class SpeciesUtils { const targetMapping = 'GeneSymbol'; const species = SpeciesUtils.getSelectedSpecies(); const mapsTo = await IDTypeManager.getInstance().getCanBeMappedTo(idType); - let target = mapsTo.find((d) => d.name === targetMapping + '_' + species); + let target = mapsTo.find((d) => d.name === `${targetMapping}_${species}`); if (!target) { target = mapsTo.find((d) => d.name === targetMapping); } @@ -41,14 +40,14 @@ export class SpeciesUtils { } static mapToId(selection, target = null) { if (target === null || selection.idtype.id === target.id) { - // same just unmap to name - return selection.range; + return selection.ids; } // assume mappable - return IDTypeManager.getInstance().mapToFirstID(selection.idtype, selection.range, target).then((r) => Range.list(r)); + return IDTypeManager.getInstance().mapNameToFirstName(selection.idtype, selection.ids, target); } static createOptions(ensgs, selection, base) { - if (ensgs === null || ensgs.length === 0 || selection.range.isNone) { + var _a; + if (ensgs === null || ensgs.length === 0 || ((_a = selection.ids) === null || _a === void 0 ? void 0 : _a.length) === 0) { return Promise.resolve([]); } return Promise.all([SpeciesUtils.mapToId(selection, base), SpeciesUtils.selectReadableIDType(base)]).then((results) => { @@ -58,11 +57,13 @@ export class SpeciesUtils { return ensgs.map((ensg) => ({ value: ensg, name: ensg, data: [ensg, ensg] })); } // map and use names - return IDTypeManager.getInstance().mapToFirstName(base, ids, target).then((names) => { + return IDTypeManager.getInstance() + .mapNameToFirstName(base, ids, target) + .then((names) => { return names.map((name, i) => ({ value: ensgs[i], name: name ? `${name} (${ensgs[i]})` : ensgs[i], - data: [ensgs[i], name] + data: [ensgs[i], name], })); }); }); @@ -101,17 +102,15 @@ export class SpeciesUtils { column: newConfig.columns.length, idType: Categories.GENE_IDTYPE, label: Categories.GENE_IDTYPE, - type: 'string' + type: 'string', }); newConfig.idType = Categories.GENE_IDTYPE; newConfig.idColumn = newConfig.columns.length - 1; newConfig.notes.push('The column Ensembl was added based on the detected Gene Symbols. 1:n mappings between Gene Symbols and Ensembl IDs were resolved by showing all possible combinations.'); return newData; } - else { - return data; - } - } + return data; + }, }; } /** diff --git a/dist/common/common.js.map b/dist/common/common.js.map index 3b34db6..c412364 100644 --- a/dist/common/common.js.map +++ b/dist/common/common.js.map @@ -1 +1 @@ -{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/common/common.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/common/common.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/common/index.d.ts b/dist/common/index.d.ts index 2a75e49..faaa15a 100644 --- a/dist/common/index.d.ts +++ b/dist/common/index.d.ts @@ -1,2 +1,3 @@ export * from './Categories'; export * from './common'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/dist/common/index.d.ts.map b/dist/common/index.d.ts.map new file mode 100644 index 0000000..2f22f0b --- /dev/null +++ b/dist/common/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts index 19315ac..f005c80 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -1,3 +1,4 @@ export * from './common'; export * from './provider'; export * from './views'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/dist/index.d.ts.map b/dist/index.d.ts.map new file mode 100644 index 0000000..33d2bb7 --- /dev/null +++ b/dist/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"} \ No newline at end of file diff --git a/dist/phovea.d.ts b/dist/phovea.d.ts index 8f747c9..5cdef86 100644 --- a/dist/phovea.d.ts +++ b/dist/phovea.d.ts @@ -1,2 +1,3 @@ -import { IRegistry } from 'phovea_core'; +import { IRegistry } from 'tdp_core'; export default function (registry: IRegistry): void; +//# sourceMappingURL=phovea.d.ts.map \ No newline at end of file diff --git a/dist/phovea.d.ts.map b/dist/phovea.d.ts.map new file mode 100644 index 0000000..61593f0 --- /dev/null +++ b/dist/phovea.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"phovea.d.ts","sourceRoot":"","sources":["../src/phovea.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,MAAM,CAAC,OAAO,WAAW,QAAQ,EAAE,SAAS,QAsM3C"} \ No newline at end of file diff --git a/dist/phovea.js b/dist/phovea.js index ca284db..9b5d261 100644 --- a/dist/phovea.js +++ b/dist/phovea.js @@ -17,11 +17,11 @@ export default function (registry) { selection: 'chooser', preview: () => import('./assets/previews/ensembl.jpg'), group: { - name: 'External Resources' + name: 'External Resources', // 'order: 0 }, description: 'Show information on your search from Ensembl.org', - topics: ['external'] + topics: ['external'], }); // doesn't work properly // tdpView('cansar', () => import('./views/UniProtProxyView'), { @@ -51,11 +51,11 @@ export default function (registry) { openExternally: true, preview: () => import('./assets/previews/uniprot.jpg'), group: { - name: 'External Resources' + name: 'External Resources', // 'order: 70 }, description: 'Show information on your search from UniProt', - topics: ['uniprot', 'external'] + topics: ['uniprot', 'external'], }); tdpView('targetvalidation', () => import('./views/GeneProxyView'), { factory: 'new GeneProxyView', @@ -66,14 +66,14 @@ export default function (registry) { selection: 'chooser', preview: () => import('./assets/previews/open_targets.jpg'), group: { - name: 'External Resources' + name: 'External Resources', // 'order: 40 }, filter: { - species: 'human' + species: 'human', }, description: 'Show information on your search from Open Targets', - topics: ['external'] + topics: ['external'], }); tdpView('proteinatlas_org', () => import('./views/GeneProxyView'), { factory: 'new GeneProxyView', @@ -85,14 +85,14 @@ export default function (registry) { openExternally: true, preview: () => import('./assets/previews/human_protein_atlas.jpg'), group: { - name: 'External Resources' + name: 'External Resources', // 'order: 50 }, filter: { - species: 'human' + species: 'human', }, description: 'Show information on your search from the Human Protein Atlas', - topics: ['protein', 'external'] + topics: ['protein', 'external'], }); const common = { argument: 'gene', @@ -100,13 +100,13 @@ export default function (registry) { readableIDType: 'GeneSymbol', selection: 'chooser', group: { - name: 'External Resources' + name: 'External Resources', // 'order: 60 }, filter: { - species: 'human' + species: 'human', }, - topics: ['external'] + topics: ['external'], }; // tdpView('humanproteomemap', () => import('tdp_core/dist/views/ChooserProxyView'), { // name: 'Human Proteome Map', @@ -125,7 +125,7 @@ export default function (registry) { site: 'https://www.genenames.org/cgi-bin/gene_symbol_report?match={gene}', preview: () => import('./assets/previews/genenames.jpg'), description: 'Reference for human gene symbols', - helpUrl: 'https://www.genenames.org/about/overview' + helpUrl: 'https://www.genenames.org/about/overview', }, common); tdpView('ClinVar', () => import('tdp_core/dist/views/ChooserProxyView'), { factory: 'new ChooserProxyView', @@ -133,7 +133,7 @@ export default function (registry) { site: 'https://www.ncbi.nlm.nih.gov/clinvar/?term={gene}', helpUrl: 'https://www.ncbi.nlm.nih.gov/clinvar/intro/', preview: () => import('./assets/previews/clinvar.png'), - description: 'relationships among human variations and phenotypes, with supporting evidence' + description: 'relationships among human variations and phenotypes, with supporting evidence', }, common); tdpView('cosmic_gene', () => import('tdp_core/dist/views/ChooserProxyView'), { factory: 'new ChooserProxyView', @@ -141,22 +141,22 @@ export default function (registry) { site: 'https://cancer.sanger.ac.uk/cosmic/gene/analysis?genome=38&ln={gene}', preview: () => import('./assets/previews/cosmic_banner.png'), description: 'Catalogue Of Somatic Mutations In Cancer', - helpUrl: 'https://cancer.sanger.ac.uk/cosmic/about' + helpUrl: 'https://cancer.sanger.ac.uk/cosmic/about', }, common, { - topics: ['cancer', 'external'] + topics: ['cancer', 'external'], }); registry.push('importPostProcessor', 'GeneSymbol', () => import('./common/common').then((c) => c.SpeciesUtils), { - factory: 'convertGeneSymbolToEnsembl' + factory: 'convertGeneSymbolToEnsembl', }); registry.push('tdpListFilters', 'SpeciesFilter', () => import('./common/common').then((c) => c.SpeciesUtils), { - factory: 'filterSpecies' + factory: 'filterSpecies', }); registry.push('idTypeDetector', 'gene_idtype_detector', () => { return import('./provider/GeneIDTypeDetector').then((v) => v.GeneIDTypeDetector); }, { name: 'IDTypeDetector', factory: 'geneIDTypeDetector', - idType: 'Ensembl' + idType: 'Ensembl', }); /// #if include('ordino') // registry.push('ordinoStartMenuSection', 'section_species', function() { return import('./menu/SpeciesSelectorMenuSection'); }, { diff --git a/dist/phovea.js.map b/dist/phovea.js.map index 5da01a2..ed1d6f1 100644 --- a/dist/phovea.js.map +++ b/dist/phovea.js.map @@ -1 +1 @@ -{"version":3,"file":"phovea.js","sourceRoot":"","sources":["../src/phovea.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"phovea.js","sourceRoot":"","sources":["../src/phovea.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/provider/FieldUtils.d.ts b/dist/provider/FieldUtils.d.ts index 792f838..6c0a58f 100644 --- a/dist/provider/FieldUtils.d.ts +++ b/dist/provider/FieldUtils.d.ts @@ -1,9 +1,4 @@ -/** - * Created by sam on 29.05.2017. - */ -import { RangeLike } from 'phovea_core'; -import { INamedSet } from 'tdp_core'; -import { IDType } from 'phovea_core'; +import { INamedSet, IDType } from 'tdp_core'; export declare class FieldUtils { /** * converts the field in the given array 2^ @@ -15,5 +10,6 @@ export declare class FieldUtils { /** * limit the number of score rows if it doesn't exceed some criteria */ - static limitScoreRows(param: any, ids: RangeLike, idTypeOfIDs: IDType, entity: string, maxDirectRows: number, namedSet?: INamedSet): void; + static limitScoreRows(param: any, ids: string[], idTypeOfIDs: IDType, entity: string, maxDirectRows: number, namedSet?: INamedSet): void; } +//# sourceMappingURL=FieldUtils.d.ts.map \ No newline at end of file diff --git a/dist/provider/FieldUtils.d.ts.map b/dist/provider/FieldUtils.d.ts.map new file mode 100644 index 0000000..4bf1e9b --- /dev/null +++ b/dist/provider/FieldUtils.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FieldUtils.d.ts","sourceRoot":"","sources":["../../src/provider/FieldUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAiB,MAAM,EAAE,MAAM,UAAU,CAAC;AAE5D,qBAAa,UAAU;IACrB;;;;;OAKG;IACH,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM;IAQrD;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,SAAS;CAmBlI"} \ No newline at end of file diff --git a/dist/provider/FieldUtils.js b/dist/provider/FieldUtils.js index 17aeee3..bcee680 100644 --- a/dist/provider/FieldUtils.js +++ b/dist/provider/FieldUtils.js @@ -1,7 +1,3 @@ -/** - * Created by sam on 29.05.2017. - */ -import { ParseRangeUtils } from 'phovea_core'; import { ENamedSetType } from 'tdp_core'; export class FieldUtils { /** @@ -13,7 +9,7 @@ export class FieldUtils { static convertLog2ToLinear(rows, field) { console.log('convert log2 score to linear scale'); return rows.map((row) => { - row[field] = Math.pow(2, row[field]); + row[field] = 2 ** row[field]; return row; }); } @@ -21,9 +17,8 @@ export class FieldUtils { * limit the number of score rows if it doesn't exceed some criteria */ static limitScoreRows(param, ids, idTypeOfIDs, entity, maxDirectRows, namedSet) { - const range = ParseRangeUtils.parseRangeLike(ids); - if (range.dim(0).length < maxDirectRows) { - param[`filter_rangeOf${idTypeOfIDs.id}4${entity}`] = range.toString(); + if (ids.length < maxDirectRows) { + param[`filter_rangeOf${idTypeOfIDs.id}4${entity}`] = ids; return; } if (namedSet) { @@ -35,6 +30,8 @@ export class FieldUtils { case ENamedSetType.NAMEDSET: param[`filter_namedset4${entity}`] = namedSet.id; break; + default: + break; } } } diff --git a/dist/provider/FieldUtils.js.map b/dist/provider/FieldUtils.js.map index affac2d..2a7d240 100644 --- a/dist/provider/FieldUtils.js.map +++ b/dist/provider/FieldUtils.js.map @@ -1 +1 @@ -{"version":3,"file":"FieldUtils.js","sourceRoot":"","sources":["../../src/provider/FieldUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAY,eAAe,EAAC,MAAM,aAAa,CAAC;AACvD,OAAO,EAAY,aAAa,EAAC,MAAM,UAAU,CAAC;AAIlD,MAAM,OAAO,UAAU;IACrB;;;;;OAKG;IACH,MAAM,CAAC,mBAAmB,CAAC,IAAW,EAAE,KAAa;QACnD,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACtB,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;YACrC,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IAGD;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,KAAU,EAAE,GAAc,EAAE,WAAmB,EAAE,MAAc,EAAE,aAAqB,EAAE,QAAoB;QAChI,MAAM,KAAK,GAAG,eAAe,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,aAAa,EAAE;YACvC,KAAK,CAAC,iBAAiB,WAAW,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;YACtE,OAAO;SACR;QACD,IAAI,QAAQ,EAAE;YACZ,uBAAuB;YACvB,QAAO,QAAQ,CAAC,IAAI,EAAE;gBACpB,KAAK,aAAa,CAAC,KAAK;oBACtB,KAAK,CAAC,gBAAgB,MAAM,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;oBAC9C,MAAM;gBACR,KAAK,aAAa,CAAC,QAAQ;oBACzB,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;oBACjD,MAAM;aACT;SACF;IACH,CAAC;CACF"} \ No newline at end of file +{"version":3,"file":"FieldUtils.js","sourceRoot":"","sources":["../../src/provider/FieldUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,aAAa,EAAU,MAAM,UAAU,CAAC;AAE5D,MAAM,OAAO,UAAU;IACrB;;;;;OAKG;IACH,MAAM,CAAC,mBAAmB,CAAC,IAAW,EAAE,KAAa;QACnD,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACtB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;YAC7B,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,KAAU,EAAE,GAAa,EAAE,WAAmB,EAAE,MAAc,EAAE,aAAqB,EAAE,QAAoB;QAC/H,IAAI,GAAG,CAAC,MAAM,GAAG,aAAa,EAAE;YAC9B,KAAK,CAAC,iBAAiB,WAAW,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC,GAAG,GAAG,CAAC;YACzD,OAAO;SACR;QACD,IAAI,QAAQ,EAAE;YACZ,uBAAuB;YACvB,QAAQ,QAAQ,CAAC,IAAI,EAAE;gBACrB,KAAK,aAAa,CAAC,KAAK;oBACtB,KAAK,CAAC,gBAAgB,MAAM,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;oBAC9C,MAAM;gBACR,KAAK,aAAa,CAAC,QAAQ;oBACzB,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;oBACjD,MAAM;gBACR;oBACE,MAAM;aACT;SACF;IACH,CAAC;CACF"} \ No newline at end of file diff --git a/dist/provider/GeneIDTypeDetector.d.ts b/dist/provider/GeneIDTypeDetector.d.ts index 7da9ce0..37e0570 100644 --- a/dist/provider/GeneIDTypeDetector.d.ts +++ b/dist/provider/GeneIDTypeDetector.d.ts @@ -12,3 +12,4 @@ export declare class GeneIDTypeDetector { detectIDType: typeof GeneIDTypeDetector.detectIDType; }; } +//# sourceMappingURL=GeneIDTypeDetector.d.ts.map \ No newline at end of file diff --git a/dist/provider/GeneIDTypeDetector.d.ts.map b/dist/provider/GeneIDTypeDetector.d.ts.map new file mode 100644 index 0000000..683f285 --- /dev/null +++ b/dist/provider/GeneIDTypeDetector.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"GeneIDTypeDetector.d.ts","sourceRoot":"","sources":["../../src/provider/GeneIDTypeDetector.ts"],"names":[],"mappings":"AAAA,qBAAa,kBAAkB;IAC7B;;;;;;;OAOG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAyB5F,MAAM,CAAC,kBAAkB;;;CAK1B"} \ No newline at end of file diff --git a/dist/provider/GeneIDTypeDetector.js b/dist/provider/GeneIDTypeDetector.js index 962b192..27bf891 100644 --- a/dist/provider/GeneIDTypeDetector.js +++ b/dist/provider/GeneIDTypeDetector.js @@ -16,8 +16,8 @@ export class GeneIDTypeDetector { let validSize = 0; for (let i = 0; i < testSize; ++i) { const v = accessor(data[i]); - if (v == null || typeof (v) !== 'string' || v.trim().length === 0) { - continue; //skip empty samples + if (v == null || typeof v !== 'string' || v.trim().length === 0) { + continue; // skip empty samples } if (v.indexOf('ENS') === 0 || v.indexOf('LRG') === 0) { ++foundIDTypes; @@ -28,7 +28,7 @@ export class GeneIDTypeDetector { } static geneIDTypeDetector() { return { - detectIDType: GeneIDTypeDetector.detectIDType + detectIDType: GeneIDTypeDetector.detectIDType, }; } } diff --git a/dist/provider/GeneIDTypeDetector.js.map b/dist/provider/GeneIDTypeDetector.js.map index 0c4d08b..95cbc98 100644 --- a/dist/provider/GeneIDTypeDetector.js.map +++ b/dist/provider/GeneIDTypeDetector.js.map @@ -1 +1 @@ -{"version":3,"file":"GeneIDTypeDetector.js","sourceRoot":"","sources":["../../src/provider/GeneIDTypeDetector.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,kBAAkB;IAE7B;;;;;;;OAOG;IACH,MAAM,CAAC,YAAY,CAAC,IAAW,EAAE,QAA8B,EAAE,UAAkB;QACjF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACnD,IAAI,QAAQ,IAAI,CAAC,EAAE;YACjB,OAAO,CAAC,CAAC;SACV;QAED,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,EAAE,CAAC,EAAE;YAChC,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAE5B,IAAI,CAAC,IAAI,IAAI,IAAI,OAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;gBAChE,SAAS,CAAC,oBAAoB;aAC/B;YAED,IAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACnD,EAAE,YAAY,CAAC;aAChB;YACD,EAAE,SAAS,CAAC;SACb;QAED,OAAO,YAAY,GAAG,SAAS,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,kBAAkB;QACvB,OAAO;YACL,YAAY,EAAE,kBAAkB,CAAC,YAAY;SAC9C,CAAC;IACJ,CAAC;CACF"} \ No newline at end of file +{"version":3,"file":"GeneIDTypeDetector.js","sourceRoot":"","sources":["../../src/provider/GeneIDTypeDetector.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,kBAAkB;IAC7B;;;;;;;OAOG;IACH,MAAM,CAAC,YAAY,CAAC,IAAW,EAAE,QAA8B,EAAE,UAAkB;QACjF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACnD,IAAI,QAAQ,IAAI,CAAC,EAAE;YACjB,OAAO,CAAC,CAAC;SACV;QAED,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,EAAE,CAAC,EAAE;YACjC,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAE5B,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC/D,SAAS,CAAC,qBAAqB;aAChC;YAED,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACpD,EAAE,YAAY,CAAC;aAChB;YACD,EAAE,SAAS,CAAC;SACb;QAED,OAAO,YAAY,GAAG,SAAS,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,kBAAkB;QACvB,OAAO;YACL,YAAY,EAAE,kBAAkB,CAAC,YAAY;SAC9C,CAAC;IACJ,CAAC;CACF"} \ No newline at end of file diff --git a/dist/provider/SearchProvider.d.ts b/dist/provider/SearchProvider.d.ts index 0d7efc7..6739e62 100644 --- a/dist/provider/SearchProvider.d.ts +++ b/dist/provider/SearchProvider.d.ts @@ -19,3 +19,4 @@ export declare class SearchProvider implements ISearchProvider { }>; validate(query: string[]): Promise; } +//# sourceMappingURL=SearchProvider.d.ts.map \ No newline at end of file diff --git a/dist/provider/SearchProvider.d.ts.map b/dist/provider/SearchProvider.d.ts.map new file mode 100644 index 0000000..5b3aa2f --- /dev/null +++ b/dist/provider/SearchProvider.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"SearchProvider.d.ts","sourceRoot":"","sources":["../../src/provider/SearchProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAIpD,qBAAa,cAAe,YAAW,eAAe;IACxC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;gBAA5D,UAAU,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IAE3F,IAAI,UAAU,WAEb;IAED,IAAI,UAAU,WAEb;IAED,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO;IAI/C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;;;;IAepD,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAO9C"} \ No newline at end of file diff --git a/dist/provider/SearchProvider.js b/dist/provider/SearchProvider.js index 0261621..a8fe67a 100644 --- a/dist/provider/SearchProvider.js +++ b/dist/provider/SearchProvider.js @@ -1,6 +1,5 @@ -//redeclare to avoid dependency -import { SpeciesUtils } from '../common/common'; import { RestBaseUtils } from 'tdp_core'; +import { SpeciesUtils } from '../common/common'; export class SearchProvider { constructor(dataSource) { this.dataSource = dataSource; @@ -20,11 +19,11 @@ export class SearchProvider { species: SpeciesUtils.getSelectedSpecies(), query, page, - limit: pageSize + limit: pageSize, }).then((data) => { return { items: data.items.map(SearchProvider.mapItems), - more: data.more + more: data.more, }; }); } diff --git a/dist/provider/SearchProvider.js.map b/dist/provider/SearchProvider.js.map index c8dfd6b..9d1dd27 100644 --- a/dist/provider/SearchProvider.js.map +++ b/dist/provider/SearchProvider.js.map @@ -1 +1 @@ -{"version":3,"file":"SearchProvider.js","sourceRoot":"","sources":["../../src/provider/SearchProvider.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAC;AAEvC,MAAM,OAAO,cAAc;IAEzB,YAA+B,UAA4D;QAA5D,eAAU,GAAV,UAAU,CAAkD;IAE3F,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC;IACzC,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,eAAe,CAAC;IAChD,CAAC;IAES,MAAM,CAAC,QAAQ,CAAC,MAAW;QACnC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAAa,EAAE,IAAY,EAAE,QAAgB;QAClD,OAAO,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,EAAG;YACtE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU;YAClC,OAAO,EAAE,YAAY,CAAC,kBAAkB,EAAE;YAC1C,KAAK;YACL,IAAI;YACJ,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACf,OAAO;gBACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC;gBAC9C,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,QAAQ,CAAC,KAAe;QACtB,OAAO,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,UAAU,SAAS,EAAE;YAC/E,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU;YAClC,OAAO,EAAE,YAAY,CAAC,kBAAkB,EAAE;YAC1C,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,EAAE,KAAK;SAChD,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvD,CAAC;CACF"} \ No newline at end of file +{"version":3,"file":"SearchProvider.js","sourceRoot":"","sources":["../../src/provider/SearchProvider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,OAAO,cAAc;IACzB,YAA+B,UAA4D;QAA5D,eAAU,GAAV,UAAU,CAAkD;IAAG,CAAC;IAE/F,IAAI,UAAU;QACZ,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC;IACzC,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,eAAe,CAAC;IAChD,CAAC;IAES,MAAM,CAAC,QAAQ,CAAC,MAAW;QACnC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAAa,EAAE,IAAY,EAAE,QAAgB;QAClD,OAAO,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE;YACrE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU;YAClC,OAAO,EAAE,YAAY,CAAC,kBAAkB,EAAE;YAC1C,KAAK;YACL,IAAI;YACJ,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACf,OAAO;gBACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC;gBAC9C,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,KAAe;QACtB,OAAO,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,UAAU,SAAS,EAAE;YAC/E,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU;YAClC,OAAO,EAAE,YAAY,CAAC,kBAAkB,EAAE;YAC1C,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,EAAE,KAAK;SAChD,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvD,CAAC;CACF"} \ No newline at end of file diff --git a/dist/provider/forms.d.ts b/dist/provider/forms.d.ts index b8938fb..25f1054 100644 --- a/dist/provider/forms.d.ts +++ b/dist/provider/forms.d.ts @@ -1,7 +1,8 @@ /** * Created by sam on 06.03.2017. */ -export declare module FormSubtype { +export declare namespace FormSubtype { const FORM_COPYNUMBER_SUBTYPE_ID = "copynumber_subtype"; const FORM_EXPRESSION_SUBTYPE_ID = "expression_subtype"; } +//# sourceMappingURL=forms.d.ts.map \ No newline at end of file diff --git a/dist/provider/forms.d.ts.map b/dist/provider/forms.d.ts.map new file mode 100644 index 0000000..74a2ecc --- /dev/null +++ b/dist/provider/forms.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"forms.d.ts","sourceRoot":"","sources":["../../src/provider/forms.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,yBAAiB,WAAW,CAAC;IACpB,MAAM,0BAA0B,uBAAuB,CAAC;IACxD,MAAM,0BAA0B,uBAAuB,CAAC;CAChE"} \ No newline at end of file diff --git a/dist/provider/forms.js b/dist/provider/forms.js index dff2192..c248559 100644 --- a/dist/provider/forms.js +++ b/dist/provider/forms.js @@ -1,6 +1,7 @@ /** * Created by sam on 06.03.2017. */ +// eslint-disable-next-line @typescript-eslint/no-namespace export var FormSubtype; (function (FormSubtype) { FormSubtype.FORM_COPYNUMBER_SUBTYPE_ID = 'copynumber_subtype'; diff --git a/dist/provider/forms.js.map b/dist/provider/forms.js.map index 3186a50..f33623e 100644 --- a/dist/provider/forms.js.map +++ b/dist/provider/forms.js.map @@ -1 +1 @@ -{"version":3,"file":"forms.js","sourceRoot":"","sources":["../../src/provider/forms.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,KAAQ,WAAW,CAGxB;AAHD,WAAc,WAAW;IACV,sCAA0B,GAAG,oBAAoB,CAAC;IAClD,sCAA0B,GAAG,oBAAoB,CAAC;AACjE,CAAC,EAHa,WAAW,KAAX,WAAW,QAGxB"} \ No newline at end of file +{"version":3,"file":"forms.js","sourceRoot":"","sources":["../../src/provider/forms.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,2DAA2D;AAC3D,MAAM,KAAW,WAAW,CAG3B;AAHD,WAAiB,WAAW;IACb,sCAA0B,GAAG,oBAAoB,CAAC;IAClD,sCAA0B,GAAG,oBAAoB,CAAC;AACjE,CAAC,EAHgB,WAAW,KAAX,WAAW,QAG3B"} \ No newline at end of file diff --git a/dist/provider/index.d.ts b/dist/provider/index.d.ts index cf15542..2001c55 100644 --- a/dist/provider/index.d.ts +++ b/dist/provider/index.d.ts @@ -2,3 +2,4 @@ export * from './FieldUtils'; export * from './forms'; export * from './GeneIDTypeDetector'; export * from './SearchProvider'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/dist/provider/index.d.ts.map b/dist/provider/index.d.ts.map new file mode 100644 index 0000000..03741b2 --- /dev/null +++ b/dist/provider/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/provider/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC"} \ No newline at end of file diff --git a/dist/views/ACoExpression.d.ts b/dist/views/ACoExpression.d.ts index ddaccdf..9d300db 100644 --- a/dist/views/ACoExpression.d.ts +++ b/dist/views/ACoExpression.d.ts @@ -4,7 +4,6 @@ import { IFormElementDesc } from 'tdp_core'; import { IFormSelectOption } from 'tdp_core'; import * as d3 from 'd3'; -import { Range } from 'phovea_core'; import { AD3View } from 'tdp_core'; export interface IGeneOption extends IFormSelectOption { data: { @@ -45,16 +44,17 @@ export declare abstract class ACoExpression extends AD3View { private updateChartData; protected getNoDataErrorMessage(refGene: IGeneOption): string; protected abstract getAttributeName(): string; - protected abstract select(r: Range): void; + protected abstract select(r: string[]): void; } export interface ICoExprDataFormatRow { samplename: string; expression: number; color?: string; - _id: number; + id: string; } export interface ICoExprDataFormat { - id: number; + id: string; geneName: string; rows: ICoExprDataFormatRow[]; } +//# sourceMappingURL=ACoExpression.d.ts.map \ No newline at end of file diff --git a/dist/views/ACoExpression.d.ts.map b/dist/views/ACoExpression.d.ts.map new file mode 100644 index 0000000..f38ed4d --- /dev/null +++ b/dist/views/ACoExpression.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"ACoExpression.d.ts","sourceRoot":"","sources":["../../src/views/ACoExpression.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAc,gBAAgB,EAAiB,MAAM,UAAU,CAAC;AACvE,OAAO,EAAuC,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAElF,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAiBnC,MAAM,WAAW,WAAY,SAAQ,iBAAiB;IACpD,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CACnD;AAID,8BAAsB,aAAc,SAAQ,OAAO;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+C;IAEtE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA8C;IAEpE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8C;IAErE,SAAS,CAAC,aAAa,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAE3C,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAErC,OAAO,CAAC,OAAO,CAAqB;IAEpC,OAAO,CAAC,iBAAiB,CAA8B;IAEvD,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAkB;IAEpC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAkB;IAEpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;IAEhD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwF;IAE9G,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsF;IAE5G,SAAS,CAAC,QAAQ;IAyBlB,SAAS,CAAC,qBAAqB,IAAI,gBAAgB,EAAE;IAarD,gBAAgB,CAAC,IAAI,EAAE,MAAM;IAiB7B,gBAAgB;IAqBhB,OAAO,CAAC,mBAAmB;YAyCb,eAAe;IAK7B,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAE1E,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAExG,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAE/D,OAAO,CAAC,WAAW;IA8EnB,OAAO,CAAC,SAAS;IAuBjB,OAAO,CAAC,WAAW;IA6BnB,OAAO,CAAC,eAAe;IA6GvB,SAAS,CAAC,qBAAqB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM;IAI7D,SAAS,CAAC,QAAQ,CAAC,gBAAgB,IAAI,MAAM;IAE7C,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;CAC7C;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,oBAAoB,EAAE,CAAC;CAC9B"} \ No newline at end of file diff --git a/dist/views/ACoExpression.js b/dist/views/ACoExpression.js index 39f37bd..e50ad9f 100644 --- a/dist/views/ACoExpression.js +++ b/dist/views/ACoExpression.js @@ -1,11 +1,14 @@ -import { ResolveUtils } from 'tdp_core'; +/** + * Created by Holger Stitz on 12.08.2016. + */ +import { IDTypeManager } from 'tdp_core'; import { FormElementType } from 'tdp_core'; import { ErrorAlertHandler } from 'tdp_core'; import * as d3 from 'd3'; -import { SelectionUtils, SelectOperation } from 'phovea_core'; +import { SelectionUtils, SelectOperation } from 'tdp_core'; import { AD3View } from 'tdp_core'; -import { ViewUtils } from './ViewUtils'; import { jStat } from 'jstat'; +import { ViewUtils } from './ViewUtils'; const FORM_ID_REFERENCE_GENE = 'referenceGene'; /** * Filter expression values with 0, because log scale cannot handle log(0) @@ -29,16 +32,14 @@ export class ACoExpression extends AD3View { this.x = d3.scale.log(); this.y = d3.scale.log(); this.color = ViewUtils.colorScale(); - this.xAxis = d3.svg.axis().orient('bottom').scale(this.x).tickFormat(this.x.tickFormat(2, '.1f')); //.tickFormat((d) => d.toFixed(1)); - this.yAxis = d3.svg.axis().orient('left').scale(this.y).tickFormat(this.y.tickFormat(2, '.1f')); //.tickFormat((d) => d.toFixed(1)); + this.xAxis = d3.svg.axis().orient('bottom').scale(this.x).tickFormat(this.x.tickFormat(2, '.1f')); // .tickFormat((d) => d.toFixed(1)); + this.yAxis = d3.svg.axis().orient('left').scale(this.y).tickFormat(this.y.tickFormat(2, '.1f')); // .tickFormat((d) => d.toFixed(1)); } initImpl() { super.initImpl(); this.$node.classed('coExpression', true); this.$node.classed('multiple', true); - this.$errorMessage = this.$node.append('p') - .classed('nodata', true) - .attr('hidden', true); + this.$errorMessage = this.$node.append('p').classed('nodata', true).attr('hidden', true); this.$legend = this.$node.append('div'); // update the refGene select first, then update ref expression data and as last the charts return this.updateRefGeneSelect(this.selection) @@ -47,10 +48,9 @@ export class ACoExpression extends AD3View { if (refGene) { return this.loadRefGeneData(refGene); } - else { - return null; - } - }).then((expressions) => { + return null; + }) + .then((expressions) => { this.refGeneExpression = expressions; this.updateChart(this.refGene, expressions, true); }); @@ -63,8 +63,8 @@ export class ACoExpression extends AD3View { id: FORM_ID_REFERENCE_GENE, options: { optionsData: [], - } - } + }, + }, ]; } parameterChanged(name) { @@ -88,8 +88,7 @@ export class ACoExpression extends AD3View { super.selectionChanged(); // update the refGene select first, then update the charts const bak = this.refGene; - this.updateRefGeneSelect(this.selection) - .then((refGene) => { + this.updateRefGeneSelect(this.selection).then((refGene) => { this.refGene = refGene; const refChanged = bak === null || refGene === null || bak.value !== refGene.value; if (refChanged) { @@ -107,13 +106,11 @@ export class ACoExpression extends AD3View { }); } updateRefGeneSelect(selection) { - return this.resolveSelection() - .then((genesEnsembl) => { - //console.log('Ensembl', genesEnsembl); + return this.resolveSelection().then((genesEnsembl) => { + // console.log('Ensembl', genesEnsembl); const promise = this.loadGeneList(genesEnsembl); // on error - promise.catch(ErrorAlertHandler.getInstance().errorAlert) - .catch((error) => { + promise.catch(ErrorAlertHandler.getInstance().errorAlert).catch((error) => { console.error(error); this.setBusy(false); }); @@ -121,13 +118,13 @@ export class ACoExpression extends AD3View { return promise.then((input) => { const data = input.map((d) => { return { - //use EnsemblID if symbol is empty - value: (d.symbol) ? d.symbol : d.id, - name: (d.symbol && d.symbol !== d.id) ? `${d.symbol} (${d.id})` : d.id, - data: d + // use EnsemblID if symbol is empty + value: d.symbol ? d.symbol : d.id, + name: d.symbol && d.symbol !== d.id ? `${d.symbol} (${d.id})` : d.id, + data: d, }; }); - //console.log('gene symbols', data); + // console.log('gene symbols', data); const refGeneSelect = this.getParameterElement(FORM_ID_REFERENCE_GENE); // backup entry and restore the selectedIndex by value afterwards again, // because the position of the selected element might change @@ -146,9 +143,10 @@ export class ACoExpression extends AD3View { return filterZeroValues(rows); } updateChart(refGene, refGeneExpression, updateAll = false) { + // eslint-disable-next-line @typescript-eslint/no-this-alias const that = this; - const ids = this.selection.range.dim(0).asList(); - const idtype = this.selection.idtype; + const { ids } = this.selection; + const { idtype } = this.selection; const isEmpty = refGene == null || ids.length < 2; const noData = refGeneExpression == null || refGeneExpression.length === 0; if (isEmpty) { @@ -166,30 +164,27 @@ export class ACoExpression extends AD3View { return; } const data = ids - .filter((id) => id !== refGene.data._id) // skip refGene, because it's already loaded + .filter((id) => id !== refGene.data.id) // skip refGene, because it's already loaded .map((id) => { return { id, geneName: '', rows: [] }; }); // show/hide message and loading indicator if two less genes are selected - this.$errorMessage.attr('hidden', (data.length > 0)); + this.$errorMessage.attr('hidden', data.length > 0); this.setBusy(data.length > 0); const $plots = this.$node.selectAll('div.plots').data(data, (d) => d.id.toString()); const $plotsEnter = $plots.enter().append('div').classed('plots', true); // decide whether to load data for newly added items // or to reload the data for all items (e.g. due to parameter change) - const enterOrUpdateAll = (updateAll) ? $plots : $plotsEnter; + const enterOrUpdateAll = updateAll ? $plots : $plotsEnter; enterOrUpdateAll.each(function (d) { const $id = d3.select(this); - const promise = ResolveUtils.resolveId(idtype, d.id, that.idType) - .then((name) => { - return Promise.all([ - that.loadData(name), - that.loadFirstName(name) - ]); + const promise = IDTypeManager.getInstance() + .mapNameToFirstName(idtype, [d.id], that.idType) + .then(([name]) => { + return Promise.all([that.loadData(name), that.loadFirstName(name)]); }); // on error - promise.catch(ErrorAlertHandler.getInstance().errorAlert) - .catch((error) => { + promise.catch(ErrorAlertHandler.getInstance().errorAlert).catch((error) => { console.error(error); that.setBusy(false); }); @@ -198,14 +193,16 @@ export class ACoExpression extends AD3View { // use EnsemblID if symbol is empty d.rows = filterZeroValues(input[0]); d.geneName = input[1]; - //console.log('loaded data for', d.geneName); + // console.log('loaded data for', d.geneName); that.initChart($id); that.resizeChart($id); that.updateChartData(refGene.data, refGeneExpression, d, $id); that.setBusy(false); }); }); - $plots.exit().remove() + $plots + .exit() + .remove() .each(function (d) { that.setBusy(false); }); @@ -215,64 +212,49 @@ export class ACoExpression extends AD3View { if ($parent.select('svg').size() > 0) { return; } - const svg = $parent.append('svg') - .append('g') - .attr('transform', 'translate(' + this.margin.left + ',' + this.margin.top + ')'); - svg.append('g') - .attr('class', 'title') - .attr('transform', 'translate(0,' + this.height + ')'); - svg.append('text') - .attr('class', 'title') - .style('text-anchor', 'middle'); - svg.append('g') - .attr('class', 'x axis') - .attr('transform', 'translate(0,' + this.height + ')'); - svg.append('text') - .attr('class', 'x label') - .style('text-anchor', 'middle') - .text('Expression'); - svg.append('g') - .attr('class', 'y axis'); - svg.append('text') - .attr('class', 'y label') - .attr('transform', 'rotate(-90)') - .attr('dy', '1em') - .style('text-anchor', 'middle') - .text('Expression'); - $parent.append('div').classed('statistics', true) - .append('div') - .attr('class', 'spearmancoeff'); + const svg = $parent.append('svg').append('g').attr('transform', `translate(${this.margin.left},${this.margin.top})`); + svg.append('g').attr('class', 'title').attr('transform', `translate(0,${this.height})`); + svg.append('text').attr('class', 'title').style('text-anchor', 'middle'); + svg.append('g').attr('class', 'x axis').attr('transform', `translate(0,${this.height})`); + svg.append('text').attr('class', 'x label').style('text-anchor', 'middle').text('Expression'); + svg.append('g').attr('class', 'y axis'); + svg.append('text').attr('class', 'y label').attr('transform', 'rotate(-90)').attr('dy', '1em').style('text-anchor', 'middle').text('Expression'); + $parent.append('div').classed('statistics', true).append('div').attr('class', 'spearmancoeff'); } resizeChart($parent) { this.x.range([0, this.width]); this.y.range([this.height, 0]); - const svg = $parent.select('svg') + const svg = $parent + .select('svg') .attr('width', this.width + this.margin.left + this.margin.right) .attr('height', this.height + this.margin.top + this.margin.bottom); - svg.select('text.title').attr('transform', 'translate(' + (this.width / 2) + ' ,' + -0.25 * this.margin.top + ')'); + svg.select('text.title').attr('transform', `translate(${this.width / 2} ,${-0.25 * this.margin.top})`); svg.select('g.x.axis').call(this.xAxis); svg.select('g.y.axis').call(this.yAxis); - svg.select('text.x.label').attr('transform', 'translate(' + (this.width / 2) + ' ,' + (this.height + 0.75 * this.margin.bottom) + ')'); - svg.select('text.y.label').attr('y', 0 - this.margin.left).attr('x', 0 - (this.height / 2)); + svg.select('text.x.label').attr('transform', `translate(${this.width / 2} ,${this.height + 0.75 * this.margin.bottom})`); + svg + .select('text.y.label') + .attr('y', 0 - this.margin.left) + .attr('x', 0 - this.height / 2); // shift also the points on resizing // causes the d3 error: ` attribute cx: Expected length, "NaN".` - /*svg.selectAll('.mark') + /* svg.selectAll('.mark') .transition().attr({ cx : (d) => this.x(d.expression), cy : (d) => this.y(d.expression), - });*/ + }); */ } updateChartData(refGene, refGeneExpression, data, $parent) { - const geneName = data.geneName; + const { geneName } = data; // hide small multiple co-expression plot because it would just project the ref gene on its own if (!refGene || refGene.id === geneName) { $parent.classed('hidden', true); return; } - const rows = data.rows; + const { rows } = data; const hasData = rows != null && rows.length > 0 && refGeneExpression != null && refGeneExpression.length > 0; const $g = $parent.select('svg g'); - $g.select('text.title').text(hasData ? geneName : 'No data for ' + geneName); + $g.select('text.title').text(hasData ? geneName : `No data for ${geneName}`); if (!hasData) { $g.selectAll('.mark').remove(); return; @@ -282,22 +264,22 @@ export class ACoExpression extends AD3View { ViewUtils.integrateColors(this.color, rows.map((d) => d.color)); ViewUtils.legend(this.$legend.node(), this.color); const attribute = this.getAttributeName(); - $g.select('text.x.label').text(attribute + ' of ' + refGene.symbol); - $g.select('text.y.label').text(attribute + ' of ' + geneName); + $g.select('text.x.label').text(`${attribute} of ${refGene.symbol}`); + $g.select('text.y.label').text(`${attribute} of ${geneName}`); // get smaller and larger array to build intersection between both - const largerArray = (refGeneExpression.length <= rows.length) ? rows : refGeneExpression; - const smallerArray = (refGeneExpression.length <= rows.length) ? refGeneExpression : rows; + const largerArray = refGeneExpression.length <= rows.length ? rows : refGeneExpression; + const smallerArray = refGeneExpression.length <= rows.length ? refGeneExpression : rows; const firstIsReference = refGeneExpression.length <= rows.length; // build hashmap for faster access const hash = d3.map(largerArray, (d) => d.samplename); const data2 = smallerArray.reduce((result, d) => { if (hash.has(d.samplename)) { - result.push({ expr1: d.expression, expr2: hash.get(d.samplename).expression, title: d.samplename, color: d.color, _id: d._id }); + result.push({ expr1: d.expression, expr2: hash.get(d.samplename).expression, title: d.samplename, color: d.color, id: d.id }); } return result; }, []); // sort missing colors to the front - data2.sort((a, b) => a.color === b.color ? 0 : (a.color === null ? -1 : (b.color === null ? 1 : 0))); + data2.sort((a, b) => (a.color === b.color ? 0 : a.color === null ? -1 : b.color === null ? 1 : 0)); // statistics { const formatter = d3.format('.4f'); @@ -307,29 +289,37 @@ export class ACoExpression extends AD3View { $parent.select('div.statistics .spearmancoeff').text(spearmancoeffTitle + formatter(spearmancoeff)); } const marks = $g.selectAll('.mark').data(data2); - marks.enter().append('circle') + marks + .enter() + .append('circle') .classed('mark', true) .attr('r', 2) .on('click', (d) => { - const target = d3.event.target; + const { target } = d3.event; const selectOperation = SelectionUtils.toSelectOperation(d3.event); const oldSelection = this.getItemSelection(); - const id = d._id; - const newSelection = SelectionUtils.integrateSelection(oldSelection.range, [id], selectOperation); + const { id } = d; + const newSelection = SelectionUtils.integrateSelection(oldSelection.ids, [id], selectOperation); if (selectOperation === SelectOperation.SET) { d3.selectAll('circle.mark.clicked').classed('clicked', false); } d3.select(target).classed('clicked', selectOperation !== SelectOperation.REMOVE); this.select(newSelection); - }).append('title'); - marks.attr('data-id', (d) => d._id); + }) + .append('title'); + marks.attr('data-id', (d) => d.id); marks.attr('data-color', (d) => String(d.color)); marks.classed('disabled', false); // show all and reset filtering - marks.select('title').text((d) => `${d.title} (${refGene.symbol}: ${firstIsReference ? d.expr1 : d.expr2}, ${geneName}: ${firstIsReference ? d.expr2 : d.expr1}, color: ${d.color})`); - marks.transition().attr({ + marks + .select('title') + .text((d) => `${d.title} (${refGene.symbol}: ${firstIsReference ? d.expr1 : d.expr2}, ${geneName}: ${firstIsReference ? d.expr2 : d.expr1}, color: ${d.color})`); + marks + .transition() + .attr({ cx: (d) => this.x(firstIsReference ? d.expr1 : d.expr2), - cy: (d) => this.y(firstIsReference ? d.expr2 : d.expr1) - }).style('fill', (d) => d.color ? this.color(d.color) : null); + cy: (d) => this.y(firstIsReference ? d.expr2 : d.expr1), + }) + .style('fill', (d) => (d.color ? this.color(d.color) : null)); marks.exit().remove(); } getNoDataErrorMessage(refGene) { diff --git a/dist/views/ACoExpression.js.map b/dist/views/ACoExpression.js.map index b4ab508..1a292c6 100644 --- a/dist/views/ACoExpression.js.map +++ b/dist/views/ACoExpression.js.map @@ -1 +1 @@ -{"version":3,"file":"ACoExpression.js","sourceRoot":"","sources":["../../src/views/ACoExpression.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,YAAY,EAAC,MAAM,UAAU,CAAC;AACtC,OAAO,EAAC,eAAe,EAAwC,MAAM,UAAU,CAAC;AAChF,OAAO,EAAC,iBAAiB,EAAC,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,EAAC,cAAc,EAAE,eAAe,EAAC,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAC,OAAO,EAAC,MAAM,UAAU,CAAC;AACjC,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,EAAC,KAAK,EAAC,MAAM,OAAO,CAAC;AAE5B,MAAM,sBAAsB,GAAG,eAAe,CAAC;AAE/C;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,IAA4B;IACpD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC;IACnF,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,cAAc,CAAC,CAAC;IAClE,OAAO,KAAK,CAAC;AACf,CAAC;AAMD,MAAM,kBAAkB,GAAG,wBAAwB,CAAC;AAEpD,MAAM,OAAgB,aAAc,SAAQ,OAAO;IAAnD;;QACmB,WAAM,GAAG,EAAC,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAC,CAAC;QACnD,UAAK,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QACnD,WAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAK7D,YAAO,GAAgB,IAAI,CAAC;QAC5B,sBAAiB,GAA2B,EAAE,CAAC;QAEtC,MAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACnB,MAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACnB,UAAK,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC;QAC/B,UAAK,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA,mCAAmC;QAChI,UAAK,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA,mCAAmC;IAkYjJ,CAAC;IAhYW,QAAQ;QAChB,KAAK,CAAC,QAAQ,EAAE,CAAC;QAEjB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAErC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;aACxC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC;aACvB,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAExB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAExC,0FAA0F;QAC1F,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC;aAC5C,IAAI,CAAC,CAAC,OAAoB,EAAE,EAAE;YAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,IAAI,OAAO,EAAE;gBACX,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;aACtC;iBAAM;gBACL,OAAO,IAAI,CAAC;aACb;QACH,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE;YACtB,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC;YACrC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACP,CAAC;IAES,qBAAqB;QAC7B,OAAO;YACL;gBACE,IAAI,EAAE,eAAe,CAAC,MAAM;gBAC5B,KAAK,EAAE,gBAAgB;gBACvB,EAAE,EAAE,sBAAsB;gBAC1B,OAAO,EAAE;oBACP,WAAW,EAAE,EAAE;iBAChB;aACF;SACF,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,IAAY;QAC3B,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe;QACtC,IAAI,IAAI,KAAK,sBAAsB,EAAE;YACnC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,CAAC,KAAK,CAAC;SACvE;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;SACpC;aAAM;YACL,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE;gBACtD,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC;gBACrC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,gBAAgB;QACd,KAAK,CAAC,gBAAgB,EAAE,CAAC;QACzB,0DAA0D;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;QACzB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC;aACrC,IAAI,CAAC,CAAC,OAAoB,EAAE,EAAE;YAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,MAAM,UAAU,GAAG,GAAG,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,IAAI,GAAG,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC;YACnF,IAAI,UAAU,EAAE;gBACd,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;gBAC9B,IAAI,OAAO,EAAE;oBACX,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE;wBACjD,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC;wBACrC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;oBAC1D,CAAC,CAAC,CAAC;iBACJ;aACF;iBAAM;gBACL,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;aAC/D;QACH,CAAC,CAAC,CAAC;IACP,CAAC;IAGO,mBAAmB,CAAC,SAAqB;QAC/C,OAAO,IAAI,CAAC,gBAAgB,EAAE;aAC3B,IAAI,CAAC,CAAC,YAAY,EAAwB,EAAE;YAC3C,uCAAuC;YAEvC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YAEhD,WAAW;YACX,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC;iBACtD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACrB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;YAEL,aAAa;YACb,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC5B,MAAM,IAAI,GAAwB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBAChD,OAAO;wBACL,kCAAkC;wBAClC,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;wBACnC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;wBACtE,IAAI,EAAE,CAAC;qBACR,CAAC;gBACJ,CAAC,CAAC,CAAC;gBACH,oCAAoC;gBAEpC,MAAM,aAAa,GAAuB,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,CAAC;gBAE3F,wEAAwE;gBACxE,4DAA4D;gBAC5D,MAAM,GAAG,GAAsB,aAAa,CAAC,KAAK,CAAC;gBACnD,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;gBAEzC,IAAI,GAAG,KAAK,IAAI,EAAE;oBAChB,aAAa,CAAC,KAAK,GAAG,GAAG,CAAC;iBAC3B;gBAED,qBAAqB;gBACrB,OAAO,aAAa,CAAC,KAAK,CAAC;YAC7B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAGO,KAAK,CAAC,eAAe,CAAC,OAAoB;QAEhD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClD,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IASO,WAAW,CAAC,OAAoB,EAAE,iBAAyC,EAAE,SAAS,GAAG,KAAK;QACpG,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QAErC,MAAM,OAAO,GAAG,OAAO,IAAI,IAAI,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,iBAAiB,IAAI,IAAI,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,CAAC;QAE3E,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC3E,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC;YAC3C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;YAC/B,SAAS,CAAC,MAAM,CAAc,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/D,OAAO;SACR;QAED,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACnF,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC;YAC3C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;YAC/B,SAAS,CAAC,MAAM,CAAc,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/D,OAAO;SACR;QAED,MAAM,IAAI,GAAwB,GAAG;aAClC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,4CAA4C;aACpF,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;YACV,OAAO,EAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEL,yEAAyE;QACzE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAE9B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpF,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAExE,oDAAoD;QACpD,qEAAqE;QACrE,MAAM,gBAAgB,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;QAE5D,gBAAgB,CAAC,IAAI,CAAC,UAA6B,CAAoB;YACrE,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC5B,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC;iBAC9D,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBACb,OAAO,OAAO,CAAC,GAAG,CAAC;oBACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACnB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;iBACzB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACL,WAAW;YACX,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC;iBACtD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACrB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;YACL,aAAa;YACb,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;gBACrB,mCAAmC;gBACnC,CAAC,CAAC,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAEtB,6CAA6C;gBAE7C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACpB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBACtB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,iBAAiB,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;gBAE9D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE;aACnB,IAAI,CAAC,UAAU,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,SAAS,CAAC,OAA0B;QAC1C,iDAAiD;QACjD,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;YACpC,OAAO;SACR;QAED,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9B,MAAM,CAAC,GAAG,CAAC;aACX,IAAI,CAAC,WAAW,EAAE,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;QAEpF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;aACZ,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;aACtB,IAAI,CAAC,WAAW,EAAE,cAAc,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;QAEzD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;aACf,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;aACtB,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAElC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;aACZ,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;aACvB,IAAI,CAAC,WAAW,EAAE,cAAc,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;QAEzD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;aACf,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;aACxB,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC;aAC9B,IAAI,CAAC,YAAY,CAAC,CAAC;QAEtB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;aACZ,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAE3B,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;aACf,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;aACxB,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC;aAChC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;aACjB,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC;aAC9B,IAAI,CAAC,YAAY,CAAC,CAAC;QAEtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC;aAC9C,MAAM,CAAC,KAAK,CAAC;aACb,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IACpC,CAAC;IAEO,WAAW,CAAC,OAAwC;QAC1D,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAE/B,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9B,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;aAChE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEtE,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;QAEnH,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAExC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;QACvI,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAE5F,oCAAoC;QACpC,wEAAwE;QACxE;;;;eAIO;IACT,CAAC;IAEO,eAAe,CAAC,OAAqC,EAAE,iBAAyC,EAAE,IAAuB,EAAE,OAAwC;QACzK,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE/B,+FAA+F;QAC/F,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,EAAE,KAAK,QAAQ,EAAE;YACvC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAChC,OAAO;SACR;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,MAAM,OAAO,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,iBAAiB,IAAI,IAAI,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;QAE7G,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEnC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,GAAG,QAAQ,CAAC,CAAC;QAG7E,IAAI,CAAC,OAAO,EAAE;YACZ,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;YAC/B,OAAO;SACR;QAED,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/E,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClE,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAChE,SAAS,CAAC,MAAM,CAAc,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAG/D,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1C,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QACpE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC,CAAC;QAG9D,kEAAkE;QAClE,MAAM,WAAW,GAA2B,CAAC,iBAAiB,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC;QACjH,MAAM,YAAY,GAA2B,CAAC,iBAAiB,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC;QAElH,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;QAEjE,kCAAkC;QAClC,MAAM,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAEtD,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC9C,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE;gBAC1B,MAAM,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC;aAC/H;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,EAA+E,EAAE,CAAC,CAAC;QAEpF,mCAAmC;QACnC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAErG,aAAa;QACb;YACE,MAAM,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACrH,OAAO,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;SACrG;QAED,MAAM,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEhD,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;aAC3B,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;aACrB,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;aACZ,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACjB,MAAM,MAAM,GAAwB,EAAE,CAAC,KAAM,CAAC,MAAM,CAAC;YAErD,MAAM,eAAe,GAAoB,cAAc,CAAC,iBAAiB,CAAa,EAAE,CAAC,KAAK,CAAC,CAAC;YAChG,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC7C,MAAM,EAAE,GAAW,CAAC,CAAC,GAAG,CAAC;YACzB,MAAM,YAAY,GAAG,cAAc,CAAC,kBAAkB,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC;YAElG,IAAI,eAAe,KAAK,eAAe,CAAC,GAAG,EAAE;gBAC3C,EAAE,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;aAC/D;YACD,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,KAAK,eAAe,CAAC,MAAM,CAAC,CAAC;YACjF,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAGrB,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACjD,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,+BAA+B;QACjE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,MAAM,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QACtL,KAAK,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC;YACtB,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACvD,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;SACxD,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAE9D,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;IACxB,CAAC;IAES,qBAAqB,CAAC,OAAoB;QAClD,OAAO,2CAA2C,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC;IAC1G,CAAC;CAMF"} \ No newline at end of file +{"version":3,"file":"ACoExpression.js","sourceRoot":"","sources":["../../src/views/ACoExpression.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/views/ACommonList.d.ts b/dist/views/ACommonList.d.ts index bfb562f..5b36918 100644 --- a/dist/views/ACommonList.d.ts +++ b/dist/views/ACommonList.d.ts @@ -1,9 +1,7 @@ /** * Created by sam on 06.03.2017. */ -import { AStartList, IAStartListOptions } from 'tdp_core'; -import { ISelection, IViewContext } from 'tdp_core'; -import { IParams } from 'tdp_core'; +import { AStartList, IAStartListOptions, ISelection, IViewContext, IParams } from 'tdp_core'; export interface ICommonDBConfig { idType: string; name: string; @@ -29,3 +27,4 @@ export declare abstract class ACommonList extends AStartList { protected isValidFilter(key: string): boolean; } export {}; +//# sourceMappingURL=ACommonList.d.ts.map \ No newline at end of file diff --git a/dist/views/ACommonList.d.ts.map b/dist/views/ACommonList.d.ts.map new file mode 100644 index 0000000..19ef5ed --- /dev/null +++ b/dist/views/ACommonList.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"ACommonList.d.ts","sourceRoot":"","sources":["../../src/views/ACommonList.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,EAAiB,OAAO,EAAE,MAAM,UAAU,CAAC;AAG5G,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,UAAU,aAAa;IACrB,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,8BAAsB,WAAY,SAAQ,UAAU;IAOhD,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,eAAe;IANhD,OAAO,CAAC,MAAM,CAAgB;gBAG5B,OAAO,EAAE,YAAY,EACrB,SAAS,EAAE,UAAU,EACrB,MAAM,EAAE,WAAW,EACA,UAAU,EAAE,eAAe,EAC9C,OAAO,EAAE,OAAO,CAAC,mBAAmB,CAAC;IAqBvC,SAAS,CAAC,cAAc;IAIxB,SAAS,CAAC,WAAW,IAAI,OAAO;IAgBhC,SAAS,CAAC,QAAQ;IAIlB,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM;CAGpC"} \ No newline at end of file diff --git a/dist/views/ACommonList.js b/dist/views/ACommonList.js index bb85ce8..e17f2e6 100644 --- a/dist/views/ACommonList.js +++ b/dist/views/ACommonList.js @@ -1,23 +1,23 @@ /** * Created by sam on 06.03.2017. */ -import { AStartList } from 'tdp_core'; -import { RestBaseUtils } from 'tdp_core'; +import { AStartList, RestBaseUtils } from 'tdp_core'; import { SpeciesUtils, Species } from '../common/common'; export class ACommonList extends AStartList { constructor(context, selection, parent, dataSource, options) { - super(context, selection, parent, Object.assign({ + super(context, selection, parent, { additionalScoreParameter: dataSource, itemName: dataSource.name, itemIDType: dataSource.idType, subType: { key: Species.SPECIES_SESSION_KEY, - value: SpeciesUtils.getSelectedSpecies() + value: SpeciesUtils.getSelectedSpecies(), }, panelAddColumnBtnOptions: { - btnClass: 'btn-primary' - } - }, options)); + btnClass: 'btn-primary', + }, + ...options, + }); this.dataSource = dataSource; if (!this.namedSet && options) { this.search = options.search; @@ -28,9 +28,9 @@ export class ACommonList extends AStartList { } buildFilter() { const filter = { - [Species.SPECIES_SESSION_KEY]: SpeciesUtils.getSelectedSpecies() + [Species.SPECIES_SESSION_KEY]: SpeciesUtils.getSelectedSpecies(), }; - Object.assign(filter, this.buildNamedSetFilters(`namedset4${(this.dataSource.namedSetEntityName || this.dataSource.entityName)}`, (key) => this.isValidFilter(key))); + Object.assign(filter, this.buildNamedSetFilters(`namedset4${this.dataSource.namedSetEntityName || this.dataSource.entityName}`, (key) => this.isValidFilter(key))); if (this.search) { filter[this.dataSource.entityName] = this.search.ids; } diff --git a/dist/views/ACommonList.js.map b/dist/views/ACommonList.js.map index 0234c2b..6591677 100644 --- a/dist/views/ACommonList.js.map +++ b/dist/views/ACommonList.js.map @@ -1 +1 @@ -{"version":3,"file":"ACommonList.js","sourceRoot":"","sources":["../../src/views/ACommonList.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAC,UAAU,EAAqB,MAAM,UAAU,CAAC;AAExD,OAAO,EAAC,aAAa,EAAU,MAAM,UAAU,CAAC;AAChD,OAAO,EAAC,YAAY,EAAE,OAAO,EAAC,MAAM,kBAAkB,CAAC;AAoBvD,MAAM,OAAgB,WAAY,SAAQ,UAAU;IAGlD,YAAY,OAAoB,EAAE,SAAqB,EAAE,MAAkB,EAAqB,UAA2B,EAAE,OAAqC;QAChK,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;YAC9C,wBAAwB,EAAE,UAAU;YACpC,QAAQ,EAAE,UAAU,CAAC,IAAI;YACzB,UAAU,EAAE,UAAU,CAAC,MAAM;YAC7B,OAAO,EAAE;gBACP,GAAG,EAAE,OAAO,CAAC,mBAAmB;gBAChC,KAAK,EAAE,YAAY,CAAC,kBAAkB,EAAE;aACzC;YACD,wBAAwB,EAAE;gBACxB,QAAQ,EAAE,aAAa;aACxB;SACF,EAAE,OAAO,CAAC,CAAC,CAAC;QAZiF,eAAU,GAAV,UAAU,CAAiB;QAczH,IAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,EAAE;YAC5B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;SAC9B;IACH,CAAC;IAES,cAAc;QACtB,OAAO,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC5E,CAAC;IAES,WAAW;QACnB,MAAM,MAAM,GAAY;YACtB,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,YAAY,CAAC,kBAAkB,EAAE;SACjE,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAO,IAAI,CAAC,UAAW,CAAC,kBAAkB,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC5K,IAAG,IAAI,CAAC,MAAM,EAAE;YACd,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;SACtD;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAES,QAAQ;QAChB,OAAO,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5G,CAAC;IAES,aAAa,CAAC,GAAW;QACjC,OAAO,GAAG,KAAK,EAAE,CAAC;IACpB,CAAC;CACF"} \ No newline at end of file +{"version":3,"file":"ACommonList.js","sourceRoot":"","sources":["../../src/views/ACommonList.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAgD,aAAa,EAAW,MAAM,UAAU,CAAC;AAC5G,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAoBzD,MAAM,OAAgB,WAAY,SAAQ,UAAU;IAGlD,YACE,OAAqB,EACrB,SAAqB,EACrB,MAAmB,EACA,UAA2B,EAC9C,OAAqC;QAErC,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE;YAChC,wBAAwB,EAAE,UAAU;YACpC,QAAQ,EAAE,UAAU,CAAC,IAAI;YACzB,UAAU,EAAE,UAAU,CAAC,MAAM;YAC7B,OAAO,EAAE;gBACP,GAAG,EAAE,OAAO,CAAC,mBAAmB;gBAChC,KAAK,EAAE,YAAY,CAAC,kBAAkB,EAAE;aACzC;YACD,wBAAwB,EAAE;gBACxB,QAAQ,EAAE,aAAa;aACxB;YACD,GAAG,OAAO;SACX,CAAC,CAAC;QAfgB,eAAU,GAAV,UAAU,CAAiB;QAiB9C,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,EAAE;YAC7B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;SAC9B;IACH,CAAC;IAES,cAAc;QACtB,OAAO,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC5E,CAAC;IAES,WAAW;QACnB,MAAM,MAAM,GAAY;YACtB,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,YAAY,CAAC,kBAAkB,EAAE;SACjE,CAAC;QAEF,MAAM,CAAC,MAAM,CACX,MAAM,EACN,IAAI,CAAC,oBAAoB,CAAC,YAAkB,IAAI,CAAC,UAAW,CAAC,kBAAkB,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CACnJ,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;SACtD;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAES,QAAQ;QAChB,OAAO,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5G,CAAC;IAES,aAAa,CAAC,GAAW;QACjC,OAAO,GAAG,KAAK,EAAE,CAAC;IACpB,CAAC;CACF"} \ No newline at end of file diff --git a/dist/views/AExpressionVsCopyNumber.d.ts b/dist/views/AExpressionVsCopyNumber.d.ts index 1cb4f03..c102a5e 100644 --- a/dist/views/AExpressionVsCopyNumber.d.ts +++ b/dist/views/AExpressionVsCopyNumber.d.ts @@ -1,7 +1,3 @@ -/** - * Created by Holger Stitz on 21.07.2016. - */ -import { Range } from 'phovea_core'; import { IFormElementDesc, AD3View } from 'tdp_core'; export declare abstract class AExpressionVsCopyNumber extends AD3View { private readonly margin; @@ -39,17 +35,18 @@ export declare abstract class AExpressionVsCopyNumber extends AD3View { private initChart; private resizeChart; private updateChartData; - protected abstract select(r: Range): void; + protected abstract select(ids: string[]): void; } export interface ICopyNumberDataFormatRow { samplename: string; expression: number; color?: string; cn: number; - _id: number; + id: string; } export interface ICopyNumberDataFormat { - id: number; + id: string; geneName: string; rows: ICopyNumberDataFormatRow[]; } +//# sourceMappingURL=AExpressionVsCopyNumber.d.ts.map \ No newline at end of file diff --git a/dist/views/AExpressionVsCopyNumber.d.ts.map b/dist/views/AExpressionVsCopyNumber.d.ts.map new file mode 100644 index 0000000..d6cb1c8 --- /dev/null +++ b/dist/views/AExpressionVsCopyNumber.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"AExpressionVsCopyNumber.d.ts","sourceRoot":"","sources":["../../src/views/AExpressionVsCopyNumber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,gBAAgB,EAAmB,OAAO,EAAkD,MAAM,UAAU,CAAC;AAQzI,8BAAsB,uBAAwB,SAAQ,OAAO;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+C;IAEtE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA8C;IAEpE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8C;IAErE,OAAO,CAAC,OAAO,CAAoB;IAEnC,OAAO,CAAC,CAAC,CAAqB;IAE9B,OAAO,CAAC,CAAC,CAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;IAEhD,OAAO,CAAC,KAAK,CAAgD;IAE7D,OAAO,CAAC,KAAK,CAAsF;IAEnG,SAAS,CAAC,QAAQ;IAOlB,SAAS,CAAC,QAAQ,CAAC,mBAAmB,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE,EAAE;IACtF,SAAS,CAAC,QAAQ,CAAC,mBAAmB,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE,EAAE;IAEtF,SAAS,CAAC,qBAAqB,IAAI,gBAAgB,EAAE;IAuBrD,gBAAgB,CAAC,IAAI,EAAE,MAAM;IAM7B,gBAAgB;IAKhB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,YAAY;IAsDpB,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAE9E,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAE/D,OAAO,CAAC,SAAS;IA6BjB,OAAO,CAAC,WAAW;IA6BnB,OAAO,CAAC,eAAe;IAkFvB,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI;CAC/C;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,wBAAwB,EAAE,CAAC;CAClC"} \ No newline at end of file diff --git a/dist/views/AExpressionVsCopyNumber.js b/dist/views/AExpressionVsCopyNumber.js index 27a8946..81019bb 100644 --- a/dist/views/AExpressionVsCopyNumber.js +++ b/dist/views/AExpressionVsCopyNumber.js @@ -1,12 +1,8 @@ -/** - * Created by Holger Stitz on 21.07.2016. - */ -import { FormSubtype } from '../provider/forms'; -import { ErrorAlertHandler, FormElementType, ResolveUtils, AD3View } from 'tdp_core'; +import { ErrorAlertHandler, FormElementType, AD3View, IDTypeManager, SelectionUtils, SelectOperation } from 'tdp_core'; import * as d3 from 'd3'; -import { SelectionUtils, SelectOperation } from 'phovea_core'; -import { ViewUtils } from './ViewUtils'; import { jStat } from 'jstat'; +import { FormSubtype } from '../provider/forms'; +import { ViewUtils } from './ViewUtils'; const spearmancoeffTitle = 'Spearman Coefficient: '; export class AExpressionVsCopyNumber extends AD3View { constructor() { @@ -33,19 +29,19 @@ export class AExpressionVsCopyNumber extends AD3View { label: 'Expression', id: FormSubtype.FORM_EXPRESSION_SUBTYPE_ID, options: { - optionsData: this.getExpressionValues() + optionsData: this.getExpressionValues(), }, - useSession: false + useSession: false, }, { type: FormElementType.SELECT, label: 'Copy Number', id: FormSubtype.FORM_COPYNUMBER_SUBTYPE_ID, options: { - optionsData: this.getCopyNumberValues() + optionsData: this.getCopyNumberValues(), }, - useSession: false - } + useSession: false, + }, ]; } parameterChanged(name) { @@ -69,9 +65,10 @@ export class AExpressionVsCopyNumber extends AD3View { } updateCharts(updateAll = false) { this.setBusy(true); + // eslint-disable-next-line @typescript-eslint/no-this-alias const that = this; - const ids = this.selection.range.dim(0).asList(); - const idtype = this.selection.idtype; + const { ids } = this.selection; + const { idtype } = this.selection; const data = ids.map((id) => { return { id, geneName: '', rows: [] }; }); @@ -79,14 +76,14 @@ export class AExpressionVsCopyNumber extends AD3View { const $idsEnter = $ids.enter().append('div').classed('ids', true); // decide whether to load data for newly added items // or to reload the data for all items (e.g. due to parameter change) - const enterOrUpdateAll = (updateAll) ? $ids : $idsEnter; + const enterOrUpdateAll = updateAll ? $ids : $idsEnter; enterOrUpdateAll.each(function (d) { const $id = d3.select(this); - const promise = ResolveUtils.resolveId(idtype, d.id, that.idType) + const promise = IDTypeManager.getInstance() + .mapOneNameToFirstName(idtype, d.id, that.idType) .then((name) => Promise.all([that.loadData(name), that.loadFirstName(name)])); // on error - promise.catch(ErrorAlertHandler.getInstance().errorAlert) - .catch((error) => { + promise.catch(ErrorAlertHandler.getInstance().errorAlert).catch((error) => { console.error(error); that.setBusy(false); }); @@ -94,14 +91,16 @@ export class AExpressionVsCopyNumber extends AD3View { promise.then((input) => { d.rows = that.filterZeroValues(input[0]); d.geneName = input[1]; - //console.log('loaded data for', d.geneName); + // console.log('loaded data for', d.geneName); that.initChart($id); that.resizeChart($id); that.updateChartData($id); that.setBusy(false); }); }); - $ids.exit().remove() + $ids + .exit() + .remove() .each(function (d) { that.setBusy(false); }); @@ -111,59 +110,50 @@ export class AExpressionVsCopyNumber extends AD3View { if ($parent.select('svg').size() > 0) { return; } - const svg = $parent.append('svg') - .append('g') - .attr('transform', 'translate(' + this.margin.left + ',' + this.margin.top + ')'); - svg.append('g') - .attr('class', 'title') - .attr('transform', 'translate(0,' + this.height + ')'); - svg.append('text') - .attr('class', 'title') - .style('text-anchor', 'middle'); - svg.append('g') - .attr('class', 'x axis') - .attr('transform', 'translate(0,' + this.height + ')'); - svg.append('text') - .attr('class', 'x label') - .style('text-anchor', 'middle') - .text(this.getParameter(FormSubtype.FORM_COPYNUMBER_SUBTYPE_ID).name); - svg.append('g') - .attr('class', 'y axis'); - svg.append('text') + const svg = $parent.append('svg').append('g').attr('transform', `translate(${this.margin.left},${this.margin.top})`); + svg.append('g').attr('class', 'title').attr('transform', `translate(0,${this.height})`); + svg.append('text').attr('class', 'title').style('text-anchor', 'middle'); + svg.append('g').attr('class', 'x axis').attr('transform', `translate(0,${this.height})`); + svg.append('text').attr('class', 'x label').style('text-anchor', 'middle').text(this.getParameter(FormSubtype.FORM_COPYNUMBER_SUBTYPE_ID).name); + svg.append('g').attr('class', 'y axis'); + svg + .append('text') .attr('class', 'y label') .attr('transform', 'rotate(-90)') .attr('dy', '1em') .style('text-anchor', 'middle') .text(this.getParameter(FormSubtype.FORM_EXPRESSION_SUBTYPE_ID).name); - $parent.append('div').classed('statistics', true) - .append('div') - .attr('class', 'spearmancoeff'); + $parent.append('div').classed('statistics', true).append('div').attr('class', 'spearmancoeff'); } resizeChart($parent) { this.x.range([0, this.width]); this.y.range([this.height, 0]); - const svg = $parent.select('svg') + const svg = $parent + .select('svg') .attr('width', this.width + this.margin.left + this.margin.right) .attr('height', this.height + this.margin.top + this.margin.bottom); - svg.select('text.title').attr('transform', 'translate(' + (this.width / 2) + ' ,' + -0.25 * this.margin.top + ')'); + svg.select('text.title').attr('transform', `translate(${this.width / 2} ,${-0.25 * this.margin.top})`); svg.select('g.x.axis').call(this.xAxis); svg.select('g.y.axis').call(this.yAxis); - svg.select('text.x.label').attr('transform', 'translate(' + (this.width / 2) + ' ,' + (this.height + 0.75 * this.margin.bottom) + ')'); - svg.select('text.y.label').attr('y', 0 - this.margin.left).attr('x', 0 - (this.height / 2)); + svg.select('text.x.label').attr('transform', `translate(${this.width / 2} ,${this.height + 0.75 * this.margin.bottom})`); + svg + .select('text.y.label') + .attr('y', 0 - this.margin.left) + .attr('x', 0 - this.height / 2); // shift also the points on resizing // causes the d3 error: ` attribute cx: Expected length, "NaN".` - /*svg.selectAll('.mark') + /* svg.selectAll('.mark') .transition().attr({ cx: (d) => this.x(d.expression), cy: (d) => this.y(d.cn), - });*/ + }); */ } updateChartData($parent) { const data = $parent.datum(); - const geneName = data.geneName; + const { geneName } = data; const rows = data.rows.slice(); // sort missing colors to the front - rows.sort((a, b) => a.color === b.color ? 0 : (a.color === null ? -1 : (b.color === null ? 1 : 0))); + rows.sort((a, b) => (a.color === b.color ? 0 : a.color === null ? -1 : b.color === null ? 1 : 0)); this.x.domain([0, d3.max(rows, (d) => d.cn)]); this.y.domain([1, d3.max(rows, (d) => d.expression)]).clamp(true); ViewUtils.integrateColors(this.color, rows.map((d) => d.color)); @@ -173,7 +163,7 @@ export class AExpressionVsCopyNumber extends AD3View { $g.select('text.y.label').text(this.getParameter(FormSubtype.FORM_EXPRESSION_SUBTYPE_ID).name); $g.select('g.x.axis').call(this.xAxis); $g.select('g.y.axis').call(this.yAxis); - let title = 'No data for ' + geneName; + let title = `No data for ${geneName}`; if (rows[0]) { title = geneName; } @@ -183,29 +173,37 @@ export class AExpressionVsCopyNumber extends AD3View { const spearmancoeff = jStat.jStat.spearmancoeff(rows.map((d) => d.cn), rows.map((d) => d.expression)); $parent.select('div.statistics .spearmancoeff').text(spearmancoeffTitle + formatter(spearmancoeff)); const marks = $g.selectAll('.mark').data(rows); - marks.enter().append('circle') + marks + .enter() + .append('circle') .classed('mark', true) .attr('r', 2) .on('click', (d) => { - const target = d3.event.target; + const { target } = d3.event; const selectOperation = SelectionUtils.toSelectOperation(d3.event); const oldSelection = this.getItemSelection(); - const id = d._id; - const newSelection = SelectionUtils.integrateSelection(oldSelection.range, [id], selectOperation); + const { id } = d; + const newSelection = SelectionUtils.integrateSelection(oldSelection.ids, [id], selectOperation); if (selectOperation === SelectOperation.SET) { d3.selectAll('circle.mark.clicked').classed('clicked', false); } d3.select(target).classed('clicked', selectOperation !== SelectOperation.REMOVE); this.select(newSelection); - }).append('title'); - marks.attr('data-id', (d) => d._id); + }) + .append('title'); + marks.attr('data-id', (d) => d.id); marks.attr('data-color', (d) => String(d.color)); marks.classed('disabled', false); // show all and reset filtering - marks.select('title').text((d) => `${d.samplename} (${this.getParameter(FormSubtype.FORM_COPYNUMBER_SUBTYPE_ID).name}: ${d.cn}, ${this.getParameter(FormSubtype.FORM_EXPRESSION_SUBTYPE_ID).name}: ${d.expression}, color: ${d.color})`); - marks.transition().attr({ + marks + .select('title') + .text((d) => `${d.samplename} (${this.getParameter(FormSubtype.FORM_COPYNUMBER_SUBTYPE_ID).name}: ${d.cn}, ${this.getParameter(FormSubtype.FORM_EXPRESSION_SUBTYPE_ID).name}: ${d.expression}, color: ${d.color})`); + marks + .transition() + .attr({ cx: (d) => this.x(d.cn), cy: (d) => this.y(d.expression), - }).style('fill', (d) => d.color ? this.color(d.color) : null); + }) + .style('fill', (d) => (d.color ? this.color(d.color) : null)); marks.exit().remove(); } } diff --git a/dist/views/AExpressionVsCopyNumber.js.map b/dist/views/AExpressionVsCopyNumber.js.map index 4d0ef2f..105c6df 100644 --- a/dist/views/AExpressionVsCopyNumber.js.map +++ b/dist/views/AExpressionVsCopyNumber.js.map @@ -1 +1 @@ -{"version":3,"file":"AExpressionVsCopyNumber.js","sourceRoot":"","sources":["../../src/views/AExpressionVsCopyNumber.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"AExpressionVsCopyNumber.js","sourceRoot":"","sources":["../../src/views/AExpressionVsCopyNumber.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/views/AOncoPrint.d.ts b/dist/views/AOncoPrint.d.ts index fc1b7b0..4136589 100644 --- a/dist/views/AOncoPrint.d.ts +++ b/dist/views/AOncoPrint.d.ts @@ -1,23 +1,21 @@ /** * Created by Samuel Gratzl on 27.04.2016. */ -import { IDType } from 'phovea_core'; -import { Range } from 'phovea_core'; +import { IDType, AView } from 'tdp_core'; import 'jquery-ui/ui/widgets/sortable'; -import { AView } from 'tdp_core'; export interface ISample { name: string; - id: number; + id: string; } export interface IDataFormatRow { name: string; cn: number; expr: number; aa_mutated: boolean; - sampleId: number; + sampleId: string; } export interface IDataFormat { - id: number; + id: string; geneName: string; ensg: string; alterationFreq: number; @@ -46,8 +44,9 @@ export declare abstract class AOncoPrint extends AView { private isSampleSelected; private selectSample; get itemIDType(): IDType; - protected updateSelectionHighlight(range: Range): void; + protected updateSelectionHighlight(range: string[]): void; protected abstract getSampleIdType(): IDType; private sortCells; private alignData; } +//# sourceMappingURL=AOncoPrint.d.ts.map \ No newline at end of file diff --git a/dist/views/AOncoPrint.d.ts.map b/dist/views/AOncoPrint.d.ts.map new file mode 100644 index 0000000..f8fa149 --- /dev/null +++ b/dist/views/AOncoPrint.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"AOncoPrint.d.ts","sourceRoot":"","sources":["../../src/views/AOncoPrint.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAkD,MAAM,EAAS,KAAK,EAAqB,MAAM,UAAU,CAAC;AAGnH,OAAO,+BAA+B,CAAC;AAEvC,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IAEvB,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9B,IAAI,EAAE,cAAc,EAAE,CAAC;CACxB;AAkID,8BAAsB,UAAW,SAAQ,KAAK;IAC5C,OAAO,CAAC,MAAM,CAAmB;IAEjC,OAAO,CAAC,iBAAiB,CAA4B;IAErD;;;OAGG;IACH,OAAO,CAAC,gBAAgB,CAAS;IAE3B,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC;IAoCjH,SAAS,CAAC,QAAQ;IAQlB,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM;IAMvC,SAAS,CAAC,gBAAgB;IAK1B,OAAO,CAAC,KAAK;IAoCb,SAAS,CAAC,QAAQ,CAAC,cAAc,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IACvD,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAEpE,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAE/D,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,WAAW;IA4GnB,OAAO,CAAC,eAAe;IAsCvB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,YAAY;IAyBpB,IAAI,UAAU,WAEb;IAED,SAAS,CAAC,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE;IAelD,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,MAAM;IAE5C,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,SAAS;CAgBlB"} \ No newline at end of file diff --git a/dist/views/AOncoPrint.js b/dist/views/AOncoPrint.js index 1ffc8b2..b3fd6aa 100644 --- a/dist/views/AOncoPrint.js +++ b/dist/views/AOncoPrint.js @@ -1,22 +1,18 @@ /** * Created by Samuel Gratzl on 27.04.2016. */ -import { Categories } from '../common/Categories'; import { select, format, event as d3event } from 'd3'; -import { SelectionUtils, SelectOperation } from 'phovea_core'; -import { Range } from 'phovea_core'; +import { IDTypeManager, SelectionUtils, SelectOperation, AView, ErrorAlertHandler } from 'tdp_core'; import * as $ from 'jquery'; +import { Categories } from '../common/Categories'; import 'jquery-ui/ui/widgets/sortable'; -import { AView } from 'tdp_core'; -import { ResolveUtils } from 'tdp_core'; -import { ErrorAlertHandler } from 'tdp_core'; function unknownSample(sample, sampleId) { return { name: sample, sampleId, cn: Categories.unknownCopyNumberValue, expr: 0, - aa_mutated: Categories.unknownMutationValue // unknown + aa_mutated: Categories.unknownMutationValue, // unknown }; } function isMissingMutation(v) { @@ -35,32 +31,36 @@ function computeAlterationFrequency(rows) { // reduce and compute both // amplified += 1 if isMutated or isCopyNumberAltered // total += if hasData - const [amplified, total] = rows.reduce(([amplified, total], r) => [amplified + ((isMutated(r) || isCopyNumberAltered(r)) ? 1 : 0), total + (hasData(r) ? 1 : 0)], [0, 0]); - //console.log(amplified, total); - return (total === 0) ? 0 : amplified / total; // handle division by 0 + const [amplified, total] = rows.reduce(([a, t], r) => [a + (isMutated(r) || isCopyNumberAltered(r) ? 1 : 0), t + (hasData(r) ? 1 : 0)], [0, 0]); + // console.log(amplified, total); + return total === 0 ? 0 : amplified / total; // handle division by 0 } -const FIRST_IS_NULL = 1; //null at the end +const FIRST_IS_NULL = 1; // null at the end function compareCNV(a, b) { // order: >0, <0, 0, NaN if (a === b) { return 0; } - if (a === undefined || a === null || isNaN(a)) { + if (a === undefined || a === null || Number.isNaN(a)) { return FIRST_IS_NULL; } - if (b === undefined || b === null || isNaN(b)) { + if (b === undefined || b === null || Number.isNaN(b)) { return -FIRST_IS_NULL; } - if (a > 0) { // b is 0 or < 0 + if (a > 0) { + // b is 0 or < 0 return -1; } - if (b > 0) { // a is 0 or < 0 + if (b > 0) { + // a is 0 or < 0 return 1; } - if (a < 0) { // b is 0 + if (a < 0) { + // b is 0 return -1; } - if (b < 0) { // a is 0 + if (b < 0) { + // a is 0 return 1; } return 0; @@ -81,27 +81,27 @@ function compareMutation(a, b) { function sort(sampleList, rows) { const rowLookups = rows.map((row) => { const r = {}; - row.forEach((d) => r[d.name] = d); + row.forEach((d) => (r[d.name] = d)); return r; }); - //sort such that missing values are in the end - //hierarchy: cn, mut, expression + // sort such that missing values are in the end + // hierarchy: cn, mut, expression function compare(a, b) { for (const row of rowLookups) { const aRow = row[a]; const bRow = row[b]; - { // undefined - if (aRow === bRow) { //e.g. both undefined - continue; - } - if (aRow === undefined || aRow === null) { - return FIRST_IS_NULL; //for a not defined -> bigger - } - if (bRow === undefined || bRow === null) { - return -FIRST_IS_NULL; - } + // undefined + if (aRow === bRow) { + // e.g. both undefined + continue; + } + if (aRow === undefined || aRow === null) { + return FIRST_IS_NULL; // for a not defined -> bigger } - //first condition can be false positive, null vs 'null', so if both are missing don't compare + if (bRow === undefined || bRow === null) { + return -FIRST_IS_NULL; + } + // first condition can be false positive, null vs 'null', so if both are missing don't compare if (aRow.cn !== bRow.cn && !(isMissingCNV(aRow.cn) && isMissingCNV(bRow.cn))) { return compareCNV(aRow.cn, bRow.cn); } @@ -111,7 +111,7 @@ function sort(sampleList, rows) { // ignore not encoded expression value // if (a_row.expr !== b_row.expr) { // return compareExpression(a_row.expr, b_row.expr); - //} + // } } // fallback to the name return a.localeCompare(b); @@ -181,10 +181,7 @@ export class AOncoPrint extends AView { build() { const $node = select(this.node); $node.classed('oncoPrint', true); - this.$table = $node - .append('div').classed('geneTableWrapper', true) - .append('table') - .append('tbody'); + this.$table = $node.append('div').classed('geneTableWrapper', true).append('table').append('tbody'); const $legend = $node.append('div').classed('legend', true); const $cnLegend = $legend.append('ul'); $cnLegend.append('li').classed('title', true).text('Copy Number'); @@ -215,44 +212,42 @@ export class AOncoPrint extends AView { } updateChart(updateAll = false) { this.setBusy(true); - const ids = this.selection.range.dim(0).asList(); - const idtype = this.selection.idtype; + const { ids } = this.selection; + const { idtype } = this.selection; const empty = (id) => ({ id, geneName: '', ensg: '', alterationFreq: 0, rows: [], promise: null }); // merge the old rows with the current selection - const merge = (ids, old) => { + const merge = (i, old) => { if (old.length === 0) { - return ids.map(empty); + return i.map(empty); } const lookup = new Map(); old.forEach((d) => lookup.set(d.id, d)); if (this.manuallyResorted) { - //different strategy if already resorted try to keep the original sorting as good as possible - //keep old + newly added ones - const existing = old.filter((d) => ids.indexOf(d.id) >= 0); - const added = ids.filter((id) => !lookup.has(id)).map((id) => empty(id)); + // different strategy if already resorted try to keep the original sorting as good as possible + // keep old + newly added ones + const existing = old.filter((d) => i.indexOf(d.id) >= 0); + const added = i.filter((id) => !lookup.has(id)).map((id) => empty(id)); return existing.concat(added); } - return ids.map((id) => lookup.get(id) || empty(id)); + return i.map((id) => lookup.get(id) || empty(id)); }; const data = merge(ids, this.$table.selectAll('tr.gene').data()); const $ids = this.$table.selectAll('tr.gene').data(data, (d) => String(d.id)); const $idsEnter = $ids.enter().append('tr').classed('gene', true); // decide whether to load data for newly added items // or to reload the data for all items (e.g. due to parameter change) - const enterOrUpdateAll = (updateAll) ? $ids : $idsEnter; + const enterOrUpdateAll = updateAll ? $ids : $idsEnter; const renderRow = ($id, d) => { - const promise = (d.ensg ? Promise.resolve(d.ensg) : ResolveUtils.resolveId(idtype, d.id, this.idType)) - .then((ensg) => { + const promise = (d.ensg ? Promise.resolve(d.ensg) : IDTypeManager.getInstance().mapOneNameToFirstName(idtype, d.id, this.idType)).then((ensg) => { d.ensg = ensg; return Promise.all([ this.loadRows(ensg), d.geneName || this.loadFirstName(ensg), - this.sampleListPromise + this.sampleListPromise, ]); }); // on error - promise.catch(ErrorAlertHandler.getInstance().errorAlert) - .catch(this.logErrorAndMarkReady.bind(this)); + promise.catch(ErrorAlertHandler.getInstance().errorAlert).catch(this.logErrorAndMarkReady.bind(this)); // on success d.promise = promise.then((input) => { d.rows = input[0]; @@ -266,7 +261,7 @@ export class AOncoPrint extends AView { enterOrUpdateAll.each(function (d) { renderRow(select(this), d); }); - //assume that all data will have a promise + // assume that all data will have a promise // wait for all data and then sort the things Promise.all([this.sampleListPromise].concat(data.map((d) => d.promise))).then((result) => { const samples = result.shift().map((d) => d.name); @@ -277,12 +272,15 @@ export class AOncoPrint extends AView { const sortedSamples = sort(samples, rows.map((r) => r.rows)); const $genes = this.sortCells(sortedSamples); if (!this.manuallyResorted) { - //sort genes=row by frequency + // sort genes=row by frequency $genes.sort(byAlterationFrequency); } }); - $ids.exit().remove().each(() => this.setBusy(false)); - //sortable + $ids + .exit() + .remove() + .each(() => this.setBusy(false)); + // sortable $(this.$table.node()) // jquery .sortable({ handle: 'th.geneLabel', @@ -290,18 +288,18 @@ export class AOncoPrint extends AView { items: '> :not(.nodrag)', update: () => { this.manuallyResorted = true; - //order has changed trigger a resort + // order has changed trigger a resort this.sampleListPromise.then((samples) => { const rows = this.$table.selectAll('tr.gene').data(); const sortedSamples = sort(samples.map((d) => d.name), rows.map((r) => r.rows)); this.sortCells(sortedSamples); }); - } + }, }); } updateChartData(data, $parent, samples) { - //console.log(data.geneName); - let rows = data.rows; + // console.log(data.geneName); + let { rows } = data; rows = this.alignData(rows, samples); // count amplification/deletions and divide by total number of rows data.alterationFreq = computeAlterationFrequency(rows); @@ -310,7 +308,9 @@ export class AOncoPrint extends AView { $th.html((d) => `${format('.0%')(d.alterationFreq)} ${d.geneName} ${d.ensg}`); $th.exit().remove(); const $cells = $parent.selectAll('td.cell').data(rows); - $cells.enter().append('td') + $cells + .enter() + .append('td') .classed('cell', true) .on('click', (row) => { this.selectSample(row.sampleId, SelectionUtils.toSelectOperation(d3event)); @@ -318,7 +318,7 @@ export class AOncoPrint extends AView { .append('div') .classed('mut', true); $cells - .attr('data-title', (d) => d.name) //JSON.stringify(d)) + .attr('data-title', (d) => d.name) // JSON.stringify(d)) .attr('data-id', (d) => d.sampleId) .attr('data-cnv', (d) => String(isMissingCNV(d.cn) ? Categories.unknownCopyNumberValue : d.cn)) .attr('data-mut', (d) => String(isMissingMutation(d.aa_mutated) ? Categories.unknownMutationValue : d.aa_mutated)) @@ -329,52 +329,53 @@ export class AOncoPrint extends AView { } } isSampleSelected(sampleId) { - const { range } = this.getItemSelection(); - return range.dim(0).contains(sampleId); + const { ids } = this.getItemSelection(); + return ids.includes(sampleId); } selectSample(sampleId, op) { - const { range } = this.getItemSelection(); - const current = range.dim(0); + const { ids } = this.getItemSelection(); + const current = ids; let newSelection = null; - const single = Range.list([sampleId]); switch (op) { case SelectOperation.SET: - if (current.contains(sampleId)) { - newSelection = Range.none(); + if (current.includes(sampleId)) { + newSelection = []; } else { - newSelection = single; + newSelection = [sampleId]; } break; case SelectOperation.REMOVE: - newSelection = range.without(single); + newSelection = current.filter((c) => c !== sampleId); break; case SelectOperation.ADD: - newSelection = range.union(single); + newSelection = current.concat([sampleId]); + break; + default: break; } this.updateSelectionHighlight(newSelection); - this.setItemSelection({ range: newSelection, idtype: this.getSampleIdType() }); + this.setItemSelection({ ids: newSelection, idtype: this.getSampleIdType() }); } get itemIDType() { return this.getSampleIdType(); } updateSelectionHighlight(range) { - //use plain version to avoid data binding issues const table = this.$table.node(); - if (range.isAll) { - Array.from(table.querySelectorAll('td.cell')).forEach((c) => c.classList.add('selected')); - return; - } + // TODO:: Figure out how to implement this optimization (just how to check if the range has selected every possible row) + // if (range.isAll) { + // Array.from(table.querySelectorAll('td.cell')).forEach((c) => c.classList.add('selected')); + // return; + // } Array.from(table.querySelectorAll('td.cell')).forEach((c) => c.classList.remove('selected')); - range.dim(0).forEach((sampleId) => { + range.forEach((sampleId) => { Array.from(table.querySelectorAll(`td.cell[data-id="${sampleId}"]`)).forEach((c) => c.classList.add('selected')); }); } sortCells(sortedSamples) { - //name to index + // name to index const lookup = {}; - sortedSamples.forEach((d, i) => lookup[d] = i); + sortedSamples.forEach((d, i) => (lookup[d] = i)); const $genes = this.$table.selectAll('tr.gene'); $genes.selectAll('td.cell').sort((a, b) => { const aIndex = lookup[a.name]; @@ -387,7 +388,7 @@ export class AOncoPrint extends AView { alignData(rows, samples) { // build hash map first for faster access const hash = {}; - rows.forEach((r) => hash[r.name] = r); + rows.forEach((r) => (hash[r.name] = r)); // align items --> fill missing values up to match sample list return samples.map((sample) => { // no data found --> add unknown sample diff --git a/dist/views/AOncoPrint.js.map b/dist/views/AOncoPrint.js.map index 2e886ec..9fba4be 100644 --- a/dist/views/AOncoPrint.js.map +++ b/dist/views/AOncoPrint.js.map @@ -1 +1 @@ -{"version":3,"file":"AOncoPrint.js","sourceRoot":"","sources":["../../src/views/AOncoPrint.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"AOncoPrint.js","sourceRoot":"","sources":["../../src/views/AOncoPrint.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/views/GeneProxyView.d.ts b/dist/views/GeneProxyView.d.ts index 248bea4..15f8dec 100644 --- a/dist/views/GeneProxyView.d.ts +++ b/dist/views/GeneProxyView.d.ts @@ -1,8 +1,7 @@ /** * Created by Holger Stitz on 06.12.2016. */ -import { ProxyView } from 'tdp_core'; -import { IFormSelectOption } from 'tdp_core'; +import { ProxyView, IFormSelectOption } from 'tdp_core'; /** * helper view for proxying an existing external website */ @@ -10,3 +9,4 @@ export declare class GeneProxyView extends ProxyView { protected getSelectionSelectData(ensgs: string[]): Promise; protected updateProxyView(): void; } +//# sourceMappingURL=GeneProxyView.d.ts.map \ No newline at end of file diff --git a/dist/views/GeneProxyView.d.ts.map b/dist/views/GeneProxyView.d.ts.map new file mode 100644 index 0000000..ce2b66c --- /dev/null +++ b/dist/views/GeneProxyView.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"GeneProxyView.d.ts","sourceRoot":"","sources":["../../src/views/GeneProxyView.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAGxD;;GAEG;AACH,qBAAa,aAAc,SAAQ,SAAS;IAC1C,SAAS,CAAC,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAI/E,SAAS,CAAC,eAAe;CAK1B"} \ No newline at end of file diff --git a/dist/views/GeneProxyView.js b/dist/views/GeneProxyView.js index cb5572f..53bceb2 100644 --- a/dist/views/GeneProxyView.js +++ b/dist/views/GeneProxyView.js @@ -11,7 +11,7 @@ export class GeneProxyView extends ProxyView { return SpeciesUtils.createOptions(ensgs, this.selection, this.idType); } updateProxyView() { - const extra = this.options.extra; + const { extra } = this.options; extra.species = SpeciesUtils.getSelectedSpecies(); super.updateProxyView(); } diff --git a/dist/views/GeneProxyView.js.map b/dist/views/GeneProxyView.js.map index 00a8939..c70c084 100644 --- a/dist/views/GeneProxyView.js.map +++ b/dist/views/GeneProxyView.js.map @@ -1 +1 @@ -{"version":3,"file":"GeneProxyView.js","sourceRoot":"","sources":["../../src/views/GeneProxyView.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAC,SAAS,EAAC,MAAM,UAAU,CAAC;AACnC,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAG9C;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,SAAS;IAEhC,sBAAsB,CAAC,KAAe;QAC9C,OAAO,YAAY,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACxE,CAAC;IAES,eAAe;QACvB,MAAM,KAAK,GAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QACtC,KAAK,CAAC,OAAO,GAAG,YAAY,CAAC,kBAAkB,EAAE,CAAC;QAClD,KAAK,CAAC,eAAe,EAAE,CAAC;IAC1B,CAAC;CACF"} \ No newline at end of file +{"version":3,"file":"GeneProxyView.js","sourceRoot":"","sources":["../../src/views/GeneProxyView.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAqB,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,SAAS;IAChC,sBAAsB,CAAC,KAAe;QAC9C,OAAO,YAAY,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACxE,CAAC;IAES,eAAe;QACvB,MAAM,EAAE,KAAK,EAAE,GAAmB,IAAI,CAAC,OAAO,CAAC;QAC/C,KAAK,CAAC,OAAO,GAAG,YAAY,CAAC,kBAAkB,EAAE,CAAC;QAClD,KAAK,CAAC,eAAe,EAAE,CAAC;IAC1B,CAAC;CACF"} \ No newline at end of file diff --git a/dist/views/UniProtProxyView.d.ts b/dist/views/UniProtProxyView.d.ts index b46cd9e..0f29699 100644 --- a/dist/views/UniProtProxyView.d.ts +++ b/dist/views/UniProtProxyView.d.ts @@ -1,8 +1,8 @@ /** * Created by Holger Stitz on 07.12.2016. */ -import { GeneProxyView } from './GeneProxyView'; import { FormElementType } from 'tdp_core'; +import { GeneProxyView } from './GeneProxyView'; /** * helper view for proxying an existing external website */ @@ -25,3 +25,4 @@ export declare class UniProtProxyView extends GeneProxyView { private getUniProtSelectData; protected updateProxyView(): void; } +//# sourceMappingURL=UniProtProxyView.d.ts.map \ No newline at end of file diff --git a/dist/views/UniProtProxyView.d.ts.map b/dist/views/UniProtProxyView.d.ts.map new file mode 100644 index 0000000..ad04583 --- /dev/null +++ b/dist/views/UniProtProxyView.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"UniProtProxyView.d.ts","sourceRoot":"","sources":["../../src/views/UniProtProxyView.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAgD,MAAM,UAAU,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,aAAa;IACjD,MAAM,CAAC,qBAAqB,SAAqB;IAEjD,MAAM,CAAC,QAAQ,CAAC,aAAa,mBAAmB;IAEhD,SAAS,CAAC,QAAQ;IAgBlB,SAAS,CAAC,qBAAqB;;;;;;;;;IAuB/B,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM;IAevC,gBAAgB;IAahB,OAAO,CAAC,mBAAmB;IAyC3B,OAAO,CAAC,oBAAoB;IAQ5B,SAAS,CAAC,eAAe;CAG1B"} \ No newline at end of file diff --git a/dist/views/UniProtProxyView.js b/dist/views/UniProtProxyView.js index 0364026..56a373c 100644 --- a/dist/views/UniProtProxyView.js +++ b/dist/views/UniProtProxyView.js @@ -1,10 +1,8 @@ /** * Created by Holger Stitz on 07.12.2016. */ +import { FormElementType, ProxyView, IDTypeManager } from 'tdp_core'; import { GeneProxyView } from './GeneProxyView'; -import { FormElementType } from 'tdp_core'; -import { ProxyView } from 'tdp_core'; -import { IDTypeManager } from 'phovea_core'; /** * helper view for proxying an existing external website */ @@ -31,7 +29,7 @@ export class UniProtProxyView extends GeneProxyView { options: { optionsData: [], }, - useSession: true + useSession: true, }, { type: FormElementType.SELECT, @@ -40,8 +38,8 @@ export class UniProtProxyView extends GeneProxyView { options: { optionsData: [], }, - useSession: true - } + useSession: true, + }, ]; } parameterChanged(name) { @@ -74,18 +72,14 @@ export class UniProtProxyView extends GeneProxyView { updateUniProtSelect(forceUseLastSelection = false) { const selectedItemSelect = this.getParameterElement(UniProtProxyView.SELECTED_UNIPROT_ITEM); const ensg = this.getParameter(ProxyView.FORM_ID_SELECTED_ITEM).value; - //convert to uid - return this.selection.idtype.map([ensg]).then((ids) => { - // convert to uniprot - return IDTypeManager.getInstance().mapToName(this.selection.idtype, ids, UniProtProxyView.OUTPUT_IDTYPE); - }).then((uniProtIds) => { + return IDTypeManager.getInstance() + .mapOneNameToName(this.selection.idtype, ensg, UniProtProxyView.OUTPUT_IDTYPE) + .then((uniProtIds) => { // use uniProtIds[0] since we passed only one selected _id - if (uniProtIds[0] === null) { + if (uniProtIds === null) { return Promise.reject('Empty list of UniProt IDs'); } - else { - return Promise.all([uniProtIds[0], this.getUniProtSelectData(uniProtIds[0])]); - } + return Promise.all([uniProtIds, this.getUniProtSelectData(uniProtIds)]); }) .catch((reject) => { selectedItemSelect.setVisible(false); diff --git a/dist/views/UniProtProxyView.js.map b/dist/views/UniProtProxyView.js.map index 16c715a..1bdb525 100644 --- a/dist/views/UniProtProxyView.js.map +++ b/dist/views/UniProtProxyView.js.map @@ -1 +1 @@ -{"version":3,"file":"UniProtProxyView.js","sourceRoot":"","sources":["../../src/views/UniProtProxyView.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,eAAe,EAAqB,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAC,SAAS,EAAC,MAAM,UAAU,CAAC;AACnC,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAE1C;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,aAAa;IAKvC,QAAQ;QAChB,KAAK,CAAC,QAAQ,EAAE,CAAC;QAEjB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAEvC,yDAAyD;QACzD,OAAO,IAAI,CAAC,wBAAwB,EAAE;aACnC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;aACtC,KAAK,CAAC,GAAG,EAAE;YACV,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,EAAE;YACT,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;IACP,CAAC;IAES,qBAAqB;QAC7B,OAAO;YACL;gBACE,IAAI,EAAE,eAAe,CAAC,MAAM;gBAC5B,KAAK,EAAE,MAAM;gBACb,EAAE,EAAE,SAAS,CAAC,qBAAqB;gBACnC,OAAO,EAAE;oBACP,WAAW,EAAE,EAAE;iBAChB;gBACD,UAAU,EAAE,IAAI;aACjB;YACD;gBACE,IAAI,EAAE,eAAe,CAAC,MAAM;gBAC5B,KAAK,EAAE,+BAA+B;gBACtC,EAAE,EAAE,gBAAgB,CAAC,qBAAqB;gBAC1C,OAAO,EAAE;oBACP,WAAW,EAAE,EAAE;iBAChB;gBACD,UAAU,EAAE,IAAI;aACjB;SACF,CAAC;IACJ,CAAC;IAES,gBAAgB,CAAC,IAAY;QACrC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAG,IAAI,KAAK,SAAS,CAAC,qBAAqB,EAAE;YAC3C,IAAI,CAAC,mBAAmB,EAAE;iBACvB,KAAK,CAAC,GAAG,EAAE;gBACV,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,CAAC,CAAC;iBACD,IAAI,CAAC,GAAG,EAAE;gBACT,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,CAAC,CAAC,CAAC;SAEN;aAAM,IAAG,IAAI,KAAK,gBAAgB,CAAC,qBAAqB,EAAE;YACzD,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB;IACH,CAAC;IAED,gBAAgB;QACd,KAAK,CAAC,gBAAgB,EAAE,CAAC;QACzB,yDAAyD;QACzD,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,kCAAkC;aACnE,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,kCAAkC;aAC7E,KAAK,CAAC,GAAG,EAAE;YACV,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,EAAE;YACT,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,mBAAmB,CAAC,qBAAqB,GAAG,KAAK;QACvD,MAAM,kBAAkB,GAA2C,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,qBAAqB,CAAE,CAAC;QAErI,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,KAAK,CAAC;QAEtE,gBAAgB;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACpD,qBAAqB;YACrB,OAAO,aAAa,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAC3G,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAqB,EAAE,EAAE;YAC9B,0DAA0D;YAC1D,IAAG,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;gBACzB,OAAO,OAAO,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC;aACpD;iBAAM;gBACL,OAAO,OAAO,CAAC,GAAG,CAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACpF;QACH,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE;YAChB,kBAAkB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACrC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;YAC5C,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,IAAW,EAAE,EAAE;YACpB,MAAM,UAAU,GAAa,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,6CAA6C;YACnF,MAAM,IAAI,GAAkD,IAAI,CAAC,CAAC,CAAC,CAAC;YAEpE,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAEpC,wEAAwE;YACxE,4DAA4D;YAC5D,MAAM,GAAG,GAAG,kBAAkB,CAAC,KAAK,IAAI,IAAI,CAAsB,kBAAmB,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAC1G,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAE9C,mDAAmD;YACnD,IAAG,qBAAqB,EAAE;gBACxB,kBAAkB,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,UAAU,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEhG,sCAAsC;aACrC;iBAAM,IAAG,GAAG,KAAK,IAAI,EAAE;gBACtB,kBAAkB,CAAC,KAAK,GAAG,GAAG,CAAC;aAChC;QACH,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,oBAAoB,CAAC,UAAoB;QAC/C,IAAG,UAAU,KAAK,IAAI,EAAE;YACtB,OAAO,EAAE,CAAC;SACX;QAED,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAQ,EAAE,EAAE,CAAC,CAAC,EAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAC,CAAC,CAAC,CAAC;IACtE,CAAC;IAES,eAAe;QACvB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,KAAK,CAAC,CAAC;IACtF,CAAC;;AA7HM,sCAAqB,GAAG,iBAAiB,CAAC;AACjC,8BAAa,GAAG,eAAe,CAAC"} \ No newline at end of file +{"version":3,"file":"UniProtProxyView.js","sourceRoot":"","sources":["../../src/views/UniProtProxyView.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAsB,SAAS,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,aAAa;IAKvC,QAAQ;QAChB,KAAK,CAAC,QAAQ,EAAE,CAAC;QAEjB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAEvC,yDAAyD;QACzD,OAAO,IAAI,CAAC,wBAAwB,EAAE;aACnC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;aACtC,KAAK,CAAC,GAAG,EAAE;YACV,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,EAAE;YACT,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;IACP,CAAC;IAES,qBAAqB;QAC7B,OAAO;YACL;gBACE,IAAI,EAAE,eAAe,CAAC,MAAM;gBAC5B,KAAK,EAAE,MAAM;gBACb,EAAE,EAAE,SAAS,CAAC,qBAAqB;gBACnC,OAAO,EAAE;oBACP,WAAW,EAAE,EAAE;iBAChB;gBACD,UAAU,EAAE,IAAI;aACjB;YACD;gBACE,IAAI,EAAE,eAAe,CAAC,MAAM;gBAC5B,KAAK,EAAE,+BAA+B;gBACtC,EAAE,EAAE,gBAAgB,CAAC,qBAAqB;gBAC1C,OAAO,EAAE;oBACP,WAAW,EAAE,EAAE;iBAChB;gBACD,UAAU,EAAE,IAAI;aACjB;SACF,CAAC;IACJ,CAAC;IAES,gBAAgB,CAAC,IAAY;QACrC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,IAAI,KAAK,SAAS,CAAC,qBAAqB,EAAE;YAC5C,IAAI,CAAC,mBAAmB,EAAE;iBACvB,KAAK,CAAC,GAAG,EAAE;gBACV,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,CAAC,CAAC;iBACD,IAAI,CAAC,GAAG,EAAE;gBACT,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,CAAC,CAAC,CAAC;SACN;aAAM,IAAI,IAAI,KAAK,gBAAgB,CAAC,qBAAqB,EAAE;YAC1D,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB;IACH,CAAC;IAED,gBAAgB;QACd,KAAK,CAAC,gBAAgB,EAAE,CAAC;QACzB,yDAAyD;QACzD,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,kCAAkC;aACnE,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,kCAAkC;aAC7E,KAAK,CAAC,GAAG,EAAE;YACV,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,EAAE;YACT,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,mBAAmB,CAAC,qBAAqB,GAAG,KAAK;QACvD,MAAM,kBAAkB,GAA2C,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;QAEpI,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,KAAK,CAAC;QAEtE,OAAO,aAAa,CAAC,WAAW,EAAE;aAC/B,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,gBAAgB,CAAC,aAAa,CAAC;aAC7E,IAAI,CAAC,CAAC,UAAoB,EAAE,EAAE;YAC7B,0DAA0D;YAC1D,IAAI,UAAU,KAAK,IAAI,EAAE;gBACvB,OAAO,OAAO,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC;aACpD;YACD,OAAO,OAAO,CAAC,GAAG,CAAM,CAAC,UAAU,EAAE,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC/E,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE;YAChB,kBAAkB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACrC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;YAC5C,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,IAAW,EAAE,EAAE;YACpB,MAAM,UAAU,GAAa,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,6CAA6C;YACnF,MAAM,IAAI,GAAoD,IAAI,CAAC,CAAC,CAAC,CAAC;YAEtE,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAEpC,wEAAwE;YACxE,4DAA4D;YAC5D,MAAM,GAAG,GAAG,kBAAkB,CAAC,KAAK,IAAI,IAAI,CAAsB,kBAAmB,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAC1G,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAE9C,mDAAmD;YACnD,IAAI,qBAAqB,EAAE;gBACzB,kBAAkB,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEhG,sCAAsC;aACvC;iBAAM,IAAI,GAAG,KAAK,IAAI,EAAE;gBACvB,kBAAkB,CAAC,KAAK,GAAG,GAAG,CAAC;aAChC;QACH,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,oBAAoB,CAAC,UAAoB;QAC/C,IAAI,UAAU,KAAK,IAAI,EAAE;YACvB,OAAO,EAAE,CAAC;SACX;QAED,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACzE,CAAC;IAES,eAAe;QACvB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,KAAK,CAAC,CAAC;IACtF,CAAC;;AA1HM,sCAAqB,GAAG,iBAAiB,CAAC;AAEjC,8BAAa,GAAG,eAAe,CAAC"} \ No newline at end of file diff --git a/dist/views/ViewUtils.d.ts b/dist/views/ViewUtils.d.ts index ad8f15f..c1b1cee 100644 --- a/dist/views/ViewUtils.d.ts +++ b/dist/views/ViewUtils.d.ts @@ -7,3 +7,4 @@ export declare class ViewUtils { static colorScale(): d3Scale.Ordinal; static legend(legend: HTMLElement, scale: d3Scale.Ordinal): void; } +//# sourceMappingURL=ViewUtils.d.ts.map \ No newline at end of file diff --git a/dist/views/ViewUtils.d.ts.map b/dist/views/ViewUtils.d.ts.map new file mode 100644 index 0000000..fb8244d --- /dev/null +++ b/dist/views/ViewUtils.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"ViewUtils.d.ts","sourceRoot":"","sources":["../../src/views/ViewUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,MAAM,IAAI,CAAC;AAEtC,qBAAa,SAAS;IACpB,MAAM,CAAC,IAAI,WAAwC;IAEnD,MAAM,CAAC,OAAO,WAA+B;IAG7C,MAAM,CAAC,MAAM,WAAqG;IAElH,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE;IAQ/E,MAAM,CAAC,UAAU;IAIjB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC;CA0C1E"} \ No newline at end of file diff --git a/dist/views/ViewUtils.js b/dist/views/ViewUtils.js index 2c54157..dc72dda 100644 --- a/dist/views/ViewUtils.js +++ b/dist/views/ViewUtils.js @@ -4,7 +4,7 @@ export class ViewUtils { const old = new Set(scale.domain()); colors = Array.from(new Set(colors.filter((d) => Boolean(d) && !old.has(d)))); // just valid ones colors.sort(); // sort by name - //append new ones + // append new ones scale.domain(scale.domain().concat(colors)); } static colorScale() { @@ -17,14 +17,17 @@ export class ViewUtils { legend.innerHTML = ''; return; } - const cats = scale.domain().map((category) => { + const cats = scale + .domain() + .map((category) => { return `
${category}
`; - }).join('\n'); + }) + .join('\n'); legend.innerHTML = `
@@ -39,7 +42,7 @@ export class ViewUtils { const disabled = d.classList.toggle('disabled'); if (i === 0) { // all - Array.from(legend.children).forEach((d) => d.classList.toggle('disabled', disabled)); + Array.from(legend.children).forEach((lgd) => lgd.classList.toggle('disabled', disabled)); Array.from(legend.parentElement.querySelectorAll(`.mark`)).forEach((s) => s.classList.toggle('disabled', disabled)); } else { diff --git a/dist/views/ViewUtils.js.map b/dist/views/ViewUtils.js.map index e368790..7890e3d 100644 --- a/dist/views/ViewUtils.js.map +++ b/dist/views/ViewUtils.js.map @@ -1 +1 @@ -{"version":3,"file":"ViewUtils.js","sourceRoot":"","sources":["../../src/views/ViewUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,IAAI,OAAO,EAAC,MAAM,IAAI,CAAC;AAIpC,MAAM,OAAO,SAAS;IAQpB,MAAM,CAAC,eAAe,CAAC,KAAsC,EAAE,MAAgB;QAC7E,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QACpC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB;QACjG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,eAAe;QAC9B,iBAAiB;QACjB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,CAAC,UAAU;QACf,OAAO,OAAO,CAAC,OAAO,EAAkB,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,MAAmB,EAAE,KAAsC;QACvE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACnC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAClC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3B,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;YACtB,OAAO;SACR;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC3C,OAAO;;+CAEkC,KAAK,CAAC,QAAQ,CAAC;sBACxC,QAAQ;;OAEvB,CAAC;QACJ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,CAAC,SAAS,GAAI;;;;;YAKZ,IAAI;;;;iBAIC,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YAC7E,MAAM,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAChD,IAAI,CAAC,KAAK,CAAC,EAAE;gBACX,MAAM;gBACN,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;gBACrF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;aACrH;iBAAM;gBACL,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC;gBAC5C,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;aAC1I;QACH,CAAC,CAAC,CAAC,CAAC;IACN,CAAC;;AAtDM,cAAI,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,kDAAkD;AAC/F,iBAAO,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7C,oDAAoD;AAC7C,gBAAM,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"ViewUtils.js","sourceRoot":"","sources":["../../src/views/ViewUtils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/views/index.d.ts b/dist/views/index.d.ts index 626be99..6afe598 100644 --- a/dist/views/index.d.ts +++ b/dist/views/index.d.ts @@ -5,3 +5,4 @@ export * from './AExpressionVsCopyNumber'; export * from './AOncoPrint'; export * from './GeneProxyView'; export * from './UniProtProxyView'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/dist/views/index.d.ts.map b/dist/views/index.d.ts.map new file mode 100644 index 0000000..546c066 --- /dev/null +++ b/dist/views/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/views/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC"} \ No newline at end of file diff --git a/jest.config.js b/jest.config.js index 3a68180..81a457d 100644 --- a/jest.config.js +++ b/jest.config.js @@ -12,10 +12,11 @@ if(pluginsToTransform.length > 0) { } /** - * TODO check if we can process inline webpack loaders (e.g. as found in https://github.com/phovea/phovea_ui/blob/master/src/_bootstrap.ts) + * TODO check if we can process inline webpack loaders (e.g. as found in https://github.com/datavisyn/tdp_core/blob/develop/src/webpack/_bootstrap.ts) * see also https://jestjs.io/docs/en/webpack#mocking-css-modules */ module.exports = { + testEnvironment: 'jsdom', transform: { "^.+\\.(js|ts|tsx)$": "ts-jest", "\\.xml$": "jest-raw-loader" @@ -46,4 +47,4 @@ module.exports = { moduleNameMapper: { "^.+\\.(css|less|scss|sass|png|jpg|gif)$": "identity-obj-proxy" } -} \ No newline at end of file +} diff --git a/package.json b/package.json index 18fa552..4be0618 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "tdp_gene", "description": "", - "version": "9.0.0", + "version": "10.0.0", "author": { "name": "The Caleydo Team", "email": "contact@caleydo.org", @@ -35,7 +35,8 @@ "compile": "tsc", "compile:watch": "tsc -w", "postcompile": "npm run copy", - "lint": "tslint -c tslint.json -p . 'src/**/*.ts?(x)' 'tests/**/*.ts?(x)'", + "lint": "eslint --cache src/**/*.ts{,x} tests/**/*.ts{,x}", + "lint:fix": "eslint --fix --cache src/**/*.ts{,x} tests/**/*.ts{,x}", "docs": "typedoc --options typedoc.json src/**.ts", "prebuild": "node -e \"process.exit(process.env.PHOVEA_SKIP_TESTS === undefined?1:0)\" || npm run test", "test": "jest --passWithNoTests", @@ -53,27 +54,39 @@ }, "devDependencies": { "@types/d3": "~3.5.36", - "@types/jest": "~26.0.20", "@types/jquery": "~3.5.5", + "@typescript-eslint/eslint-plugin": "^5.9.0", + "@typescript-eslint/parser": "^5.9.0", + "eslint": "^8.7.0", + "eslint-config-airbnb": "^19.0.4", + "eslint-config-airbnb-typescript": "^16.1.0", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-import": "^2.25.4", + "eslint-plugin-jest": "^25.3.4", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-prettier": "^4.0.0", + "eslint-plugin-react": "^7.28.0", + "eslint-plugin-react-hooks": "^4.3.0", "identity-obj-proxy": "~3.0.0", - "jest": "~26.6.3", "jest-raw-loader": "~1.0.1", + "prettier": "^2.5.1", "rimraf": "~3.0.2", "shx": "~0.3.3", - "ts-jest": "~26.4.4", - "tslib": "~2.0.3", - "tslint": "~5.20.1", - "typedoc": "~0.19.2", - "typescript": "~3.9.7" + "@types/jest": "~27.4.1", + "jest": "~27.5.1", + "ts-jest": "~27.1.3", + "tslib": "~2.3.1", + "typedoc": "~0.22.13", + "typescript": "~4.6.2" }, "dependencies": { "d3": "~3.5.17", "jstat": "^1.9.4", "jquery": "~3.5.1", "jquery-ui": "1.12.1", - "tdp_core": "^12.1.0" + "tdp_core": "^14.0.2" }, "optionalDependencies": { - "ordino": "github:Caleydo/ordino#semver:^10.0.0" + "ordino": "github:Caleydo/ordino#semver:^11.0.0" } } diff --git a/phovea_registry.js b/phovea_registry.js index 2ddba89..4834646 100644 --- a/phovea_registry.js +++ b/phovea_registry.js @@ -3,7 +3,7 @@ * Copyright (c) The Caleydo Team. All rights reserved. * Licensed under the new BSD license, available at http://caleydo.org/license **************************************************************************** */ -import {PluginRegistry} from 'phovea_core'; +import {PluginRegistry} from 'tdp_core'; import reg from './dist/phovea'; /** * build a registry by registering all phovea modules diff --git a/src/common/Categories.ts b/src/common/Categories.ts index b4cb502..981219d 100644 --- a/src/common/Categories.ts +++ b/src/common/Categories.ts @@ -4,22 +4,22 @@ // see also _onco_print.scss -export module Categories { - +// eslint-disable-next-line @typescript-eslint/no-namespace +export namespace Categories { export const copyNumberCat = [ - {value: 2, name: 'Amplification', color: '#efb3bc', border: 'transparent'}, - {value: -2, name: 'Deep Deletion', color: '#92c5de', border: 'transparent'}, - //{value: -1, name: 'Heterozygous deletion', color: '#92c5de'}, - {value: 0, name: 'NORMAL', color: '#dcdcdc', border: 'transparent'}, - //{value: 1, name: 'Low level amplification', color: '#f4a582'}, - //{value: 2, name: 'High level amplification', color: '#ca0020'}, - //{value: 'null', name: 'Unknown', color: '#FCFCFC', border: '#dcdcdc'} + { value: 2, name: 'Amplification', color: '#efb3bc', border: 'transparent' }, + { value: -2, name: 'Deep Deletion', color: '#92c5de', border: 'transparent' }, + // {value: -1, name: 'Heterozygous deletion', color: '#92c5de'}, + { value: 0, name: 'NORMAL', color: '#dcdcdc', border: 'transparent' }, + // {value: 1, name: 'Low level amplification', color: '#f4a582'}, + // {value: 2, name: 'High level amplification', color: '#ca0020'}, + // {value: 'null', name: 'Unknown', color: '#FCFCFC', border: '#dcdcdc'} ]; export const unknownCopyNumberValue: any = NaN; export const mutationCat = [ - {value: 'true', name: 'Mutated', color: '#1BA64E', border: 'transparent'}, - {value: 'false', name: 'Non Mutated', color: '#aaa', border: 'transparent'}, + { value: 'true', name: 'Mutated', color: '#1BA64E', border: 'transparent' }, + { value: 'false', name: 'Non Mutated', color: '#aaa', border: 'transparent' }, // {value: 'null', name: 'Unknown', color: 'transparent', border: '#999'} ]; export const unknownMutationValue: any = NaN; diff --git a/src/common/common.ts b/src/common/common.ts index fd924a4..cb5d36f 100644 --- a/src/common/common.ts +++ b/src/common/common.ts @@ -2,13 +2,8 @@ * Created by Samuel Gratzl on 11.05.2016. */ -import {UserSession} from 'phovea_core'; -import {IDType} from 'phovea_core'; -import {IFormSelectOption} from 'tdp_core'; -import {ISelection} from 'tdp_core'; -import {IDTypeManager} from 'phovea_core'; -import {Categories} from './Categories'; -import {Range} from 'phovea_core'; +import { UserSession, IDType, IFormSelectOption, ISelection, IDTypeManager } from 'tdp_core'; +import { Categories } from './Categories'; // has to work for all data sources (gene, tissue, cell line) interface IAvailableSpecies { @@ -21,11 +16,12 @@ interface ISpeciesFilterObject { [key: string]: any; } -export module Species { +// eslint-disable-next-line @typescript-eslint/no-namespace +export namespace Species { export const availableSpecies: IAvailableSpecies[] = [ { name: 'Human', value: 'human', iconClass: 'fa-male' }, - //{ name: 'Rat', value: 'rat' }, - { name: 'Mouse', value: 'mouse', iconClass: 'mouse-icon' } + // { name: 'Rat', value: 'rat' }, + { name: 'Mouse', value: 'mouse', iconClass: 'mouse-icon' }, ]; export const defaultSpecies = availableSpecies[0].value; @@ -34,14 +30,11 @@ export module Species { export const SPECIES_SESSION_KEY = 'species'; } - - export interface IPostProcessor { - process: (importResults: {[key: string]: any}, data: string[][]) => Promise; + process: (importResults: { [key: string]: any }, data: string[][]) => Promise; } export class SpeciesUtils { - static getSelectedSpecies() { return UserSession.getInstance().retrieve(Species.SPECIES_SESSION_KEY, Species.defaultSpecies); } @@ -51,12 +44,12 @@ export class SpeciesUtils { * @param idType * @returns {Promise} */ - static async selectReadableIDType(idType: IDType): Promise { + static async selectReadableIDType(idType: IDType): Promise { if (idType.id === Categories.GENE_IDTYPE) { const targetMapping = 'GeneSymbol'; const species = SpeciesUtils.getSelectedSpecies(); const mapsTo = await IDTypeManager.getInstance().getCanBeMappedTo(idType); - let target = mapsTo.find((d) => d.name === targetMapping + '_' + species); + let target = mapsTo.find((d) => d.name === `${targetMapping}_${species}`); if (!target) { target = mapsTo.find((d) => d.name === targetMapping); } @@ -68,35 +61,37 @@ export class SpeciesUtils { static mapToId(selection: ISelection, target: IDType = null) { if (target === null || selection.idtype.id === target.id) { - // same just unmap to name - return selection.range; + return selection.ids; } // assume mappable - return IDTypeManager.getInstance().mapToFirstID(selection.idtype, selection.range, target).then((r) => Range.list(r)); + return IDTypeManager.getInstance().mapNameToFirstName(selection.idtype, selection.ids, target); } - static createOptions(ensgs: string[], selection: ISelection, base: IDType): Promise { - if (ensgs === null || ensgs.length === 0 || selection.range.isNone) { + if (ensgs === null || ensgs.length === 0 || selection.ids?.length === 0) { return Promise.resolve([]); } - return Promise.all([SpeciesUtils.mapToId(selection, base), SpeciesUtils.selectReadableIDType(base)]).then((results): Promise|IFormSelectOption[] => { - const ids = results[0]; - const target = results[1]; - - if (!target) { - return ensgs.map((ensg) => ({value: ensg, name: ensg, data: [ensg, ensg]})); - } - // map and use names - return IDTypeManager.getInstance().mapToFirstName(base, ids, target).then((names) => { - return names.map((name, i) => ({ - value: ensgs[i], - name: name ? `${name} (${ensgs[i]})` : ensgs[i], - data: [ensgs[i], name] - })); - }); - }); + return Promise.all([SpeciesUtils.mapToId(selection, base), SpeciesUtils.selectReadableIDType(base)]).then( + (results): Promise | IFormSelectOption[] => { + const ids = results[0]; + const target = results[1]; + + if (!target) { + return ensgs.map((ensg) => ({ value: ensg, name: ensg, data: [ensg, ensg] })); + } + // map and use names + return IDTypeManager.getInstance() + .mapNameToFirstName(base, ids, target) + .then((names) => { + return names.map((name, i) => ({ + value: ensgs[i], + name: name ? `${name} (${ensgs[i]})` : ensgs[i], + data: [ensgs[i], name], + })); + }); + }, + ); } /** @@ -104,53 +99,55 @@ export class SpeciesUtils { */ static convertGeneSymbolToEnsembl(): IPostProcessor { return { - process: async function process(importResults: {[key: string]: any}, data: string[][]): Promise { - if(importResults.idType.includes('GeneSymbol')) { - const idType = IDTypeManager.getInstance().resolveIdType(importResults.idType); - - const geneSymbols = data.map((row) => row[importResults.idColumn]); - const ensgs = await IDTypeManager.getInstance().mapNameToName(idType, geneSymbols, Categories.GENE_IDTYPE); - - // append converted ENSGs to each row - // ensgs is an Array of Arrays - // if a 1:1 mapping is found, only 1 row is added - // if a 1:n mapping is found, multiple rows are added with different Ensembl IDs - const newData = []; - data.forEach((row, i) => { - if(ensgs[i] && ensgs[i].length > 0) { - ensgs[i].forEach((mapping) => { - newData.push([...row, mapping]); - }); - } else { - newData.push([...row, '']); - } - }); - - // TODO: return newConfig instead of changing it by reference? - const newConfig = importResults; - - delete newConfig.columns[newConfig.idColumn].idType; - - // add new column header - newConfig.columns.push({ - color: '#DDDDDD', - column: newConfig.columns.length, - idType: Categories.GENE_IDTYPE, - label: Categories.GENE_IDTYPE, - type: 'string' - }); - - newConfig.idType = Categories.GENE_IDTYPE; - newConfig.idColumn = newConfig.columns.length - 1; - newConfig.notes.push('The column Ensembl was added based on the detected Gene Symbols. 1:n mappings between Gene Symbols and Ensembl IDs were resolved by showing all possible combinations.'); - - return newData; - } else { + process: async function process(importResults: { [key: string]: any }, data: string[][]): Promise { + if (importResults.idType.includes('GeneSymbol')) { + const idType = IDTypeManager.getInstance().resolveIdType(importResults.idType); + + const geneSymbols = data.map((row) => row[importResults.idColumn]); + const ensgs = await IDTypeManager.getInstance().mapNameToName(idType, geneSymbols, Categories.GENE_IDTYPE); + + // append converted ENSGs to each row + // ensgs is an Array of Arrays + // if a 1:1 mapping is found, only 1 row is added + // if a 1:n mapping is found, multiple rows are added with different Ensembl IDs + const newData = []; + data.forEach((row, i) => { + if (ensgs[i] && ensgs[i].length > 0) { + ensgs[i].forEach((mapping) => { + newData.push([...row, mapping]); + }); + } else { + newData.push([...row, '']); + } + }); + + // TODO: return newConfig instead of changing it by reference? + const newConfig = importResults; + + delete newConfig.columns[newConfig.idColumn].idType; + + // add new column header + newConfig.columns.push({ + color: '#DDDDDD', + column: newConfig.columns.length, + idType: Categories.GENE_IDTYPE, + label: Categories.GENE_IDTYPE, + type: 'string', + }); + + newConfig.idType = Categories.GENE_IDTYPE; + newConfig.idColumn = newConfig.columns.length - 1; + newConfig.notes.push( + 'The column Ensembl was added based on the detected Gene Symbols. 1:n mappings between Gene Symbols and Ensembl IDs were resolved by showing all possible combinations.', + ); + + return newData; + } return data; - } - } + }, }; } + /** * Filters elements containing the selected species from the given data array by using the provided accessor function * @param filter Object diff --git a/src/phovea.ts b/src/phovea.ts index 5318912..21f4a0b 100644 --- a/src/phovea.ts +++ b/src/phovea.ts @@ -4,7 +4,7 @@ * Licensed under the new BSD license, available at http://caleydo.org/license **************************************************************************** */ -import {IRegistry} from 'phovea_core'; +import { IRegistry } from 'tdp_core'; export default function (registry: IRegistry) { function tdpView(id: string, loader: () => any, desc: any, ...descs) { @@ -21,11 +21,11 @@ export default function (registry: IRegistry) { selection: 'chooser', preview: () => import('./assets/previews/ensembl.jpg'), group: { - name: 'External Resources' + name: 'External Resources', // 'order: 0 }, description: 'Show information on your search from Ensembl.org', - topics: ['external'] + topics: ['external'], }); // doesn't work properly @@ -57,11 +57,11 @@ export default function (registry: IRegistry) { openExternally: true, preview: () => import('./assets/previews/uniprot.jpg'), group: { - name: 'External Resources' + name: 'External Resources', // 'order: 70 }, description: 'Show information on your search from UniProt', - topics: ['uniprot', 'external'] + topics: ['uniprot', 'external'], }); tdpView('targetvalidation', () => import('./views/GeneProxyView'), { @@ -73,14 +73,14 @@ export default function (registry: IRegistry) { selection: 'chooser', preview: () => import('./assets/previews/open_targets.jpg'), group: { - name: 'External Resources' + name: 'External Resources', // 'order: 40 }, filter: { - species: 'human' + species: 'human', }, description: 'Show information on your search from Open Targets', - topics: ['external'] + topics: ['external'], }); tdpView('proteinatlas_org', () => import('./views/GeneProxyView'), { @@ -93,14 +93,14 @@ export default function (registry: IRegistry) { openExternally: true, preview: () => import('./assets/previews/human_protein_atlas.jpg'), group: { - name: 'External Resources' + name: 'External Resources', // 'order: 50 }, filter: { - species: 'human' + species: 'human', }, description: 'Show information on your search from the Human Protein Atlas', - topics: ['protein', 'external'] + topics: ['protein', 'external'], }); const common = { @@ -109,13 +109,13 @@ export default function (registry: IRegistry) { readableIDType: 'GeneSymbol', selection: 'chooser', group: { - name: 'External Resources' + name: 'External Resources', // 'order: 60 }, filter: { - species: 'human' + species: 'human', }, - topics: ['external'] + topics: ['external'], }; // tdpView('humanproteomemap', () => import('tdp_core/dist/views/ChooserProxyView'), { @@ -130,51 +130,71 @@ export default function (registry: IRegistry) { // topics: ['protein', 'external'] // }); - tdpView('genenames', () => import('tdp_core/dist/views/ChooserProxyView'), { - factory: 'new ChooserProxyView', - name: 'Genenames', - site: 'https://www.genenames.org/cgi-bin/gene_symbol_report?match={gene}', - preview: () => import('./assets/previews/genenames.jpg'), - description: 'Reference for human gene symbols', - helpUrl: 'https://www.genenames.org/about/overview' - }, common); - - tdpView('ClinVar', () => import('tdp_core/dist/views/ChooserProxyView'), { - factory: 'new ChooserProxyView', - name: 'ClinVar', - site: 'https://www.ncbi.nlm.nih.gov/clinvar/?term={gene}', - helpUrl: 'https://www.ncbi.nlm.nih.gov/clinvar/intro/', - preview: () => import('./assets/previews/clinvar.png'), - description: 'relationships among human variations and phenotypes, with supporting evidence' - }, common); - - tdpView('cosmic_gene', () => import('tdp_core/dist/views/ChooserProxyView'), { - factory: 'new ChooserProxyView', - name: 'COSMIC', - site: 'https://cancer.sanger.ac.uk/cosmic/gene/analysis?genome=38&ln={gene}', - preview: () => import('./assets/previews/cosmic_banner.png'), - description: 'Catalogue Of Somatic Mutations In Cancer', - helpUrl: 'https://cancer.sanger.ac.uk/cosmic/about' - }, common, { - topics: ['cancer', 'external'] - }); - + tdpView( + 'genenames', + () => import('tdp_core/dist/views/ChooserProxyView'), + { + factory: 'new ChooserProxyView', + name: 'Genenames', + site: 'https://www.genenames.org/cgi-bin/gene_symbol_report?match={gene}', + preview: () => import('./assets/previews/genenames.jpg'), + description: 'Reference for human gene symbols', + helpUrl: 'https://www.genenames.org/about/overview', + }, + common, + ); + + tdpView( + 'ClinVar', + () => import('tdp_core/dist/views/ChooserProxyView'), + { + factory: 'new ChooserProxyView', + name: 'ClinVar', + site: 'https://www.ncbi.nlm.nih.gov/clinvar/?term={gene}', + helpUrl: 'https://www.ncbi.nlm.nih.gov/clinvar/intro/', + preview: () => import('./assets/previews/clinvar.png'), + description: 'relationships among human variations and phenotypes, with supporting evidence', + }, + common, + ); + + tdpView( + 'cosmic_gene', + () => import('tdp_core/dist/views/ChooserProxyView'), + { + factory: 'new ChooserProxyView', + name: 'COSMIC', + site: 'https://cancer.sanger.ac.uk/cosmic/gene/analysis?genome=38&ln={gene}', + preview: () => import('./assets/previews/cosmic_banner.png'), + description: 'Catalogue Of Somatic Mutations In Cancer', + helpUrl: 'https://cancer.sanger.ac.uk/cosmic/about', + }, + common, + { + topics: ['cancer', 'external'], + }, + ); registry.push('importPostProcessor', 'GeneSymbol', () => import('./common/common').then((c) => c.SpeciesUtils), { - factory: 'convertGeneSymbolToEnsembl' + factory: 'convertGeneSymbolToEnsembl', }); registry.push('tdpListFilters', 'SpeciesFilter', () => import('./common/common').then((c) => c.SpeciesUtils), { - factory: 'filterSpecies' + factory: 'filterSpecies', }); - registry.push('idTypeDetector', 'gene_idtype_detector', () => { - return import('./provider/GeneIDTypeDetector').then((v) => v.GeneIDTypeDetector); - }, { - name: 'IDTypeDetector', - factory: 'geneIDTypeDetector', - idType: 'Ensembl' - }); + registry.push( + 'idTypeDetector', + 'gene_idtype_detector', + () => { + return import('./provider/GeneIDTypeDetector').then((v) => v.GeneIDTypeDetector); + }, + { + name: 'IDTypeDetector', + factory: 'geneIDTypeDetector', + idType: 'Ensembl', + }, + ); /// #if include('ordino') // registry.push('ordinoStartMenuSection', 'section_species', function() { return import('./menu/SpeciesSelectorMenuSection'); }, { @@ -184,6 +204,4 @@ export default function (registry: IRegistry) { // priority: 10 // }); /// #endif - - } diff --git a/src/provider/FieldUtils.ts b/src/provider/FieldUtils.ts index 171c3c7..868ea18 100644 --- a/src/provider/FieldUtils.ts +++ b/src/provider/FieldUtils.ts @@ -1,10 +1,4 @@ -/** - * Created by sam on 29.05.2017. - */ -import {RangeLike, ParseRangeUtils} from 'phovea_core'; -import {INamedSet, ENamedSetType} from 'tdp_core'; -import {IDType} from 'phovea_core'; - +import { INamedSet, ENamedSetType, IDType } from 'tdp_core'; export class FieldUtils { /** @@ -16,30 +10,30 @@ export class FieldUtils { static convertLog2ToLinear(rows: any[], field: string) { console.log('convert log2 score to linear scale'); return rows.map((row) => { - row[field] = Math.pow(2, row[field]); + row[field] = 2 ** row[field]; return row; }); } - /** * limit the number of score rows if it doesn't exceed some criteria */ - static limitScoreRows(param: any, ids: RangeLike, idTypeOfIDs: IDType, entity: string, maxDirectRows: number, namedSet?: INamedSet) { - const range = ParseRangeUtils.parseRangeLike(ids); - if (range.dim(0).length < maxDirectRows) { - param[`filter_rangeOf${idTypeOfIDs.id}4${entity}`] = range.toString(); + static limitScoreRows(param: any, ids: string[], idTypeOfIDs: IDType, entity: string, maxDirectRows: number, namedSet?: INamedSet) { + if (ids.length < maxDirectRows) { + param[`filter_rangeOf${idTypeOfIDs.id}4${entity}`] = ids; return; } if (namedSet) { // propagate named sets - switch(namedSet.type) { + switch (namedSet.type) { case ENamedSetType.PANEL: param[`filter_panel_${entity}`] = namedSet.id; break; case ENamedSetType.NAMEDSET: param[`filter_namedset4${entity}`] = namedSet.id; break; + default: + break; } } } diff --git a/src/provider/GeneIDTypeDetector.ts b/src/provider/GeneIDTypeDetector.ts index 7127d52..94d3191 100644 --- a/src/provider/GeneIDTypeDetector.ts +++ b/src/provider/GeneIDTypeDetector.ts @@ -1,5 +1,4 @@ export class GeneIDTypeDetector { - /** * Detect items from a data array starting `ENS` or `LRG`. * Returns a number between 0 and 1 defining the fraction of matching genes in the array. @@ -17,14 +16,14 @@ export class GeneIDTypeDetector { let foundIDTypes = 0; let validSize = 0; - for(let i = 0; i < testSize; ++i) { + for (let i = 0; i < testSize; ++i) { const v = accessor(data[i]); - if (v == null || typeof(v) !== 'string' || v.trim().length === 0) { - continue; //skip empty samples + if (v == null || typeof v !== 'string' || v.trim().length === 0) { + continue; // skip empty samples } - if(v.indexOf('ENS') === 0 || v.indexOf('LRG') === 0) { + if (v.indexOf('ENS') === 0 || v.indexOf('LRG') === 0) { ++foundIDTypes; } ++validSize; @@ -35,7 +34,7 @@ export class GeneIDTypeDetector { static geneIDTypeDetector() { return { - detectIDType: GeneIDTypeDetector.detectIDType + detectIDType: GeneIDTypeDetector.detectIDType, }; } } diff --git a/src/provider/SearchProvider.ts b/src/provider/SearchProvider.ts index a966088..0918b9a 100644 --- a/src/provider/SearchProvider.ts +++ b/src/provider/SearchProvider.ts @@ -1,13 +1,10 @@ -//redeclare to avoid dependency -import {SpeciesUtils} from '../common/common'; -import {IResult, ISearchProvider} from 'tdp_core'; -import {RestBaseUtils} from 'tdp_core'; +// redeclare to avoid dependency +import { IResult, ISearchProvider } from 'tdp_core'; +import { RestBaseUtils } from 'tdp_core'; +import { SpeciesUtils } from '../common/common'; export class SearchProvider implements ISearchProvider { - - constructor(protected readonly dataSource: { db: string, base: string, entityName: string }) { - - } + constructor(protected readonly dataSource: { db: string; base: string; entityName: string }) {} get searchView() { return `${this.dataSource.base}_items`; @@ -22,21 +19,20 @@ export class SearchProvider implements ISearchProvider { } search(query: string, page: number, pageSize: number) { - return RestBaseUtils.getTDPLookup(this.dataSource.db, this.searchView , { + return RestBaseUtils.getTDPLookup(this.dataSource.db, this.searchView, { column: this.dataSource.entityName, species: SpeciesUtils.getSelectedSpecies(), query, page, - limit: pageSize + limit: pageSize, }).then((data) => { return { items: data.items.map(SearchProvider.mapItems), - more: data.more + more: data.more, }; }); } - validate(query: string[]): Promise { return RestBaseUtils.getTDPData(this.dataSource.db, `${this.verifyView}/filter`, { column: this.dataSource.entityName, diff --git a/src/provider/forms.ts b/src/provider/forms.ts index ab85728..6f8377f 100644 --- a/src/provider/forms.ts +++ b/src/provider/forms.ts @@ -2,7 +2,8 @@ * Created by sam on 06.03.2017. */ -export module FormSubtype { +// eslint-disable-next-line @typescript-eslint/no-namespace +export namespace FormSubtype { export const FORM_COPYNUMBER_SUBTYPE_ID = 'copynumber_subtype'; export const FORM_EXPRESSION_SUBTYPE_ID = 'expression_subtype'; } diff --git a/src/views/ACoExpression.ts b/src/views/ACoExpression.ts index 05fe867..d51354b 100644 --- a/src/views/ACoExpression.ts +++ b/src/views/ACoExpression.ts @@ -1,16 +1,14 @@ /** * Created by Holger Stitz on 12.08.2016. */ -import {ISelection, IFormElementDesc} from 'tdp_core'; -import {ResolveUtils} from 'tdp_core'; -import {FormElementType, IFormSelectElement, IFormSelectOption} from 'tdp_core'; -import {ErrorAlertHandler} from 'tdp_core'; +import { ISelection, IFormElementDesc, IDTypeManager } from 'tdp_core'; +import { FormElementType, IFormSelectElement, IFormSelectOption } from 'tdp_core'; +import { ErrorAlertHandler } from 'tdp_core'; import * as d3 from 'd3'; -import {Range} from 'phovea_core'; -import {SelectionUtils, SelectOperation} from 'phovea_core'; -import {AD3View} from 'tdp_core'; -import {ViewUtils} from './ViewUtils'; -import {jStat} from 'jstat'; +import { SelectionUtils, SelectOperation } from 'tdp_core'; +import { AD3View } from 'tdp_core'; +import { jStat } from 'jstat'; +import { ViewUtils } from './ViewUtils'; const FORM_ID_REFERENCE_GENE = 'referenceGene'; @@ -26,27 +24,35 @@ function filterZeroValues(rows: ICoExprDataFormatRow[]) { } export interface IGeneOption extends IFormSelectOption { - data: {id: string, symbol: string, _id: number}; + data: { id: string; symbol: string; _id: number }; } const spearmancoeffTitle = 'Spearman Coefficient: '; export abstract class ACoExpression extends AD3View { - private readonly margin = {top: 40, right: 5, bottom: 50, left: 90}; + private readonly margin = { top: 40, right: 5, bottom: 50, left: 90 }; + private readonly width = 280 - this.margin.left - this.margin.right; + private readonly height = 320 - this.margin.top - this.margin.bottom; protected $errorMessage: d3.Selection; + protected $legend: d3.Selection; private refGene: IGeneOption = null; + private refGeneExpression: ICoExprDataFormatRow[] = []; private readonly x = d3.scale.log(); + private readonly y = d3.scale.log(); + private readonly color = ViewUtils.colorScale(); - private readonly xAxis = d3.svg.axis().orient('bottom').scale(this.x).tickFormat(this.x.tickFormat(2, '.1f'));//.tickFormat((d) => d.toFixed(1)); - private readonly yAxis = d3.svg.axis().orient('left').scale(this.y).tickFormat(this.y.tickFormat(2, '.1f'));//.tickFormat((d) => d.toFixed(1)); + + private readonly xAxis = d3.svg.axis().orient('bottom').scale(this.x).tickFormat(this.x.tickFormat(2, '.1f')); // .tickFormat((d) => d.toFixed(1)); + + private readonly yAxis = d3.svg.axis().orient('left').scale(this.y).tickFormat(this.y.tickFormat(2, '.1f')); // .tickFormat((d) => d.toFixed(1)); protected initImpl() { super.initImpl(); @@ -54,9 +60,7 @@ export abstract class ACoExpression extends AD3View { this.$node.classed('coExpression', true); this.$node.classed('multiple', true); - this.$errorMessage = this.$node.append('p') - .classed('nodata', true) - .attr('hidden', true); + this.$errorMessage = this.$node.append('p').classed('nodata', true).attr('hidden', true); this.$legend = this.$node.append('div'); @@ -66,10 +70,10 @@ export abstract class ACoExpression extends AD3View { this.refGene = refGene; if (refGene) { return this.loadRefGeneData(refGene); - } else { - return null; } - }).then((expressions) => { + return null; + }) + .then((expressions) => { this.refGeneExpression = expressions; this.updateChart(this.refGene, expressions, true); }); @@ -83,8 +87,8 @@ export abstract class ACoExpression extends AD3View { id: FORM_ID_REFERENCE_GENE, options: { optionsData: [], - } - } + }, + }, ]; } @@ -109,86 +113,80 @@ export abstract class ACoExpression extends AD3View { super.selectionChanged(); // update the refGene select first, then update the charts const bak = this.refGene; - this.updateRefGeneSelect(this.selection) - .then((refGene: IGeneOption) => { - this.refGene = refGene; - const refChanged = bak === null || refGene === null || bak.value !== refGene.value; - if (refChanged) { - this.refGeneExpression = null; - if (refGene) { - this.loadRefGeneData(refGene).then((expressions) => { - this.refGeneExpression = expressions; - this.updateChart(refGene, this.refGeneExpression, true); - }); - } - } else { - this.updateChart(refGene, this.refGeneExpression, refChanged); + this.updateRefGeneSelect(this.selection).then((refGene: IGeneOption) => { + this.refGene = refGene; + const refChanged = bak === null || refGene === null || bak.value !== refGene.value; + if (refChanged) { + this.refGeneExpression = null; + if (refGene) { + this.loadRefGeneData(refGene).then((expressions) => { + this.refGeneExpression = expressions; + this.updateChart(refGene, this.refGeneExpression, true); + }); } - }); + } else { + this.updateChart(refGene, this.refGeneExpression, refChanged); + } + }); } - private updateRefGeneSelect(selection: ISelection): Promise { - return this.resolveSelection() - .then((genesEnsembl): Promise => { - //console.log('Ensembl', genesEnsembl); + return this.resolveSelection().then((genesEnsembl): Promise => { + // console.log('Ensembl', genesEnsembl); - const promise = this.loadGeneList(genesEnsembl); + const promise = this.loadGeneList(genesEnsembl); - // on error - promise.catch(ErrorAlertHandler.getInstance().errorAlert) - .catch((error) => { - console.error(error); - this.setBusy(false); - }); + // on error + promise.catch(ErrorAlertHandler.getInstance().errorAlert).catch((error) => { + console.error(error); + this.setBusy(false); + }); - // on success - return promise.then((input) => { - const data = input.map((d) => { - return { - //use EnsemblID if symbol is empty - value: (d.symbol) ? d.symbol : d.id, - name: (d.symbol && d.symbol !== d.id) ? `${d.symbol} (${d.id})` : d.id, - data: d - }; - }); - //console.log('gene symbols', data); + // on success + return promise.then((input) => { + const data = input.map((d) => { + return { + // use EnsemblID if symbol is empty + value: d.symbol ? d.symbol : d.id, + name: d.symbol && d.symbol !== d.id ? `${d.symbol} (${d.id})` : d.id, + data: d, + }; + }); + // console.log('gene symbols', data); - const refGeneSelect = this.getParameterElement(FORM_ID_REFERENCE_GENE); + const refGeneSelect = this.getParameterElement(FORM_ID_REFERENCE_GENE); - // backup entry and restore the selectedIndex by value afterwards again, - // because the position of the selected element might change - const old = refGeneSelect.value; - refGeneSelect.updateOptionElements(data); + // backup entry and restore the selectedIndex by value afterwards again, + // because the position of the selected element might change + const old = refGeneSelect.value; + refGeneSelect.updateOptionElements(data); - if (old !== null) { - refGeneSelect.value = old; - } + if (old !== null) { + refGeneSelect.value = old; + } - // set reference gene - return refGeneSelect.value; - }); + // set reference gene + return refGeneSelect.value; }); + }); } - private async loadRefGeneData(refGene: IGeneOption) { - const rows = await this.loadData(refGene.data.id); return filterZeroValues(rows); } protected abstract loadData(ensg: string): Promise; - protected abstract loadGeneList(ensgs: string[]): Promise<{id: string, symbol: string, _id: number}[]>; + protected abstract loadGeneList(ensgs: string[]): Promise<{ id: string; symbol: string; _id: number }[]>; protected abstract loadFirstName(ensg: string): Promise; - private updateChart(refGene: IGeneOption, refGeneExpression: ICoExprDataFormatRow[], updateAll = false) { + // eslint-disable-next-line @typescript-eslint/no-this-alias const that = this; - const ids = this.selection.range.dim(0).asList(); - const idtype = this.selection.idtype; + const { ids } = this.selection; + const { idtype } = this.selection; const isEmpty = refGene == null || ids.length < 2; const noData = refGeneExpression == null || refGeneExpression.length === 0; @@ -210,13 +208,13 @@ export abstract class ACoExpression extends AD3View { } const data: ICoExprDataFormat[] = ids - .filter((id) => id !== refGene.data._id) // skip refGene, because it's already loaded + .filter((id) => id !== refGene.data.id) // skip refGene, because it's already loaded .map((id) => { - return {id, geneName: '', rows: []}; + return { id, geneName: '', rows: [] }; }); // show/hide message and loading indicator if two less genes are selected - this.$errorMessage.attr('hidden', (data.length > 0)); + this.$errorMessage.attr('hidden', data.length > 0); this.setBusy(data.length > 0); const $plots = this.$node.selectAll('div.plots').data(data, (d) => d.id.toString()); @@ -224,30 +222,27 @@ export abstract class ACoExpression extends AD3View { // decide whether to load data for newly added items // or to reload the data for all items (e.g. due to parameter change) - const enterOrUpdateAll = (updateAll) ? $plots : $plotsEnter; + const enterOrUpdateAll = updateAll ? $plots : $plotsEnter; enterOrUpdateAll.each(function (this: HTMLElement, d: ICoExprDataFormat) { const $id = d3.select(this); - const promise = ResolveUtils.resolveId(idtype, d.id, that.idType) - .then((name) => { - return Promise.all([ - that.loadData(name), - that.loadFirstName(name) - ]); + const promise = IDTypeManager.getInstance() + .mapNameToFirstName(idtype, [d.id], that.idType) + .then(([name]) => { + return Promise.all([that.loadData(name), that.loadFirstName(name)]); }); // on error - promise.catch(ErrorAlertHandler.getInstance().errorAlert) - .catch((error) => { - console.error(error); - that.setBusy(false); - }); + promise.catch(ErrorAlertHandler.getInstance().errorAlert).catch((error) => { + console.error(error); + that.setBusy(false); + }); // on success promise.then((input) => { // use EnsemblID if symbol is empty d.rows = filterZeroValues(input[0]); d.geneName = input[1]; - //console.log('loaded data for', d.geneName); + // console.log('loaded data for', d.geneName); that.initChart($id); that.resizeChart($id); @@ -257,7 +252,9 @@ export abstract class ACoExpression extends AD3View { }); }); - $plots.exit().remove() + $plots + .exit() + .remove() .each(function (d) { that.setBusy(false); }); @@ -269,69 +266,59 @@ export abstract class ACoExpression extends AD3View { return; } - const svg = $parent.append('svg') - .append('g') - .attr('transform', 'translate(' + this.margin.left + ',' + this.margin.top + ')'); + const svg = $parent.append('svg').append('g').attr('transform', `translate(${this.margin.left},${this.margin.top})`); - svg.append('g') - .attr('class', 'title') - .attr('transform', 'translate(0,' + this.height + ')'); + svg.append('g').attr('class', 'title').attr('transform', `translate(0,${this.height})`); - svg.append('text') - .attr('class', 'title') - .style('text-anchor', 'middle'); + svg.append('text').attr('class', 'title').style('text-anchor', 'middle'); - svg.append('g') - .attr('class', 'x axis') - .attr('transform', 'translate(0,' + this.height + ')'); + svg.append('g').attr('class', 'x axis').attr('transform', `translate(0,${this.height})`); - svg.append('text') - .attr('class', 'x label') - .style('text-anchor', 'middle') - .text('Expression'); + svg.append('text').attr('class', 'x label').style('text-anchor', 'middle').text('Expression'); - svg.append('g') - .attr('class', 'y axis'); + svg.append('g').attr('class', 'y axis'); - svg.append('text') - .attr('class', 'y label') - .attr('transform', 'rotate(-90)') - .attr('dy', '1em') - .style('text-anchor', 'middle') - .text('Expression'); + svg.append('text').attr('class', 'y label').attr('transform', 'rotate(-90)').attr('dy', '1em').style('text-anchor', 'middle').text('Expression'); - $parent.append('div').classed('statistics', true) - .append('div') - .attr('class', 'spearmancoeff'); + $parent.append('div').classed('statistics', true).append('div').attr('class', 'spearmancoeff'); } private resizeChart($parent: d3.Selection) { this.x.range([0, this.width]); this.y.range([this.height, 0]); - const svg = $parent.select('svg') + const svg = $parent + .select('svg') .attr('width', this.width + this.margin.left + this.margin.right) .attr('height', this.height + this.margin.top + this.margin.bottom); - svg.select('text.title').attr('transform', 'translate(' + (this.width / 2) + ' ,' + -0.25 * this.margin.top + ')'); + svg.select('text.title').attr('transform', `translate(${this.width / 2} ,${-0.25 * this.margin.top})`); svg.select('g.x.axis').call(this.xAxis); svg.select('g.y.axis').call(this.yAxis); - svg.select('text.x.label').attr('transform', 'translate(' + (this.width / 2) + ' ,' + (this.height + 0.75 * this.margin.bottom) + ')'); - svg.select('text.y.label').attr('y', 0 - this.margin.left).attr('x', 0 - (this.height / 2)); + svg.select('text.x.label').attr('transform', `translate(${this.width / 2} ,${this.height + 0.75 * this.margin.bottom})`); + svg + .select('text.y.label') + .attr('y', 0 - this.margin.left) + .attr('x', 0 - this.height / 2); // shift also the points on resizing // causes the d3 error: ` attribute cx: Expected length, "NaN".` - /*svg.selectAll('.mark') + /* svg.selectAll('.mark') .transition().attr({ cx : (d) => this.x(d.expression), cy : (d) => this.y(d.expression), - });*/ + }); */ } - private updateChartData(refGene: {id: string, symbol: string}, refGeneExpression: ICoExprDataFormatRow[], data: ICoExprDataFormat, $parent: d3.Selection) { - const geneName = data.geneName; + private updateChartData( + refGene: { id: string; symbol: string }, + refGeneExpression: ICoExprDataFormatRow[], + data: ICoExprDataFormat, + $parent: d3.Selection, + ) { + const { geneName } = data; // hide small multiple co-expression plot because it would just project the ref gene on its own if (!refGene || refGene.id === geneName) { @@ -339,13 +326,12 @@ export abstract class ACoExpression extends AD3View { return; } - const rows = data.rows; + const { rows } = data; const hasData = rows != null && rows.length > 0 && refGeneExpression != null && refGeneExpression.length > 0; const $g = $parent.select('svg g'); - $g.select('text.title').text(hasData ? geneName : 'No data for ' + geneName); - + $g.select('text.title').text(hasData ? geneName : `No data for ${geneName}`); if (!hasData) { $g.selectAll('.mark').remove(); @@ -354,18 +340,19 @@ export abstract class ACoExpression extends AD3View { this.x.domain([1, d3.max(refGeneExpression, (d) => d.expression)]).clamp(true); this.y.domain([1, d3.max(rows, (d) => d.expression)]).clamp(true); - ViewUtils.integrateColors(this.color, rows.map((d) => d.color)); + ViewUtils.integrateColors( + this.color, + rows.map((d) => d.color), + ); ViewUtils.legend(this.$legend.node(), this.color); - const attribute = this.getAttributeName(); - $g.select('text.x.label').text(attribute + ' of ' + refGene.symbol); - $g.select('text.y.label').text(attribute + ' of ' + geneName); - + $g.select('text.x.label').text(`${attribute} of ${refGene.symbol}`); + $g.select('text.y.label').text(`${attribute} of ${geneName}`); // get smaller and larger array to build intersection between both - const largerArray: ICoExprDataFormatRow[] = (refGeneExpression.length <= rows.length) ? rows : refGeneExpression; - const smallerArray: ICoExprDataFormatRow[] = (refGeneExpression.length <= rows.length) ? refGeneExpression : rows; + const largerArray: ICoExprDataFormatRow[] = refGeneExpression.length <= rows.length ? rows : refGeneExpression; + const smallerArray: ICoExprDataFormatRow[] = refGeneExpression.length <= rows.length ? refGeneExpression : rows; const firstIsReference = refGeneExpression.length <= rows.length; @@ -374,13 +361,13 @@ export abstract class ACoExpression extends AD3View { const data2 = smallerArray.reduce((result, d) => { if (hash.has(d.samplename)) { - result.push({expr1: d.expression, expr2: hash.get(d.samplename).expression, title: d.samplename, color: d.color, _id: d._id}); + result.push({ expr1: d.expression, expr2: hash.get(d.samplename).expression, title: d.samplename, color: d.color, id: d.id }); } return result; - }, <{expr1: number, expr2: number, title: string, color: string, _id: number}[]>[]); + }, <{ expr1: number; expr2: number; title: string; color: string; id: string }[]>[]); // sort missing colors to the front - data2.sort((a, b) => a.color === b.color ? 0 : (a.color === null ? -1 : (b.color === null ? 1 : 0))); + data2.sort((a, b) => (a.color === b.color ? 0 : a.color === null ? -1 : b.color === null ? 1 : 0)); // statistics { @@ -393,33 +380,43 @@ export abstract class ACoExpression extends AD3View { const marks = $g.selectAll('.mark').data(data2); - marks.enter().append('circle') + marks + .enter() + .append('circle') .classed('mark', true) .attr('r', 2) .on('click', (d) => { - const target: EventTarget = (d3.event).target; + const { target } = d3.event; const selectOperation: SelectOperation = SelectionUtils.toSelectOperation(d3.event); const oldSelection = this.getItemSelection(); - const id: number = d._id; - const newSelection = SelectionUtils.integrateSelection(oldSelection.range, [id], selectOperation); + const { id } = d; + const newSelection = SelectionUtils.integrateSelection(oldSelection.ids, [id], selectOperation); if (selectOperation === SelectOperation.SET) { d3.selectAll('circle.mark.clicked').classed('clicked', false); } d3.select(target).classed('clicked', selectOperation !== SelectOperation.REMOVE); this.select(newSelection); - }).append('title'); + }) + .append('title'); - - marks.attr('data-id', (d) => d._id); + marks.attr('data-id', (d) => d.id); marks.attr('data-color', (d) => String(d.color)); marks.classed('disabled', false); // show all and reset filtering - marks.select('title').text((d) => `${d.title} (${refGene.symbol}: ${firstIsReference ? d.expr1 : d.expr2}, ${geneName}: ${firstIsReference ? d.expr2 : d.expr1}, color: ${d.color})`); - marks.transition().attr({ - cx: (d) => this.x(firstIsReference ? d.expr1 : d.expr2), - cy: (d) => this.y(firstIsReference ? d.expr2 : d.expr1) - }).style('fill', (d) => d.color ? this.color(d.color) : null); + marks + .select('title') + .text( + (d) => + `${d.title} (${refGene.symbol}: ${firstIsReference ? d.expr1 : d.expr2}, ${geneName}: ${firstIsReference ? d.expr2 : d.expr1}, color: ${d.color})`, + ); + marks + .transition() + .attr({ + cx: (d) => this.x(firstIsReference ? d.expr1 : d.expr2), + cy: (d) => this.y(firstIsReference ? d.expr2 : d.expr1), + }) + .style('fill', (d) => (d.color ? this.color(d.color) : null)); marks.exit().remove(); } @@ -430,19 +427,18 @@ export abstract class ACoExpression extends AD3View { protected abstract getAttributeName(): string; - protected abstract select(r: Range): void; - + protected abstract select(r: string[]): void; } export interface ICoExprDataFormatRow { samplename: string; expression: number; color?: string; - _id: number; + id: string; } export interface ICoExprDataFormat { - id: number; + id: string; geneName: string; rows: ICoExprDataFormatRow[]; } diff --git a/src/views/ACommonList.ts b/src/views/ACommonList.ts index 6672c80..0b5e5fb 100644 --- a/src/views/ACommonList.ts +++ b/src/views/ACommonList.ts @@ -2,10 +2,8 @@ * Created by sam on 06.03.2017. */ -import {AStartList, IAStartListOptions} from 'tdp_core'; -import {ISelection, IViewContext} from 'tdp_core'; -import {RestBaseUtils, IParams} from 'tdp_core'; -import {SpeciesUtils, Species} from '../common/common'; +import { AStartList, IAStartListOptions, ISelection, IViewContext, RestBaseUtils, IParams } from 'tdp_core'; +import { SpeciesUtils, Species } from '../common/common'; export interface ICommonDBConfig { idType: string; @@ -28,21 +26,28 @@ interface ISearchResult { export abstract class ACommonList extends AStartList { private search: ISearchResult; - constructor(context:IViewContext, selection: ISelection, parent:HTMLElement, protected readonly dataSource: ICommonDBConfig, options: Partial) { - super(context, selection, parent, Object.assign({ + constructor( + context: IViewContext, + selection: ISelection, + parent: HTMLElement, + protected readonly dataSource: ICommonDBConfig, + options: Partial, + ) { + super(context, selection, parent, { additionalScoreParameter: dataSource, itemName: dataSource.name, itemIDType: dataSource.idType, subType: { key: Species.SPECIES_SESSION_KEY, - value: SpeciesUtils.getSelectedSpecies() + value: SpeciesUtils.getSelectedSpecies(), }, panelAddColumnBtnOptions: { - btnClass: 'btn-primary' - } - }, options)); + btnClass: 'btn-primary', + }, + ...options, + }); - if(!this.namedSet && options) { + if (!this.namedSet && options) { this.search = options.search; } } @@ -53,11 +58,14 @@ export abstract class ACommonList extends AStartList { protected buildFilter(): IParams { const filter: IParams = { - [Species.SPECIES_SESSION_KEY]: SpeciesUtils.getSelectedSpecies() + [Species.SPECIES_SESSION_KEY]: SpeciesUtils.getSelectedSpecies(), }; - Object.assign(filter, this.buildNamedSetFilters(`namedset4${((this.dataSource).namedSetEntityName || this.dataSource.entityName)}`, (key) => this.isValidFilter(key))); - if(this.search) { + Object.assign( + filter, + this.buildNamedSetFilters(`namedset4${(this.dataSource).namedSetEntityName || this.dataSource.entityName}`, (key) => this.isValidFilter(key)), + ); + if (this.search) { filter[this.dataSource.entityName] = this.search.ids; } diff --git a/src/views/AExpressionVsCopyNumber.ts b/src/views/AExpressionVsCopyNumber.ts index 23cb8f3..138d1bb 100644 --- a/src/views/AExpressionVsCopyNumber.ts +++ b/src/views/AExpressionVsCopyNumber.ts @@ -1,28 +1,28 @@ -/** - * Created by Holger Stitz on 21.07.2016. - */ - -import {Range} from 'phovea_core'; -import {FormSubtype} from '../provider/forms'; -import {ErrorAlertHandler, IFormElementDesc, FormElementType, ResolveUtils, AD3View} from 'tdp_core'; +import { ErrorAlertHandler, IFormElementDesc, FormElementType, AD3View, IDTypeManager, SelectionUtils, SelectOperation } from 'tdp_core'; import * as d3 from 'd3'; -import {SelectionUtils, SelectOperation} from 'phovea_core'; -import {ViewUtils} from './ViewUtils'; -import {jStat} from 'jstat'; +import { jStat } from 'jstat'; +import { FormSubtype } from '../provider/forms'; +import { ViewUtils } from './ViewUtils'; const spearmancoeffTitle = 'Spearman Coefficient: '; export abstract class AExpressionVsCopyNumber extends AD3View { - private readonly margin = {top: 40, right: 5, bottom: 50, left: 90}; + private readonly margin = { top: 40, right: 5, bottom: 50, left: 90 }; + private readonly width = 280 - this.margin.left - this.margin.right; + private readonly height = 320 - this.margin.top - this.margin.bottom; private $legend: d3.Selection; private x = d3.scale.linear(); + private y = d3.scale.log(); + private readonly color = ViewUtils.colorScale(); + private xAxis = d3.svg.axis().orient('bottom').scale(this.x); + private yAxis = d3.svg.axis().orient('left').scale(this.y).tickFormat(this.y.tickFormat(2, '.1f')); protected initImpl() { @@ -32,8 +32,8 @@ export abstract class AExpressionVsCopyNumber extends AD3View { return this.updateCharts(); } - protected abstract getExpressionValues(): {name: string, value: string, data: any}[]; - protected abstract getCopyNumberValues(): {name: string, value: string, data: any}[]; + protected abstract getExpressionValues(): { name: string; value: string; data: any }[]; + protected abstract getCopyNumberValues(): { name: string; value: string; data: any }[]; protected getParameterFormDescs(): IFormElementDesc[] { return [ @@ -42,19 +42,19 @@ export abstract class AExpressionVsCopyNumber extends AD3View { label: 'Expression', id: FormSubtype.FORM_EXPRESSION_SUBTYPE_ID, options: { - optionsData: this.getExpressionValues() + optionsData: this.getExpressionValues(), }, - useSession: false + useSession: false, }, { type: FormElementType.SELECT, label: 'Copy Number', id: FormSubtype.FORM_COPYNUMBER_SUBTYPE_ID, options: { - optionsData: this.getCopyNumberValues() + optionsData: this.getCopyNumberValues(), }, - useSession: false - } + useSession: false, + }, ]; } @@ -83,12 +83,13 @@ export abstract class AExpressionVsCopyNumber extends AD3View { private updateCharts(updateAll = false) { this.setBusy(true); + // eslint-disable-next-line @typescript-eslint/no-this-alias const that = this; - const ids = this.selection.range.dim(0).asList(); - const idtype = this.selection.idtype; + const { ids } = this.selection; + const { idtype } = this.selection; const data: ICopyNumberDataFormat[] = ids.map((id) => { - return {id, geneName: '', rows: []}; + return { id, geneName: '', rows: [] }; }); const $ids = this.$node.selectAll('div.ids').data(data, (d) => d.id.toString()); @@ -96,26 +97,26 @@ export abstract class AExpressionVsCopyNumber extends AD3View { // decide whether to load data for newly added items // or to reload the data for all items (e.g. due to parameter change) - const enterOrUpdateAll = (updateAll) ? $ids : $idsEnter; + const enterOrUpdateAll = updateAll ? $ids : $idsEnter; enterOrUpdateAll.each(function (this: HTMLElement, d) { const $id = d3.select(this); - const promise = ResolveUtils.resolveId(idtype, d.id, that.idType) + const promise = IDTypeManager.getInstance() + .mapOneNameToFirstName(idtype, d.id, that.idType) .then((name) => Promise.all([that.loadData(name), that.loadFirstName(name)])); // on error - promise.catch(ErrorAlertHandler.getInstance().errorAlert) - .catch((error) => { - console.error(error); - that.setBusy(false); - }); + promise.catch(ErrorAlertHandler.getInstance().errorAlert).catch((error) => { + console.error(error); + that.setBusy(false); + }); // on success promise.then((input: any[]) => { d.rows = that.filterZeroValues(input[0]); d.geneName = input[1]; - //console.log('loaded data for', d.geneName); + // console.log('loaded data for', d.geneName); that.initChart($id); that.resizeChart($id); @@ -125,7 +126,9 @@ export abstract class AExpressionVsCopyNumber extends AD3View { }); }); - $ids.exit().remove() + $ids + .exit() + .remove() .each(function (d) { that.setBusy(false); }); @@ -141,79 +144,72 @@ export abstract class AExpressionVsCopyNumber extends AD3View { return; } - const svg = $parent.append('svg') - .append('g') - .attr('transform', 'translate(' + this.margin.left + ',' + this.margin.top + ')'); + const svg = $parent.append('svg').append('g').attr('transform', `translate(${this.margin.left},${this.margin.top})`); - svg.append('g') - .attr('class', 'title') - .attr('transform', 'translate(0,' + this.height + ')'); + svg.append('g').attr('class', 'title').attr('transform', `translate(0,${this.height})`); - svg.append('text') - .attr('class', 'title') - .style('text-anchor', 'middle'); + svg.append('text').attr('class', 'title').style('text-anchor', 'middle'); - svg.append('g') - .attr('class', 'x axis') - .attr('transform', 'translate(0,' + this.height + ')'); + svg.append('g').attr('class', 'x axis').attr('transform', `translate(0,${this.height})`); - svg.append('text') - .attr('class', 'x label') - .style('text-anchor', 'middle') - .text(this.getParameter(FormSubtype.FORM_COPYNUMBER_SUBTYPE_ID).name); + svg.append('text').attr('class', 'x label').style('text-anchor', 'middle').text(this.getParameter(FormSubtype.FORM_COPYNUMBER_SUBTYPE_ID).name); - svg.append('g') - .attr('class', 'y axis'); + svg.append('g').attr('class', 'y axis'); - svg.append('text') + svg + .append('text') .attr('class', 'y label') .attr('transform', 'rotate(-90)') .attr('dy', '1em') .style('text-anchor', 'middle') .text(this.getParameter(FormSubtype.FORM_EXPRESSION_SUBTYPE_ID).name); - $parent.append('div').classed('statistics', true) - .append('div') - .attr('class', 'spearmancoeff'); - } + $parent.append('div').classed('statistics', true).append('div').attr('class', 'spearmancoeff'); + } private resizeChart($parent: d3.Selection) { this.x.range([0, this.width]); this.y.range([this.height, 0]); - const svg = $parent.select('svg') + const svg = $parent + .select('svg') .attr('width', this.width + this.margin.left + this.margin.right) .attr('height', this.height + this.margin.top + this.margin.bottom); - svg.select('text.title').attr('transform', 'translate(' + (this.width / 2) + ' ,' + -0.25 * this.margin.top + ')'); + svg.select('text.title').attr('transform', `translate(${this.width / 2} ,${-0.25 * this.margin.top})`); svg.select('g.x.axis').call(this.xAxis); svg.select('g.y.axis').call(this.yAxis); - svg.select('text.x.label').attr('transform', 'translate(' + (this.width / 2) + ' ,' + (this.height + 0.75 * this.margin.bottom) + ')'); - svg.select('text.y.label').attr('y', 0 - this.margin.left).attr('x', 0 - (this.height / 2)); + svg.select('text.x.label').attr('transform', `translate(${this.width / 2} ,${this.height + 0.75 * this.margin.bottom})`); + svg + .select('text.y.label') + .attr('y', 0 - this.margin.left) + .attr('x', 0 - this.height / 2); // shift also the points on resizing // causes the d3 error: ` attribute cx: Expected length, "NaN".` - /*svg.selectAll('.mark') + /* svg.selectAll('.mark') .transition().attr({ cx: (d) => this.x(d.expression), cy: (d) => this.y(d.cn), - });*/ + }); */ } private updateChartData($parent: d3.Selection) { - const data: ICopyNumberDataFormat = $parent.datum(); - const geneName = data.geneName; + const { geneName } = data; const rows = data.rows.slice(); // sort missing colors to the front - rows.sort((a, b) => a.color === b.color ? 0 : (a.color === null ? -1 : (b.color === null ? 1 : 0))); + rows.sort((a, b) => (a.color === b.color ? 0 : a.color === null ? -1 : b.color === null ? 1 : 0)); this.x.domain([0, d3.max(rows, (d) => d.cn)]); this.y.domain([1, d3.max(rows, (d) => d.expression)]).clamp(true); - ViewUtils.integrateColors(this.color, rows.map((d) => d.color)); + ViewUtils.integrateColors( + this.color, + rows.map((d) => d.color), + ); ViewUtils.legend(this.$legend.node(), this.color); const $g = $parent.select('svg g'); @@ -224,8 +220,7 @@ export abstract class AExpressionVsCopyNumber extends AD3View { $g.select('g.x.axis').call(this.xAxis); $g.select('g.y.axis').call(this.yAxis); - - let title = 'No data for ' + geneName; + let title = `No data for ${geneName}`; if (rows[0]) { title = geneName; } @@ -233,42 +228,57 @@ export abstract class AExpressionVsCopyNumber extends AD3View { // statistics const formatter = d3.format('.4f'); - const spearmancoeff = jStat.jStat.spearmancoeff(rows.map((d) => d.cn), rows.map((d) => d.expression)); + const spearmancoeff = jStat.jStat.spearmancoeff( + rows.map((d) => d.cn), + rows.map((d) => d.expression), + ); $parent.select('div.statistics .spearmancoeff').text(spearmancoeffTitle + formatter(spearmancoeff)); const marks = $g.selectAll('.mark').data(rows); - marks.enter().append('circle') + marks + .enter() + .append('circle') .classed('mark', true) .attr('r', 2) .on('click', (d) => { - const target: EventTarget = (d3.event).target; + const { target } = d3.event; const selectOperation = SelectionUtils.toSelectOperation(d3.event); const oldSelection = this.getItemSelection(); - const id: number = d._id; - const newSelection = SelectionUtils.integrateSelection(oldSelection.range, [id], selectOperation); + const { id } = d; + const newSelection = SelectionUtils.integrateSelection(oldSelection.ids, [id], selectOperation); if (selectOperation === SelectOperation.SET) { d3.selectAll('circle.mark.clicked').classed('clicked', false); } d3.select(target).classed('clicked', selectOperation !== SelectOperation.REMOVE); this.select(newSelection); - }).append('title'); + }) + .append('title'); - marks.attr('data-id', (d) => d._id); + marks.attr('data-id', (d) => d.id); marks.attr('data-color', (d) => String(d.color)); marks.classed('disabled', false); // show all and reset filtering - marks.select('title').text((d) => `${d.samplename} (${this.getParameter(FormSubtype.FORM_COPYNUMBER_SUBTYPE_ID).name}: ${d.cn}, ${this.getParameter(FormSubtype.FORM_EXPRESSION_SUBTYPE_ID).name}: ${d.expression}, color: ${d.color})`); - marks.transition().attr({ - cx: (d) => this.x(d.cn), - cy: (d) => this.y(d.expression), - }).style('fill', (d) => d.color ? this.color(d.color) : null); + marks + .select('title') + .text( + (d) => + `${d.samplename} (${this.getParameter(FormSubtype.FORM_COPYNUMBER_SUBTYPE_ID).name}: ${d.cn}, ${ + this.getParameter(FormSubtype.FORM_EXPRESSION_SUBTYPE_ID).name + }: ${d.expression}, color: ${d.color})`, + ); + marks + .transition() + .attr({ + cx: (d) => this.x(d.cn), + cy: (d) => this.y(d.expression), + }) + .style('fill', (d) => (d.color ? this.color(d.color) : null)); marks.exit().remove(); } - protected abstract select(r: Range): void; - + protected abstract select(ids: string[]): void; } export interface ICopyNumberDataFormatRow { @@ -276,11 +286,11 @@ export interface ICopyNumberDataFormatRow { expression: number; color?: string; cn: number; - _id: number; + id: string; } export interface ICopyNumberDataFormat { - id: number; + id: string; geneName: string; rows: ICopyNumberDataFormatRow[]; } diff --git a/src/views/AOncoPrint.ts b/src/views/AOncoPrint.ts index c2844cf..54943b3 100644 --- a/src/views/AOncoPrint.ts +++ b/src/views/AOncoPrint.ts @@ -2,21 +2,15 @@ * Created by Samuel Gratzl on 27.04.2016. */ - -import {Categories} from '../common/Categories'; -import {select, format, event as d3event, Selection} from 'd3'; -import {SelectionUtils, SelectOperation} from 'phovea_core'; -import {IDType} from 'phovea_core'; -import {Range} from 'phovea_core'; +import { select, format, event as d3event, Selection } from 'd3'; +import { IDTypeManager, SelectionUtils, SelectOperation, IDType, IView, AView, ErrorAlertHandler } from 'tdp_core'; import * as $ from 'jquery'; +import { Categories } from '../common/Categories'; import 'jquery-ui/ui/widgets/sortable'; -import {IView, AView} from 'tdp_core'; -import {ResolveUtils} from 'tdp_core'; -import {ErrorAlertHandler} from 'tdp_core'; export interface ISample { name: string; - id: number; + id: string; } export interface IDataFormatRow { @@ -24,26 +18,26 @@ export interface IDataFormatRow { cn: number; expr: number; aa_mutated: boolean; - sampleId: number; + sampleId: string; } export interface IDataFormat { - id: number; + id: string; geneName: string; ensg: string; alterationFreq: number; - //with loaded rows + // with loaded rows promise: Promise; rows: IDataFormatRow[]; } -function unknownSample(sample: string, sampleId: number): IDataFormatRow { +function unknownSample(sample: string, sampleId: string): IDataFormatRow { return { name: sample, sampleId, cn: Categories.unknownCopyNumberValue, // unknown --> see Common. expr: 0, - aa_mutated: Categories.unknownMutationValue // unknown + aa_mutated: Categories.unknownMutationValue, // unknown }; } @@ -65,34 +59,38 @@ function computeAlterationFrequency(rows: IDataFormatRow[]) { // reduce and compute both // amplified += 1 if isMutated or isCopyNumberAltered // total += if hasData - const [amplified, total] = rows.reduce(([amplified, total], r) => [amplified + ((isMutated(r) || isCopyNumberAltered(r)) ? 1 : 0), total + (hasData(r) ? 1 : 0)], [0, 0]); - //console.log(amplified, total); - return (total === 0) ? 0 : amplified / total; // handle division by 0 + const [amplified, total] = rows.reduce(([a, t], r) => [a + (isMutated(r) || isCopyNumberAltered(r) ? 1 : 0), t + (hasData(r) ? 1 : 0)], [0, 0]); + // console.log(amplified, total); + return total === 0 ? 0 : amplified / total; // handle division by 0 } -const FIRST_IS_NULL = 1; //null at the end +const FIRST_IS_NULL = 1; // null at the end function compareCNV(a: number, b: number) { // order: >0, <0, 0, NaN if (a === b) { return 0; } - if (a === undefined || a === null || isNaN(a)) { + if (a === undefined || a === null || Number.isNaN(a)) { return FIRST_IS_NULL; } - if (b === undefined || b === null || isNaN(b)) { + if (b === undefined || b === null || Number.isNaN(b)) { return -FIRST_IS_NULL; } - if (a > 0) { // b is 0 or < 0 + if (a > 0) { + // b is 0 or < 0 return -1; } - if (b > 0) { // a is 0 or < 0 + if (b > 0) { + // a is 0 or < 0 return 1; } - if (a < 0) { // b is 0 + if (a < 0) { + // b is 0 return -1; } - if (b < 0) { // a is 0 + if (b < 0) { + // a is 0 return 1; } return 0; @@ -115,27 +113,29 @@ function compareMutation(a: boolean, b: boolean) { function sort(sampleList: string[], rows: IDataFormatRow[][]) { const rowLookups: any[] = rows.map((row) => { const r = {}; - row.forEach((d) => r[d.name] = d); + row.forEach((d) => (r[d.name] = d)); return r; }); - //sort such that missing values are in the end - //hierarchy: cn, mut, expression + // sort such that missing values are in the end + // hierarchy: cn, mut, expression function compare(a: string, b: string) { for (const row of rowLookups) { const aRow: IDataFormatRow = row[a]; const bRow: IDataFormatRow = row[b]; - { // undefined - if (aRow === bRow) { //e.g. both undefined - continue; - } - if (aRow === undefined || aRow === null) { - return FIRST_IS_NULL; //for a not defined -> bigger - } - if (bRow === undefined || bRow === null) { - return -FIRST_IS_NULL; - } + + // undefined + if (aRow === bRow) { + // e.g. both undefined + continue; + } + if (aRow === undefined || aRow === null) { + return FIRST_IS_NULL; // for a not defined -> bigger } - //first condition can be false positive, null vs 'null', so if both are missing don't compare + if (bRow === undefined || bRow === null) { + return -FIRST_IS_NULL; + } + + // first condition can be false positive, null vs 'null', so if both are missing don't compare if (aRow.cn !== bRow.cn && !(isMissingCNV(aRow.cn) && isMissingCNV(bRow.cn))) { return compareCNV(aRow.cn, bRow.cn); } @@ -145,7 +145,7 @@ function sort(sampleList: string[], rows: IDataFormatRow[][]) { // ignore not encoded expression value // if (a_row.expr !== b_row.expr) { // return compareExpression(a_row.expr, b_row.expr); - //} + // } } // fallback to the name return a.localeCompare(b); @@ -160,7 +160,6 @@ function byAlterationFrequency(a: IDataFormat, b: IDataFormat) { } export abstract class AOncoPrint extends AView { - private $table: Selection; private sampleListPromise: Promise = null; @@ -169,14 +168,16 @@ export abstract class AOncoPrint extends AView { * flag if the user specified the gene sorting order * @type {boolean} */ - private manuallyResorted: boolean = false; + private manuallyResorted = false; async init(params: HTMLElement, onParameterChange: (name: string, value: any, previousValue: any) => Promise) { await super.init(params, onParameterChange); // inject stats - const base = params.querySelector('form')|| params; - base.insertAdjacentHTML('afterbegin', ` + const base = params.querySelector('form') || params; + base.insertAdjacentHTML( + 'afterbegin', + `
@@ -185,7 +186,8 @@ export abstract class AOncoPrint extends AView {
-
`); +
`, + ); let s = 0; const scaleElem = base.lastElementChild!; @@ -227,10 +229,7 @@ export abstract class AOncoPrint extends AView { const $node = select(this.node); $node.classed('oncoPrint', true); - this.$table = $node - .append('div').classed('geneTableWrapper', true) - .append('table') - .append('tbody'); + this.$table = $node.append('div').classed('geneTableWrapper', true).append('table').append('tbody'); const $legend = $node.append('div').classed('legend', true); @@ -249,8 +248,8 @@ export abstract class AOncoPrint extends AView { Categories.mutationCat.forEach((d) => { $mutLegend.append('li').attr('data-mut', d.value).text(d.name); }); - // append the legend for missing values - $mutLegend.append('li').attr('data-mut', Categories.unknownMutationValue ).text('Missing Values'); + // append the legend for missing values + $mutLegend.append('li').attr('data-mut', Categories.unknownMutationValue).text('Missing Values'); $node.append('div').attr('class', 'alert alert-info alert-dismissible').attr('role', 'alert').html(` @@ -275,25 +274,25 @@ export abstract class AOncoPrint extends AView { private updateChart(updateAll = false) { this.setBusy(true); - const ids = this.selection.range.dim(0).asList(); - const idtype = this.selection.idtype; + const { ids } = this.selection; + const { idtype } = this.selection; - const empty = (id) => ({id, geneName: '', ensg: '', alterationFreq: 0, rows: [], promise: null}); + const empty = (id) => ({ id, geneName: '', ensg: '', alterationFreq: 0, rows: [], promise: null }); // merge the old rows with the current selection - const merge = (ids: number[], old: IDataFormat[]) => { + const merge = (i: string[], old: IDataFormat[]) => { if (old.length === 0) { - return ids.map(empty); + return i.map(empty); } - const lookup = new Map(); + const lookup = new Map(); old.forEach((d) => lookup.set(d.id, d)); if (this.manuallyResorted) { - //different strategy if already resorted try to keep the original sorting as good as possible - //keep old + newly added ones - const existing = old.filter((d) => ids.indexOf(d.id) >= 0); - const added = ids.filter((id) => !lookup.has(id)).map((id) => empty(id)); + // different strategy if already resorted try to keep the original sorting as good as possible + // keep old + newly added ones + const existing = old.filter((d) => i.indexOf(d.id) >= 0); + const added = i.filter((id) => !lookup.has(id)).map((id) => empty(id)); return existing.concat(added); } - return ids.map((id) => lookup.get(id) || empty(id)); + return i.map((id) => lookup.get(id) || empty(id)); }; const data: IDataFormat[] = merge(ids, this.$table.selectAll('tr.gene').data()); @@ -303,22 +302,20 @@ export abstract class AOncoPrint extends AView { // decide whether to load data for newly added items // or to reload the data for all items (e.g. due to parameter change) - const enterOrUpdateAll = (updateAll) ? $ids : $idsEnter; + const enterOrUpdateAll = updateAll ? $ids : $idsEnter; const renderRow = ($id: Selection, d: IDataFormat) => { - const promise = (d.ensg ? Promise.resolve(d.ensg) : ResolveUtils.resolveId(idtype, d.id, this.idType)) - .then((ensg: string) => { - d.ensg = ensg; - return Promise.all([ - this.loadRows(ensg), // load always may have changed - d.geneName || this.loadFirstName(ensg), - this.sampleListPromise - ]); - }); + const promise = (d.ensg ? Promise.resolve(d.ensg) : IDTypeManager.getInstance().mapOneNameToFirstName(idtype, d.id, this.idType)).then((ensg: string) => { + d.ensg = ensg; + return Promise.all([ + this.loadRows(ensg), // load always may have changed + d.geneName || this.loadFirstName(ensg), + this.sampleListPromise, + ]); + }); // on error - promise.catch(ErrorAlertHandler.getInstance().errorAlert) - .catch(this.logErrorAndMarkReady.bind(this)); + promise.catch(ErrorAlertHandler.getInstance().errorAlert).catch(this.logErrorAndMarkReady.bind(this)); // on success d.promise = promise.then((input) => { @@ -336,7 +333,7 @@ export abstract class AOncoPrint extends AView { renderRow(select(this), d); }); - //assume that all data will have a promise + // assume that all data will have a promise // wait for all data and then sort the things Promise.all([>this.sampleListPromise].concat(data.map((d) => d.promise))).then((result: any[]) => { const samples: string[] = result.shift().map((d) => d.name); @@ -344,17 +341,23 @@ export abstract class AOncoPrint extends AView { if (!this.manuallyResorted) { rows.sort(byAlterationFrequency); } - const sortedSamples = sort(samples, rows.map((r) => r.rows)); + const sortedSamples = sort( + samples, + rows.map((r) => r.rows), + ); const $genes = this.sortCells(sortedSamples); if (!this.manuallyResorted) { - //sort genes=row by frequency + // sort genes=row by frequency $genes.sort(byAlterationFrequency); } }); - $ids.exit().remove().each(() => this.setBusy(false)); + $ids + .exit() + .remove() + .each(() => this.setBusy(false)); - //sortable + // sortable ($(this.$table.node())) // jquery .sortable({ handle: 'th.geneLabel', @@ -362,20 +365,23 @@ export abstract class AOncoPrint extends AView { items: '> :not(.nodrag)', update: () => { this.manuallyResorted = true; - //order has changed trigger a resort + // order has changed trigger a resort this.sampleListPromise.then((samples) => { const rows = this.$table.selectAll('tr.gene').data(); - const sortedSamples = sort(samples.map((d) => d.name), rows.map((r) => r.rows)); + const sortedSamples = sort( + samples.map((d) => d.name), + rows.map((r) => r.rows), + ); this.sortCells(sortedSamples); }); - } + }, }); } private updateChartData(data: IDataFormat, $parent: Selection, samples: ISample[]) { - //console.log(data.geneName); - let rows: IDataFormatRow[] = data.rows; + // console.log(data.geneName); + let { rows } = data; rows = this.alignData(rows, samples); // count amplification/deletions and divide by total number of rows @@ -387,7 +393,9 @@ export abstract class AOncoPrint extends AView { $th.exit().remove(); const $cells = $parent.selectAll('td.cell').data(rows); - $cells.enter().append('td') + $cells + .enter() + .append('td') .classed('cell', true) .on('click', (row) => { this.selectSample(row.sampleId, SelectionUtils.toSelectOperation(d3event)); @@ -396,7 +404,7 @@ export abstract class AOncoPrint extends AView { .classed('mut', true); $cells - .attr('data-title', (d) => d.name) //JSON.stringify(d)) + .attr('data-title', (d) => d.name) // JSON.stringify(d)) .attr('data-id', (d) => d.sampleId) .attr('data-cnv', (d) => String(isMissingCNV(d.cn) ? Categories.unknownCopyNumberValue : d.cn)) .attr('data-mut', (d) => String(isMissingMutation(d.aa_mutated) ? Categories.unknownMutationValue : d.aa_mutated)) @@ -409,49 +417,51 @@ export abstract class AOncoPrint extends AView { } } - private isSampleSelected(sampleId: number) { - const {range} = this.getItemSelection(); - return range.dim(0).contains(sampleId); + private isSampleSelected(sampleId: string) { + const { ids } = this.getItemSelection(); + return ids.includes(sampleId); } - private selectSample(sampleId: number, op: SelectOperation) { - const {range} = this.getItemSelection(); - const current = range.dim(0); - let newSelection: Range = null; - const single = Range.list([sampleId]); + private selectSample(sampleId: string, op: SelectOperation) { + const { ids } = this.getItemSelection(); + const current = ids; + let newSelection: string[] = null; switch (op) { case SelectOperation.SET: - if (current.contains(sampleId)) { - newSelection = Range.none(); + if (current.includes(sampleId)) { + newSelection = []; } else { - newSelection = single; + newSelection = [sampleId]; } break; case SelectOperation.REMOVE: - newSelection = range.without(single); + newSelection = current.filter((c) => c !== sampleId); break; case SelectOperation.ADD: - newSelection = range.union(single); + newSelection = current.concat([sampleId]); + break; + default: break; } this.updateSelectionHighlight(newSelection); - this.setItemSelection({range: newSelection, idtype: this.getSampleIdType()}); + this.setItemSelection({ ids: newSelection, idtype: this.getSampleIdType() }); } get itemIDType() { return this.getSampleIdType(); } - protected updateSelectionHighlight(range: Range) { - //use plain version to avoid data binding issues + protected updateSelectionHighlight(range: string[]) { const table = this.$table.node(); - if (range.isAll) { - Array.from(table.querySelectorAll('td.cell')).forEach((c) => c.classList.add('selected')); - return; - } + + // TODO:: Figure out how to implement this optimization (just how to check if the range has selected every possible row) + // if (range.isAll) { + // Array.from(table.querySelectorAll('td.cell')).forEach((c) => c.classList.add('selected')); + // return; + // } Array.from(table.querySelectorAll('td.cell')).forEach((c) => c.classList.remove('selected')); - range.dim(0).forEach((sampleId: number) => { + range.forEach((sampleId: string) => { Array.from(table.querySelectorAll(`td.cell[data-id="${sampleId}"]`)).forEach((c) => c.classList.add('selected')); }); } @@ -459,9 +469,9 @@ export abstract class AOncoPrint extends AView { protected abstract getSampleIdType(): IDType; private sortCells(sortedSamples: string[]) { - //name to index + // name to index const lookup: any = {}; - sortedSamples.forEach((d, i) => lookup[d] = i); + sortedSamples.forEach((d, i) => (lookup[d] = i)); const $genes = this.$table.selectAll('tr.gene'); $genes.selectAll('td.cell').sort((a: IDataFormatRow, b: IDataFormatRow) => { @@ -476,7 +486,7 @@ export abstract class AOncoPrint extends AView { private alignData(rows: IDataFormatRow[], samples: ISample[]) { // build hash map first for faster access const hash: any = {}; - rows.forEach((r) => hash[r.name] = r); + rows.forEach((r) => (hash[r.name] = r)); // align items --> fill missing values up to match sample list return samples.map((sample) => { diff --git a/src/views/GeneProxyView.ts b/src/views/GeneProxyView.ts index be50def..0aa0814 100644 --- a/src/views/GeneProxyView.ts +++ b/src/views/GeneProxyView.ts @@ -2,21 +2,19 @@ * Created by Holger Stitz on 06.12.2016. */ -import {ProxyView} from 'tdp_core'; -import {SpeciesUtils} from '../common/common'; -import {IFormSelectOption} from 'tdp_core'; +import { ProxyView, IFormSelectOption } from 'tdp_core'; +import { SpeciesUtils } from '../common/common'; /** * helper view for proxying an existing external website */ export class GeneProxyView extends ProxyView { - protected getSelectionSelectData(ensgs: string[]): Promise { return SpeciesUtils.createOptions(ensgs, this.selection, this.idType); } protected updateProxyView() { - const extra: any = this.options.extra; + const { extra }: { extra: any } = this.options; extra.species = SpeciesUtils.getSelectedSpecies(); super.updateProxyView(); } diff --git a/src/views/UniProtProxyView.ts b/src/views/UniProtProxyView.ts index 976f146..d115fd8 100644 --- a/src/views/UniProtProxyView.ts +++ b/src/views/UniProtProxyView.ts @@ -2,17 +2,15 @@ * Created by Holger Stitz on 07.12.2016. */ -import {GeneProxyView} from './GeneProxyView'; -import {FormElementType, IFormSelectElement} from 'tdp_core'; -import {ProxyView} from 'tdp_core'; -import {IDTypeManager} from 'phovea_core'; +import { FormElementType, IFormSelectElement, ProxyView, IDTypeManager } from 'tdp_core'; +import { GeneProxyView } from './GeneProxyView'; /** * helper view for proxying an existing external website */ export class UniProtProxyView extends GeneProxyView { - static SELECTED_UNIPROT_ITEM = 'externalUniProt'; + static readonly OUTPUT_IDTYPE = 'UniProt_human'; protected initImpl() { @@ -40,7 +38,7 @@ export class UniProtProxyView extends GeneProxyView { options: { optionsData: [], }, - useSession: true + useSession: true, }, { type: FormElementType.SELECT, @@ -49,14 +47,14 @@ export class UniProtProxyView extends GeneProxyView { options: { optionsData: [], }, - useSession: true - } + useSession: true, + }, ]; } protected parameterChanged(name: string) { super.parameterChanged(name); - if(name === ProxyView.FORM_ID_SELECTED_ITEM) { + if (name === ProxyView.FORM_ID_SELECTED_ITEM) { this.updateUniProtSelect() .catch(() => { this.updateProxyView(); @@ -64,8 +62,7 @@ export class UniProtProxyView extends GeneProxyView { .then(() => { this.updateProxyView(); }); - - } else if(name === UniProtProxyView.SELECTED_UNIPROT_ITEM) { + } else if (name === UniProtProxyView.SELECTED_UNIPROT_ITEM) { this.updateProxyView(); } } @@ -84,21 +81,18 @@ export class UniProtProxyView extends GeneProxyView { } private updateUniProtSelect(forceUseLastSelection = false) { - const selectedItemSelect:IFormSelectElement = (this.getParameterElement(UniProtProxyView.SELECTED_UNIPROT_ITEM)); + const selectedItemSelect: IFormSelectElement = this.getParameterElement(UniProtProxyView.SELECTED_UNIPROT_ITEM); const ensg = this.getParameter(ProxyView.FORM_ID_SELECTED_ITEM).value; - //convert to uid - return this.selection.idtype.map([ensg]).then((ids) => { - // convert to uniprot - return IDTypeManager.getInstance().mapToName(this.selection.idtype, ids, UniProtProxyView.OUTPUT_IDTYPE); - }).then((uniProtIds:string[][]) => { + return IDTypeManager.getInstance() + .mapOneNameToName(this.selection.idtype, ensg, UniProtProxyView.OUTPUT_IDTYPE) + .then((uniProtIds: string[]) => { // use uniProtIds[0] since we passed only one selected _id - if(uniProtIds[0] === null) { + if (uniProtIds === null) { return Promise.reject('Empty list of UniProt IDs'); - } else { - return Promise.all([uniProtIds[0], this.getUniProtSelectData(uniProtIds[0])]); } + return Promise.all([uniProtIds, this.getUniProtSelectData(uniProtIds)]); }) .catch((reject) => { selectedItemSelect.setVisible(false); @@ -107,7 +101,7 @@ export class UniProtProxyView extends GeneProxyView { }) .then((args: any[]) => { const uniProtIds = args[0]; // use names to get the last selected element - const data = <{value: string, name: string, data: string}[]>args[1]; + const data = <{ value: string; name: string; data: string }[]>args[1]; selectedItemSelect.setVisible(true); @@ -117,22 +111,22 @@ export class UniProtProxyView extends GeneProxyView { selectedItemSelect.updateOptionElements(data); // select last item from incoming `selection.range` - if(forceUseLastSelection) { - selectedItemSelect.value = data.filter((d) => d.value === uniProtIds[uniProtIds.length-1])[0]; + if (forceUseLastSelection) { + selectedItemSelect.value = data.filter((d) => d.value === uniProtIds[uniProtIds.length - 1])[0]; - // otherwise try to restore the backup - } else if(bak !== null) { + // otherwise try to restore the backup + } else if (bak !== null) { selectedItemSelect.value = bak; } }); } - private getUniProtSelectData(uniProtIds: string[]): {value: string, name: string, data: string}[] { - if(uniProtIds === null) { + private getUniProtSelectData(uniProtIds: string[]): { value: string; name: string; data: string }[] { + if (uniProtIds === null) { return []; } - return uniProtIds.map((d:string) => ({value: d, name: d, data: d})); + return uniProtIds.map((d: string) => ({ value: d, name: d, data: d })); } protected updateProxyView() { diff --git a/src/views/ViewUtils.ts b/src/views/ViewUtils.ts index 2f8372f..0ae46c9 100644 --- a/src/views/ViewUtils.ts +++ b/src/views/ViewUtils.ts @@ -1,20 +1,18 @@ -import {scale as d3Scale} from 'd3'; - - +import { scale as d3Scale } from 'd3'; export class ViewUtils { - static base = d3Scale.category20().range().slice(); // splice out the orange since used for selection; + static removed = ViewUtils.base.splice(2, 2); - // reorder such that repeat after the primary colors - static colors = ViewUtils.base.filter((d, i) => i%2 === 0).concat(ViewUtils.base.filter((d, i) => i%2 === 1)); + // reorder such that repeat after the primary colors + static colors = ViewUtils.base.filter((d, i) => i % 2 === 0).concat(ViewUtils.base.filter((d, i) => i % 2 === 1)); static integrateColors(scale: d3Scale.Ordinal, colors: string[]) { const old = new Set(scale.domain()); colors = Array.from(new Set(colors.filter((d) => Boolean(d) && !old.has(d)))); // just valid ones colors.sort(); // sort by name - //append new ones + // append new ones scale.domain(scale.domain().concat(colors)); } @@ -29,15 +27,18 @@ export class ViewUtils { legend.innerHTML = ''; return; } - const cats = scale.domain().map((category) => { - return ` + const cats = scale + .domain() + .map((category) => { + return `
${category}
`; - }).join('\n'); - legend.innerHTML = ` + }) + .join('\n'); + legend.innerHTML = `
Hide/Show All @@ -47,16 +48,18 @@ export class ViewUtils { Unknown
`; - Array.from(legend.children).forEach((d, i) => d.addEventListener('click', () => { - const disabled = d.classList.toggle('disabled'); - if (i === 0) { - // all - Array.from(legend.children).forEach((d) => d.classList.toggle('disabled', disabled)); - Array.from(legend.parentElement.querySelectorAll(`.mark`)).forEach((s) => s.classList.toggle('disabled', disabled)); - } else { - const cat = scale.domain()[i - 1] || 'null'; - Array.from(legend.parentElement.querySelectorAll(`.mark[data-color="${cat}"]`)).forEach((s) => s.classList.toggle('disabled', disabled)); - } - })); + Array.from(legend.children).forEach((d, i) => + d.addEventListener('click', () => { + const disabled = d.classList.toggle('disabled'); + if (i === 0) { + // all + Array.from(legend.children).forEach((lgd) => lgd.classList.toggle('disabled', disabled)); + Array.from(legend.parentElement.querySelectorAll(`.mark`)).forEach((s) => s.classList.toggle('disabled', disabled)); + } else { + const cat = scale.domain()[i - 1] || 'null'; + Array.from(legend.parentElement.querySelectorAll(`.mark[data-color="${cat}"]`)).forEach((s) => s.classList.toggle('disabled', disabled)); + } + }), + ); } } diff --git a/tests/GeneIDTypeDetector.test.ts b/tests/GeneIDTypeDetector.test.ts index 80d3c75..a77055c 100644 --- a/tests/GeneIDTypeDetector.test.ts +++ b/tests/GeneIDTypeDetector.test.ts @@ -1,4 +1,4 @@ -import {GeneIDTypeDetector} from '../src/provider/GeneIDTypeDetector'; +import { GeneIDTypeDetector } from '../src/provider/GeneIDTypeDetector'; describe('GeneIDTypeDetector', () => { const accessor: (row: any) => string = (row: any) => row.toString(); @@ -36,14 +36,13 @@ describe('GeneIDTypeDetector', () => { it('Sample size smaller than data length', () => { const data = ['ENSG0000123', 'ENSG0000234', 'foo', 'bar']; - const sampleSize = 2; - expect(GeneIDTypeDetector.geneIDTypeDetector().detectIDType(data, accessor, sampleSize)).toEqual(1); // 0 because only the first two items will be checked they are EnsemblIDs + const samSize = 2; + expect(GeneIDTypeDetector.geneIDTypeDetector().detectIDType(data, accessor, samSize)).toEqual(1); // 0 because only the first two items will be checked they are EnsemblIDs }); it('Detect items from the beginning', () => { const data = ['foo', 'bar', 'ENSG0000123', 'ENSG0000234']; - const sampleSize = 2; - expect(GeneIDTypeDetector.geneIDTypeDetector().detectIDType(data, accessor, sampleSize)).toEqual(0); // 0 because only the first two items will be checked they are not EnsemblIDs + const samSize = 2; + expect(GeneIDTypeDetector.geneIDTypeDetector().detectIDType(data, accessor, samSize)).toEqual(0); // 0 because only the first two items will be checked they are not EnsemblIDs }); - }); diff --git a/tsconfig.eslint.json b/tsconfig.eslint.json new file mode 100644 index 0000000..f962b4e --- /dev/null +++ b/tsconfig.eslint.json @@ -0,0 +1,10 @@ +{ + "extends": "./tsconfig.json", + "include": [ + "src/**/*.ts", + "src/**/*.tsx", + "tsd.d.ts", + "tests/**/*.ts", + "tests/**/*.tsx", + ] +} diff --git a/tsconfig.json b/tsconfig.json index 2e06f21..db12bea 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -5,6 +5,7 @@ "importHelpers": true, "sourceMap": true, "declaration": true, + "declarationMap": true, "moduleResolution": "node", "jsx": "react", "allowJs": true, diff --git a/tslint.json b/tslint.json deleted file mode 100644 index ec45867..0000000 --- a/tslint.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "rules": { - "arrow-parens": true, - "ban": [ - true, - [ - "_", - "extend" - ], - [ - "_", - "isNull" - ], - [ - "_", - "isDefined" - ] - ], - "class-name": true, - "comment-format": false, - "curly": true, - "eofline": true, - "forin": true, - "indent": [ - true, - "spaces", - 2 - ], - "interface-name": true, - "jsdoc-format": true, - "label-position": true, - "max-line-length": false, - "member-ordering": [ - false, - { - "order": [ - "public-static-field", - "public-static-method", - "public-instance-field", - "public-constructor", - "public-instance-method", - "protected-static-field", - "protected-static-method", - "protected-instance-field", - "protected-constructor", - "protected-instance-method", - "private-static-field", - "private-static-method", - "private-instance-field", - "private-constructor", - "private-instance-method" - ] - } - ], - "new-parens": true, - "no-arg": true, - "no-bitwise": true, - "no-console": [ - true, - "debug", - "info", - "time", - "timeEnd", - "trace" - ], - "no-construct": true, - "no-debugger": true, - "no-duplicate-variable": true, - "no-empty": true, - "no-empty-interface": true, - "no-eval": true, - "no-reference": true, - "no-string-literal": true, - "no-string-throw": true, - "no-switch-case-fall-through": true, - "no-trailing-whitespace": true, - "no-unused-expression": true, - "no-use-before-declare": true, - "no-unsafe-finally": true, - "no-var-requires": true, - "no-var-keyword": true, - "one-line": [ - true, - "check-open-brace", - "check-catch", - "check-else", - "check-whitespace" - ], - "object-literal-shorthand": true, - "prefer-for-of": true, - "prefer-const": true, - "quotemark": [ - true, - "single", - "jsx-double" - ], - "radix": true, - "semicolon": [ - true, - "always" - ], - "triple-equals": [ - true, - "allow-null-check" - ], - "typedef": [ - false, - "callSignature", - "indexSignature", - "parameter", - "propertySignature", - "variableDeclarator" - ], - "typedef-whitespace": [ - true, - { - "call-signature": "nospace", - "index-signature": "nospace", - "parameter": "nospace", - "property-declaration": "nospace", - "variable-declaration": "nospace" - } - ], - "use-isnan": true, - "variable-name": [ - true, - "ban-keywords", - "check-format", - "allow-leading-underscore" - ], - "whitespace": [ - false, - "check-branch", - "check-decl", - "check-operator", - "check-separator", - "check-type" - ] - } -} diff --git a/typedoc.json b/typedoc.json index b2e2c18..38246e0 100644 --- a/typedoc.json +++ b/typedoc.json @@ -1,15 +1,7 @@ { - "mode": "modules", "out": "./build/docs", - "theme": "minimal", - "ignoreCompilerErrors": true, - "experimentalDecorators": true, - "emitDecoratorMetadata": true, - "preserveConstEnums": true, - "stripInternal": true, - "suppressExcessPropertyErrors": true, - "suppressImplicitAnyIndexErrors": true, + "theme": "default", "exclude": "tests/**/*.ts", "excludePrivate": true, "excludeExternals": true -} +} \ No newline at end of file