diff --git a/.eslintrc.js b/.eslintrc.js index 6fb3810..3930905 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,71 +1 @@ -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 +module.exports = require('visyn_scripts/config/eslintrc.template')({ tsconfigRootDir: __dirname }); diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index cf5fb43..d8c1817 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -4,5 +4,6 @@ on: [push, workflow_dispatch] jobs: build: - uses: datavisyn/github-workflows/.github/workflows/build-node.yml@main - secrets: inherit + uses: datavisyn/github-workflows/.github/workflows/build-node.yml@node16 + secrets: + DATAVISYN_BOT_REPO_TOKEN: ${{ secrets.DATAVISYN_BOT_REPO_TOKEN }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1720aab..f702c4b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,5 +4,5 @@ on: workflow_dispatch jobs: release: - uses: datavisyn/github-workflows/.github/workflows/release-source.yml@main + uses: datavisyn/github-workflows/.github/workflows/release-source.yml@node16 secrets: inherit diff --git a/.gitignore b/.gitignore index 101a208..60bc964 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,7 @@ /.eslintcache /.idea /build/ -/dist/tsBuildInfoFile +/dist/ /lib/ *.egg-info/ *.egg @@ -27,3 +27,4 @@ node_modules/ *.css /.cache-loader package-lock.json +/dist/ diff --git a/.prettierrc.js b/.prettierrc.js index a73b2a5..54dc948 100644 --- a/.prettierrc.js +++ b/.prettierrc.js @@ -1,6 +1 @@ -module.exports = { - "endOfLine": "auto", - "singleQuote": true, - "trailingComma": "all", - "printWidth": 160 -}; +module.exports = require('visyn_scripts/config/prettierrc.template') diff --git a/.yo-rc.json b/.yo-rc.json index bde9546..6a38352 100644 --- a/.yo-rc.json +++ b/.yo-rc.json @@ -13,9 +13,6 @@ }, "libraryAliases": {}, "libraryExternals": [], - "entries": { - "app": "./index.js" - }, "ignores": [], "today": "Sun, 06 Nov 2016 23:20:08 GMT", "promptValues": { diff --git a/dist/assets/previews/cansar.jpg b/dist/assets/previews/cansar.jpg deleted file mode 100644 index cf9b408..0000000 Binary files a/dist/assets/previews/cansar.jpg and /dev/null differ diff --git a/dist/assets/previews/clinvar.png b/dist/assets/previews/clinvar.png deleted file mode 100644 index 80d8b43..0000000 Binary files a/dist/assets/previews/clinvar.png and /dev/null differ diff --git a/dist/assets/previews/cosmic_banner.png b/dist/assets/previews/cosmic_banner.png deleted file mode 100644 index 71070c1..0000000 Binary files a/dist/assets/previews/cosmic_banner.png and /dev/null differ diff --git a/dist/assets/previews/ensembl.jpg b/dist/assets/previews/ensembl.jpg deleted file mode 100644 index 39c9b8f..0000000 Binary files a/dist/assets/previews/ensembl.jpg and /dev/null differ diff --git a/dist/assets/previews/genenames.jpg b/dist/assets/previews/genenames.jpg deleted file mode 100644 index 974a37d..0000000 Binary files a/dist/assets/previews/genenames.jpg and /dev/null differ diff --git a/dist/assets/previews/human_protein_atlas.jpg b/dist/assets/previews/human_protein_atlas.jpg deleted file mode 100644 index 499cf77..0000000 Binary files a/dist/assets/previews/human_protein_atlas.jpg and /dev/null differ diff --git a/dist/assets/previews/humanproteomemap.png b/dist/assets/previews/humanproteomemap.png deleted file mode 100644 index 83cfcec..0000000 Binary files a/dist/assets/previews/humanproteomemap.png and /dev/null differ diff --git a/dist/assets/previews/mouse-icon.png b/dist/assets/previews/mouse-icon.png deleted file mode 100644 index 0e7a9a9..0000000 Binary files a/dist/assets/previews/mouse-icon.png and /dev/null differ diff --git a/dist/assets/previews/open_targets.jpg b/dist/assets/previews/open_targets.jpg deleted file mode 100644 index 07bbf38..0000000 Binary files a/dist/assets/previews/open_targets.jpg and /dev/null differ diff --git a/dist/assets/previews/uniprot.jpg b/dist/assets/previews/uniprot.jpg deleted file mode 100644 index 6729923..0000000 Binary files a/dist/assets/previews/uniprot.jpg and /dev/null differ diff --git a/dist/common/Categories.d.ts b/dist/common/Categories.d.ts deleted file mode 100644 index 0830615..0000000 --- a/dist/common/Categories.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -/** - * Created by Samuel Gratzl on 11.05.2016. - */ -export declare namespace Categories { - const copyNumberCat: { - value: number; - name: string; - color: string; - border: string; - }[]; - const unknownCopyNumberValue: any; - const mutationCat: { - value: string; - name: string; - color: string; - border: string; - }[]; - 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 deleted file mode 100644 index 89cb83d..0000000 --- a/dist/common/Categories.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 3a2bb8f..0000000 --- a/dist/common/Categories.js +++ /dev/null @@ -1,26 +0,0 @@ -/** - * 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: 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'; -})(Categories || (Categories = {})); -//# sourceMappingURL=Categories.js.map \ No newline at end of file diff --git a/dist/common/Categories.js.map b/dist/common/Categories.js.map deleted file mode 100644 index 0be29b4..0000000 --- a/dist/common/Categories.js.map +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index e0c508b..0000000 --- a/dist/common/common.d.ts +++ /dev/null @@ -1,47 +0,0 @@ -/** - * Created by Samuel Gratzl on 11.05.2016. - */ -import { IDType, IFormSelectOption, ISelection } from 'tdp_core'; -interface IAvailableSpecies { - name: string; - value: string; - iconClass?: string; -} -interface ISpeciesFilterObject { - species: string; - [key: string]: any; -} -export declare namespace Species { - const availableSpecies: IAvailableSpecies[]; - const defaultSpecies: string; - const DEFAULT_ENTITY_TYPE = "Ensembl"; - const SPECIES_SESSION_KEY = "species"; -} -export interface IPostProcessor { - process: (importResults: { - [key: string]: any; - }, data: string[][]) => Promise; -} -export declare class SpeciesUtils { - static getSelectedSpecies(): string; - /** - * selects a human readable idtype for a given one that can be mapped - * @param idType - * @returns {Promise} - */ - static selectReadableIDType(idType: IDType): 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, ...) - */ - static convertGeneSymbolToEnsembl(): IPostProcessor; - /** - * Filters elements containing the selected species from the given data array by using the provided accessor function - * @param filter Object - * @returns Boolean - */ - 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 deleted file mode 100644 index 4b9f648..0000000 --- a/dist/common/common.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index bd76528..0000000 --- a/dist/common/common.js +++ /dev/null @@ -1,125 +0,0 @@ -/** - * Created by Samuel Gratzl on 11.05.2016. - */ -import { UserSession, IDTypeManager } from 'tdp_core'; -import { Categories } from './Categories'; -// 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' }, - ]; - Species.defaultSpecies = Species.availableSpecies[0].value; - Species.DEFAULT_ENTITY_TYPE = Categories.GENE_IDTYPE; - Species.SPECIES_SESSION_KEY = 'species'; -})(Species || (Species = {})); -export class SpeciesUtils { - static getSelectedSpecies() { - return UserSession.getInstance().retrieve(Species.SPECIES_SESSION_KEY, Species.defaultSpecies); - } - /** - * selects a human readable idtype for a given one that can be mapped - * @param idType - * @returns {Promise} - */ - static async selectReadableIDType(idType) { - 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}`); - if (!target) { - target = mapsTo.find((d) => d.name === targetMapping); - } - return target; - } - // TODO is there a nicer name for cell lines? - return null; - } - static mapToId(selection, target = null) { - if (target === null || selection.idtype.id === target.id) { - return selection.ids; - } - // assume mappable - return IDTypeManager.getInstance().mapNameToFirstName(selection.idtype, selection.ids, target); - } - static createOptions(ensgs, selection, base) { - 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) => { - 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], - })); - }); - }); - } - /** - * 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, ...) - */ - static convertGeneSymbolToEnsembl() { - return { - process: async function process(importResults, data) { - 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 - * @returns Boolean - */ - static filterSpecies(filter) { - return !filter.species || filter.species === SpeciesUtils.getSelectedSpecies(); - } -} -//# sourceMappingURL=common.js.map \ No newline at end of file diff --git a/dist/common/common.js.map b/dist/common/common.js.map deleted file mode 100644 index c412364..0000000 --- a/dist/common/common.js.map +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index faaa15a..0000000 --- a/dist/common/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -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 deleted file mode 100644 index 2f22f0b..0000000 --- a/dist/common/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"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/common/index.js b/dist/common/index.js deleted file mode 100644 index c953841..0000000 --- a/dist/common/index.js +++ /dev/null @@ -1,3 +0,0 @@ -export * from './Categories'; -export * from './common'; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/common/index.js.map b/dist/common/index.js.map deleted file mode 100644 index c137ea7..0000000 --- a/dist/common/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","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 deleted file mode 100644 index f005c80..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -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 deleted file mode 100644 index 33d2bb7..0000000 --- a/dist/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"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/index.js b/dist/index.js deleted file mode 100644 index 9f739af..0000000 --- a/dist/index.js +++ /dev/null @@ -1,4 +0,0 @@ -export * from './common'; -export * from './provider'; -export * from './views'; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 123bddc..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","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 deleted file mode 100644 index 5cdef86..0000000 --- a/dist/phovea.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -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 deleted file mode 100644 index 61593f0..0000000 --- a/dist/phovea.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 9b5d261..0000000 --- a/dist/phovea.js +++ /dev/null @@ -1,170 +0,0 @@ -/* ***************************************************************************** - * Caleydo - Visualization for Molecular Biology - http://caleydo.org - * Copyright (c) The Caleydo Team. All rights reserved. - * Licensed under the new BSD license, available at http://caleydo.org/license - **************************************************************************** */ -export default function (registry) { - function tdpView(id, loader, desc, ...descs) { - registry.push('tdpView', id, loader, Object.assign(desc, ...descs)); - } - // proxy pages - tdpView('ensembl_org', () => import('./views/GeneProxyView'), { - factory: 'new GeneProxyView', - name: 'Ensembl', - site: 'https://ensembl.org/{species}/Gene/Summary?g={gene}', - argument: 'gene', - idtype: 'Ensembl', - selection: 'chooser', - preview: () => import('./assets/previews/ensembl.jpg'), - group: { - name: 'External Resources', - // 'order: 0 - }, - description: 'Show information on your search from Ensembl.org', - topics: ['external'], - }); - // doesn't work properly - // tdpView('cansar', () => import('./views/UniProtProxyView'), { - // name: 'canSAR', - // site: 'https://cansar.icr.ac.uk/cansar/molecular-targets/{gene}/', - // argument: 'gene', - // idtype: 'Ensembl', - // selection: 'chooser', - // preview: () => import('./assets/previews/cansar.jpg'), - // group: { - // name: 'External Resources' - // // 'order: 60 - // }, - // filter: { - // species: 'human' - // }, - // description: 'Show information on your search from the canSAR page', - // topics: ['external'] - // }); - tdpView('uniprot', () => import('./views/UniProtProxyView'), { - factory: 'new UniProtProxyView', - name: 'UniProt', - site: 'https://www.uniprot.org/uniprot/{gene}/', - argument: 'gene', - idtype: 'Ensembl', - selection: 'chooser', - openExternally: true, - preview: () => import('./assets/previews/uniprot.jpg'), - group: { - name: 'External Resources', - // 'order: 70 - }, - description: 'Show information on your search from UniProt', - topics: ['uniprot', 'external'], - }); - tdpView('targetvalidation', () => import('./views/GeneProxyView'), { - factory: 'new GeneProxyView', - name: 'Open Targets', - site: 'https://www.targetvalidation.org/target/{gene}', - argument: 'gene', - idtype: 'Ensembl', - selection: 'chooser', - preview: () => import('./assets/previews/open_targets.jpg'), - group: { - name: 'External Resources', - // 'order: 40 - }, - filter: { - species: 'human', - }, - description: 'Show information on your search from Open Targets', - topics: ['external'], - }); - tdpView('proteinatlas_org', () => import('./views/GeneProxyView'), { - factory: 'new GeneProxyView', - name: 'Human Protein Atlas', - site: 'https://proteinatlas.org/{gene}', - argument: 'gene', - idtype: 'Ensembl', - selection: 'chooser', - openExternally: true, - preview: () => import('./assets/previews/human_protein_atlas.jpg'), - group: { - name: 'External Resources', - // 'order: 50 - }, - filter: { - species: 'human', - }, - description: 'Show information on your search from the Human Protein Atlas', - topics: ['protein', 'external'], - }); - const common = { - argument: 'gene', - idtype: 'GeneSymbol', - readableIDType: 'GeneSymbol', - selection: 'chooser', - group: { - name: 'External Resources', - // 'order: 60 - }, - filter: { - species: 'human', - }, - topics: ['external'], - }; - // tdpView('humanproteomemap', () => import('tdp_core/dist/views/ChooserProxyView'), { - // name: 'Human Proteome Map', - // site: 'http://www.humanproteomemap.org/protein.php?hpm_id={gene}', - // helpUrl: 'http://www.humanproteomemap.org/faqs.html', - // preview: () => import('./assets/previews/humanproteomemap.png'), - // description: 'Proteomics data from the human proteome map' - // }, common, { - // idtype: 'EntrezGene', - // readableIDType: 'GeneSymbol', - // 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'], - }); - registry.push('importPostProcessor', 'GeneSymbol', () => import('./common/common').then((c) => c.SpeciesUtils), { - factory: 'convertGeneSymbolToEnsembl', - }); - registry.push('tdpListFilters', 'SpeciesFilter', () => import('./common/common').then((c) => c.SpeciesUtils), { - factory: 'filterSpecies', - }); - 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'); }, { - // factory: 'new SpeciesSelectorMenuSection', - // name: 'Predefined Datasets', - // cssClass: 'speciesSelector', - // priority: 10 - // }); - /// #endif -} -//# sourceMappingURL=phovea.js.map \ No newline at end of file diff --git a/dist/phovea.js.map b/dist/phovea.js.map deleted file mode 100644 index ed1d6f1..0000000 --- a/dist/phovea.js.map +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 6c0a58f..0000000 --- a/dist/provider/FieldUtils.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { INamedSet, IDType } from 'tdp_core'; -export declare class FieldUtils { - /** - * converts the field in the given array 2^ - * @param rows - * @param field - * @returns {[any,any,any,any,any]} - */ - static convertLog2ToLinear(rows: any[], field: string): any[]; - /** - * limit the number of score rows if it doesn't exceed some criteria - */ - 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 deleted file mode 100644 index 4bf1e9b..0000000 --- a/dist/provider/FieldUtils.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index bcee680..0000000 --- a/dist/provider/FieldUtils.js +++ /dev/null @@ -1,39 +0,0 @@ -import { ENamedSetType } from 'tdp_core'; -export class FieldUtils { - /** - * converts the field in the given array 2^ - * @param rows - * @param field - * @returns {[any,any,any,any,any]} - */ - static convertLog2ToLinear(rows, field) { - console.log('convert log2 score to linear scale'); - return rows.map((row) => { - row[field] = 2 ** row[field]; - return row; - }); - } - /** - * limit the number of score rows if it doesn't exceed some criteria - */ - static limitScoreRows(param, ids, idTypeOfIDs, entity, maxDirectRows, namedSet) { - if (ids.length < maxDirectRows) { - param[`filter_rangeOf${idTypeOfIDs.id}4${entity}`] = ids; - return; - } - if (namedSet) { - // propagate named sets - 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; - } - } - } -} -//# sourceMappingURL=FieldUtils.js.map \ No newline at end of file diff --git a/dist/provider/FieldUtils.js.map b/dist/provider/FieldUtils.js.map deleted file mode 100644 index 2a7d240..0000000 --- a/dist/provider/FieldUtils.js.map +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 37e0570..0000000 --- a/dist/provider/GeneIDTypeDetector.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -export declare 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. - * - * @param data Data array with objects or strings - * @param accessor Accessor function to retrieve a certain field from a data item - * @param sampleSize Number of samples to test; can be used to limit iterations for large arrays - */ - static detectIDType(data: any[], accessor: (row: any) => string, sampleSize: number): number; - static 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 deleted file mode 100644 index 683f285..0000000 --- a/dist/provider/GeneIDTypeDetector.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 27bf891..0000000 --- a/dist/provider/GeneIDTypeDetector.js +++ /dev/null @@ -1,35 +0,0 @@ -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. - * - * @param data Data array with objects or strings - * @param accessor Accessor function to retrieve a certain field from a data item - * @param sampleSize Number of samples to test; can be used to limit iterations for large arrays - */ - static detectIDType(data, accessor, sampleSize) { - const testSize = Math.min(data.length, sampleSize); - if (testSize <= 0) { - return 0; - } - let foundIDTypes = 0; - 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.indexOf('ENS') === 0 || v.indexOf('LRG') === 0) { - ++foundIDTypes; - } - ++validSize; - } - return foundIDTypes / validSize; - } - static geneIDTypeDetector() { - return { - detectIDType: GeneIDTypeDetector.detectIDType, - }; - } -} -//# sourceMappingURL=GeneIDTypeDetector.js.map \ No newline at end of file diff --git a/dist/provider/GeneIDTypeDetector.js.map b/dist/provider/GeneIDTypeDetector.js.map deleted file mode 100644 index 95cbc98..0000000 --- a/dist/provider/GeneIDTypeDetector.js.map +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 6739e62..0000000 --- a/dist/provider/SearchProvider.d.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { IResult, ISearchProvider } from 'tdp_core'; -export declare class SearchProvider implements ISearchProvider { - protected readonly dataSource: { - db: string; - base: string; - entityName: string; - }; - constructor(dataSource: { - db: string; - base: string; - entityName: string; - }); - get searchView(): string; - get verifyView(): string; - protected static mapItems(result: any): IResult; - search(query: string, page: number, pageSize: number): Promise<{ - items: IResult[]; - more: boolean; - }>; - 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 deleted file mode 100644 index 5b3aa2f..0000000 --- a/dist/provider/SearchProvider.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index a8fe67a..0000000 --- a/dist/provider/SearchProvider.js +++ /dev/null @@ -1,38 +0,0 @@ -import { RestBaseUtils } from 'tdp_core'; -import { SpeciesUtils } from '../common/common'; -export class SearchProvider { - constructor(dataSource) { - this.dataSource = dataSource; - } - get searchView() { - return `${this.dataSource.base}_items`; - } - get verifyView() { - return `${this.dataSource.base}_items_verify`; - } - static mapItems(result) { - return result; - } - search(query, page, pageSize) { - return RestBaseUtils.getTDPLookup(this.dataSource.db, this.searchView, { - column: this.dataSource.entityName, - species: SpeciesUtils.getSelectedSpecies(), - query, - page, - limit: pageSize, - }).then((data) => { - return { - items: data.items.map(SearchProvider.mapItems), - more: data.more, - }; - }); - } - validate(query) { - return RestBaseUtils.getTDPData(this.dataSource.db, `${this.verifyView}/filter`, { - column: this.dataSource.entityName, - species: SpeciesUtils.getSelectedSpecies(), - [`filter_${this.dataSource.entityName}`]: query, - }).then((data) => data.map(SearchProvider.mapItems)); - } -} -//# sourceMappingURL=SearchProvider.js.map \ No newline at end of file diff --git a/dist/provider/SearchProvider.js.map b/dist/provider/SearchProvider.js.map deleted file mode 100644 index 9d1dd27..0000000 --- a/dist/provider/SearchProvider.js.map +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 25f1054..0000000 --- a/dist/provider/forms.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -/** - * Created by sam on 06.03.2017. - */ -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 deleted file mode 100644 index 74a2ecc..0000000 --- a/dist/provider/forms.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index c248559..0000000 --- a/dist/provider/forms.js +++ /dev/null @@ -1,10 +0,0 @@ -/** - * 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'; - FormSubtype.FORM_EXPRESSION_SUBTYPE_ID = 'expression_subtype'; -})(FormSubtype || (FormSubtype = {})); -//# sourceMappingURL=forms.js.map \ No newline at end of file diff --git a/dist/provider/forms.js.map b/dist/provider/forms.js.map deleted file mode 100644 index f33623e..0000000 --- a/dist/provider/forms.js.map +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 2001c55..0000000 --- a/dist/provider/index.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -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 deleted file mode 100644 index 03741b2..0000000 --- a/dist/provider/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"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/provider/index.js b/dist/provider/index.js deleted file mode 100644 index 2383e0a..0000000 --- a/dist/provider/index.js +++ /dev/null @@ -1,5 +0,0 @@ -export * from './FieldUtils'; -export * from './forms'; -export * from './GeneIDTypeDetector'; -export * from './SearchProvider'; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/provider/index.js.map b/dist/provider/index.js.map deleted file mode 100644 index c93a7d2..0000000 --- a/dist/provider/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","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/scss/components/_expression_vs_copynumber.scss b/dist/scss/components/_expression_vs_copynumber.scss deleted file mode 100644 index 72a6878..0000000 --- a/dist/scss/components/_expression_vs_copynumber.scss +++ /dev/null @@ -1,66 +0,0 @@ -.expressionVsCopyNumber, .coExpression { - - .title { - font-weight: 500; - } - - .axis path, - .axis line { - fill: none; - stroke-width: 1; - stroke: $core_color_almost_black; - shape-rendering: crispEdges; - } - - .mark { - fill: $core_color_almost_black; - fill-opacity: 0.8; - cursor: pointer; - - &.clicked { - stroke: $select-data-color; - fill-opacity: 1; - stroke-width: 2; - } - - &.disabled { - fill-opacity: 0.1; - } - - &:active, - &:focus, - &:hover { - stroke: $hover-data-color; - fill-opacity: 1; - stroke-width: 2; - } - } - - .tdp-legend { - padding: 1em; - display: flex; - flex: 1 1 100%; - width: 100%; - - flex-direction: row; - flex-wrap: wrap; - justify-content: flex-start; - - > div { - flex: 0 0 auto; - margin: 0 0.5em; - max-width: 15em; - overflow-x: hidden; - text-overflow: ellipsis; - } - - &:empty { - display: none; - } - } - - .spearmancoeff { - text-align: center; - } - -} diff --git a/dist/scss/components/_legend.scss b/dist/scss/components/_legend.scss deleted file mode 100644 index ef16638..0000000 --- a/dist/scss/components/_legend.scss +++ /dev/null @@ -1,15 +0,0 @@ -.tdp-legend { - div { - cursor: pointer; - - span:first-child { - display: inline-block; - width: 10px; - height: 10px; - } - - &.disabled { - opacity: 0.5; - } - } -} diff --git a/dist/scss/components/_onco_print.scss b/dist/scss/components/_onco_print.scss deleted file mode 100644 index cdb7f55..0000000 --- a/dist/scss/components/_onco_print.scss +++ /dev/null @@ -1,392 +0,0 @@ -$oncoprint_cell_height: 25px !default; -$oncoprint_cell_width: 7px !default; -$oncoprint_cell_padding: 2px !default; -$oncoprint_cell_mutation: 8px !default; - -$oncoprint_cnv_amplified: '2' !default; -$oncoprint_cnv_amplified_color: #efb3bc !default; -$oncoprint_cnv_amplified_border: transparent !default; - -$oncoprint_cnv_deep_deletion: '-2' !default; -$oncoprint_cnv_deep_deletion_color: #92c5de !default; -$oncoprint_cnv_deep_deletion_border: transparent !default; - -$oncoprint_cnv_normal: '0' !default; -$oncoprint_cnv_normal_color: #dcdcdc !default; -$oncoprint_cnv_normal_border: transparent !default; - -$oncoprint_cnv_unknown: 'NaN' !default; -$oncoprint_cnv_unknown_color: #FCFCFC !default; -$oncoprint_cnv_unknown_border: #dcdcdc !default; - -$oncoprint_mut_mutated: 'true' !default; -$oncoprint_mut_mutated_color: #1BA64E !default; -$oncoprint_mut_mutated_border: transparent !default; -$oncoprint_mut_not_mutated: 'false' !default; -$oncoprint_mut_not_mutated_color: #aaa !default; -$oncoprint_mut_not_mutated_border: transparent !default; -$oncoprint_mut_unknown: 'NaN' !default; -$oncoprint_mut_unknown_color: transparent !default; -$oncoprint_mut_unknown_border: #999 !default; - -$oncoprint_label_width: 10em !default; - -div.parameters .oncoPrintScale { - display: inline-flex; - - &[data-scale^='sss'] > button:first-of-type { - cursor: not-allowed; - } - &[data-scale^='s'] { - button:last-of-type { - cursor: pointer; - } - } - &[data-scale^='s'] > div { - div:nth-of-type(3) { - background: none; - } - button:last-of-type { - cursor: not-allowed; - } - } - &[data-scale^='ss'] > div { - div:nth-of-type(2) { - background: none; - } - } - &[data-scale^='sss'] > div { - div:nth-of-type(1) { - background: none; - } - } - > div { - display: flex; - align-items: flex-end; - - > div { - border: 1px solid #aaa; - width: 5px; - margin: 1px; - background: #dcdcdc; - - &:first-of-type { - height: 33%; - } - &:nth-of-type(2) { - height: 66%; - } - &:last-of-type { - height: 100%; - } - } - } - button { - border: none; - background: none; - } - > button:last-of-type { - cursor: not-allowed; - } -} - -.oncoPrint { - display: flex; - flex-direction: column; - overflow-x: hidden; - - .legend { - border-top: 1px solid $core_border; - width: 100%; - order: 1; // place at the bottom of gene list - - display: flex; - - list-style: none; - padding: 0; - margin: 0; - margin-top: 10px; - padding-top: 20px; - - ul { - margin: 0 40px 0 0; - padding: 0; - } - - .title { - font-weight: 500; - } - - li { - display: flex; - align-items: center; - margin-bottom: 3px; - - &::before { - display: inline-block; - content: ''; - border: 1px solid transparent; - width: 10px; - height: 25px; - margin-right: 5px; - } - - &[data-mut]::before { - width: 8px; - height: 8px; - } - } - - li[data-cnv='#{$oncoprint_cnv_amplified}']::before { - background-color: $oncoprint_cnv_amplified_color; - border-color: $oncoprint_cnv_amplified_border; - } - - li[data-cnv='#{$oncoprint_cnv_normal}']::before { - background-color: $oncoprint_cnv_normal_color; - border-color: $oncoprint_cnv_normal_border; - } - - li[data-cnv='#{$oncoprint_cnv_deep_deletion}']::before { - background-color: $oncoprint_cnv_deep_deletion_color; - border-color: $oncoprint_cnv_deep_deletion_border; - } - - li[data-cnv='#{$oncoprint_cnv_unknown}']::before { - background-color: $oncoprint_cnv_unknown_color; - border-color: $oncoprint_cnv_unknown_border; - } - - li[data-mut='#{$oncoprint_mut_mutated}']::before { - background-color: $oncoprint_mut_mutated_color; - border-color: $oncoprint_mut_mutated_border; - } - - li[data-mut='#{$oncoprint_mut_not_mutated}']::before { - background-color: $oncoprint_mut_not_mutated_color; - border-color: $oncoprint_mut_not_mutated_border; - } - - li[data-mut='#{$oncoprint_mut_unknown}']::before { - background-color: $oncoprint_mut_unknown_color; - border-color: $oncoprint_mut_unknown_border; - } - } - - > .alert-info { - order: 2; // place at the bottom of gene list - } - - .geneTableWrapper { - margin-left: $oncoprint_label_width; - overflow-x: auto; - overflow-y: hidden; - padding-bottom: 10px; // space for gene tooltip on hover - } - - td, th { - margin: 0; - white-space: nowrap; - } - - th.geneLabel { - cursor: move; - position: absolute; - left: 0; - top: auto; - color: $core_colour_text; - width: $oncoprint_label_width; - text-align: left; - - .ensg { - display: block; - font-size: 12px; - color: #ccc; - } - - .alterationFreq { - float: right; - margin-right: 5px; - margin-top: 10px; - } - } - - .gene { - margin-top: 10px; - display: flex; - align-items: center; - height: $oncoprint_cell_height + $oncoprint_cell_padding; - - &:first-child { - margin-top: 0; - } - - &.ui-sortable-helper th.geneLabel { - left: -$oncoprint_label_width; - } - - .cell { - position: relative; - display: flex; - align-items: center; - justify-content: center; - margin: 2px; - width: $oncoprint_cell_width + $oncoprint_cell_padding; - height: 100%; - border: 1px solid transparent; - - &.selected { - border-color: $select-color !important; - } - - .mut { - width: 80%; - border: 1px solid transparent; - height: $oncoprint_cell_mutation; - } - - &:after{ - display: block; - visibility: hidden; - position: absolute; - bottom: -35px; - left: -50%; - opacity: 0; - content: attr(data-title); - height: auto; - padding: 5px 8px; - z-index: 999; - color: #fff; - text-decoration: none; - text-align: center; - background: rgba(0,0,0,1); - border-radius: 3px; - pointer-events: none; - transition: all 0.2s ease-in-out; - white-space: nowrap; - } - - &:before { - position: absolute; - visibility: hidden; - width: 0; - height: 0; - bottom: -8px; - left: -10%; - opacity: 0; - content: ""; - border-style: solid; - border-width: 0 5px 8.7px 5px; - border-color: transparent transparent rgba(0,0,0,1) transparent; - pointer-events: none; - transition: all 0.2s ease-in-out; - } - - &:active:after, - &:active:before, - &:focus:after, - &:focus:before, - &:hover:after, - &:hover:before{ - visibility: visible; - opacity: 1; - } - - - &[data-cnv='#{$oncoprint_cnv_amplified}'] { - background-color: $oncoprint_cnv_amplified_color; - border-color: $oncoprint_cnv_amplified_border; - } - - &[data-cnv='#{$oncoprint_cnv_normal}'] { - background-color: $oncoprint_cnv_normal_color; - border-color: $oncoprint_cnv_normal_border; - } - - &[data-cnv='#{$oncoprint_cnv_deep_deletion}'] { - background-color: $oncoprint_cnv_deep_deletion_color; - border-color: $oncoprint_cnv_deep_deletion_border; - } - - &[data-cnv='#{$oncoprint_cnv_unknown}'] { - background-color: $oncoprint_cnv_unknown_color; - border-color: $oncoprint_cnv_unknown_border; - } - - &[data-mut='#{$oncoprint_mut_mutated}'] div { - background-color: $oncoprint_mut_mutated_color; - border-color: $oncoprint_mut_mutated_border; - } - - &[data-mut='#{$oncoprint_mut_not_mutated}'] div { - background-color: $oncoprint_mut_not_mutated_color; - border-color: $oncoprint_mut_not_mutated_border; - } - - &[data-mut='#{$oncoprint_mut_unknown}'] div { - background-color: $oncoprint_mut_unknown_color; - border-color: $oncoprint_mut_unknown_border; - } - } - - // last row --> tooltip on top - &:last-child:not(:first-child) .cell { - &:after { - top: -35px; - bottom: auto; - } - - &:before { - bottom: auto; - top: -8px; - border-width: 8.7px 5px 0 5px; - border-color: rgba(0,0,0,1) transparent transparent transparent; - } - } - - // only row --> tooltip to right - &:last-child:first-child .cell { - &:after { - bottom: -3px; - left: 15px; - } - - &:before { - z-index: 1; - bottom: 30%; - left: 7px; - border-width: 5px 8.7px 5px 0; - border-color: transparent rgba(0,0,0,1) transparent transparent; - } - } - } - &[data-scale^='s'] { - .cell { - margin-left: 1px; - margin-right: 1px; - width: 6px; - - .mut { - width: 100%; - } - } - } - &[data-scale^='ss'] { - .cell { - margin-left: 0; - margin-right: 0; - width: 5px; - } - } - - &[data-scale^='sss'] { - .cell { - border: none; - width: 3px; - - &.selected { - border: 1px solid $select-color; - } - } - } -} diff --git a/dist/scss/components/_species.scss b/dist/scss/components/_species.scss deleted file mode 100644 index 2e56f9c..0000000 --- a/dist/scss/components/_species.scss +++ /dev/null @@ -1,14 +0,0 @@ -.species-group { - .mouse-icon:before { - content: ''; - display: block; - height: 0.85em; - background: no-repeat center/50px url('~tdp_gene/dist/assets/previews/mouse-icon.png'); - opacity: 0.1; - transition: opacity 0.2s ease-in-out; - } - - & label:hover .mouse-icon:before, &.active .mouse-icon:before { - opacity: 1; - } -} diff --git a/dist/scss/components/_startMenu.scss b/dist/scss/components/_startMenu.scss deleted file mode 100644 index 5fd659a..0000000 --- a/dist/scss/components/_startMenu.scss +++ /dev/null @@ -1,136 +0,0 @@ -.startMenu { - - .speciesSelector { - .body { - .species-wrapper { - display: flex; - padding-bottom: 15px; - border-bottom: 1px solid $core_border; - margin-bottom: 5px; - } - - .entry-points-wrapper { - margin-top: 15px; - } - - .species-group { - position: relative; - - &.active:before { - position: absolute; - width: 0; - height: 0; - bottom: -22%; - left: 25%; - content: ""; - border-style: solid; - border-width: 0 13px 13.7px 13px; - border-color: transparent transparent $header-menu-bg-color transparent; - pointer-events: none; - } - - &.active:after { - position: absolute; - width: 0; - height: 0; - bottom: -23%; - left: 26%; - content: ""; - border-style: solid; - border-width: 0 12px 12.7px 12px; - border-color: transparent transparent #fff transparent; - pointer-events: none; - } - } - - label[for^="speciesSelector"] { - cursor: pointer; - margin-right: 1em; - padding: 0.6em .25em .6em; - border: solid .2em $core_border; - border-radius: .5em; - position: relative; - color: $core_colour_selected; - - transition: background-color, color ease 0.2s; - - &:after { - display: block; - visibility: hidden; - position: absolute; - bottom: -66%; - left: 4%; - opacity: 0; - content: attr(data-title); - text-transform: capitalize; - height: auto; - padding: 5px 8px; - z-index: 999; - color: #fff; - text-decoration: none; - text-align: center; - background: rgba(0, 0, 0, 1); - border-radius: 3px; - pointer-events: none; - transition: all 0.2s ease-in-out; - white-space: nowrap; - } - - &:before { - position: absolute; - visibility: hidden; - width: 0; - height: 0; - bottom: -16%; - left: 42%; - opacity: 0; - content: ""; - border-style: solid; - border-width: 0 5px 8.7px 5px; - border-color: transparent transparent rgba(0, 0, 0, 1) transparent; - pointer-events: none; - transition: all 0.2s ease-in-out; - } - - &:active:after, - &:active:before, - &:focus:after, - &:focus:before, - &:hover:after, - &:hover:before { - visibility: visible; - opacity: 1; - } - } - - label:active, - label:focus, - label:hover, - input[type=radio]:checked + label { - color: $core_colour_text; - border-color: $core_colour_text; - } - - input[type=radio] { - display: none; - } - - .startMenuSearch { - margin-top: 10px; - display: flex; - justify-content: space-between; - - form { - width: 80%; - } - } - } - } - - .speciesSelector > header > h1 > label:before { - @extend .fas; - content: fa-content($fa-var-database); - width: 1.8em; - text-align: center; - } -} diff --git a/dist/scss/main.scss b/dist/scss/main.scss deleted file mode 100644 index 1315d33..0000000 --- a/dist/scss/main.scss +++ /dev/null @@ -1,8 +0,0 @@ -@import './abstracts/variables'; - -// styles for views -@import "./components/onco_print"; -@import "./components/expression_vs_copynumber"; -@import "./components/species"; -@import "./components/startMenu"; -@import "./components/legend"; diff --git a/dist/views/ACoExpression.d.ts b/dist/views/ACoExpression.d.ts deleted file mode 100644 index e6d4673..0000000 --- a/dist/views/ACoExpression.d.ts +++ /dev/null @@ -1,59 +0,0 @@ -/** - * Created by Holger Stitz on 12.08.2016. - */ -import { IFormElementDesc } from 'tdp_core'; -import { IFormSelectOption } from 'tdp_core'; -import * as d3 from 'd3'; -import { AD3View } from 'tdp_core'; -export interface IGeneOption extends IFormSelectOption { - data: { - id: string; - symbol: string; - _id: number; - }; -} -export declare abstract class ACoExpression extends AD3View { - private readonly margin; - private readonly width; - private readonly height; - protected $errorMessage: d3.Selection; - protected $legend: d3.Selection; - private refGene; - private refGeneExpression; - private readonly x; - private readonly y; - private readonly color; - private readonly xAxis; - private readonly yAxis; - protected initImpl(): Promise; - protected getParameterFormDescs(): IFormElementDesc[]; - parameterChanged(name: string): void; - selectionChanged(): void; - private updateRefGeneSelect; - private loadRefGeneData; - protected abstract loadData(ensg: string): Promise; - protected abstract loadGeneList(ensgs: string[]): Promise<{ - id: string; - symbol: string; - }[]>; - protected abstract loadFirstName(ensg: string): Promise; - private updateChart; - private initChart; - private resizeChart; - private updateChartData; - protected getNoDataErrorMessage(refGene: IGeneOption): string; - protected abstract getAttributeName(): string; - protected abstract select(r: string[]): void; -} -export interface ICoExprDataFormatRow { - samplename: string; - expression: number; - color?: string; - id: string; -} -export interface ICoExprDataFormat { - 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 deleted file mode 100644 index 73ad435..0000000 --- a/dist/views/ACoExpression.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"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,CAAA;KAAE,EAAE,CAAC;IAE3F,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 deleted file mode 100644 index e50ad9f..0000000 --- a/dist/views/ACoExpression.js +++ /dev/null @@ -1,329 +0,0 @@ -/** - * 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 'tdp_core'; -import { AD3View } from 'tdp_core'; -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) - * @param rows - * @returns {any} - */ -function filterZeroValues(rows) { - const rows2 = rows.filter((d) => d.expression !== 0 && d.expression !== undefined); - console.log(`filtered ${rows.length - rows2.length} zero values`); - return rows2; -} -const spearmancoeffTitle = 'Spearman Coefficient: '; -export class ACoExpression extends AD3View { - constructor() { - super(...arguments); - this.margin = { top: 40, right: 5, bottom: 50, left: 90 }; - this.width = 280 - this.margin.left - this.margin.right; - this.height = 320 - this.margin.top - this.margin.bottom; - this.refGene = null; - this.refGeneExpression = []; - 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)); - } - 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.$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) - .then((refGene) => { - this.refGene = refGene; - if (refGene) { - return this.loadRefGeneData(refGene); - } - return null; - }) - .then((expressions) => { - this.refGeneExpression = expressions; - this.updateChart(this.refGene, expressions, true); - }); - } - getParameterFormDescs() { - return [ - { - type: FormElementType.SELECT, - label: 'Reference Gene', - id: FORM_ID_REFERENCE_GENE, - options: { - optionsData: [], - }, - }, - ]; - } - parameterChanged(name) { - super.parameterChanged(name); - this.color.domain([]); // reset colors - if (name === FORM_ID_REFERENCE_GENE) { - this.refGene = this.getParameterElement(FORM_ID_REFERENCE_GENE).value; - } - if (!this.refGene) { - this.refGeneExpression = null; - this.updateChart(null, null, true); - } - else { - this.loadRefGeneData(this.refGene).then((expressions) => { - this.refGeneExpression = expressions; - this.updateChart(this.refGene, this.refGeneExpression, true); - }); - } - } - selectionChanged() { - super.selectionChanged(); - // update the refGene select first, then update the charts - const bak = this.refGene; - this.updateRefGeneSelect(this.selection).then((refGene) => { - 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); - } - }); - } - updateRefGeneSelect(selection) { - return this.resolveSelection().then((genesEnsembl) => { - // console.log('Ensembl', genesEnsembl); - const promise = this.loadGeneList(genesEnsembl); - // 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); - 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); - if (old !== null) { - refGeneSelect.value = old; - } - // set reference gene - return refGeneSelect.value; - }); - }); - } - async loadRefGeneData(refGene) { - const rows = await this.loadData(refGene.data.id); - return filterZeroValues(rows); - } - updateChart(refGene, refGeneExpression, updateAll = false) { - // eslint-disable-next-line @typescript-eslint/no-this-alias - const that = this; - const { ids } = this.selection; - const { idtype } = this.selection; - const isEmpty = refGene == null || ids.length < 2; - const noData = refGeneExpression == null || refGeneExpression.length === 0; - if (isEmpty) { - this.$errorMessage.text('Select two or more genes.').attr('hidden', false); - this.$node.selectAll('div.plots').remove(); - this.color.domain([]); // reset - ViewUtils.legend(this.$legend.node(), this.color); - return; - } - if (noData) { - this.$errorMessage.text(this.getNoDataErrorMessage(refGene)).attr('hidden', false); - this.$node.selectAll('div.plots').remove(); - this.color.domain([]); // reset - ViewUtils.legend(this.$legend.node(), this.color); - return; - } - const data = ids - .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.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; - enterOrUpdateAll.each(function (d) { - const $id = d3.select(this); - 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); - }); - // 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); - that.initChart($id); - that.resizeChart($id); - that.updateChartData(refGene.data, refGeneExpression, d, $id); - that.setBusy(false); - }); - }); - $plots - .exit() - .remove() - .each(function (d) { - that.setBusy(false); - }); - } - initChart($parent) { - // already initialized svg node -> skip this part - 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'); - } - resizeChart($parent) { - this.x.range([0, this.width]); - this.y.range([this.height, 0]); - 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('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); - // shift also the points on resizing - // causes the d3 error: ` attribute cx: Expected length, "NaN".` - /* 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; - // 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; - 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}`); - if (!hasData) { - $g.selectAll('.mark').remove(); - return; - } - 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.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}`); - // 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 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 }); - } - 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)); - // statistics - { - const formatter = d3.format('.4f'); - const xData = data2.map((d) => d.expr1); - const yData = data2.map((d) => d.expr2); - const spearmancoeff = jStat.jStat.spearmancoeff(firstIsReference ? xData : yData, !firstIsReference ? xData : yData); - $parent.select('div.statistics .spearmancoeff').text(spearmancoeffTitle + formatter(spearmancoeff)); - } - const marks = $g.selectAll('.mark').data(data2); - marks - .enter() - .append('circle') - .classed('mark', true) - .attr('r', 2) - .on('click', (d) => { - const { target } = d3.event; - const selectOperation = SelectionUtils.toSelectOperation(d3.event); - const oldSelection = this.getItemSelection(); - 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); - 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.exit().remove(); - } - getNoDataErrorMessage(refGene) { - return `No data for the selected reference gene ${refGene.data.symbol} (${refGene.data.id}) available.`; - } -} -//# sourceMappingURL=ACoExpression.js.map \ No newline at end of file diff --git a/dist/views/ACoExpression.js.map b/dist/views/ACoExpression.js.map deleted file mode 100644 index 1a292c6..0000000 --- a/dist/views/ACoExpression.js.map +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 5b36918..0000000 --- a/dist/views/ACommonList.d.ts +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Created by sam on 06.03.2017. - */ -import { AStartList, IAStartListOptions, ISelection, IViewContext, IParams } from 'tdp_core'; -export interface ICommonDBConfig { - idType: string; - name: string; - db: string; - base: string; - entityName: string; - tableName: string; -} -export interface IACommonListOptions extends IAStartListOptions { - search?: ISearchResult; -} -interface ISearchResult { - ids: string[]; - type: string; -} -export declare abstract class ACommonList extends AStartList { - protected readonly dataSource: ICommonDBConfig; - private search; - constructor(context: IViewContext, selection: ISelection, parent: HTMLElement, dataSource: ICommonDBConfig, options: Partial); - protected loadColumnDesc(): Promise>; - protected buildFilter(): IParams; - protected loadRows(): Promise; - 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 deleted file mode 100644 index 19ef5ed..0000000 --- a/dist/views/ACommonList.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index e17f2e6..0000000 --- a/dist/views/ACommonList.js +++ /dev/null @@ -1,46 +0,0 @@ -/** - * Created by sam on 06.03.2017. - */ -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, { - additionalScoreParameter: dataSource, - itemName: dataSource.name, - itemIDType: dataSource.idType, - subType: { - key: Species.SPECIES_SESSION_KEY, - value: SpeciesUtils.getSelectedSpecies(), - }, - panelAddColumnBtnOptions: { - btnClass: 'btn-primary', - }, - ...options, - }); - this.dataSource = dataSource; - if (!this.namedSet && options) { - this.search = options.search; - } - } - loadColumnDesc() { - return RestBaseUtils.getTDPDesc(this.dataSource.db, this.dataSource.base); - } - buildFilter() { - const filter = { - [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) { - filter[this.dataSource.entityName] = this.search.ids; - } - return filter; - } - loadRows() { - return RestBaseUtils.getTDPFilteredRows(this.dataSource.db, this.dataSource.base, {}, this.buildFilter()); - } - isValidFilter(key) { - return key !== ''; - } -} -//# sourceMappingURL=ACommonList.js.map \ No newline at end of file diff --git a/dist/views/ACommonList.js.map b/dist/views/ACommonList.js.map deleted file mode 100644 index 6591677..0000000 --- a/dist/views/ACommonList.js.map +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index c102a5e..0000000 --- a/dist/views/AExpressionVsCopyNumber.d.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { IFormElementDesc, AD3View } from 'tdp_core'; -export declare abstract class AExpressionVsCopyNumber extends AD3View { - private readonly margin; - private readonly width; - private readonly height; - private $legend; - private x; - private y; - private readonly color; - private xAxis; - private yAxis; - protected initImpl(): void; - protected abstract getExpressionValues(): { - name: string; - value: string; - data: any; - }[]; - protected abstract getCopyNumberValues(): { - name: string; - value: string; - data: any; - }[]; - protected getParameterFormDescs(): IFormElementDesc[]; - parameterChanged(name: string): void; - selectionChanged(): void; - /** - * Filter expression values with 0, because log scale cannot handle log(0) - * @param rows - * @returns {any} - */ - private filterZeroValues; - private updateCharts; - protected abstract loadData(ensg: string): Promise; - protected abstract loadFirstName(ensg: string): Promise; - private initChart; - private resizeChart; - private updateChartData; - protected abstract select(ids: string[]): void; -} -export interface ICopyNumberDataFormatRow { - samplename: string; - expression: number; - color?: string; - cn: number; - id: string; -} -export interface ICopyNumberDataFormat { - 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 deleted file mode 100644 index d6cb1c8..0000000 --- a/dist/views/AExpressionVsCopyNumber.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 81019bb..0000000 --- a/dist/views/AExpressionVsCopyNumber.js +++ /dev/null @@ -1,210 +0,0 @@ -import { ErrorAlertHandler, FormElementType, AD3View, IDTypeManager, SelectionUtils, SelectOperation } from 'tdp_core'; -import * as d3 from 'd3'; -import { jStat } from 'jstat'; -import { FormSubtype } from '../provider/forms'; -import { ViewUtils } from './ViewUtils'; -const spearmancoeffTitle = 'Spearman Coefficient: '; -export class AExpressionVsCopyNumber extends AD3View { - constructor() { - super(...arguments); - this.margin = { top: 40, right: 5, bottom: 50, left: 90 }; - this.width = 280 - this.margin.left - this.margin.right; - this.height = 320 - this.margin.top - this.margin.bottom; - this.x = d3.scale.linear(); - this.y = d3.scale.log(); - this.color = ViewUtils.colorScale(); - this.xAxis = d3.svg.axis().orient('bottom').scale(this.x); - this.yAxis = d3.svg.axis().orient('left').scale(this.y).tickFormat(this.y.tickFormat(2, '.1f')); - } - initImpl() { - super.initImpl(); - this.node.classList.add('expressionVsCopyNumber', 'multiple'); - this.$legend = this.$node.append('div'); - return this.updateCharts(); - } - getParameterFormDescs() { - return [ - { - type: FormElementType.SELECT, - label: 'Expression', - id: FormSubtype.FORM_EXPRESSION_SUBTYPE_ID, - options: { - optionsData: this.getExpressionValues(), - }, - useSession: false, - }, - { - type: FormElementType.SELECT, - label: 'Copy Number', - id: FormSubtype.FORM_COPYNUMBER_SUBTYPE_ID, - options: { - optionsData: this.getCopyNumberValues(), - }, - useSession: false, - }, - ]; - } - parameterChanged(name) { - super.parameterChanged(name); - this.color.domain([]); // reset colors - this.updateCharts(true); - } - selectionChanged() { - super.selectionChanged(); - this.updateCharts(); - } - /** - * Filter expression values with 0, because log scale cannot handle log(0) - * @param rows - * @returns {any} - */ - filterZeroValues(rows) { - const rows2 = rows.filter((d) => d.expression !== 0 && d.expression !== undefined); - console.log(`filtered ${rows.length - rows2.length} zero values`); - return rows2; - } - updateCharts(updateAll = false) { - this.setBusy(true); - // eslint-disable-next-line @typescript-eslint/no-this-alias - const that = this; - const { ids } = this.selection; - const { idtype } = this.selection; - const data = ids.map((id) => { - return { id, geneName: '', rows: [] }; - }); - const $ids = this.$node.selectAll('div.ids').data(data, (d) => d.id.toString()); - 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; - enterOrUpdateAll.each(function (d) { - const $id = d3.select(this); - 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); - }); - // on success - promise.then((input) => { - d.rows = that.filterZeroValues(input[0]); - d.geneName = input[1]; - // console.log('loaded data for', d.geneName); - that.initChart($id); - that.resizeChart($id); - that.updateChartData($id); - that.setBusy(false); - }); - }); - $ids - .exit() - .remove() - .each(function (d) { - that.setBusy(false); - }); - } - initChart($parent) { - // already initialized svg node -> skip this part - 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') - .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'); - } - resizeChart($parent) { - this.x.range([0, this.width]); - this.y.range([this.height, 0]); - 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('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); - // shift also the points on resizing - // causes the d3 error: ` attribute cx: Expected length, "NaN".` - /* 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; - 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)); - 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.legend(this.$legend.node(), this.color); - const $g = $parent.select('svg g'); - $g.select('text.x.label').text(this.getParameter(FormSubtype.FORM_COPYNUMBER_SUBTYPE_ID).name); - $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}`; - if (rows[0]) { - title = geneName; - } - $g.select('text.title').text(title); - // statistics - const formatter = d3.format('.4f'); - 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') - .classed('mark', true) - .attr('r', 2) - .on('click', (d) => { - const { target } = d3.event; - const selectOperation = SelectionUtils.toSelectOperation(d3.event); - const oldSelection = this.getItemSelection(); - 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); - 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.exit().remove(); - } -} -//# sourceMappingURL=AExpressionVsCopyNumber.js.map \ No newline at end of file diff --git a/dist/views/AExpressionVsCopyNumber.js.map b/dist/views/AExpressionVsCopyNumber.js.map deleted file mode 100644 index 105c6df..0000000 --- a/dist/views/AExpressionVsCopyNumber.js.map +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 4136589..0000000 --- a/dist/views/AOncoPrint.d.ts +++ /dev/null @@ -1,52 +0,0 @@ -/** - * Created by Samuel Gratzl on 27.04.2016. - */ -import { IDType, AView } from 'tdp_core'; -import 'jquery-ui/ui/widgets/sortable'; -export interface ISample { - name: string; - id: string; -} -export interface IDataFormatRow { - name: string; - cn: number; - expr: number; - aa_mutated: boolean; - sampleId: string; -} -export interface IDataFormat { - id: string; - geneName: string; - ensg: string; - alterationFreq: number; - promise: Promise; - rows: IDataFormatRow[]; -} -export declare abstract class AOncoPrint extends AView { - private $table; - private sampleListPromise; - /** - * flag if the user specified the gene sorting order - * @type {boolean} - */ - private manuallyResorted; - init(params: HTMLElement, onParameterChange: (name: string, value: any, previousValue: any) => Promise): Promise; - protected initImpl(): Promise; - protected parameterChanged(name: string): void; - protected selectionChanged(): void; - private build; - protected abstract loadSampleList(): Promise; - protected abstract loadRows(ensg: string): Promise; - protected abstract loadFirstName(ensg: string): Promise; - private logErrorAndMarkReady; - private updateChart; - private updateChartData; - private isSampleSelected; - private selectSample; - get itemIDType(): IDType; - 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 deleted file mode 100644 index f8fa149..0000000 --- a/dist/views/AOncoPrint.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 3b6346f..0000000 --- a/dist/views/AOncoPrint.js +++ /dev/null @@ -1,404 +0,0 @@ -/** - * Created by Samuel Gratzl on 27.04.2016. - */ -import { select, format, event as d3event } from 'd3'; -import { IDTypeManager, SelectionUtils, SelectOperation, AView, ErrorAlertHandler } from 'tdp_core'; -import * as $ from 'jquery'; -import { Categories } from '../common/Categories'; -import 'jquery-ui/ui/widgets/sortable'; -function unknownSample(sample, sampleId) { - return { - name: sample, - sampleId, - cn: Categories.unknownCopyNumberValue, - expr: 0, - aa_mutated: Categories.unknownMutationValue, // unknown - }; -} -function isMissingMutation(v) { - return v === null || v === Categories.unknownMutationValue; -} -function isMissingCNV(v) { - return v === null || v === Categories.unknownCopyNumberValue; -} -function computeAlterationFrequency(rows) { - if (rows.length === 0) { - return 0; - } - const isMutated = (r) => !isMissingMutation(r.aa_mutated) && r.aa_mutated === true; - const isCopyNumberAltered = (r) => !isMissingCNV(r.cn) && r.cn !== 0; - const hasData = (r) => !isMissingMutation(r.aa_mutated) || !isMissingCNV(r.cn); - // reduce and compute both - // amplified += 1 if isMutated or isCopyNumberAltered - // total += if hasData - 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 -function compareCNV(a, b) { - // order: >0, <0, 0, NaN - if (a === b) { - return 0; - } - if (a === undefined || a === null || Number.isNaN(a)) { - return FIRST_IS_NULL; - } - if (b === undefined || b === null || Number.isNaN(b)) { - return -FIRST_IS_NULL; - } - if (a > 0) { - // b is 0 or < 0 - return -1; - } - if (b > 0) { - // a is 0 or < 0 - return 1; - } - if (a < 0) { - // b is 0 - return -1; - } - if (b < 0) { - // a is 0 - return 1; - } - return 0; -} -function compareMutation(a, b) { - // order: true, false, null - if (a === b) { - return 0; - } - if (a === undefined || a === null) { - return FIRST_IS_NULL; - } - if (b === undefined || b === null) { - return -FIRST_IS_NULL; - } - return a ? -1 : +1; -} -function sort(sampleList, rows) { - const rowLookups = rows.map((row) => { - const r = {}; - row.forEach((d) => (r[d.name] = d)); - return r; - }); - // 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; - } - // 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); - } - if (aRow.aa_mutated !== bRow.aa_mutated && !(isMissingMutation(aRow.aa_mutated) && isMissingMutation(bRow.aa_mutated))) { - return compareMutation(aRow.aa_mutated, bRow.aa_mutated); - } - // 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); - } - return sampleList.slice().sort(compare); -} -function byAlterationFrequency(a, b) { - const aFrequency = a && a.alterationFreq !== undefined ? a.alterationFreq : 0; - const bFrequency = b && b.alterationFreq !== undefined ? b.alterationFreq : 0; - return bFrequency - aFrequency; -} -export class AOncoPrint extends AView { - constructor() { - super(...arguments); - this.sampleListPromise = null; - /** - * flag if the user specified the gene sorting order - * @type {boolean} - */ - this.manuallyResorted = false; - } - async init(params, onParameterChange) { - await super.init(params, onParameterChange); - // inject stats - const base = params.querySelector('form') || params; - base.insertAdjacentHTML('afterbegin', ` -
- -
-
-
-
-
- -
`); - let s = 0; - const scaleElem = base.firstElementChild; - scaleElem.firstElementChild.addEventListener('click', (e) => { - e.preventDefault(); - e.stopPropagation(); - s = Math.min(s + 1, 3); - scaleElem.dataset.scale = this.node.dataset.scale = 's'.repeat(s); - }); - scaleElem.lastElementChild.addEventListener('click', (e) => { - e.preventDefault(); - e.stopPropagation(); - s = Math.max(s - 1, 0); - scaleElem.dataset.scale = this.node.dataset.scale = 's'.repeat(s); - }); - } - initImpl() { - super.initImpl(); - this.build(); - // load sample list with all available ids, then update the onco print - this.sampleListPromise = this.loadSampleList(); - return this.sampleListPromise.then(this.updateChart.bind(this, false)); - } - parameterChanged(name) { - super.parameterChanged(name); - this.sampleListPromise = this.loadSampleList(); - this.sampleListPromise.then(this.updateChart.bind(this, true)); - } - selectionChanged() { - super.selectionChanged(); - this.updateChart(); - } - build() { - const $node = select(this.node); - $node.classed('oncoPrint', true); - 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'); - Categories.copyNumberCat.forEach((d) => { - $cnLegend.append('li').attr('data-cnv', d.value).text(d.name); - }); - // append the legend for missing values - $cnLegend.append('li').attr('data-cnv', Categories.unknownCopyNumberValue).text('Missing Values'); - const $mutLegend = $legend.append('ul'); - $mutLegend.append('li').classed('title', true).text('Mutation'); - 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'); - $node.append('div').attr('class', 'alert alert-info alert-dismissible').attr('role', 'alert').html(` - -

Please note:

-
    -
  • The indicated copy number states are only estimates, which can be affected by sample purity, ploidy, and other factors.
  • -
  • The indicated alteration prevalences are only estimates, which can be affected by incomplete data and small sample numbers.
  • -
- `); - } - logErrorAndMarkReady(error) { - console.error(error); - this.setBusy(false); - } - updateChart(updateAll = false) { - this.setBusy(true); - 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 = (i, old) => { - if (old.length === 0) { - 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) => i.indexOf(d.id) >= 0); - const added = i.filter((id) => !lookup.has(id)).map((id) => empty(id)); - return existing.concat(added); - } - 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 renderRow = ($id, d) => { - 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, - ]); - }); - // on error - promise.catch(ErrorAlertHandler.getInstance().errorAlert).catch(this.logErrorAndMarkReady.bind(this)); - // on success - d.promise = promise.then((input) => { - d.rows = input[0]; - d.geneName = input[1]; - const samples = input[2]; - this.updateChartData(d, $id, samples); - this.setBusy(false); - return d; - }); - }; - enterOrUpdateAll.each(function (d) { - renderRow(select(this), d); - }); - // 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); - const rows = result; - if (!this.manuallyResorted) { - rows.sort(byAlterationFrequency); - } - const sortedSamples = sort(samples, rows.map((r) => r.rows)); - const $genes = this.sortCells(sortedSamples); - if (!this.manuallyResorted) { - // sort genes=row by frequency - $genes.sort(byAlterationFrequency); - } - }); - $ids - .exit() - .remove() - .each(() => this.setBusy(false)); - // sortable - $(this.$table.node()) // jquery - .sortable({ - handle: 'th.geneLabel', - axis: 'y', - items: '> :not(.nodrag)', - update: () => { - this.manuallyResorted = true; - // 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 = this.alignData(rows, samples); - // count amplification/deletions and divide by total number of rows - data.alterationFreq = computeAlterationFrequency(rows); - const $th = $parent.selectAll('th.geneLabel').data([data]); - $th.enter().append('th').classed('geneLabel', true); - $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') - .classed('cell', true) - .on('click', (row) => { - this.selectSample(row.sampleId, SelectionUtils.toSelectOperation(d3event)); - }) - .append('div') - .classed('mut', true); - $cells - .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)) - .classed('selected', (d) => this.isSampleSelected(d.sampleId)); - $cells.exit().remove(); - if (rows.length === 0) { - $parent.append('td').classed('cell', true); - } - } - isSampleSelected(sampleId) { - const { ids } = this.getItemSelection(); - return ids.includes(sampleId); - } - selectSample(sampleId, op) { - const { ids } = this.getItemSelection(); - const current = ids; - let newSelection = null; - switch (op) { - case SelectOperation.SET: - if (current.includes(sampleId)) { - newSelection = []; - } - else { - newSelection = [sampleId]; - } - break; - case SelectOperation.REMOVE: - newSelection = current.filter((c) => c !== sampleId); - break; - case SelectOperation.ADD: - newSelection = current.concat([sampleId]); - break; - default: - break; - } - this.updateSelectionHighlight(newSelection); - this.setItemSelection({ ids: newSelection, idtype: this.getSampleIdType() }); - } - get itemIDType() { - return this.getSampleIdType(); - } - updateSelectionHighlight(range) { - const table = this.$table.node(); - // 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.forEach((sampleId) => { - Array.from(table.querySelectorAll(`td.cell[data-id="${sampleId}"]`)).forEach((c) => c.classList.add('selected')); - }); - } - sortCells(sortedSamples) { - // name to index - const lookup = {}; - 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]; - const bIndex = lookup[b.name]; - // assume both exist - return aIndex - bIndex; - }); - return $genes; - } - alignData(rows, samples) { - // build hash map first for faster access - const hash = {}; - 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 - if (!(sample.name in hash)) { - return unknownSample(sample.name, sample.id); - } - const r = hash[sample.name]; - r.sampleId = sample.id; - return r; - }); - } -} -//# sourceMappingURL=AOncoPrint.js.map \ No newline at end of file diff --git a/dist/views/AOncoPrint.js.map b/dist/views/AOncoPrint.js.map deleted file mode 100644 index a532a6f..0000000 --- a/dist/views/AOncoPrint.js.map +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 15f8dec..0000000 --- a/dist/views/GeneProxyView.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -/** - * Created by Holger Stitz on 06.12.2016. - */ -import { ProxyView, IFormSelectOption } from 'tdp_core'; -/** - * helper view for proxying an existing external website - */ -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 deleted file mode 100644 index ce2b66c..0000000 --- a/dist/views/GeneProxyView.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 53bceb2..0000000 --- a/dist/views/GeneProxyView.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Created by Holger Stitz on 06.12.2016. - */ -import { ProxyView } from 'tdp_core'; -import { SpeciesUtils } from '../common/common'; -/** - * helper view for proxying an existing external website - */ -export class GeneProxyView extends ProxyView { - getSelectionSelectData(ensgs) { - return SpeciesUtils.createOptions(ensgs, this.selection, this.idType); - } - updateProxyView() { - const { extra } = this.options; - extra.species = SpeciesUtils.getSelectedSpecies(); - super.updateProxyView(); - } -} -//# sourceMappingURL=GeneProxyView.js.map \ No newline at end of file diff --git a/dist/views/GeneProxyView.js.map b/dist/views/GeneProxyView.js.map deleted file mode 100644 index c70c084..0000000 --- a/dist/views/GeneProxyView.js.map +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 0f29699..0000000 --- a/dist/views/UniProtProxyView.d.ts +++ /dev/null @@ -1,28 +0,0 @@ -/** - * Created by Holger Stitz on 07.12.2016. - */ -import { FormElementType } from 'tdp_core'; -import { GeneProxyView } from './GeneProxyView'; -/** - * helper view for proxying an existing external website - */ -export declare class UniProtProxyView extends GeneProxyView { - static SELECTED_UNIPROT_ITEM: string; - static readonly OUTPUT_IDTYPE = "UniProt_human"; - protected initImpl(): Promise; - protected getParameterFormDescs(): { - type: FormElementType; - label: string; - id: string; - options: { - optionsData: any[]; - }; - useSession: boolean; - }[]; - protected parameterChanged(name: string): void; - selectionChanged(): void; - private updateUniProtSelect; - 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 deleted file mode 100644 index ad04583..0000000 --- a/dist/views/UniProtProxyView.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index 56a373c..0000000 --- a/dist/views/UniProtProxyView.js +++ /dev/null @@ -1,119 +0,0 @@ -/** - * Created by Holger Stitz on 07.12.2016. - */ -import { FormElementType, ProxyView, IDTypeManager } from 'tdp_core'; -import { GeneProxyView } from './GeneProxyView'; -/** - * helper view for proxying an existing external website - */ -export class UniProtProxyView extends GeneProxyView { - initImpl() { - super.initImpl(); - this.$node.classed('proxy_view', true); - // update the selection first, then update the proxy view - return this.updateSelectedItemSelect() - .then(() => this.updateUniProtSelect()) - .catch(() => { - this.updateProxyView(); - }) - .then(() => { - this.updateProxyView(); - }); - } - getParameterFormDescs() { - return [ - { - type: FormElementType.SELECT, - label: 'Gene', - id: ProxyView.FORM_ID_SELECTED_ITEM, - options: { - optionsData: [], - }, - useSession: true, - }, - { - type: FormElementType.SELECT, - label: 'UniProt IDs for Selected Gene', - id: UniProtProxyView.SELECTED_UNIPROT_ITEM, - options: { - optionsData: [], - }, - useSession: true, - }, - ]; - } - parameterChanged(name) { - super.parameterChanged(name); - if (name === ProxyView.FORM_ID_SELECTED_ITEM) { - this.updateUniProtSelect() - .catch(() => { - this.updateProxyView(); - }) - .then(() => { - this.updateProxyView(); - }); - } - else if (name === UniProtProxyView.SELECTED_UNIPROT_ITEM) { - this.updateProxyView(); - } - } - selectionChanged() { - super.selectionChanged(); - // update the selection first, then update the proxy view - this.updateSelectedItemSelect(true) // true = force use last selection - .then(() => this.updateUniProtSelect(true)) // true = force use last selection - .catch(() => { - this.updateProxyView(); - }) - .then(() => { - this.updateProxyView(); - }); - } - updateUniProtSelect(forceUseLastSelection = false) { - const selectedItemSelect = this.getParameterElement(UniProtProxyView.SELECTED_UNIPROT_ITEM); - const ensg = this.getParameter(ProxyView.FORM_ID_SELECTED_ITEM).value; - 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 === null) { - return Promise.reject('Empty list of UniProt IDs'); - } - return Promise.all([uniProtIds, this.getUniProtSelectData(uniProtIds)]); - }) - .catch((reject) => { - selectedItemSelect.setVisible(false); - selectedItemSelect.updateOptionElements([]); - return Promise.reject(reject); - }) - .then((args) => { - const uniProtIds = args[0]; // use names to get the last selected element - const data = args[1]; - selectedItemSelect.setVisible(true); - // backup entry and restore the selectedIndex by value afterwards again, - // because the position of the selected element might change - const bak = selectedItemSelect.value || data[selectedItemSelect.getSelectedIndex()]; - selectedItemSelect.updateOptionElements(data); - // select last item from incoming `selection.range` - if (forceUseLastSelection) { - selectedItemSelect.value = data.filter((d) => d.value === uniProtIds[uniProtIds.length - 1])[0]; - // otherwise try to restore the backup - } - else if (bak !== null) { - selectedItemSelect.value = bak; - } - }); - } - getUniProtSelectData(uniProtIds) { - if (uniProtIds === null) { - return []; - } - return uniProtIds.map((d) => ({ value: d, name: d, data: d })); - } - updateProxyView() { - this.loadProxyPage(this.getParameter(UniProtProxyView.SELECTED_UNIPROT_ITEM).value); - } -} -UniProtProxyView.SELECTED_UNIPROT_ITEM = 'externalUniProt'; -UniProtProxyView.OUTPUT_IDTYPE = 'UniProt_human'; -//# sourceMappingURL=UniProtProxyView.js.map \ No newline at end of file diff --git a/dist/views/UniProtProxyView.js.map b/dist/views/UniProtProxyView.js.map deleted file mode 100644 index 1bdb525..0000000 --- a/dist/views/UniProtProxyView.js.map +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index c1b1cee..0000000 --- a/dist/views/ViewUtils.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { scale as d3Scale } from 'd3'; -export declare class ViewUtils { - static base: string[]; - static removed: string[]; - static colors: string[]; - static integrateColors(scale: d3Scale.Ordinal, colors: string[]): void; - 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 deleted file mode 100644 index fb8244d..0000000 --- a/dist/views/ViewUtils.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"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 deleted file mode 100644 index dc72dda..0000000 --- a/dist/views/ViewUtils.js +++ /dev/null @@ -1,59 +0,0 @@ -import { scale as d3Scale } from 'd3'; -export class ViewUtils { - static integrateColors(scale, colors) { - 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 - scale.domain(scale.domain().concat(colors)); - } - static colorScale() { - return d3Scale.ordinal().range(ViewUtils.colors); - } - static legend(legend, scale) { - legend.classList.add('tdp-legend'); - const categories = scale.domain(); - if (categories.length === 0) { - legend.innerHTML = ''; - return; - } - const cats = scale - .domain() - .map((category) => { - return ` -
- - ${category} -
- `; - }) - .join('\n'); - legend.innerHTML = ` -
- - Hide/Show All -
- ${cats} -
- - 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((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)); - } - })); - } -} -ViewUtils.base = d3Scale.category20().range().slice(); // splice out the orange since used for selection; -ViewUtils.removed = ViewUtils.base.splice(2, 2); -// reorder such that repeat after the primary colors -ViewUtils.colors = ViewUtils.base.filter((d, i) => i % 2 === 0).concat(ViewUtils.base.filter((d, i) => i % 2 === 1)); -//# sourceMappingURL=ViewUtils.js.map \ No newline at end of file diff --git a/dist/views/ViewUtils.js.map b/dist/views/ViewUtils.js.map deleted file mode 100644 index 7890e3d..0000000 --- a/dist/views/ViewUtils.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ViewUtils.js","sourceRoot":"","sources":["../../src/views/ViewUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,MAAM,IAAI,CAAC;AAEtC,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,kBAAkB;QAClB,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;aACf,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YAChB,OAAO;;+CAEgC,KAAK,CAAC,QAAQ,CAAC;sBACxC,QAAQ;;OAEvB,CAAC;QACF,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,CAAC,SAAS,GAAG;;;;;YAKX,IAAI;;;;iBAIC,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC3C,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YAC/B,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,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;gBACzF,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,CACH,CAAC;IACJ,CAAC;;AA5DM,cAAI,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,kDAAkD;AAE/F,iBAAO,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE7C,oDAAoD;AAC7C,gBAAM,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/dist/views/index.d.ts b/dist/views/index.d.ts deleted file mode 100644 index 6afe598..0000000 --- a/dist/views/index.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * from './ViewUtils'; -export * from './ACoExpression'; -export * from './ACommonList'; -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 deleted file mode 100644 index 546c066..0000000 --- a/dist/views/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"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/dist/views/index.js b/dist/views/index.js deleted file mode 100644 index 355f264..0000000 --- a/dist/views/index.js +++ /dev/null @@ -1,8 +0,0 @@ -export * from './ViewUtils'; -export * from './ACoExpression'; -export * from './ACommonList'; -export * from './AExpressionVsCopyNumber'; -export * from './AOncoPrint'; -export * from './GeneProxyView'; -export * from './UniProtProxyView'; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/views/index.js.map b/dist/views/index.js.map deleted file mode 100644 index 3858dde..0000000 --- a/dist/views/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","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 81a457d..c1627b8 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,50 +1 @@ -// test dependencies that require transformation -let pluginsToTransform = [ - 'tdp_*', - 'phovea_*', - 'lineupjs' -].join('|'); - -if(pluginsToTransform.length > 0) { - /** Attention: Negative Lookahead! This regex adds the specified repos to a whitelist that holds plugins that are excluded from the transformIgnorePatterns. - * This means that pluginsToTransform should contain all repos that export ts files. They can only be handled by the transformation. */ - pluginsToTransform = `(?!${pluginsToTransform})`; -} - -/** - * 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" - }, - testRegex: "(.*(test|spec))\\.(tsx?)$", - moduleFileExtensions: [ - "ts", - "tsx", - "js", - "jsx", - "json", - "node" - ], - modulePaths: [ - "src" - ], - transformIgnorePatterns: [`../node_modules/${pluginsToTransform}`, `node_modules/${pluginsToTransform}`], - globals: { - "__VERSION__": "TEST_VERSION", - "__APP_CONTEXT__": "TEST_CONTEXT", - // has to be set to true, otherwise i18n import fails - "ts-jest": { - "tsconfig": { - "esModuleInterop": true - } - } - }, - moduleNameMapper: { - "^.+\\.(css|less|scss|sass|png|jpg|gif)$": "identity-obj-proxy" - } -} +module.exports = require('visyn_scripts/config/jest.config.template'); diff --git a/package.json b/package.json index 9d0e268..ed0fc5b 100644 --- a/package.json +++ b/package.json @@ -21,72 +21,52 @@ "types": "dist/index.d.ts", "files": [ "src", - "phovea_registry.js", "dist" ], "engines": { - "npm": ">= 6.12", - "node": ">= 12.13", - "iojs": ">= 3" + "npm": ">=8", + "node": ">=16" }, "scripts": { - "clean": "rimraf dist lib", + "all": "npm run lint:fix && npm run test && npm run build && npm run dist", + "build": "npm run clean && npm run compile && npm run copy", + "clean": "rimraf build dist lib", + "compile:watch": "visyn_scripts compile --watch", + "compile": "visyn_scripts compile", + "copy": "visyn_scripts copy", + "cy:open": "cypress open", + "cy:run": "cypress run", "delete-dependencies": "rimraf node_modules", - "compile": "tsc", - "compile:watch": "tsc -w", - "postcompile": "npm run copy", - "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", - "test:watch": "jest --watch", - "posttest": "npm run lint", - "build": "npm run clean && npm run compile", - "copy-assets": "if [ -d src/assets ]; then shx --verbose cp -R src/assets/. dist/assets/; fi", - "copy-styles": "if [ -d src/scss ]; then shx --verbose cp -R src/scss/. dist/scss/; fi", - "copy": "npm run copy-assets && npm run copy-styles", - "release:major": "npm version major && npm publish && git push --follow-tags", - "release:minor": "npm version minor && npm publish && git push --follow-tags", - "release:patch": "npm version patch && npm publish && git push --follow-tags", - "predist": "npm run build && npm run docs", - "dist": "mkdir lib && cd dist && tar cvzf ../lib/tdp_gene.tar.gz *" + "predist": "npm run lint && npm run test && npm run build", + "dist": "mkdir lib && cd dist && tar cvzf ../lib/tdp_gene.tar.gz *", + "docs": "visyn_scripts docs", + "lint:fix": "visyn_scripts lint --fix", + "lint": "visyn_scripts lint", + "prepare": "npm run build", + "start": "visyn_scripts start --env workspace_mode=single", + "storybook:build": "NODE_OPTIONS=--max_old_space_size=4096 build-storybook", + "storybook": "NODE_OPTIONS=--max_old_space_size=4096 start-storybook -p 6006", + "test": "visyn_scripts test", + "webpack:dev": "visyn_scripts build --mode development --env workspace_mode=single", + "webpack:prod": "visyn_scripts build --mode production --env workspace_mode=single" }, "devDependencies": { - "@types/d3": "~3.5.36", - "@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-raw-loader": "~1.0.1", - "prettier": "^2.5.1", - "rimraf": "~3.0.2", - "shx": "~0.3.3", - "@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" + "@types/d3": "~3.5.36" }, "dependencies": { "d3": "~3.5.17", "jstat": "^1.9.4", "jquery": "~3.5.1", "jquery-ui": "1.12.1", - "tdp_core": "git+ssh://git@github.com:datavisyn/tdp_core#develop" + "tdp_core": "git+ssh://git@github.com:datavisyn/tdp_core#visyn_scripts", + "visyn_scripts": "git+ssh://git@github.com/datavisyn/visyn_scripts.git#develop" }, "optionalDependencies": { - "ordino": "git+ssh://git@github.com:Caleydo/ordino#develop" + "ordino": "git+ssh://git@github.com:Caleydo/ordino#visyn_scripts" + }, + "visyn": { + "entries": { + "app": "./index.js" + } } } diff --git a/phovea_registry.js b/src/phovea_registry.ts similarity index 75% rename from phovea_registry.js rename to src/phovea_registry.ts index 4834646..6b5c1d7 100644 --- a/phovea_registry.js +++ b/src/phovea_registry.ts @@ -3,15 +3,15 @@ * Copyright (c) The Caleydo Team. All rights reserved. * Licensed under the new BSD license, available at http://caleydo.org/license **************************************************************************** */ -import {PluginRegistry} from 'tdp_core'; -import reg from './dist/phovea'; +import { PluginRegistry } from 'tdp_core'; +import reg from './phovea'; /** * build a registry by registering all phovea modules */ -//other modules -import 'tdp_core/phovea_registry.js'; +// other modules +import 'tdp_core/dist/phovea_registry'; /// #if include('ordino') -import 'ordino/phovea_registry.js'; +import 'ordino/dist/phovea_registry'; /// #endif -//self +// self PluginRegistry.getInstance().register('tdp_gene', reg); diff --git a/tsconfig.eslint.json b/tsconfig.eslint.json index f962b4e..d7d6dd4 100644 --- a/tsconfig.eslint.json +++ b/tsconfig.eslint.json @@ -1,5 +1,5 @@ { - "extends": "./tsconfig.json", + "extends": "visyn_scripts/config/tsconfig.eslint.template.json", "include": [ "src/**/*.ts", "src/**/*.tsx", diff --git a/tsconfig.json b/tsconfig.json index db12bea..213cc4d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,25 +1,7 @@ { + "extends": "visyn_scripts/config/tsconfig.template.json", "compilerOptions": { - "module": "ES2020", - "target": "ES2019", - "importHelpers": true, - "sourceMap": true, - "declaration": true, - "declarationMap": true, - "moduleResolution": "node", - "jsx": "react", - "allowJs": true, - "declarationDir": "dist", - "outDir": "dist", - "experimentalDecorators": true, - "noImplicitAny": false, - "skipLibCheck": true, - "esModuleInterop": false, - "resolveJsonModule": true, - "allowSyntheticDefaultImports": true, - "preserveWatchOutput": true, - "incremental": true, - "tsBuildInfoFile": "dist/tsBuildInfoFile" + "outDir": "./dist", }, "include": [ "src/**/*.ts", diff --git a/typedoc.js b/typedoc.js new file mode 100644 index 0000000..5be3a9b --- /dev/null +++ b/typedoc.js @@ -0,0 +1 @@ +module.exports = require('visyn_scripts/config/typedoc.template') diff --git a/dist/scss/abstracts/_variables.scss b/workspace.scss similarity index 100% rename from dist/scss/abstracts/_variables.scss rename to workspace.scss