From 46212487a4fefd2a289c83414e557a03394b6d88 Mon Sep 17 00:00:00 2001 From: jpfisher72 Date: Tue, 24 Sep 2024 09:34:27 -0400 Subject: [PATCH 1/5] Bump most packages to latest, fix build error --- screen2.0/.yarnrc.yml | 4 + screen2.0/package.json | 52 +- .../app/_biosampleTables/BiosampleTables.tsx | 2 +- screen2.0/yarn.lock | 789 +++++++++--------- 4 files changed, 439 insertions(+), 408 deletions(-) diff --git a/screen2.0/.yarnrc.yml b/screen2.0/.yarnrc.yml index 3186f3f0..e55ce3b3 100644 --- a/screen2.0/.yarnrc.yml +++ b/screen2.0/.yarnrc.yml @@ -1 +1,5 @@ nodeLinker: node-modules + +plugins: + - path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs + spec: "@yarnpkg/plugin-interactive-tools" diff --git a/screen2.0/package.json b/screen2.0/package.json index 50b17de4..e16cf02a 100644 --- a/screen2.0/package.json +++ b/screen2.0/package.json @@ -37,55 +37,55 @@ } }, "dependencies": { - "@apollo/client": "alpha", - "@apollo/experimental-nextjs-app-support": "^0.8.0", - "@emailjs/browser": "^4.3.3", + "@apollo/client": "^3.11.8", + "@apollo/experimental-nextjs-app-support": "^0.11.3", + "@emailjs/browser": "^4.4.1", "@emotion/cache": "^11.13.1", - "@emotion/react": "^11.11.1", - "@emotion/styled": "^11.11.0", + "@emotion/react": "^11.13.3", + "@emotion/styled": "^11.13.0", "@mui/icons-material": "^5.16.7", "@mui/lab": "^5.0.0-alpha.170", "@mui/material": "^5.16.7", "@mui/material-nextjs": "^6.1.0", - "@types/node": "^20.14.6", - "@types/react": "^18.3.3", - "@types/react-dom": "18.2.18", + "@types/node": "^22.6.1", + "@types/react": "^18.3.8", + "@types/react-dom": "18.3.0", "@visx/event": "^3.3.0", "@visx/responsive": "^3.10.2", "@visx/visx": "^3.11.0", - "@weng-lab/psychscreen-ui-components": "^0.9.0", + "@weng-lab/psychscreen-ui-components": "^1.0.4", "@weng-lab/ts-ztable": "^4.0.1", - "autoprefixer": "10.4.17", + "autoprefixer": "10.4.20", "bpnet-ui": "^0.3.8", - "eslint": "8.57.0", - "eslint-config-next": "14.2.5", - "graphql": "^16.8.1", + "eslint": "9.11.1", + "eslint-config-next": "14.2.13", + "graphql": "^16.9.0", "jubilant-carnival": "^0.6.0", - "logots-react": "latest", - "next": "14.2.3", + "logots-react": "^0.2.0", + "next": "14.2.13", "normalize.css": "^8.0.1", "only": "^0.0.2", - "postcss": "8.4.33", + "postcss": "8.4.47", "queryz": "^0.0.3", "react": "18.3.1", - "react-dom": "18.2.0", + "react-dom": "18.3.1", "react-dropzone": "^14.2.3", - "semantic-ui-react": "latest", - "server": "^1.0.38", - "tailwindcss": "3.4.1", - "umap-js": "1.3.3", + "semantic-ui-react": "^2.1.5", + "server": "^1.0.41", + "tailwindcss": "3.4.13", + "umap-js": "1.4.0", "umms-gb": "^3.10.0", - "uuid": "^9.0.0" + "uuid": "^10.0.0" }, "devDependencies": { "@graphql-codegen/cli": "^5.0.2", "@graphql-codegen/client-preset": "^4.3.3", "@graphql-typed-document-node/core": "^3.2.0", "file-loader": "^6.2.0", - "lint-staged": "^15.1.0", - "prettier": "^3.2.5", - "typescript": "5.3.3", - "webpack": "^5.90.1", + "lint-staged": "^15.2.10", + "prettier": "^3.3.3", + "typescript": "5.6.2", + "webpack": "^5.94.0", "webpack-cli": "^5.1.4" }, "prettier": { diff --git a/screen2.0/src/app/_biosampleTables/BiosampleTables.tsx b/screen2.0/src/app/_biosampleTables/BiosampleTables.tsx index ddec5c29..7f4f84d7 100644 --- a/screen2.0/src/app/_biosampleTables/BiosampleTables.tsx +++ b/screen2.0/src/app/_biosampleTables/BiosampleTables.tsx @@ -204,7 +204,7 @@ export const BiosampleTables = ({ if (showRNAseq) cols.push({ header: "RNA-Seq", - value: (row) => +!!row.rnaseq ?? "", + value: (row) => +row.rnaseq, render: (row) => { if (row.rnaseq) { return ( diff --git a/screen2.0/yarn.lock b/screen2.0/yarn.lock index daf994ba..5a5f0e7e 100644 --- a/screen2.0/yarn.lock +++ b/screen2.0/yarn.lock @@ -22,9 +22,21 @@ __metadata: languageName: node linkType: hard -"@apollo/client@alpha": - version: 3.10.0-alpha.1 - resolution: "@apollo/client@npm:3.10.0-alpha.1" +"@apollo/client-react-streaming@npm:0.11.3": + version: 0.11.3 + resolution: "@apollo/client-react-streaming@npm:0.11.3" + dependencies: + ts-invariant: ^0.10.3 + peerDependencies: + "@apollo/client": ^3.10.4 + react: ^18 + checksum: e0fff12744a93d910b8b3600da01b1fb5a23167c13542651043ab038e8e7573d3feec76426b1d8acee3ceba904cfd88bcf6912aee6a17da32ae5d9ce22ae8cae + languageName: node + linkType: hard + +"@apollo/client@npm:^3.11.8": + version: 3.11.8 + resolution: "@apollo/client@npm:3.11.8" dependencies: "@graphql-typed-document-node/core": ^3.1.1 "@wry/caches": ^1.0.0 @@ -34,7 +46,7 @@ __metadata: hoist-non-react-statics: ^3.3.2 optimism: ^0.18.0 prop-types: ^15.7.2 - rehackt: 0.0.6 + rehackt: ^0.1.0 response-iterator: ^0.2.6 symbol-observable: ^4.0.0 ts-invariant: ^0.10.3 @@ -43,8 +55,8 @@ __metadata: peerDependencies: graphql: ^15.0.0 || ^16.0.0 graphql-ws: ^5.5.5 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 subscriptions-transport-ws: ^0.9.0 || ^0.11.0 peerDependenciesMeta: graphql-ws: @@ -55,22 +67,20 @@ __metadata: optional: true subscriptions-transport-ws: optional: true - checksum: 21a48d45b8a8b1564a21b0d723e1ae466443375818c9132e4a685462d352462058c32bcf0d202241da7a3839bb8ac8e26d2886955d27742c5cbfa1dfc27793fe + checksum: 80ce505be674b6d2df5501fa28770a45039d3b628df1cbaae1357c54c4968db8c156dad21167681be6df9951f1abac5d4a6b2c04de8b726addad9fe0831c8fdb languageName: node linkType: hard -"@apollo/experimental-nextjs-app-support@npm:^0.8.0": - version: 0.8.0 - resolution: "@apollo/experimental-nextjs-app-support@npm:0.8.0" +"@apollo/experimental-nextjs-app-support@npm:^0.11.3": + version: 0.11.3 + resolution: "@apollo/experimental-nextjs-app-support@npm:0.11.3" dependencies: - server-only: ^0.0.1 - superjson: ^1.12.2 || ^2.0.0 - ts-invariant: ^0.10.3 + "@apollo/client-react-streaming": 0.11.3 peerDependencies: - "@apollo/client": ^3.9.0 - next: ^13.4.1 || ^14.0.0 + "@apollo/client": ^3.10.4 + next: ^13.4.1 || ^14.0.0 || 15.0.0-rc.0 react: ^18 - checksum: 5062c482d35a0e9343327facaffa70de184f00bb9fba89bb0cc5371d819445e6f4c56d8aedee8914aa5d2908abbe210452fbe5f4424c42bb9b898d47745021ad + checksum: e6a7d06ed654e7215f95887ebd887b21d774d6120b3c8c3f5590b8392c65f0edc0e819a2f0b7e7dce2b31e845e0bd8f140ed509442b6f486ca1d6a9e1ffddbfc languageName: node linkType: hard @@ -713,7 +723,7 @@ __metadata: languageName: node linkType: hard -"@emailjs/browser@npm:^4.3.3": +"@emailjs/browser@npm:^4.4.1": version: 4.4.1 resolution: "@emailjs/browser@npm:4.4.1" checksum: 7c33dae1062c7f3106c38c290643c1096505762dea19a71d89515890fb204f5ae3e2954eec3d4c4de1aa6ea586e956d88cde2e5b9a2e4075ea849de9735b6d16 @@ -775,7 +785,7 @@ __metadata: languageName: node linkType: hard -"@emotion/react@npm:^11.10.5, @emotion/react@npm:^11.11.1": +"@emotion/react@npm:^11.10.5, @emotion/react@npm:^11.13.3": version: 11.13.3 resolution: "@emotion/react@npm:11.13.3" dependencies: @@ -816,7 +826,7 @@ __metadata: languageName: node linkType: hard -"@emotion/styled@npm:^11.10.5, @emotion/styled@npm:^11.11.0": +"@emotion/styled@npm:^11.10.5, @emotion/styled@npm:^11.13.0": version: 11.13.0 resolution: "@emotion/styled@npm:11.13.0" dependencies: @@ -866,7 +876,7 @@ __metadata: languageName: node linkType: hard -"@eslint-community/eslint-utils@npm:^4.2.0": +"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": version: 4.4.0 resolution: "@eslint-community/eslint-utils@npm:4.4.0" dependencies: @@ -877,34 +887,68 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.6.1": - version: 4.11.0 - resolution: "@eslint-community/regexpp@npm:4.11.0" - checksum: 97d2fe46690b69417a551bd19a3dc53b6d9590d2295c43cc4c4e44e64131af541e2f4a44d5c12e87de990403654d3dae9d33600081f3a2f0386b368abc9111ec +"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.11.0": + version: 4.11.1 + resolution: "@eslint-community/regexpp@npm:4.11.1" + checksum: 6986685529d30e33c2640973c3d8e7ddd31bef3cc8cb10ad54ddc1dea12680779a2c23a45562aa1462c488137a3570e672d122fac7da22d82294382d915cec70 languageName: node linkType: hard -"@eslint/eslintrc@npm:^2.1.4": - version: 2.1.4 - resolution: "@eslint/eslintrc@npm:2.1.4" +"@eslint/config-array@npm:^0.18.0": + version: 0.18.0 + resolution: "@eslint/config-array@npm:0.18.0" + dependencies: + "@eslint/object-schema": ^2.1.4 + debug: ^4.3.1 + minimatch: ^3.1.2 + checksum: 5ff748e1788745bfb3160c3b3151d62a7c054e336e9fe8069e86cfa6106f3abbd59b24f1253122268295f98c66803e9a7b23d7f947a8c00f62d2060cc44bc7fc + languageName: node + linkType: hard + +"@eslint/core@npm:^0.6.0": + version: 0.6.0 + resolution: "@eslint/core@npm:0.6.0" + checksum: bf6a285d8cfb7f76524041991832fcc1573c7fc4bdfa091a14972bdb719d5a735330efb88ec453dd33930f49bcc9bb2737b40c43fb1220933781ebb712667265 + languageName: node + linkType: hard + +"@eslint/eslintrc@npm:^3.1.0": + version: 3.1.0 + resolution: "@eslint/eslintrc@npm:3.1.0" dependencies: ajv: ^6.12.4 debug: ^4.3.2 - espree: ^9.6.0 - globals: ^13.19.0 + espree: ^10.0.1 + globals: ^14.0.0 ignore: ^5.2.0 import-fresh: ^3.2.1 js-yaml: ^4.1.0 minimatch: ^3.1.2 strip-json-comments: ^3.1.1 - checksum: 10957c7592b20ca0089262d8c2a8accbad14b4f6507e35416c32ee6b4dbf9cad67dfb77096bbd405405e9ada2b107f3797fe94362e1c55e0b09d6e90dd149127 + checksum: b0a9bbd98c8b9e0f4d975b042ff9b874dde722b20834ea2ff46551c3de740d4f10f56c449b790ef34d7f82147cbddfc22b004a43cc885dbc2664bb134766b5e4 + languageName: node + linkType: hard + +"@eslint/js@npm:9.11.1": + version: 9.11.1 + resolution: "@eslint/js@npm:9.11.1" + checksum: 6fdd1958b25223588dd002a7497a395abb71dd1f25626ecd16ebcb8dd0fca7b74104a8172c192dfff131b49faa2b469be36a179b6ca096b6f55afb1f9b6fa952 languageName: node linkType: hard -"@eslint/js@npm:8.57.0": - version: 8.57.0 - resolution: "@eslint/js@npm:8.57.0" - checksum: 315dc65b0e9893e2bff139bddace7ea601ad77ed47b4550e73da8c9c2d2766c7a575c3cddf17ef85b8fd6a36ff34f91729d0dcca56e73ca887c10df91a41b0bb +"@eslint/object-schema@npm:^2.1.4": + version: 2.1.4 + resolution: "@eslint/object-schema@npm:2.1.4" + checksum: 5a03094115bcdab7991dbbc5d17a9713f394cebb4b44d3eaf990d7487b9b8e1877b817997334ab40be52e299a0384595c6f6ba91b389901e5e1d21efda779271 + languageName: node + linkType: hard + +"@eslint/plugin-kit@npm:^0.2.0": + version: 0.2.0 + resolution: "@eslint/plugin-kit@npm:0.2.0" + dependencies: + levn: ^0.4.1 + checksum: 2c358c816575b8338e017cff59bf8b7a186510bc0e6c1b234e889156bfea9e00ce588ce424a0aa5d322e316f1ad08e8fdc7450a7fd966c64cbb911e64eaffbb9 languageName: node linkType: hard @@ -1561,17 +1605,6 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.11.14": - version: 0.11.14 - resolution: "@humanwhocodes/config-array@npm:0.11.14" - dependencies: - "@humanwhocodes/object-schema": ^2.0.2 - debug: ^4.3.1 - minimatch: ^3.0.5 - checksum: 861ccce9eaea5de19546653bccf75bf09fe878bc39c3aab00aeee2d2a0e654516adad38dd1098aab5e3af0145bbcbf3f309bdf4d964f8dab9dcd5834ae4c02f2 - languageName: node - linkType: hard - "@humanwhocodes/module-importer@npm:^1.0.1": version: 1.0.1 resolution: "@humanwhocodes/module-importer@npm:1.0.1" @@ -1579,10 +1612,10 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/object-schema@npm:^2.0.2": - version: 2.0.3 - resolution: "@humanwhocodes/object-schema@npm:2.0.3" - checksum: d3b78f6c5831888c6ecc899df0d03bcc25d46f3ad26a11d7ea52944dc36a35ef543fad965322174238d677a43d5c694434f6607532cff7077062513ad7022631 +"@humanwhocodes/retry@npm:^0.3.0": + version: 0.3.0 + resolution: "@humanwhocodes/retry@npm:0.3.0" + checksum: 4349cb8b60466a000e945fde8f8551cefb01ebba22ead4a92ac7b145f67f5da6b52e5a1e0c53185d732d0a49958ac29327934a4a5ac1d0bc20efb4429a4f7bf7 languageName: node linkType: hard @@ -1894,81 +1927,81 @@ __metadata: languageName: node linkType: hard -"@next/env@npm:14.2.3": - version: 14.2.3 - resolution: "@next/env@npm:14.2.3" - checksum: 47ddb64ec6cdc13dfcf560ba42cce71d7948174bf800162738e20ba0147cc46a5f6fdde1eb7957a3676a9eca6dccf6603836ed7c755eab238d9f5c73614d9880 +"@next/env@npm:14.2.13": + version: 14.2.13 + resolution: "@next/env@npm:14.2.13" + checksum: aee5edf338d7f570f701772c8787d74f04bbe475ca274b7e67ec4a3370b3418399faf6c5f94c221f7c832255f83746af2a08abd373f5466b340a5b1ff4d47376 languageName: node linkType: hard -"@next/eslint-plugin-next@npm:14.2.5": - version: 14.2.5 - resolution: "@next/eslint-plugin-next@npm:14.2.5" +"@next/eslint-plugin-next@npm:14.2.13": + version: 14.2.13 + resolution: "@next/eslint-plugin-next@npm:14.2.13" dependencies: glob: 10.3.10 - checksum: fe0233a03382b46c67b022fa5e5d905911eecc7ce303bf60b884a9bdd436f8b3218bd0484d52bbe40bf2c6668f223246a1c4a620e0c1686002c178ff0b444c0b + checksum: 7e98863a0d6edfc3c79ee7922acc55d01c8d67a947c62d9ea5170c6689a62be548b1c7d033cda6cc6939b001c5846b46697a58bae46fdd0a3e9886b177ebcef1 languageName: node linkType: hard -"@next/swc-darwin-arm64@npm:14.2.3": - version: 14.2.3 - resolution: "@next/swc-darwin-arm64@npm:14.2.3" +"@next/swc-darwin-arm64@npm:14.2.13": + version: 14.2.13 + resolution: "@next/swc-darwin-arm64@npm:14.2.13" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@next/swc-darwin-x64@npm:14.2.3": - version: 14.2.3 - resolution: "@next/swc-darwin-x64@npm:14.2.3" +"@next/swc-darwin-x64@npm:14.2.13": + version: 14.2.13 + resolution: "@next/swc-darwin-x64@npm:14.2.13" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@next/swc-linux-arm64-gnu@npm:14.2.3": - version: 14.2.3 - resolution: "@next/swc-linux-arm64-gnu@npm:14.2.3" +"@next/swc-linux-arm64-gnu@npm:14.2.13": + version: 14.2.13 + resolution: "@next/swc-linux-arm64-gnu@npm:14.2.13" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@next/swc-linux-arm64-musl@npm:14.2.3": - version: 14.2.3 - resolution: "@next/swc-linux-arm64-musl@npm:14.2.3" +"@next/swc-linux-arm64-musl@npm:14.2.13": + version: 14.2.13 + resolution: "@next/swc-linux-arm64-musl@npm:14.2.13" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@next/swc-linux-x64-gnu@npm:14.2.3": - version: 14.2.3 - resolution: "@next/swc-linux-x64-gnu@npm:14.2.3" +"@next/swc-linux-x64-gnu@npm:14.2.13": + version: 14.2.13 + resolution: "@next/swc-linux-x64-gnu@npm:14.2.13" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@next/swc-linux-x64-musl@npm:14.2.3": - version: 14.2.3 - resolution: "@next/swc-linux-x64-musl@npm:14.2.3" +"@next/swc-linux-x64-musl@npm:14.2.13": + version: 14.2.13 + resolution: "@next/swc-linux-x64-musl@npm:14.2.13" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@next/swc-win32-arm64-msvc@npm:14.2.3": - version: 14.2.3 - resolution: "@next/swc-win32-arm64-msvc@npm:14.2.3" +"@next/swc-win32-arm64-msvc@npm:14.2.13": + version: 14.2.13 + resolution: "@next/swc-win32-arm64-msvc@npm:14.2.13" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@next/swc-win32-ia32-msvc@npm:14.2.3": - version: 14.2.3 - resolution: "@next/swc-win32-ia32-msvc@npm:14.2.3" +"@next/swc-win32-ia32-msvc@npm:14.2.13": + version: 14.2.13 + resolution: "@next/swc-win32-ia32-msvc@npm:14.2.13" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@next/swc-win32-x64-msvc@npm:14.2.3": - version: 14.2.3 - resolution: "@next/swc-win32-x64-msvc@npm:14.2.3" +"@next/swc-win32-x64-msvc@npm:14.2.13": + version: 14.2.13 + resolution: "@next/swc-win32-x64-msvc@npm:14.2.13" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -2293,6 +2326,13 @@ __metadata: languageName: node linkType: hard +"@types/estree@npm:^1.0.6": + version: 1.0.6 + resolution: "@types/estree@npm:1.0.6" + checksum: 8825d6e729e16445d9a1dd2fb1db2edc5ed400799064cd4d028150701031af012ba30d6d03fe9df40f4d7a437d0de6d2b256020152b7b09bde9f2e420afdffd9 + languageName: node + linkType: hard + "@types/geojson@npm:*": version: 7946.0.14 resolution: "@types/geojson@npm:7946.0.14" @@ -2307,7 +2347,7 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:^7.0.8": +"@types/json-schema@npm:^7.0.15, @types/json-schema@npm:^7.0.8": version: 7.0.15 resolution: "@types/json-schema@npm:7.0.15" checksum: 97ed0cb44d4070aecea772b7b2e2ed971e10c81ec87dd4ecc160322ffa55ff330dace1793489540e3e318d90942064bb697cc0f8989391797792d919737b3b98 @@ -2337,12 +2377,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^20.14.6": - version: 20.16.5 - resolution: "@types/node@npm:20.16.5" +"@types/node@npm:^22.6.1": + version: 22.6.1 + resolution: "@types/node@npm:22.6.1" dependencies: undici-types: ~6.19.2 - checksum: f38b7bd8c4993dcf38943afa2ffdd7dfd18fc94f8f3f28d0c1045a10d39871a6cc1b8f8d3bf0c7ed848457d0e1d283482f6ca125579c13fed1b7575d23e8e8f5 + checksum: 177e026c83066bf21c3547313aeff45bfc3b77cd055c6dc539c657bbfd43e3f28f194568e5887daac67c9122a6906a2f06845b00ed33c05cf08351b3d2586a35 languageName: node linkType: hard @@ -2360,7 +2400,7 @@ __metadata: languageName: node linkType: hard -"@types/react-dom@npm:*": +"@types/react-dom@npm:*, @types/react-dom@npm:18.3.0": version: 18.3.0 resolution: "@types/react-dom@npm:18.3.0" dependencies: @@ -2369,15 +2409,6 @@ __metadata: languageName: node linkType: hard -"@types/react-dom@npm:18.2.18": - version: 18.2.18 - resolution: "@types/react-dom@npm:18.2.18" - dependencies: - "@types/react": "*" - checksum: 8e3da404c980e2b2a76da3852f812ea6d8b9d0e7f5923fbaf3bfbbbfa1d59116ff91c129de8f68e9b7668a67ae34484fe9df74d5a7518cf8591ec07a0c4dad57 - languageName: node - linkType: hard - "@types/react-transition-group@npm:^4.4.10": version: 4.4.11 resolution: "@types/react-transition-group@npm:4.4.11" @@ -2387,7 +2418,7 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:*, @types/react@npm:^18.3.3": +"@types/react@npm:*": version: 18.3.5 resolution: "@types/react@npm:18.3.5" dependencies: @@ -2397,6 +2428,16 @@ __metadata: languageName: node linkType: hard +"@types/react@npm:^18.3.8": + version: 18.3.8 + resolution: "@types/react@npm:18.3.8" + dependencies: + "@types/prop-types": "*" + csstype: ^3.0.2 + checksum: a2cc2034746cde564a49a9d7f1ae57214bc83adb0daafd4724dc400569adc54c5a489c0e7d8656752b8748908a364d6811e4d7a2adc7f18a7f7179728d20147a + languageName: node + linkType: hard + "@types/uuid@npm:^8.0.0": version: 8.3.4 resolution: "@types/uuid@npm:8.3.4" @@ -2413,74 +2454,119 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/parser@npm:^5.4.2 || ^6.0.0 || 7.0.0 - 7.2.0": - version: 7.2.0 - resolution: "@typescript-eslint/parser@npm:7.2.0" +"@typescript-eslint/eslint-plugin@npm:^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0": + version: 8.7.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.7.0" dependencies: - "@typescript-eslint/scope-manager": 7.2.0 - "@typescript-eslint/types": 7.2.0 - "@typescript-eslint/typescript-estree": 7.2.0 - "@typescript-eslint/visitor-keys": 7.2.0 + "@eslint-community/regexpp": ^4.10.0 + "@typescript-eslint/scope-manager": 8.7.0 + "@typescript-eslint/type-utils": 8.7.0 + "@typescript-eslint/utils": 8.7.0 + "@typescript-eslint/visitor-keys": 8.7.0 + graphemer: ^1.4.0 + ignore: ^5.3.1 + natural-compare: ^1.4.0 + ts-api-utils: ^1.3.0 + peerDependencies: + "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 2c4d6c6401ea61c69ef2f5ba0114a844a523496e122982248e12fb90b968504a50b692ce157a95b867553a787a90af27229bc4ebad96b16b3598c5a04a40e6f2 + languageName: node + linkType: hard + +"@typescript-eslint/parser@npm:^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0": + version: 8.7.0 + resolution: "@typescript-eslint/parser@npm:8.7.0" + dependencies: + "@typescript-eslint/scope-manager": 8.7.0 + "@typescript-eslint/types": 8.7.0 + "@typescript-eslint/typescript-estree": 8.7.0 + "@typescript-eslint/visitor-keys": 8.7.0 debug: ^4.3.4 peerDependencies: - eslint: ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 21deb2e7ad1fc730f637af08f5c549f30ef5b50f424639f57f5bc01274e648db47c696bb994bb24e87424b593d4084e306447c9431a0c0e4807952996db306f4 + checksum: fdfd7cf67662fd03442ae7e14f461ee7da14a5d27e692535167f50dfc965f9249692a6b004ac1f16d9d932364ccb8ce2c123a254d4d380d9ccd649205694d875 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:7.2.0": - version: 7.2.0 - resolution: "@typescript-eslint/scope-manager@npm:7.2.0" +"@typescript-eslint/scope-manager@npm:8.7.0": + version: 8.7.0 + resolution: "@typescript-eslint/scope-manager@npm:8.7.0" dependencies: - "@typescript-eslint/types": 7.2.0 - "@typescript-eslint/visitor-keys": 7.2.0 - checksum: b4ef8e35a56f590fa56cf769e111907828abb4793f482bf57e3fc8c987294ec119acb96359aa4b0150eea7416816e0b2d8635dccd1e4a5c2b02678b0f74def94 + "@typescript-eslint/types": 8.7.0 + "@typescript-eslint/visitor-keys": 8.7.0 + checksum: 30ef3bf4fa9c6c614cda7a2765e5163b8e07dc80619ffd70882d7d4db957b939167ef6efd418db993bad9435517e826ce86fae2329dd8202b262a712f7bc724e languageName: node linkType: hard -"@typescript-eslint/types@npm:7.2.0": - version: 7.2.0 - resolution: "@typescript-eslint/types@npm:7.2.0" - checksum: 237acd24aa55b762ee98904e4f422ba86579325200dcd058b3cbfe70775926e7f00ee0295788d81eb728f3a6326fe4401c648aee9eb1480d9030a441c17520e8 +"@typescript-eslint/type-utils@npm:8.7.0": + version: 8.7.0 + resolution: "@typescript-eslint/type-utils@npm:8.7.0" + dependencies: + "@typescript-eslint/typescript-estree": 8.7.0 + "@typescript-eslint/utils": 8.7.0 + debug: ^4.3.4 + ts-api-utils: ^1.3.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 86f822be40dc9414494208f08bd8fc3d4cebf2e066bb7ee25192c92564e9af3245a6bd39adbdfda1e7544db8ad1a7307b84bff7cc51e796366ee2206c34b9a76 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.2.0": - version: 7.2.0 - resolution: "@typescript-eslint/typescript-estree@npm:7.2.0" +"@typescript-eslint/types@npm:8.7.0": + version: 8.7.0 + resolution: "@typescript-eslint/types@npm:8.7.0" + checksum: 4f1a625c1460649fc21a330fc9dde81d47a20b46bca3de60d50653a1d6c082bd419af1c7c7dde6be800416116f3d63734f9faa6629bdd9f3a8e6bba3a92a4e82 + languageName: node + linkType: hard + +"@typescript-eslint/typescript-estree@npm:8.7.0": + version: 8.7.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.7.0" dependencies: - "@typescript-eslint/types": 7.2.0 - "@typescript-eslint/visitor-keys": 7.2.0 + "@typescript-eslint/types": 8.7.0 + "@typescript-eslint/visitor-keys": 8.7.0 debug: ^4.3.4 - globby: ^11.1.0 + fast-glob: ^3.3.2 is-glob: ^4.0.3 - minimatch: 9.0.3 - semver: ^7.5.4 - ts-api-utils: ^1.0.1 + minimatch: ^9.0.4 + semver: ^7.6.0 + ts-api-utils: ^1.3.0 peerDependenciesMeta: typescript: optional: true - checksum: fe882195cad45bb67e7e127efa9c31977348d0ca923ef26bb9fbd03a2ab64e6772e6e60954ba07a437684fae8e35897d71f0e6a1ef8fbf3f0025cd314960cd9d + checksum: f1a2d53640bb47a293ef6fa2102e2d9a53f52e3c88682d65fd17133ae90cae327aeacdc582a8a23e576a48b104151021b50b4e4f8fe4c14d1fec49d52a823bd1 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:7.2.0": - version: 7.2.0 - resolution: "@typescript-eslint/visitor-keys@npm:7.2.0" +"@typescript-eslint/utils@npm:8.7.0": + version: 8.7.0 + resolution: "@typescript-eslint/utils@npm:8.7.0" dependencies: - "@typescript-eslint/types": 7.2.0 - eslint-visitor-keys: ^3.4.1 - checksum: d9b11b52737450f213cea5c6e07e4672684da48325905c096ee09302b6b261c0bb226e1e350011bdf127c0cbbdd9e6474c905befdfa0a2118fc89ece16770f2b + "@eslint-community/eslint-utils": ^4.4.0 + "@typescript-eslint/scope-manager": 8.7.0 + "@typescript-eslint/types": 8.7.0 + "@typescript-eslint/typescript-estree": 8.7.0 + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + checksum: e995714c13261868df1262f60dfcaab094a70ec7bea69830b29af4d57091bf39ebe496bae6a8d638f1a5194590911ec6da7cddc3fc394b71b8e5884b24c6e979 languageName: node linkType: hard -"@ungap/structured-clone@npm:^1.2.0": - version: 1.2.0 - resolution: "@ungap/structured-clone@npm:1.2.0" - checksum: 4f656b7b4672f2ce6e272f2427d8b0824ed11546a601d8d5412b9d7704e83db38a8d9f402ecdf2b9063fc164af842ad0ec4a55819f621ed7e7ea4d1efcc74524 +"@typescript-eslint/visitor-keys@npm:8.7.0": + version: 8.7.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.7.0" + dependencies: + "@typescript-eslint/types": 8.7.0 + eslint-visitor-keys: ^3.4.3 + checksum: 072d3d4e7ff8da51a0a37d057d6ca0895c163d480e77329de50e2a7a057acc8d6552f7d18f1fd87cb326d709fe4b667b2ed5cb968d307f92a3e12825cf65b9cd languageName: node linkType: hard @@ -3244,9 +3330,9 @@ __metadata: languageName: node linkType: hard -"@weng-lab/psychscreen-ui-components@npm:^0.9.0": - version: 0.9.9 - resolution: "@weng-lab/psychscreen-ui-components@npm:0.9.9" +"@weng-lab/psychscreen-ui-components@npm:^1.0.4": + version: 1.0.4 + resolution: "@weng-lab/psychscreen-ui-components@npm:1.0.4" dependencies: "@visx/tooltip": ^3.3.0 cytoscape: ^3.29.2 @@ -3257,7 +3343,7 @@ __metadata: use-react-screenshot: ^4.0.0 peerDependencies: react: ">=16" - checksum: 5afa1f5000f768f40cd0bea9320f36b7251d946bab0171bb84f0fa7098183e173759b36ca79f2e5c57c90b1c5d65b3b8d40a4efdaa3001b4893ea0ca5c0223a9 + checksum: a96764630b4b13c914699493cad833e1ef13854b93aebc1557d9d7fb78615d5571bcd9a120d75a0ef606ed36dbd245eb1b7badd5b54f972e894419f1406a8be3 languageName: node linkType: hard @@ -3435,7 +3521,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.7.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": +"acorn@npm:^8.12.0, acorn@npm:^8.7.1, acorn@npm:^8.8.2": version: 8.12.1 resolution: "acorn@npm:8.12.1" bin: @@ -3774,21 +3860,21 @@ __metadata: languageName: node linkType: hard -"autoprefixer@npm:10.4.17": - version: 10.4.17 - resolution: "autoprefixer@npm:10.4.17" +"autoprefixer@npm:10.4.20": + version: 10.4.20 + resolution: "autoprefixer@npm:10.4.20" dependencies: - browserslist: ^4.22.2 - caniuse-lite: ^1.0.30001578 + browserslist: ^4.23.3 + caniuse-lite: ^1.0.30001646 fraction.js: ^4.3.7 normalize-range: ^0.1.2 - picocolors: ^1.0.0 + picocolors: ^1.0.1 postcss-value-parser: ^4.2.0 peerDependencies: postcss: ^8.1.0 bin: autoprefixer: bin/autoprefixer - checksum: 1b4cf4097507f9dc48cef3194f18a05901311c881380cc634b308fce54a6554cf2dcd20aec8384b44e994d4665ab12c63dc89492523f8d74ff5d4d5eb1469f8c + checksum: 187cec2ec356631932b212f76dc64f4419c117fdb2fb9eeeb40867d38ba5ca5ba734e6ceefc9e3af4eec8258e60accdf5cbf2b7708798598fde35cdc3de562d6 languageName: node linkType: hard @@ -4048,7 +4134,7 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.21.10, browserslist@npm:^4.22.2, browserslist@npm:^4.23.1": +"browserslist@npm:^4.21.10, browserslist@npm:^4.23.1, browserslist@npm:^4.23.3": version: 4.23.3 resolution: "browserslist@npm:4.23.3" dependencies: @@ -4175,7 +4261,7 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001578, caniuse-lite@npm:^1.0.30001579, caniuse-lite@npm:^1.0.30001646": +"caniuse-lite@npm:^1.0.30001579, caniuse-lite@npm:^1.0.30001646": version: 1.0.30001660 resolution: "caniuse-lite@npm:1.0.30001660" checksum: 8b2c5de2f5facd31980426afbba68238270984acfe8c1ae925b8b6480448eea2fae292f815674617e9170c730c8a238d7cc0db919f184dc0e3cd9bec18f5e5ad @@ -4675,15 +4761,6 @@ __metadata: languageName: node linkType: hard -"copy-anything@npm:^3.0.2": - version: 3.0.5 - resolution: "copy-anything@npm:3.0.5" - dependencies: - is-what: ^4.1.8 - checksum: d39f6601c16b7cbd81cdb1c1f40f2bf0f2ca0297601cf7bfbb4ef1d85374a6a89c559502329f5bada36604464df17623e111fe19a9bb0c3f6b1c92fe2cbe972f - languageName: node - linkType: hard - "cors@npm:~2.8.5": version: 2.8.5 resolution: "cors@npm:2.8.5" @@ -5284,15 +5361,6 @@ __metadata: languageName: node linkType: hard -"doctrine@npm:^3.0.0": - version: 3.0.0 - resolution: "doctrine@npm:3.0.0" - dependencies: - esutils: ^2.0.2 - checksum: fd7673ca77fe26cd5cba38d816bc72d641f500f1f9b25b83e8ce28827fe2da7ad583a8da26ab6af85f834138cf8dae9f69b0cd6ab925f52ddab1754db44d99ce - languageName: node - linkType: hard - "doctypes@npm:^1.1.0": version: 1.1.0 resolution: "doctypes@npm:1.1.0" @@ -5664,13 +5732,14 @@ __metadata: languageName: node linkType: hard -"eslint-config-next@npm:14.2.5": - version: 14.2.5 - resolution: "eslint-config-next@npm:14.2.5" +"eslint-config-next@npm:14.2.13": + version: 14.2.13 + resolution: "eslint-config-next@npm:14.2.13" dependencies: - "@next/eslint-plugin-next": 14.2.5 + "@next/eslint-plugin-next": 14.2.13 "@rushstack/eslint-patch": ^1.3.3 - "@typescript-eslint/parser": ^5.4.2 || ^6.0.0 || 7.0.0 - 7.2.0 + "@typescript-eslint/eslint-plugin": ^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0 + "@typescript-eslint/parser": ^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0 eslint-import-resolver-node: ^0.3.6 eslint-import-resolver-typescript: ^3.5.2 eslint-plugin-import: ^2.28.1 @@ -5683,7 +5752,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 3c362f080775541e936a5f2d273ffc63ed177b6cbb45a80d25efa2857e8eb265250ad9f60c2e3d940f4e565ec49ddc6c9885f2b7260c550aae77237620df9420 + checksum: 6931978b930506f7d31b71d2b38ed75dcff6baafbd50dd64ceab27e0de18a37ac3eeed43a1f910e7ead3b711b43769399d0bd9f69eef864e2268240c9fe56f7e languageName: node linkType: hard @@ -5836,83 +5905,94 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:^7.2.2": - version: 7.2.2 - resolution: "eslint-scope@npm:7.2.2" +"eslint-scope@npm:^8.0.2": + version: 8.0.2 + resolution: "eslint-scope@npm:8.0.2" dependencies: esrecurse: ^4.3.0 estraverse: ^5.2.0 - checksum: ec97dbf5fb04b94e8f4c5a91a7f0a6dd3c55e46bfc7bbcd0e3138c3a76977570e02ed89a1810c778dcd72072ff0e9621ba1379b4babe53921d71e2e4486fda3e + checksum: bd1e7a0597ec605cf3bc9b35c9e13d7ea6c11fee031b0cada9e8993b0ecf16d81d6f40f1dcd463424af439abf53cd62302ea25707c1599689eb2750d6aa29688 languageName: node linkType: hard -"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": +"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.3": version: 3.4.3 resolution: "eslint-visitor-keys@npm:3.4.3" checksum: 36e9ef87fca698b6fd7ca5ca35d7b2b6eeaaf106572e2f7fd31c12d3bfdaccdb587bba6d3621067e5aece31c8c3a348b93922ab8f7b2cbc6aaab5e1d89040c60 languageName: node linkType: hard -"eslint@npm:8.57.0": - version: 8.57.0 - resolution: "eslint@npm:8.57.0" +"eslint-visitor-keys@npm:^4.0.0": + version: 4.0.0 + resolution: "eslint-visitor-keys@npm:4.0.0" + checksum: 5c09f89cf29d87cdbfbac38802a880d3c2e65f8cb61c689888346758f1e24a4c7f6caefeac9474dfa52058a99920623599bdb00516976a30134abeba91275aa2 + languageName: node + linkType: hard + +"eslint@npm:9.11.1": + version: 9.11.1 + resolution: "eslint@npm:9.11.1" dependencies: "@eslint-community/eslint-utils": ^4.2.0 - "@eslint-community/regexpp": ^4.6.1 - "@eslint/eslintrc": ^2.1.4 - "@eslint/js": 8.57.0 - "@humanwhocodes/config-array": ^0.11.14 + "@eslint-community/regexpp": ^4.11.0 + "@eslint/config-array": ^0.18.0 + "@eslint/core": ^0.6.0 + "@eslint/eslintrc": ^3.1.0 + "@eslint/js": 9.11.1 + "@eslint/plugin-kit": ^0.2.0 "@humanwhocodes/module-importer": ^1.0.1 + "@humanwhocodes/retry": ^0.3.0 "@nodelib/fs.walk": ^1.2.8 - "@ungap/structured-clone": ^1.2.0 + "@types/estree": ^1.0.6 + "@types/json-schema": ^7.0.15 ajv: ^6.12.4 chalk: ^4.0.0 cross-spawn: ^7.0.2 debug: ^4.3.2 - doctrine: ^3.0.0 escape-string-regexp: ^4.0.0 - eslint-scope: ^7.2.2 - eslint-visitor-keys: ^3.4.3 - espree: ^9.6.1 - esquery: ^1.4.2 + eslint-scope: ^8.0.2 + eslint-visitor-keys: ^4.0.0 + espree: ^10.1.0 + esquery: ^1.5.0 esutils: ^2.0.2 fast-deep-equal: ^3.1.3 - file-entry-cache: ^6.0.1 + file-entry-cache: ^8.0.0 find-up: ^5.0.0 glob-parent: ^6.0.2 - globals: ^13.19.0 - graphemer: ^1.4.0 ignore: ^5.2.0 imurmurhash: ^0.1.4 is-glob: ^4.0.0 is-path-inside: ^3.0.3 - js-yaml: ^4.1.0 json-stable-stringify-without-jsonify: ^1.0.1 - levn: ^0.4.1 lodash.merge: ^4.6.2 minimatch: ^3.1.2 natural-compare: ^1.4.0 optionator: ^0.9.3 strip-ansi: ^6.0.1 text-table: ^0.2.0 + peerDependencies: + jiti: "*" + peerDependenciesMeta: + jiti: + optional: true bin: eslint: bin/eslint.js - checksum: 3a48d7ff85ab420a8447e9810d8087aea5b1df9ef68c9151732b478de698389ee656fd895635b5f2871c89ee5a2652b3f343d11e9db6f8486880374ebc74a2d9 + checksum: 3d6c1648cd5437d3d9844d769f2ac6e6768d78c365fef6f7fc4248e96322ec61c2af26ade84c66350b26b3416d0207ac18e10ac1f801448a3eec423f8cd6d691 languageName: node linkType: hard -"espree@npm:^9.6.0, espree@npm:^9.6.1": - version: 9.6.1 - resolution: "espree@npm:9.6.1" +"espree@npm:^10.0.1, espree@npm:^10.1.0": + version: 10.1.0 + resolution: "espree@npm:10.1.0" dependencies: - acorn: ^8.9.0 + acorn: ^8.12.0 acorn-jsx: ^5.3.2 - eslint-visitor-keys: ^3.4.1 - checksum: eb8c149c7a2a77b3f33a5af80c10875c3abd65450f60b8af6db1bfcfa8f101e21c1e56a561c6dc13b848e18148d43469e7cd208506238554fb5395a9ea5a1ab9 + eslint-visitor-keys: ^4.0.0 + checksum: a4708ab987f6c03734b8738b1588e9f31b2e305e869ca4677c60d82294eb05f7099b6687eb39eeb0913bb2d49bdf0bd0f31c511599ea7ee171281f871a9c897e languageName: node linkType: hard -"esquery@npm:^1.4.2": +"esquery@npm:^1.5.0": version: 1.6.0 resolution: "esquery@npm:1.6.0" dependencies: @@ -6198,12 +6278,12 @@ __metadata: languageName: node linkType: hard -"file-entry-cache@npm:^6.0.1": - version: 6.0.1 - resolution: "file-entry-cache@npm:6.0.1" +"file-entry-cache@npm:^8.0.0": + version: 8.0.0 + resolution: "file-entry-cache@npm:8.0.0" dependencies: - flat-cache: ^3.0.4 - checksum: f49701feaa6314c8127c3c2f6173cfefff17612f5ed2daaafc6da13b5c91fd43e3b2a58fd0d63f9f94478a501b167615931e7200e31485e320f74a33885a9c74 + flat-cache: ^4.0.0 + checksum: f67802d3334809048c69b3d458f672e1b6d26daefda701761c81f203b80149c35dea04d78ea4238969dd617678e530876722a0634c43031a0957f10cc3ed190f languageName: node linkType: hard @@ -6279,14 +6359,13 @@ __metadata: languageName: node linkType: hard -"flat-cache@npm:^3.0.4": - version: 3.2.0 - resolution: "flat-cache@npm:3.2.0" +"flat-cache@npm:^4.0.0": + version: 4.0.1 + resolution: "flat-cache@npm:4.0.1" dependencies: flatted: ^3.2.9 - keyv: ^4.5.3 - rimraf: ^3.0.2 - checksum: e7e0f59801e288b54bee5cb9681e9ee21ee28ef309f886b312c9d08415b79fc0f24ac842f84356ce80f47d6a53de62197ce0e6e148dc42d5db005992e2a756ec + keyv: ^4.5.4 + checksum: 899fc86bf6df093547d76e7bfaeb900824b869d7d457d02e9b8aae24836f0a99fbad79328cfd6415ee8908f180699bf259dc7614f793447cb14f707caf5996f6 languageName: node linkType: hard @@ -6577,7 +6656,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^7.1.1, glob@npm:^7.1.3": +"glob@npm:^7.1.1": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -6598,12 +6677,10 @@ __metadata: languageName: node linkType: hard -"globals@npm:^13.19.0": - version: 13.24.0 - resolution: "globals@npm:13.24.0" - dependencies: - type-fest: ^0.20.2 - checksum: 56066ef058f6867c04ff203b8a44c15b038346a62efbc3060052a1016be9f56f4cf0b2cd45b74b22b81e521a889fc7786c73691b0549c2f3a6e825b3d394f43c +"globals@npm:^14.0.0": + version: 14.0.0 + resolution: "globals@npm:14.0.0" + checksum: 534b8216736a5425737f59f6e6a5c7f386254560c9f41d24a9227d60ee3ad4a9e82c5b85def0e212e9d92162f83a92544be4c7fd4c902cb913736c10e08237ac languageName: node linkType: hard @@ -6617,7 +6694,7 @@ __metadata: languageName: node linkType: hard -"globby@npm:^11.0.3, globby@npm:^11.1.0": +"globby@npm:^11.0.3": version: 11.1.0 resolution: "globby@npm:11.1.0" dependencies: @@ -6718,7 +6795,7 @@ __metadata: languageName: node linkType: hard -"graphql@npm:^16.8.1": +"graphql@npm:^16.9.0": version: 16.9.0 resolution: "graphql@npm:16.9.0" checksum: 8cb3d54100e9227310383ce7f791ca48d12f15ed9f2021f23f8735f1121aafe4e5e611a853081dd935ce221724ea1ae4638faef5d2921fb1ad7c26b5f46611e9 @@ -6962,7 +7039,7 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.2.0": +"ignore@npm:^5.2.0, ignore@npm:^5.3.1": version: 5.3.2 resolution: "ignore@npm:5.3.2" checksum: 2acfd32a573260ea522ea0bfeff880af426d68f6831f973129e2ba7363f422923cf53aab62f8369cbf4667c7b25b6f8a3761b34ecdb284ea18e87a5262a865be @@ -7535,13 +7612,6 @@ __metadata: languageName: node linkType: hard -"is-what@npm:^4.1.8": - version: 4.1.16 - resolution: "is-what@npm:4.1.16" - checksum: baf99e4b9f06003ceb3b2eea4a1e17179524ee3a6310dc44903eb675cfe3c0a17819ab057bb1ae6ba7ca4939ae4bdfcc6a0c4210a8457aff1756abd3607b713c - languageName: node - linkType: hard - "is-windows@npm:^1.0.1": version: 1.0.2 resolution: "is-windows@npm:1.0.2" @@ -7636,7 +7706,7 @@ __metadata: languageName: node linkType: hard -"jiti@npm:^1.17.1, jiti@npm:^1.18.2, jiti@npm:^1.19.1": +"jiti@npm:^1.17.1, jiti@npm:^1.18.2, jiti@npm:^1.21.0": version: 1.21.6 resolution: "jiti@npm:1.21.6" bin: @@ -7798,7 +7868,7 @@ __metadata: languageName: node linkType: hard -"keyv@npm:^4.5.3": +"keyv@npm:^4.5.4": version: 4.5.4 resolution: "keyv@npm:4.5.4" dependencies: @@ -7868,7 +7938,7 @@ __metadata: languageName: node linkType: hard -"lint-staged@npm:^15.1.0": +"lint-staged@npm:^15.2.10": version: 15.2.10 resolution: "lint-staged@npm:15.2.10" dependencies: @@ -8059,21 +8129,21 @@ __metadata: languageName: node linkType: hard -"logots-react@latest, logots-react@npm:^0.2.0": - version: 0.2.0 - resolution: "logots-react@npm:0.2.0" +"logots-react@npm:^0.1.6": + version: 0.1.6 + resolution: "logots-react@npm:0.1.6" peerDependencies: react: ">=16" - checksum: efb6bcc59cea1349ed228ada4af088b7d19b285e594f85f8cbfbe3beec16d92a4cca72de62ec9437237e5a13d381b5675d1584b7485acfd8152c654a6427add5 + checksum: 35646f1b5db4d0a064e9e40ed64c094941e3fb17736abb69827c2a398dd165b66edc5328dd698b4c98b0c2099790fa57feb850b0416a4cd5f0bcfdddf6c970ae languageName: node linkType: hard -"logots-react@npm:^0.1.6": - version: 0.1.6 - resolution: "logots-react@npm:0.1.6" +"logots-react@npm:^0.2.0": + version: 0.2.0 + resolution: "logots-react@npm:0.2.0" peerDependencies: react: ">=16" - checksum: 35646f1b5db4d0a064e9e40ed64c094941e3fb17736abb69827c2a398dd165b66edc5328dd698b4c98b0c2099790fa57feb850b0416a4cd5f0bcfdddf6c970ae + checksum: efb6bcc59cea1349ed228ada4af088b7d19b285e594f85f8cbfbe3beec16d92a4cca72de62ec9437237e5a13d381b5675d1584b7485acfd8152c654a6427add5 languageName: node linkType: hard @@ -8278,16 +8348,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:9.0.3": - version: 9.0.3 - resolution: "minimatch@npm:9.0.3" - dependencies: - brace-expansion: ^2.0.1 - checksum: 253487976bf485b612f16bf57463520a14f512662e592e95c571afdab1442a6a6864b6c88f248ce6fc4ff0b6de04ac7aa6c8bb51e868e99d1d65eb0658a708b5 - languageName: node - linkType: hard - -"minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": +"minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" dependencies: @@ -8530,20 +8591,20 @@ __metadata: languageName: node linkType: hard -"next@npm:14.2.3": - version: 14.2.3 - resolution: "next@npm:14.2.3" - dependencies: - "@next/env": 14.2.3 - "@next/swc-darwin-arm64": 14.2.3 - "@next/swc-darwin-x64": 14.2.3 - "@next/swc-linux-arm64-gnu": 14.2.3 - "@next/swc-linux-arm64-musl": 14.2.3 - "@next/swc-linux-x64-gnu": 14.2.3 - "@next/swc-linux-x64-musl": 14.2.3 - "@next/swc-win32-arm64-msvc": 14.2.3 - "@next/swc-win32-ia32-msvc": 14.2.3 - "@next/swc-win32-x64-msvc": 14.2.3 +"next@npm:14.2.13": + version: 14.2.13 + resolution: "next@npm:14.2.13" + dependencies: + "@next/env": 14.2.13 + "@next/swc-darwin-arm64": 14.2.13 + "@next/swc-darwin-x64": 14.2.13 + "@next/swc-linux-arm64-gnu": 14.2.13 + "@next/swc-linux-arm64-musl": 14.2.13 + "@next/swc-linux-x64-gnu": 14.2.13 + "@next/swc-linux-x64-musl": 14.2.13 + "@next/swc-win32-arm64-msvc": 14.2.13 + "@next/swc-win32-ia32-msvc": 14.2.13 + "@next/swc-win32-x64-msvc": 14.2.13 "@swc/helpers": 0.5.5 busboy: 1.6.0 caniuse-lite: ^1.0.30001579 @@ -8584,7 +8645,7 @@ __metadata: optional: true bin: next: dist/bin/next - checksum: d34ea63adf23fe46efebe2a9c536c9127c0ee006d74c60d6d23aecbef650798c976b27c17910ca585f3bb1223b10924cb429b9ce930f3074aee1170d1519dccc + checksum: 00b2117e047f7426bb9c4f67ce7dc77d27c1e2ff4e60a2e1a1796be76d6725d498b96e00162250274106d33161bafd1eed2b92b007c73a43e8f2bff378e8c48d languageName: node linkType: hard @@ -9136,7 +9197,7 @@ __metadata: languageName: node linkType: hard -"picocolors@npm:^1.0.0, picocolors@npm:^1.0.1": +"picocolors@npm:^1.0.0, picocolors@npm:^1.0.1, picocolors@npm:^1.1.0": version: 1.1.0 resolution: "picocolors@npm:1.1.0" checksum: a64d653d3a188119ff45781dfcdaeedd7625583f45280aea33fcb032c7a0d3959f2368f9b192ad5e8aade75b74dbd954ffe3106c158509a45e4c18ab379a2acd @@ -9270,14 +9331,14 @@ __metadata: languageName: node linkType: hard -"postcss@npm:8.4.33": - version: 8.4.33 - resolution: "postcss@npm:8.4.33" +"postcss@npm:8.4.47": + version: 8.4.47 + resolution: "postcss@npm:8.4.47" dependencies: nanoid: ^3.3.7 - picocolors: ^1.0.0 - source-map-js: ^1.0.2 - checksum: 6f98b2af4b76632a3de20c4f47bf0e984a1ce1a531cf11adcb0b1d63a6cbda0aae4165e578b66c32ca4879038e3eaad386a6be725a8fb4429c78e3c1ab858fe9 + picocolors: ^1.1.0 + source-map-js: ^1.2.1 + checksum: f78440a9d8f97431dd2ab1ab8e1de64f12f3eff38a3d8d4a33919b96c381046a314658d2de213a5fa5eb296b656de76a3ec269fdea27f16d5ab465b916a0f52c languageName: node linkType: hard @@ -9299,7 +9360,7 @@ __metadata: languageName: node linkType: hard -"prettier@npm:^3.2.5": +"prettier@npm:^3.3.3": version: 3.3.3 resolution: "prettier@npm:3.3.3" bin: @@ -9570,15 +9631,15 @@ __metadata: languageName: node linkType: hard -"react-dom@npm:18.2.0": - version: 18.2.0 - resolution: "react-dom@npm:18.2.0" +"react-dom@npm:18.3.1": + version: 18.3.1 + resolution: "react-dom@npm:18.3.1" dependencies: loose-envify: ^1.1.0 - scheduler: ^0.23.0 + scheduler: ^0.23.2 peerDependencies: - react: ^18.2.0 - checksum: 7d323310bea3a91be2965f9468d552f201b1c27891e45ddc2d6b8f717680c95a75ae0bc1e3f5cf41472446a2589a75aed4483aee8169287909fcd59ad149e8cc + react: ^18.3.1 + checksum: 298954ecd8f78288dcaece05e88b570014d8f6dce5db6f66e6ee91448debeb59dcd31561dddb354eee47e6c1bb234669459060deb238ed0213497146e555a0b9 languageName: node linkType: hard @@ -9774,9 +9835,9 @@ __metadata: languageName: node linkType: hard -"rehackt@npm:0.0.6": - version: 0.0.6 - resolution: "rehackt@npm:0.0.6" +"rehackt@npm:^0.1.0": + version: 0.1.0 + resolution: "rehackt@npm:0.1.0" peerDependencies: "@types/react": "*" react: "*" @@ -9785,7 +9846,7 @@ __metadata: optional: true react: optional: true - checksum: 25df31d4fc1198b5beba68ec3c960119f120aeba4f7a6f686b087ddbfdd45753ea74b6daf66523c8b6db844429eaed516e0f6f37f657fdcc96334e5ae9efee98 + checksum: 2c3bcd72524bf47672640265e79cba785e0e6837b9b385ccb0a3ea7d00f55a439d9aed3e0ae71e991d88e0d4b2b3158457c92e75fff5ebf99cd46e280068ddeb languageName: node linkType: hard @@ -9975,17 +10036,6 @@ __metadata: languageName: node linkType: hard -"rimraf@npm:^3.0.2": - version: 3.0.2 - resolution: "rimraf@npm:3.0.2" - dependencies: - glob: ^7.1.3 - bin: - rimraf: bin.js - checksum: 87f4164e396f0171b0a3386cc1877a817f572148ee13a7e113b238e48e8a9f2f31d009a92ec38a591ff1567d9662c6b67fd8818a2dbbaed74bc26a87a2a4a9a0 - languageName: node - linkType: hard - "rndm@npm:1.2.0": version: 1.2.0 resolution: "rndm@npm:1.2.0" @@ -10076,7 +10126,7 @@ __metadata: languageName: node linkType: hard -"scheduler@npm:^0.23.0": +"scheduler@npm:^0.23.2": version: 0.23.2 resolution: "scheduler@npm:0.23.2" dependencies: @@ -10100,12 +10150,12 @@ __metadata: version: 0.0.0-use.local resolution: "screen2.0@workspace:." dependencies: - "@apollo/client": alpha - "@apollo/experimental-nextjs-app-support": ^0.8.0 - "@emailjs/browser": ^4.3.3 + "@apollo/client": ^3.11.8 + "@apollo/experimental-nextjs-app-support": ^0.11.3 + "@emailjs/browser": ^4.4.1 "@emotion/cache": ^11.13.1 - "@emotion/react": ^11.11.1 - "@emotion/styled": ^11.11.0 + "@emotion/react": ^11.13.3 + "@emotion/styled": ^11.13.0 "@graphql-codegen/cli": ^5.0.2 "@graphql-codegen/client-preset": ^4.3.3 "@graphql-typed-document-node/core": ^3.2.0 @@ -10113,40 +10163,40 @@ __metadata: "@mui/lab": ^5.0.0-alpha.170 "@mui/material": ^5.16.7 "@mui/material-nextjs": ^6.1.0 - "@types/node": ^20.14.6 - "@types/react": ^18.3.3 - "@types/react-dom": 18.2.18 + "@types/node": ^22.6.1 + "@types/react": ^18.3.8 + "@types/react-dom": 18.3.0 "@visx/event": ^3.3.0 "@visx/responsive": ^3.10.2 "@visx/visx": ^3.11.0 - "@weng-lab/psychscreen-ui-components": ^0.9.0 + "@weng-lab/psychscreen-ui-components": ^1.0.4 "@weng-lab/ts-ztable": ^4.0.1 - autoprefixer: 10.4.17 + autoprefixer: 10.4.20 bpnet-ui: ^0.3.8 - eslint: 8.57.0 - eslint-config-next: 14.2.5 + eslint: 9.11.1 + eslint-config-next: 14.2.13 file-loader: ^6.2.0 - graphql: ^16.8.1 + graphql: ^16.9.0 jubilant-carnival: ^0.6.0 - lint-staged: ^15.1.0 - logots-react: latest - next: 14.2.3 + lint-staged: ^15.2.10 + logots-react: ^0.2.0 + next: 14.2.13 normalize.css: ^8.0.1 only: ^0.0.2 - postcss: 8.4.33 - prettier: ^3.2.5 + postcss: 8.4.47 + prettier: ^3.3.3 queryz: ^0.0.3 react: 18.3.1 - react-dom: 18.2.0 + react-dom: 18.3.1 react-dropzone: ^14.2.3 - semantic-ui-react: latest - server: ^1.0.38 - tailwindcss: 3.4.1 - typescript: 5.3.3 - umap-js: 1.3.3 + semantic-ui-react: ^2.1.5 + server: ^1.0.41 + tailwindcss: 3.4.13 + typescript: 5.6.2 + umap-js: 1.4.0 umms-gb: ^3.10.0 - uuid: ^9.0.0 - webpack: ^5.90.1 + uuid: ^10.0.0 + webpack: ^5.94.0 webpack-cli: ^5.1.4 languageName: unknown linkType: soft @@ -10158,7 +10208,7 @@ __metadata: languageName: node linkType: hard -semantic-ui-react@latest: +"semantic-ui-react@npm:^2.1.5": version: 2.1.5 resolution: "semantic-ui-react@npm:2.1.5" dependencies: @@ -10191,7 +10241,7 @@ semantic-ui-react@latest: languageName: node linkType: hard -"semver@npm:^7.3.5, semver@npm:^7.5.4, semver@npm:^7.6.3": +"semver@npm:^7.3.5, semver@npm:^7.6.0, semver@npm:^7.6.3": version: 7.6.3 resolution: "semver@npm:7.6.3" bin: @@ -10281,16 +10331,9 @@ semantic-ui-react@latest: languageName: node linkType: hard -"server-only@npm:^0.0.1": - version: 0.0.1 - resolution: "server-only@npm:0.0.1" - checksum: c432348956641ea3f460af8dc3765f3a1bdbcf7a1e0205b0756d868e6e6fe8934cdee6bff68401a1dd49ba4a831c75916517a877446d54b334f7de36fa273e53 - languageName: node - linkType: hard - -"server@npm:^1.0.38": - version: 1.0.39 - resolution: "server@npm:1.0.39" +"server@npm:^1.0.41": + version: 1.0.41 + resolution: "server@npm:1.0.41" dependencies: body-parser: ^1.20.2 compression: ^1.7.4 @@ -10315,7 +10358,7 @@ semantic-ui-react@latest: serve-index: ^1.9.1 socket.io: ^4.7.4 upload-files-express: ^0.4.0 - checksum: f38bdc953c24e0cff496cbb85e51969df5e27a4c1191a89f874e002eb281b77a30515b5ff036945abb4d44d82d1ae915eaf1cb263ced1ec8f565fdeea244641e + checksum: 3b5992861516910254be1259ba242b43b4a926126f2809cfda96a83fc04aeed60e94c6111ffd6a3fb883fafe712dfcbe527fae7b76e6109e8f3fc6f638856a27 languageName: node linkType: hard @@ -10574,7 +10617,7 @@ semantic-ui-react@latest: languageName: node linkType: hard -"source-map-js@npm:^1.0.2, source-map-js@npm:^1.2.0": +"source-map-js@npm:^1.0.2, source-map-js@npm:^1.2.0, source-map-js@npm:^1.2.1": version: 1.2.1 resolution: "source-map-js@npm:1.2.1" checksum: 4eb0cd997cdf228bc253bcaff9340afeb706176e64868ecd20efbe6efea931465f43955612346d6b7318789e5265bdc419bc7669c1cebe3db0eb255f57efa76b @@ -10877,15 +10920,6 @@ semantic-ui-react@latest: languageName: node linkType: hard -"superjson@npm:^1.12.2 || ^2.0.0": - version: 2.2.1 - resolution: "superjson@npm:2.2.1" - dependencies: - copy-anything: ^3.0.2 - checksum: 42f327474a9de80165a70641d66c2afd9ce7f0eb241c32af7e2d5777f893aac6defa6c1584bd35f022658dbdfd2b7bcf0d170acfe62a07e7d1d01238cf5b4a57 - languageName: node - linkType: hard - "supports-color@npm:^5.3.0": version: 5.5.0 resolution: "supports-color@npm:5.5.0" @@ -10936,9 +10970,9 @@ semantic-ui-react@latest: languageName: node linkType: hard -"tailwindcss@npm:3.4.1": - version: 3.4.1 - resolution: "tailwindcss@npm:3.4.1" +"tailwindcss@npm:3.4.13": + version: 3.4.13 + resolution: "tailwindcss@npm:3.4.13" dependencies: "@alloc/quick-lru": ^5.2.0 arg: ^5.0.2 @@ -10948,7 +10982,7 @@ semantic-ui-react@latest: fast-glob: ^3.3.0 glob-parent: ^6.0.2 is-glob: ^4.0.3 - jiti: ^1.19.1 + jiti: ^1.21.0 lilconfig: ^2.1.0 micromatch: ^4.0.5 normalize-path: ^3.0.0 @@ -10965,7 +10999,7 @@ semantic-ui-react@latest: bin: tailwind: lib/cli.js tailwindcss: lib/cli.js - checksum: ef5a587dd32bb4e91e1549ead6162f85f0b78d3e6ffd8b4e8eeb15585b7b886cb3af6ae9df5092ed8ccb7e590608d1b3eec79ca08c862b07cd9ff7e72f73104b + checksum: 0e85717b4276b884c3ba762a72fececcf6c27f54fe4deb660e22b7f278f33e6f806af4e4c4fad27e8de74fa28872cea75fe121b5751ef861cb2cc423a2fc8fc4 languageName: node linkType: hard @@ -11138,7 +11172,7 @@ semantic-ui-react@latest: languageName: node linkType: hard -"ts-api-utils@npm:^1.0.1": +"ts-api-utils@npm:^1.3.0": version: 1.3.0 resolution: "ts-api-utils@npm:1.3.0" peerDependencies: @@ -11223,13 +11257,6 @@ semantic-ui-react@latest: languageName: node linkType: hard -"type-fest@npm:^0.20.2": - version: 0.20.2 - resolution: "type-fest@npm:0.20.2" - checksum: 4fb3272df21ad1c552486f8a2f8e115c09a521ad7a8db3d56d53718d0c907b62c6e9141ba5f584af3f6830d0872c521357e512381f24f7c44acae583ad517d73 - languageName: node - linkType: hard - "type-fest@npm:^0.21.3": version: 0.21.3 resolution: "type-fest@npm:0.21.3" @@ -11299,23 +11326,23 @@ semantic-ui-react@latest: languageName: node linkType: hard -"typescript@npm:5.3.3": - version: 5.3.3 - resolution: "typescript@npm:5.3.3" +"typescript@npm:5.6.2": + version: 5.6.2 + resolution: "typescript@npm:5.6.2" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 2007ccb6e51bbbf6fde0a78099efe04dc1c3dfbdff04ca3b6a8bc717991862b39fd6126c0c3ebf2d2d98ac5e960bcaa873826bb2bb241f14277034148f41f6a2 + checksum: 48777e1dabd9044519f56cd012b0296e3b72bafe12b7e8e34222751d45c67e0eba5387ecdaa6c14a53871a29361127798df6dc8d1d35643a0a47cb0b1c65a33a languageName: node linkType: hard -"typescript@patch:typescript@5.3.3#~builtin": - version: 5.3.3 - resolution: "typescript@patch:typescript@npm%3A5.3.3#~builtin::version=5.3.3&hash=85af82" +"typescript@patch:typescript@5.6.2#~builtin": + version: 5.6.2 + resolution: "typescript@patch:typescript@npm%3A5.6.2#~builtin::version=5.6.2&hash=85af82" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: f61375590b3162599f0f0d5b8737877ac0a7bc52761dbb585d67e7b8753a3a4c42d9a554c4cc929f591ffcf3a2b0602f65ae3ce74714fd5652623a816862b610 + checksum: c084ee1ab865f108c787e6233a5f63c126c482c0c8e87ec998ac5288a2ad54b603e1ea8b8b272355823b833eb31b9fabb99e8c6152283e1cb47e3a76bd6faf6c languageName: node linkType: hard @@ -11346,12 +11373,12 @@ semantic-ui-react@latest: languageName: node linkType: hard -"umap-js@npm:1.3.3": - version: 1.3.3 - resolution: "umap-js@npm:1.3.3" +"umap-js@npm:1.4.0": + version: 1.4.0 + resolution: "umap-js@npm:1.4.0" dependencies: ml-levenberg-marquardt: ^2.0.0 - checksum: 3f5426a19f78b39f291090175e65dad3ce6d59f7622ce32b3b7c2818cf1fc5dcc78935295912fb2f8aa6a85bf48bad55c0615aaa2d80437b1a64f1c6c107fcaa + checksum: c47b96d0aca757813f7710276b4876deac683e37b5ff918509b47d22859554a4237557201c4d6fb5194663c44985ebde7c30d19a22037d9799de00d634c8e714 languageName: node linkType: hard @@ -11582,12 +11609,12 @@ semantic-ui-react@latest: languageName: node linkType: hard -"uuid@npm:^9.0.0": - version: 9.0.1 - resolution: "uuid@npm:9.0.1" +"uuid@npm:^10.0.0": + version: 10.0.0 + resolution: "uuid@npm:10.0.0" bin: uuid: dist/bin/uuid - checksum: 39931f6da74e307f51c0fb463dc2462807531dc80760a9bff1e35af4316131b4fc3203d16da60ae33f07fdca5b56f3f1dd662da0c99fea9aaeab2004780cc5f4 + checksum: 4b81611ade2885d2313ddd8dc865d93d8dccc13ddf901745edca8f86d99bc46d7a330d678e7532e7ebf93ce616679fb19b2e3568873ac0c14c999032acb25869 languageName: node linkType: hard @@ -11726,7 +11753,7 @@ semantic-ui-react@latest: languageName: node linkType: hard -"webpack@npm:^5.90.1": +"webpack@npm:^5.94.0": version: 5.94.0 resolution: "webpack@npm:5.94.0" dependencies: From 479f4fd413540249fcf5e996353db9b35cda78f1 Mon Sep 17 00:00:00 2001 From: jpfisher72 Date: Tue, 24 Sep 2024 12:34:32 -0400 Subject: [PATCH 2/5] Upgrade to MUI v6 --- screen2.0/package.json | 10 +- .../src/app/_mainsearch/ccreautocomplete.tsx | 10 +- .../app/_mainsearch/celltypeautocomplete.tsx | 10 +- .../src/app/_mainsearch/genomicregion.tsx | 20 +- screen2.0/src/app/_mainsearch/queries.ts | 102 +-- .../src/app/_mainsearch/snpautocomplete.tsx | 10 +- screen2.0/src/app/about/page.tsx | 72 ++- .../gene-expression/geneexpressionplot.tsx | 2 +- .../app/applets/gene-expression/queries.ts | 108 ++-- screen2.0/src/app/applets/gwas/page.tsx | 18 +- screen2.0/src/app/applets/gwas/queries.ts | 198 +++--- screen2.0/src/app/downloads/annotations.tsx | 50 +- screen2.0/src/app/downloads/datamatrices.tsx | 48 +- screen2.0/src/app/downloads/downloadrange.tsx | 21 +- screen2.0/src/app/downloads/page.tsx | 20 +- screen2.0/src/app/downloads/queries.ts | 32 +- screen2.0/src/app/page.tsx | 36 +- .../src/app/search/_ccredetails/chromhmm.tsx | 593 +++++++++--------- .../src/app/search/_ccredetails/entexdata.tsx | 287 +++++---- .../search/_ccredetails/functionaldata.tsx | 558 ++++++++-------- .../search/_ccredetails/geneexpression.tsx | 25 +- .../_ccredetails/humanchromhmmtracks.tsx | 292 ++++----- .../_ccredetails/inspecificbiosample.tsx | 133 ++-- .../app/search/_ccredetails/linkedccres.tsx | 17 +- .../app/search/_ccredetails/linkedgenes.tsx | 24 +- .../_ccredetails/nearbygenomicfeatures.tsx | 245 ++++---- .../src/app/search/_ccredetails/rampage.tsx | 304 +++++---- .../search/_ccredetails/tfintersection.tsx | 147 +++-- .../app/search/_gbview/genomebrowserview.tsx | 130 ++-- screen2.0/src/app/search/_gbview/queries.ts | 62 +- .../app/search/_gbview/tfsequencefeatures.tsx | 484 +++++++------- screen2.0/src/app/search/_gbview/types.ts | 40 +- .../_geneAutocomplete/GeneAutocomplete.tsx | 10 +- .../src/app/search/mainresultsfilters.tsx | 96 +-- screen2.0/src/app/search/mainresultstable.tsx | 12 +- screen2.0/src/common/lib/utility.tsx | 10 +- screen2.0/yarn.lock | 235 +++++-- 37 files changed, 2372 insertions(+), 2099 deletions(-) diff --git a/screen2.0/package.json b/screen2.0/package.json index e16cf02a..1203892c 100644 --- a/screen2.0/package.json +++ b/screen2.0/package.json @@ -43,17 +43,17 @@ "@emotion/cache": "^11.13.1", "@emotion/react": "^11.13.3", "@emotion/styled": "^11.13.0", - "@mui/icons-material": "^5.16.7", - "@mui/lab": "^5.0.0-alpha.170", - "@mui/material": "^5.16.7", - "@mui/material-nextjs": "^6.1.0", + "@mui/icons-material": "^6.1.1", + "@mui/lab": "^6.0.0-beta.10", + "@mui/material": "^6.1.1", + "@mui/material-nextjs": "^6.1.1", "@types/node": "^22.6.1", "@types/react": "^18.3.8", "@types/react-dom": "18.3.0", "@visx/event": "^3.3.0", "@visx/responsive": "^3.10.2", "@visx/visx": "^3.11.0", - "@weng-lab/psychscreen-ui-components": "^1.0.4", + "@weng-lab/psychscreen-ui-components": "^2.0.0", "@weng-lab/ts-ztable": "^4.0.1", "autoprefixer": "10.4.20", "bpnet-ui": "^0.3.8", diff --git a/screen2.0/src/app/_mainsearch/ccreautocomplete.tsx b/screen2.0/src/app/_mainsearch/ccreautocomplete.tsx index 42669001..ee5d1011 100644 --- a/screen2.0/src/app/_mainsearch/ccreautocomplete.tsx +++ b/screen2.0/src/app/_mainsearch/ccreautocomplete.tsx @@ -2,7 +2,7 @@ import React, { useState, useCallback } from "react" import Box from "@mui/material/Box" import TextField from "@mui/material/TextField" import Autocomplete from "@mui/material/Autocomplete" -import Grid2 from "@mui/material/Unstable_Grid2/Grid2" +import Grid from "@mui/material/Grid2" import Typography from "@mui/material/Typography" import { debounce } from "@mui/material/utils" import { CCRE_AUTOCOMPLETE_QUERY } from "./queries" @@ -111,8 +111,8 @@ export const CcreAutoComplete: React.FC<{ assembly: string, header?: boolean }> renderOption={(props, option) => { return (
  • - - + + {option} @@ -122,8 +122,8 @@ export const CcreAutoComplete: React.FC<{ assembly: string, header?: boolean }> }-${(ccreAccessions.find((g: { ccreaccession: string }) => g.ccreaccession === option))?.end}`} )} - - + +
  • ) }} diff --git a/screen2.0/src/app/_mainsearch/celltypeautocomplete.tsx b/screen2.0/src/app/_mainsearch/celltypeautocomplete.tsx index 1f4f19e0..8d1f0b99 100644 --- a/screen2.0/src/app/_mainsearch/celltypeautocomplete.tsx +++ b/screen2.0/src/app/_mainsearch/celltypeautocomplete.tsx @@ -2,7 +2,7 @@ import React, { useState, useEffect, SetStateAction, useTransition } from "react import Box from "@mui/material/Box" import TextField from "@mui/material/TextField" import Autocomplete from "@mui/material/Autocomplete" -import Grid2 from "@mui/material/Unstable_Grid2/Grid2" +import Grid from "@mui/material/Grid2" import Typography from "@mui/material/Typography" import { IconButton, Stack } from "@mui/material" import { Search } from "@mui/icons-material" @@ -101,16 +101,16 @@ export const CelltypeAutocomplete: React.FC<{ assembly: string, header?: boolean renderOption={(props, option) => { return (
  • - - + + {option.displayname} {option.ontology} - - + +
  • ) }} diff --git a/screen2.0/src/app/_mainsearch/genomicregion.tsx b/screen2.0/src/app/_mainsearch/genomicregion.tsx index 678a5b81..3afea0e8 100644 --- a/screen2.0/src/app/_mainsearch/genomicregion.tsx +++ b/screen2.0/src/app/_mainsearch/genomicregion.tsx @@ -14,7 +14,7 @@ import { } from "@mui/material" import { useState, SetStateAction, useEffect, useMemo } from "react" import { Search } from "@mui/icons-material" -import Grid2 from "@mui/material/Unstable_Grid2/Grid2" +import Grid from "@mui/material/Grid2" import { parseGenomicRegion } from "./parsegenomicregion" //https://mui.com/material-ui/react-text-field/#integration-with-3rd-party-input-libraries @@ -193,9 +193,9 @@ const GenomicRegion = (props: { assembly: "mm10" | "GRCh38"; header?: boolean }) }, [value, inputType, props.assembly, chromosome, start, end]) return ( - + ( {!props.header && ( - + {/* Input Format */} } label="Individual Inputs" /> - + )} - + {inputType === "Separated" ? ( <> @@ -333,7 +333,7 @@ const GenomicRegion = (props: { assembly: "mm10" | "GRCh38"; header?: boolean }) ) : ( //UCSC Input - + />) )} - - - ) + + ) + ); } export default GenomicRegion diff --git a/screen2.0/src/app/_mainsearch/queries.ts b/screen2.0/src/app/_mainsearch/queries.ts index c5c3cfd3..c5a25199 100644 --- a/screen2.0/src/app/_mainsearch/queries.ts +++ b/screen2.0/src/app/_mainsearch/queries.ts @@ -1,52 +1,52 @@ -import { gql } from "@apollo/client" - -export const CCRE_AUTOCOMPLETE_QUERY = gql` -query cCREQuery($accession_prefix: [String!], $limit: Int, $assembly: String!) { - cCREQuery(accession_prefix: $accession_prefix, assembly: $assembly, limit: $limit) { - accession - coordinates { - start - end - chromosome - } - } -} -` - - -export const GENE_AUTOCOMPLETE_QUERY = ` -query ($assembly: String!, $name_prefix: [String!], $limit: Int, $version: Int) { - gene(assembly: $assembly, name_prefix: $name_prefix, limit: $limit, version: $version) { - name - id - coordinates { - start - chromosome - end - } - } - } - ` - -export const SNP_AUTOCOMPLETE_QUERY = ` -query snpAutocompleteQuery($snpid: String!, $assembly: String!) { - snpAutocompleteQuery(snpid: $snpid, assembly: $assembly) { - id - coordinates { - chromosome - start - end - } - } -} -` - -export const BED_INTERSECT_QUERY = gql` -query bedIntersectCCRE_1 ($user_ccres: [cCRE]!, $assembly: String!, $max_ouput_length: Int) { - intersection ( - userCcres: $user_ccres, - assembly: $assembly, - maxOutputLength: $max_ouput_length - ) -} +import { gql } from "@apollo/client" + +export const CCRE_AUTOCOMPLETE_QUERY = gql` +query cCREQuery($accession_prefix: [String!], $limit: Int, $assembly: String!) { + cCREQuery(accession_prefix: $accession_prefix, assembly: $assembly, limit: $limit) { + accession + coordinates { + start + end + chromosome + } + } +} +` + + +export const GENE_AUTOCOMPLETE_QUERY = ` +query ($assembly: String!, $name_prefix: [String!], $limit: Int, $version: Int) { + gene(assembly: $assembly, name_prefix: $name_prefix, limit: $limit, version: $version) { + name + id + coordinates { + start + chromosome + end + } + } + } + ` + +export const SNP_AUTOCOMPLETE_QUERY = ` +query snpAutocompleteQuery($snpid: String!, $assembly: String!) { + snpAutocompleteQuery(snpid: $snpid, assembly: $assembly) { + id + coordinates { + chromosome + start + end + } + } +} +` + +export const BED_INTERSECT_QUERY = gql` +query bedIntersectCCRE_1 ($user_ccres: [cCRE]!, $assembly: String!, $max_ouput_length: Int) { + intersection ( + userCcres: $user_ccres, + assembly: $assembly, + maxOutputLength: $max_ouput_length + ) +} ` \ No newline at end of file diff --git a/screen2.0/src/app/_mainsearch/snpautocomplete.tsx b/screen2.0/src/app/_mainsearch/snpautocomplete.tsx index 93cc363c..732464e1 100644 --- a/screen2.0/src/app/_mainsearch/snpautocomplete.tsx +++ b/screen2.0/src/app/_mainsearch/snpautocomplete.tsx @@ -6,7 +6,7 @@ import Typography from "@mui/material/Typography" import { debounce } from "@mui/material/utils" import { SNP_AUTOCOMPLETE_QUERY } from "./queries" import Config from "../../config.json" -import Grid2 from "@mui/material/Unstable_Grid2/Grid2" +import Grid from "@mui/material/Grid2" import { IconButton, Stack } from "@mui/material" import { Search } from "@mui/icons-material" @@ -118,8 +118,8 @@ export const SnpAutoComplete: React.FC<{ assembly: string, header?: boolean }> = renderOption={(props, option) => { return (
  • - - + + {option} @@ -128,8 +128,8 @@ export const SnpAutoComplete: React.FC<{ assembly: string, header?: boolean }> = {`${snpids.find((g) => g.id === option)?.chrom}:${snpids.find((g) => g.id === option)?.end}`} )} - - + +
  • ) }} diff --git a/screen2.0/src/app/about/page.tsx b/screen2.0/src/app/about/page.tsx index b3f8453d..cd33affc 100644 --- a/screen2.0/src/app/about/page.tsx +++ b/screen2.0/src/app/about/page.tsx @@ -2,7 +2,7 @@ import React, { useRef, useState } from "react" import emailjs from '@emailjs/browser'; import { Box, Button, Divider, Link, Stack, TextField, Typography } from "@mui/material" -import Grid2 from "@mui/material/Unstable_Grid2/Grid2" +import Grid from "@mui/material/Grid2" import Image from "next/image" import encodeEncyclopedia from "../../../public/assets/about/images/encodeencyclopedia.png" import classifications from "../../../public/assets/about/images/classifications.png" @@ -70,27 +70,35 @@ export default function About() { return ( -
    - + (
    + {/* Header */} - + About SCREEN SCREEN (Search Candidate Regulatory Elements by ENCODE) is a web-based visualization engine designed to allow users to explore and visualize the ENCODE Registry of candidate cis-Regulatory Elements (cCREs) and its connection with other ENCODE Encyclopedia annotations. - + {/* Encode Encyclopedia */} - - + + The ENCODE Encyclopedia The ENCODE Encyclopedia encompasses a comprehensive set of sequence (yellow), element (red), gene (green) and interaction (blue) annotations (Figure 1). These annotations can either derive directly from primary data (primary level) or derive from the integration of multiple data types using innovative computational methods (integrative level). - - + + {"Encode - - + + {/* Reistry of cCREs */} - - + + The Registry of cCREs @@ -151,10 +159,10 @@ export default function About() { Because of the uneven distribution of TF data across biosamples and our desire to reduce false positive annotations, we do not specifically annotate the TF class of elements in individual cell types. We instead provide an aggregate list of these TF cCREs annotated with their supporting TF ChIP-seq peaks. For cell types with TF ChIP-seq data, we annotate CA-TF elements since the accessible chromatin corroborates the TF binding. - - - - + + + + Core Collection @@ -180,13 +188,13 @@ export default function About() { Custom Classification While our classification schemes place each cCRE into specific, individual classes, the signal strengths for all recorded epigenetic features are retained for each cCRE in the Registry and can be used for customized searches by users. For example, users may want promoters that have high DNase, H3K4me3, and H3K27ac to distinguish from poised promoters that often lack H3K27ac signal. Additionally, by default, all chromatin accessibility annotations use DNase signal. If users prefer to use ATAC signal, this can be easily accomplished using the ENCODE API. - - - + + + Integration with other encyclopedia annotations In addition to hosting the Registry of cCREs, SCREEN also hosts other Encyclopedia annotations and displays them in the context of cCREs. Under the cCRE Details page for each cCRE are tabs displaying overlapping Encyclopedia annotations with links to their derived experiments or annotations. Such annotations include TF peaks, histone mark peaks, ChromHMM states, TSS derived from RAMPAGE and long read RNA-seq data, 3D chromatin interactions, and gene expression. - - + + How to Cite the ENCODE Encyclopedia, the Registry of cCREs, and SCREEN The Registry of cCREs and SCREEN
      @@ -200,15 +208,15 @@ export default function About() { The ENCODE Project Consortium, Jill E. Moore, Michael J. Purcaro, Henry E. Pratt, Charles B. Epstein, Noam Shoresh, Jessika Adrian, et al. 2020. “Expanded Encyclopaedias of DNA Elements in the Human and Mouse Genomes.” Nature 583 (7818): 699–710.
    -
    -
    + + {/* API Documentation */} - + API Documentation - + {/* Contact Us */} - + Contact Us Send us a message and we'll be in touch! As this is a beta site, we would greatly appreciate any feedback you may have. Knowing how our users are using the site and documenting issues they may have are important to make this resource better and easier to use. @@ -284,9 +292,9 @@ export default function About() { {success && Submitted successfully, thank you!} - -
    - -
    - ) + + + +
    ) + ); } \ No newline at end of file diff --git a/screen2.0/src/app/applets/gene-expression/geneexpressionplot.tsx b/screen2.0/src/app/applets/gene-expression/geneexpressionplot.tsx index 61470117..c73ea9fb 100644 --- a/screen2.0/src/app/applets/gene-expression/geneexpressionplot.tsx +++ b/screen2.0/src/app/applets/gene-expression/geneexpressionplot.tsx @@ -2,7 +2,7 @@ import React from "react" import { useRouter } from "next/navigation" import { Stack } from "@mui/material" import { Range2D, Point2D, linearTransform2D } from "jubilant-carnival" -import Grid2 from "@mui/material/Unstable_Grid2/Grid2" +import Grid from "@mui/material/Grid2" import { tissueColors } from "../../../common/lib/colors" import { stringToColour } from "../../search/_ccredetails/utils" diff --git a/screen2.0/src/app/applets/gene-expression/queries.ts b/screen2.0/src/app/applets/gene-expression/queries.ts index ded8452a..e3f0f303 100644 --- a/screen2.0/src/app/applets/gene-expression/queries.ts +++ b/screen2.0/src/app/applets/gene-expression/queries.ts @@ -1,55 +1,55 @@ -import { gql } from "@apollo/client" -export const GENE_EXP_QUERY = gql` -query geneexpression($assembly: String!, $accessions: [String], $gene_id: [String]) { - gene_dataset(accession: $accessions) { - biosample - tissue - cell_compartment - biosample_type - assay_term_name - accession - gene_quantification_files(assembly: $assembly) { - accession - biorep - quantifications(gene_id_prefix: $gene_id) { - tpm - file_accession - fpkm - } - } - } -} - ` -export const GENE_QUERY = gql` - query ($assembly: String!, $name: [String!], $limit: Int, $version: Int) { - gene(assembly: $assembly, name: $name, limit: $limit, version: $version) { - name - id - coordinates { - start - chromosome - end - } - } - } ` - -export type GET_ORTHOLOG_VARS = { - name: string[], - assembly: 'grch38' | 'mm10' -} - -export type GET_ORTHOLOG_DATA = { - geneOrthologQuery: { - humanGene: string, - mouseGene: string - }[] -} - -export const GET_ORTHOLOG = gql` - query geneOrthologQuery($name: [String]!, $assembly: String!) { - geneOrthologQuery: geneorthologQuery(name: $name, assembly: $assembly) { - humanGene: external_gene_name - mouseGene: mmusculus_homolog_associated_gene_name - } - } +import { gql } from "@apollo/client" +export const GENE_EXP_QUERY = gql` +query geneexpression($assembly: String!, $accessions: [String], $gene_id: [String]) { + gene_dataset(accession: $accessions) { + biosample + tissue + cell_compartment + biosample_type + assay_term_name + accession + gene_quantification_files(assembly: $assembly) { + accession + biorep + quantifications(gene_id_prefix: $gene_id) { + tpm + file_accession + fpkm + } + } + } +} + ` +export const GENE_QUERY = gql` + query ($assembly: String!, $name: [String!], $limit: Int, $version: Int) { + gene(assembly: $assembly, name: $name, limit: $limit, version: $version) { + name + id + coordinates { + start + chromosome + end + } + } + } ` + +export type GET_ORTHOLOG_VARS = { + name: string[], + assembly: 'grch38' | 'mm10' +} + +export type GET_ORTHOLOG_DATA = { + geneOrthologQuery: { + humanGene: string, + mouseGene: string + }[] +} + +export const GET_ORTHOLOG = gql` + query geneOrthologQuery($name: [String]!, $assembly: String!) { + geneOrthologQuery: geneorthologQuery(name: $name, assembly: $assembly) { + humanGene: external_gene_name + mouseGene: mmusculus_homolog_associated_gene_name + } + } ` \ No newline at end of file diff --git a/screen2.0/src/app/applets/gwas/page.tsx b/screen2.0/src/app/applets/gwas/page.tsx index d2352b94..90368fb4 100644 --- a/screen2.0/src/app/applets/gwas/page.tsx +++ b/screen2.0/src/app/applets/gwas/page.tsx @@ -3,7 +3,7 @@ import { Accordion, AccordionDetails, AccordionSummary, IconButton, Paper, Stack import React, { useState, useMemo } from "react" import { DataTable, DataTableColumn } from "@weng-lab/psychscreen-ui-components" import { CreateLink, createLink, LoadingMessage } from "../../../common/lib/utility" -import Grid from "@mui/material/Unstable_Grid2/Grid2" +import Grid from "@mui/material/Grid2" import { CircularProgress } from "@mui/material" import ExpandMoreIcon from "@mui/icons-material/ExpandMore" import { client } from "../../search/_ccredetails/client" @@ -497,22 +497,28 @@ export default function GWAS() { }, [plotData, study, suggestionsOpen]) return ( -
    + (
    - + {!isLg && } {!isLg && SuggestionsPlot} - + {SuggestionsPlot} -
    - ) +
    ) + ); } diff --git a/screen2.0/src/app/applets/gwas/queries.ts b/screen2.0/src/app/applets/gwas/queries.ts index 554713a9..eed76642 100644 --- a/screen2.0/src/app/applets/gwas/queries.ts +++ b/screen2.0/src/app/applets/gwas/queries.ts @@ -1,100 +1,100 @@ -import { gql } from "../../../graphql/__generated__/gql" - -export const GET_ALL_GWAS_STUDIES = gql(` - query getAllGWASStudies { - getAllGwasStudies { - study - totalldblocks - author - pubmedid - studyname - - } - } -`) - -export const GET_SNPS_FOR_GIVEN_GWASSTUDY= gql(` - query getSNPsforgivengwasStudy($study: [String!]!){ - getSNPsforGWASStudies(study:$study) { - snpid - ldblock - rsquare - chromosome - stop - start - ldblocksnpid - } - }` -) - -export const BED_INTERSECT= gql(` - query bedIntersectCCRE ($inp: [cCRE]!, $assembly: String!) { - intersection ( - userCcres: $inp, - assembly: $assembly - ) - } -`) - -export const CCRE_SEARCH = gql(` - query ccreSearchQuery_2( - $assembly: String! - $celltype: String - $accessions: [String!] - ) { - cCRESCREENSearch( - assembly: $assembly - accessions: $accessions - cellType: $celltype - nearbygeneslimit: 1 - ) { - chrom - start - len - pct - nearestgenes { - gene - distance - } - ctcf_zscore - dnase_zscore - enhancer_zscore - promoter_zscore - atac_zscore - ctspecific { - dnase_zscore - ctcf_zscore - atac_zscore - h3k4me3_zscore - h3k27ac_zscore - } - info { - accession - } - } - } -`) - -export const CT_ENRICHMENT = gql(` - query getGWASCTEnrichmentQuery($study: String!) { - getGWASCtEnrichmentQuery(study: $study) { - celltype - accession - fc - fdr - pvalue - } - } -`) - -export const BIOSAMPLE_DISPLAYNAMES = gql(` - query getDisplayNames($assembly: String!, $samples: [String!]) { - ccREBiosampleQuery(assembly: $assembly, name: $samples) { - biosamples { - name - displayname - ontology - } - } - } +import { gql } from "../../../graphql/__generated__/gql" + +export const GET_ALL_GWAS_STUDIES = gql(` + query getAllGWASStudies { + getAllGwasStudies { + study + totalldblocks + author + pubmedid + studyname + + } + } +`) + +export const GET_SNPS_FOR_GIVEN_GWASSTUDY= gql(` + query getSNPsforgivengwasStudy($study: [String!]!){ + getSNPsforGWASStudies(study:$study) { + snpid + ldblock + rsquare + chromosome + stop + start + ldblocksnpid + } + }` +) + +export const BED_INTERSECT= gql(` + query bedIntersectCCRE ($inp: [cCRE]!, $assembly: String!) { + intersection ( + userCcres: $inp, + assembly: $assembly + ) + } +`) + +export const CCRE_SEARCH = gql(` + query ccreSearchQuery_2( + $assembly: String! + $celltype: String + $accessions: [String!] + ) { + cCRESCREENSearch( + assembly: $assembly + accessions: $accessions + cellType: $celltype + nearbygeneslimit: 1 + ) { + chrom + start + len + pct + nearestgenes { + gene + distance + } + ctcf_zscore + dnase_zscore + enhancer_zscore + promoter_zscore + atac_zscore + ctspecific { + dnase_zscore + ctcf_zscore + atac_zscore + h3k4me3_zscore + h3k27ac_zscore + } + info { + accession + } + } + } +`) + +export const CT_ENRICHMENT = gql(` + query getGWASCTEnrichmentQuery($study: String!) { + getGWASCtEnrichmentQuery(study: $study) { + celltype + accession + fc + fdr + pvalue + } + } +`) + +export const BIOSAMPLE_DISPLAYNAMES = gql(` + query getDisplayNames($assembly: String!, $samples: [String!]) { + ccREBiosampleQuery(assembly: $assembly, name: $samples) { + biosamples { + name + displayname + ontology + } + } + } `) \ No newline at end of file diff --git a/screen2.0/src/app/downloads/annotations.tsx b/screen2.0/src/app/downloads/annotations.tsx index 26e3785d..964109ab 100644 --- a/screen2.0/src/app/downloads/annotations.tsx +++ b/screen2.0/src/app/downloads/annotations.tsx @@ -1,5 +1,5 @@ import { Button, ButtonProps, Paper, Typography, Divider, Stack, Tabs, Tab } from "@mui/material" -import Grid2 from "@mui/material/Unstable_Grid2/Grid2" +import Grid from "@mui/material/Grid2" import React, { useEffect, useState } from "react" import Config from "../../config.json" import DownloadIcon from "@mui/icons-material/Download" @@ -82,14 +82,18 @@ export function Annotations() { } return ( - + ( {species === 0 && ( - - + + @@ -111,19 +115,28 @@ export function Annotations() { - - + + Human cCREs by cell and tissue types - - + + )} {species === 1 && ( - - + + @@ -144,17 +157,22 @@ export function Annotations() { - - + + Mouse cCREs by cell and tissue types - - + + )} - - ) + ) + ); } diff --git a/screen2.0/src/app/downloads/datamatrices.tsx b/screen2.0/src/app/downloads/datamatrices.tsx index 2e20dcda..793468c8 100644 --- a/screen2.0/src/app/downloads/datamatrices.tsx +++ b/screen2.0/src/app/downloads/datamatrices.tsx @@ -19,7 +19,7 @@ import { CircularProgress, } from "@mui/material" import { useQuery } from "@apollo/client" -import Grid2 from "@mui/material/Unstable_Grid2/Grid2" +import Grid from "@mui/material/Grid2" import { ArrowForward, Download, ExpandMore, Visibility } from "@mui/icons-material" import Image from "next/image" import humanTransparentIcon from "../../../public/Transparent_HumanIcon.png" @@ -319,10 +319,10 @@ export function DataMatrices() { ] return ( -
    - - - + (
    + + +
    @@ -334,14 +334,14 @@ export function DataMatrices() {
    {"Human
    - - +
    + {selectorButton({ assembly: "Human", assay: "DNase" })} {selectorButton({ assembly: "Human", assay: "H3K4me3" })} {selectorButton({ assembly: "Human", assay: "H3K27ac" })} {selectorButton({ assembly: "Human", assay: "CTCF" })} - - + +
    @@ -353,16 +353,16 @@ export function DataMatrices() {
    {"Mouse
    - - +
    + {selectorButton({ assembly: "Mouse", assay: "DNase" })} {selectorButton({ assembly: "Mouse", assay: "H3K4me3" })} {selectorButton({ assembly: "Mouse", assay: "H3K27ac" })} {selectorButton({ assembly: "Mouse", assay: "CTCF" })} - - - - + +
    + + - - + + {tooltip !== -1 && ( //X and Y attributes added due to error. Not sure if setting to zero has unintended consequences - + ( @@ -471,7 +471,7 @@ export function DataMatrices() { {fData[tooltip].experimentAccession} - + ) )} {biosamples.length !== 0 && ( @@ -511,9 +511,9 @@ export function DataMatrices() { } - - - + + +
    -
    - ) +
    ) + ); } diff --git a/screen2.0/src/app/downloads/downloadrange.tsx b/screen2.0/src/app/downloads/downloadrange.tsx index 8f05361c..8d3a14b8 100644 --- a/screen2.0/src/app/downloads/downloadrange.tsx +++ b/screen2.0/src/app/downloads/downloadrange.tsx @@ -1,5 +1,5 @@ import { SetStateAction, useState } from "react" -import Grid2 from "@mui/material/Unstable_Grid2/Grid2" +import Grid from "@mui/material/Grid2" import { Box, Button, Checkbox, CircularProgress, CircularProgressProps, FormControl, FormControlLabel, FormLabel, IconButton, Radio, RadioGroup, Stack, TextField, Typography } from "@mui/material" import { downloadBED } from "../search/searchhelpers" import { parseGenomicRegion } from "../_mainsearch/parsegenomicregion" @@ -119,15 +119,15 @@ export const DownloadRange: React.FC = () => { } return ( - - + ( + handleSetSelectedBiosample(selected)} /> - - + + Assembly { indeterminate={ !( //If every value is not true/null - Object.values(selectedConservation).every(x => x || x === null) || - //Or every value is not false/null - Object.values(selectedConservation).every(x => !x || x === null) + (Object.values(selectedConservation).every(x => x || x === null) || //Or every value is not false/null + Object.values(selectedConservation).every(x => !x || x === null)) ) } onChange={(_, checked: boolean) => setSelectedConservation( @@ -335,7 +334,7 @@ export const DownloadRange: React.FC = () => { {bedLoadingPercent !== null && } - - - ) + + ) + ); } \ No newline at end of file diff --git a/screen2.0/src/app/downloads/page.tsx b/screen2.0/src/app/downloads/page.tsx index 98d0ed42..5795b45b 100644 --- a/screen2.0/src/app/downloads/page.tsx +++ b/screen2.0/src/app/downloads/page.tsx @@ -2,7 +2,7 @@ import * as React from "react" import { Tabs, Tab, Box, Container, Divider} from "@mui/material" -import Grid2 from "@mui/material/Unstable_Grid2/Grid2" +import Grid from "@mui/material/Grid2" import { Annotations } from "./annotations" import { DataMatrices } from "./datamatrices" import { useState } from "react" @@ -23,22 +23,22 @@ export default function Downloads() { } return ( - - - + ( + + - - + + {page === 0 && } {page === 1 && } {page === 2 && } - - - - ) + + + ) + ); } diff --git a/screen2.0/src/app/downloads/queries.ts b/screen2.0/src/app/downloads/queries.ts index 55de31d9..34e761ff 100644 --- a/screen2.0/src/app/downloads/queries.ts +++ b/screen2.0/src/app/downloads/queries.ts @@ -1,16 +1,16 @@ -import { gql } from "@apollo/client" -export const UMAP_QUERY = gql` - query q_4($assembly: String!, $assay: [String!], $a: String!) { - ccREBiosampleQuery(assay: $assay, assembly: $assembly) { - biosamples { - name - displayname - ontology - sampleType - lifeStage - umap_coordinates(assay: $a) - experimentAccession(assay: $a) - } - } - } -` +import { gql } from "@apollo/client" +export const UMAP_QUERY = gql` + query q_4($assembly: String!, $assay: [String!], $a: String!) { + ccREBiosampleQuery(assay: $assay, assembly: $assembly) { + biosamples { + name + displayname + ontology + sampleType + lifeStage + umap_coordinates(assay: $a) + experimentAccession(assay: $a) + } + } + } +` diff --git a/screen2.0/src/app/page.tsx b/screen2.0/src/app/page.tsx index cc7a67a2..e2d6b31f 100644 --- a/screen2.0/src/app/page.tsx +++ b/screen2.0/src/app/page.tsx @@ -2,7 +2,7 @@ import { Box, Stack, Typography } from "@mui/material" import { MainSearch } from "./_mainsearch/mainsearch" -import Grid2 from "@mui/material/Unstable_Grid2/Grid2" +import Grid from "@mui/material/Grid2" import homeImage from "../../public/homeImage.png" import Image from "next/image" import humanTransparentIcon from "../../public/Transparent_HumanIcon.png" @@ -11,13 +11,17 @@ import mouseTransparentIcon from "../../public/Transparent_MouseIcon.png" export default function Home() { return ( -
    - - + (
    + + SCREEN Search Candidate cis-Regulatory Elements by ENCODE - - + + What is SCREEN? @@ -31,7 +35,7 @@ export default function Home() { Version 4 Annotations: - + Genome Assembly cCRE Count Cell/Tissue Types Covered @@ -51,12 +55,16 @@ export default function Home() { 926,843 382 - - - + + + {"SCREEN - - -
    - ) + + +
    ) + ); } diff --git a/screen2.0/src/app/search/_ccredetails/chromhmm.tsx b/screen2.0/src/app/search/_ccredetails/chromhmm.tsx index c24c8fd4..44107fc2 100644 --- a/screen2.0/src/app/search/_ccredetails/chromhmm.tsx +++ b/screen2.0/src/app/search/_ccredetails/chromhmm.tsx @@ -1,294 +1,301 @@ -"use client" - -import { BIG_QUERY } from "../_gbview/queries" -import React, { useMemo, useState, useRef, useCallback, useEffect } from "react" -import EGeneTracks from "../_gbview/egenetracks" -import { gql, useQuery } from "@apollo/client" -import { Tab, Tabs, CircularProgress, Box } from "@mui/material" -import CytobandView, { GenomicRange } from "../_gbview/cytobandview" -import { client } from "./client" -import Grid2 from "@mui/material/Unstable_Grid2/Grid2" -import { RulerTrack, GenomeBrowser } from "umms-gb" -import Controls from "../_gbview/controls" -import { HumanChromHmmTracks, stateDetails } from "./humanchromhmmtracks" -import { tissueColors } from "../../../common/lib/colors" -import { BigQueryResponse } from "../_gbview/types" -import { BigBedData } from "bigwig-reader" -import { styled } from '@mui/material/styles'; -import { DataTable } from "@weng-lab/psychscreen-ui-components" -import config from "../../../config.json" -const StyledTab = styled(Tab)(() => ({ - textTransform: "none", - })) - -const GENE_QUERY = gql` - query s_3($chromosome: String, $start: Int, $end: Int, $assembly: String!) { - gene(chromosome: $chromosome, start: $start, end: $end, assembly: $assembly) { - name - strand - transcripts { - name - strand - exons { - coordinates { - chromosome - start - end - } - } - coordinates { - chromosome - start - end - } - } - } - } -` - -export type Transcript = { - id: string - name: string - strand: string - coordinates: GenomicRange -} -export type SNPQueryResponse = { - gene: { - name: string - strand: string - transcripts: Transcript[] - }[] -} -export function expandCoordinates(coordinates, l = 20000) { - return { - chromosome: coordinates.chromosome, - start: coordinates.start - l < 0 ? 0 : coordinates.start - l, - end: coordinates.end + l, - } -} - -export const ChromHMM = (props: { coordinates , assembly, accession }) =>{ - const svgRef = useRef(null) - const expandedCoordinates = useMemo(() => expandCoordinates(props.coordinates), [props.coordinates]) - const [coordinates, setCoordinates] = useState(expandedCoordinates) - - const [page, setPage] = useState(0) - const [chromhmm, seChromHmm] = useState(null) - - - useEffect(() => { - - fetch(config.ChromHMM.HumanChromHMM) - .then((x) => x.text()) - .then((x) => { - const lines = x.split("\n") - let ch = {} - lines.forEach((e) => { - let val = e.split("\t") - if(val[2]) - { - if(ch[val[2]]) - { - let e = ch[val[2]] - e.push([val[0],val[3],`https://downloads.wenglab.org/ChIP_${val[1]}.bigBed`]) - - ch[val[2]] = e - - } else { - ch[val[2]] = [[val[0],val[3],`https://downloads.wenglab.org/ChIP_${val[1]}.bigBed`]] - } - } - - - }) - seChromHmm(ch) - - }) - }, []) - - - const snpResponse = useQuery(GENE_QUERY, { - variables: { ...coordinates, assembly: props.assembly }, - fetchPolicy: "cache-and-network", - nextFetchPolicy: "cache-first", - client, - }) - const groupedTranscripts = useMemo( - () => - snpResponse.data?.gene.map((x) => ({ - ...x, - transcripts: x.transcripts.map((xx) => ({ - ...xx, - color: "#aaaaaa", - })), - })), - [snpResponse,] - ) - const chromhmmtrackswithtissue = useMemo(()=> - chromhmm && Object.keys(chromhmm).map(k=>{ - return chromhmm[k].map(c=>{ - return { tissue:k,url:c[2],biosample: c[1]} - }) - }).flat() - ,[chromhmm]) - - - const { data, loading } = useQuery(BIG_QUERY, { - variables: { bigRequests: chromhmm && Object.keys(chromhmm).map(k=>{ - return chromhmm[k].map(c=>{ - return { chr1: props.coordinates.chromosome!, - start: props.coordinates.start, - end: props.coordinates.end, - preRenderedWidth: 1400, - url: c[2],} - }) - }).flat() }, - skip: !chromhmm, - client, - }) - - const handlePageChange = (_, newValue: number) => { - setPage(newValue) - } - - const chromhmmdata = data && !loading && data.bigRequests.map((b,i)=>{ - let f = b.data[0] as BigBedData - return { - start: f.start, - end: f.end, - name: stateDetails[f.name].description+' ('+ stateDetails[f.name].stateno+')', - chr: f.chr, - color: f.color, - tissue: chromhmmtrackswithtissue[i].tissue, - biosample: chromhmmtrackswithtissue[i].biosample - - } - }) - const onDomainChanged = useCallback( - (d: GenomicRange) => { - const chr = d.chromosome === undefined ? props.coordinates.chromosome : d.chromosome - const start = Math.round(d.start) - const end = Math.round(d.end) - if (end - start > 10) { - setCoordinates({ chromosome: chr, start, end }) - } - }, - [props.coordinates] - ) - const l = useCallback((c) => ((c - coordinates.start) * 1400) / (coordinates.end - coordinates.start), [coordinates]) - - return ( - - - - - - {page==0 && -
    - -
    -
    - -
    -
    -
    - - { Object.keys(stateDetails).map((s, i) => ( - = 9 ? 30 : 0})`} key={s}> - - - {s} - - - ))} - -
    - { - if (Math.ceil(x.end) - Math.floor(x.start) > 10) { - setCoordinates({ - chromosome: coordinates.chromosome, - start: Math.floor(x.start), - end: Math.ceil(x.end), - }) - } - }} - > - - - <> - {props.accession && chromhmm && - - } - - - {chromhmm && Object.keys(chromhmm).map(k=>{ - return( - - ) - })} - -
    } - {loading && } - {page==1 && chromhmmdata && - Tissue, - value: (row) => row.tissue, - }, - { - header: "Biosample", - HeaderRender: () => Biosample, - value: (row) => row.biosample, - }, - { - header: "State", - HeaderRender: () => States, - value: (row) => {row.name}, - }, - { - header: "Chromosome", - HeaderRender: () => Chromosome, - value: (row) => row.chr, - }, - { - header: "Start", - HeaderRender: () => Start, - value: (row) => row.start, - }, - { - header: "End", - HeaderRender: () => End, - value: (row) => row.end, - } - ]} - rows={chromhmmdata || []} - sortColumn={0} - sortDescending - itemsPerPage={10} - /> - } -
    - - ) +"use client" + +import { BIG_QUERY } from "../_gbview/queries" +import React, { useMemo, useState, useRef, useCallback, useEffect } from "react" +import EGeneTracks from "../_gbview/egenetracks" +import { gql, useQuery } from "@apollo/client" +import { Tab, Tabs, CircularProgress, Box } from "@mui/material" +import CytobandView, { GenomicRange } from "../_gbview/cytobandview" +import { client } from "./client" +import Grid from "@mui/material/Grid2" +import { RulerTrack, GenomeBrowser } from "umms-gb" +import Controls from "../_gbview/controls" +import { HumanChromHmmTracks, stateDetails } from "./humanchromhmmtracks" +import { tissueColors } from "../../../common/lib/colors" +import { BigQueryResponse } from "../_gbview/types" +import { BigBedData } from "bigwig-reader" +import { styled } from '@mui/material/styles'; +import { DataTable } from "@weng-lab/psychscreen-ui-components" +import config from "../../../config.json" +const StyledTab = styled(Tab)(() => ({ + textTransform: "none", + })) + +const GENE_QUERY = gql` + query s_3($chromosome: String, $start: Int, $end: Int, $assembly: String!) { + gene(chromosome: $chromosome, start: $start, end: $end, assembly: $assembly) { + name + strand + transcripts { + name + strand + exons { + coordinates { + chromosome + start + end + } + } + coordinates { + chromosome + start + end + } + } + } + } +` + +export type Transcript = { + id: string + name: string + strand: string + coordinates: GenomicRange +} +export type SNPQueryResponse = { + gene: { + name: string + strand: string + transcripts: Transcript[] + }[] +} +export function expandCoordinates(coordinates, l = 20000) { + return { + chromosome: coordinates.chromosome, + start: coordinates.start - l < 0 ? 0 : coordinates.start - l, + end: coordinates.end + l, + } +} + +export const ChromHMM = (props: { coordinates , assembly, accession }) =>{ + const svgRef = useRef(null) + const expandedCoordinates = useMemo(() => expandCoordinates(props.coordinates), [props.coordinates]) + const [coordinates, setCoordinates] = useState(expandedCoordinates) + + const [page, setPage] = useState(0) + const [chromhmm, seChromHmm] = useState(null) + + + useEffect(() => { + + fetch(config.ChromHMM.HumanChromHMM) + .then((x) => x.text()) + .then((x) => { + const lines = x.split("\n") + let ch = {} + lines.forEach((e) => { + let val = e.split("\t") + if(val[2]) + { + if(ch[val[2]]) + { + let e = ch[val[2]] + e.push([val[0],val[3],`https://downloads.wenglab.org/ChIP_${val[1]}.bigBed`]) + + ch[val[2]] = e + + } else { + ch[val[2]] = [[val[0],val[3],`https://downloads.wenglab.org/ChIP_${val[1]}.bigBed`]] + } + } + + + }) + seChromHmm(ch) + + }) + }, []) + + + const snpResponse = useQuery(GENE_QUERY, { + variables: { ...coordinates, assembly: props.assembly }, + fetchPolicy: "cache-and-network", + nextFetchPolicy: "cache-first", + client, + }) + const groupedTranscripts = useMemo( + () => + snpResponse.data?.gene.map((x) => ({ + ...x, + transcripts: x.transcripts.map((xx) => ({ + ...xx, + color: "#aaaaaa", + })), + })), + [snpResponse,] + ) + const chromhmmtrackswithtissue = useMemo(()=> + chromhmm && Object.keys(chromhmm).map(k=>{ + return chromhmm[k].map(c=>{ + return { tissue:k,url:c[2],biosample: c[1]} + }) + }).flat() + ,[chromhmm]) + + + const { data, loading } = useQuery(BIG_QUERY, { + variables: { bigRequests: chromhmm && Object.keys(chromhmm).map(k=>{ + return chromhmm[k].map(c=>{ + return { chr1: props.coordinates.chromosome!, + start: props.coordinates.start, + end: props.coordinates.end, + preRenderedWidth: 1400, + url: c[2],} + }) + }).flat() }, + skip: !chromhmm, + client, + }) + + const handlePageChange = (_, newValue: number) => { + setPage(newValue) + } + + const chromhmmdata = data && !loading && data.bigRequests.map((b,i)=>{ + let f = b.data[0] as BigBedData + return { + start: f.start, + end: f.end, + name: stateDetails[f.name].description+' ('+ stateDetails[f.name].stateno+')', + chr: f.chr, + color: f.color, + tissue: chromhmmtrackswithtissue[i].tissue, + biosample: chromhmmtrackswithtissue[i].biosample + + } + }) + const onDomainChanged = useCallback( + (d: GenomicRange) => { + const chr = d.chromosome === undefined ? props.coordinates.chromosome : d.chromosome + const start = Math.round(d.start) + const end = Math.round(d.end) + if (end - start > 10) { + setCoordinates({ chromosome: chr, start, end }) + } + }, + [props.coordinates] + ) + const l = useCallback((c) => ((c - coordinates.start) * 1400) / (coordinates.end - coordinates.start), [coordinates]) + + return ( + ( + + + + + {page==0 && +
    + +
    +
    + +
    +
    +
    + + { Object.keys(stateDetails).map((s, i) => ( + = 9 ? 30 : 0})`} key={s}> + + + {s} + + + ))} + +
    + { + if (Math.ceil(x.end) - Math.floor(x.start) > 10) { + setCoordinates({ + chromosome: coordinates.chromosome, + start: Math.floor(x.start), + end: Math.ceil(x.end), + }) + } + }} + > + + + <> + {props.accession && chromhmm && + + } + + + {chromhmm && Object.keys(chromhmm).map(k=>{ + return( + + ) + })} + +
    } + {loading && } + {page==1 && chromhmmdata && + Tissue, + value: (row) => row.tissue, + }, + { + header: "Biosample", + HeaderRender: () => Biosample, + value: (row) => row.biosample, + }, + { + header: "State", + HeaderRender: () => States, + value: (row) => {row.name}, + }, + { + header: "Chromosome", + HeaderRender: () => Chromosome, + value: (row) => row.chr, + }, + { + header: "Start", + HeaderRender: () => Start, + value: (row) => row.start, + }, + { + header: "End", + HeaderRender: () => End, + value: (row) => row.end, + } + ]} + rows={chromhmmdata || []} + sortColumn={0} + sortDescending + itemsPerPage={10} + /> + } +
    ) + ); } \ No newline at end of file diff --git a/screen2.0/src/app/search/_ccredetails/entexdata.tsx b/screen2.0/src/app/search/_ccredetails/entexdata.tsx index 11bf337d..880f02a2 100644 --- a/screen2.0/src/app/search/_ccredetails/entexdata.tsx +++ b/screen2.0/src/app/search/_ccredetails/entexdata.tsx @@ -1,138 +1,151 @@ -import { gql, useQuery } from "@apollo/client" -import React from "react" -import { DataTable } from "@weng-lab/psychscreen-ui-components" -import Grid2 from "@mui/material/Unstable_Grid2/Grid2" -import { client } from "./client" -import { Typography, CircularProgress } from "@mui/material" -import { createLink } from "../../../common/lib/utility" - -const ENTEx_QUERY = gql` -query ENTEXQuery($accession: String!){ - entexQuery(accession: $accession){ - assay - accession - hap1_count - hap2_count - hap1_allele_ratio - p_betabinom - experiment_accession - tissue - donor - imbalance_significance - } -} -` - -const ENTEx_Active_Annotations_QUERY = gql` -query entexActiveAnnotationsQuery( $coordinates: GenomicRangeInput! ) { - entexActiveAnnotationsQuery(coordinates: $coordinates) { - tissue - assay_score - } - -}` -export const ENTExData = (props: { accession, coordinates }) =>{ - console.log(props.coordinates) - const { data, loading } = useQuery(ENTEx_QUERY, { - variables: { accession: props.accession }, - fetchPolicy: "cache-and-network", - nextFetchPolicy: "cache-first", - client, - }) - - const { data: entexActiveAnno, loading: entexActiveAnnoLoading } = useQuery(ENTEx_Active_Annotations_QUERY, { - variables: { coordinates: props.coordinates }, - fetchPolicy: "cache-and-network", - nextFetchPolicy: "cache-first", - client, - }) - - return( - - {loading && } - {data && !loading && data.entexQuery.length>0 && - - Tissue, - value: (row) => row.tissue.split("_").map(s=>s[0].toUpperCase()+s.slice(1)).join(" "), - }, - { - header: "Assay", - HeaderRender: () => Assay, - value: (row) => row.assay.replaceAll("_"," "), - }, - { - header: "Donor", - HeaderRender: () => Donor, - value: (row) => row.donor, - }, - { - header: "Hap 1 Count", - HeaderRender: () => Hap 1 Count, - value: (row) => row.hap1_count - }, - { - header: "Hap 2 Count", - HeaderRender: () => Hap 2 Count, - value: (row) => row.hap2_count - }, - { - header: "Hap 1 Allele Ratio", - HeaderRender: () => Hap 1 Allele Ratio, - value: (row) => row.hap1_allele_ratio.toFixed(2), - }, - { - header: "Experiment Accession", - HeaderRender: () => Experiment Accession, - value: (row) => createLink("https://www.encodeproject.org/experiments/", row.experiment_accession, row.experiment_accession, true), - }, - { - header: "p beta binom", - HeaderRender: () => p Beta Binom, - value: (row) => row.p_betabinom.toFixed(2), - }, - { - header: "Imbalance Significance", - HeaderRender: () => Imbalance Significance, - value: (row) => row.imbalance_significance, - } - ]} - rows={data.entexQuery || []} - sortColumn={5} - searchable - sortDescending - itemsPerPage={10} - /> - } - { !loading && data && data.entexQuery.length==0 && No data available } - {entexActiveAnno && !entexActiveAnnoLoading && entexActiveAnno.entexActiveAnnotationsQuery.length>0 && - - Tissue, - value: (row) => row.tissue.split("_").map(s=>s[0].toUpperCase()+s.slice(1)).join(" "), - }, - { - header: "Supporting Assays", - HeaderRender: () => Supporting Assays, - value: (row) => row.assay_score.split("|").map(s=>s.split(":")[0]).join(",") - } - ]} - rows={entexActiveAnno.entexActiveAnnotationsQuery || []} - sortColumn={0} - searchable - sortDescending - itemsPerPage={10} - /> - - - } - ) +import { gql, useQuery } from "@apollo/client" +import React from "react" +import { DataTable } from "@weng-lab/psychscreen-ui-components" +import Grid from "@mui/material/Grid2" +import { client } from "./client" +import { Typography, CircularProgress } from "@mui/material" +import { createLink } from "../../../common/lib/utility" + +const ENTEx_QUERY = gql` +query ENTEXQuery($accession: String!){ + entexQuery(accession: $accession){ + assay + accession + hap1_count + hap2_count + hap1_allele_ratio + p_betabinom + experiment_accession + tissue + donor + imbalance_significance + } +} +` + +const ENTEx_Active_Annotations_QUERY = gql` +query entexActiveAnnotationsQuery( $coordinates: GenomicRangeInput! ) { + entexActiveAnnotationsQuery(coordinates: $coordinates) { + tissue + assay_score + } + +}` +export const ENTExData = (props: { accession, coordinates }) =>{ + console.log(props.coordinates) + const { data, loading } = useQuery(ENTEx_QUERY, { + variables: { accession: props.accession }, + fetchPolicy: "cache-and-network", + nextFetchPolicy: "cache-first", + client, + }) + + const { data: entexActiveAnno, loading: entexActiveAnnoLoading } = useQuery(ENTEx_Active_Annotations_QUERY, { + variables: { coordinates: props.coordinates }, + fetchPolicy: "cache-and-network", + nextFetchPolicy: "cache-first", + client, + }) + + return ( + ( + {loading && } + {data && !loading && data.entexQuery.length>0 && + + Tissue, + value: (row) => row.tissue.split("_").map(s=>s[0].toUpperCase()+s.slice(1)).join(" "), + }, + { + header: "Assay", + HeaderRender: () => Assay, + value: (row) => row.assay.replaceAll("_"," "), + }, + { + header: "Donor", + HeaderRender: () => Donor, + value: (row) => row.donor, + }, + { + header: "Hap 1 Count", + HeaderRender: () => Hap 1 Count, + value: (row) => row.hap1_count + }, + { + header: "Hap 2 Count", + HeaderRender: () => Hap 2 Count, + value: (row) => row.hap2_count + }, + { + header: "Hap 1 Allele Ratio", + HeaderRender: () => Hap 1 Allele Ratio, + value: (row) => row.hap1_allele_ratio.toFixed(2), + }, + { + header: "Experiment Accession", + HeaderRender: () => Experiment Accession, + value: (row) => createLink("https://www.encodeproject.org/experiments/", row.experiment_accession, row.experiment_accession, true), + }, + { + header: "p beta binom", + HeaderRender: () => p Beta Binom, + value: (row) => row.p_betabinom.toFixed(2), + }, + { + header: "Imbalance Significance", + HeaderRender: () => Imbalance Significance, + value: (row) => row.imbalance_significance, + } + ]} + rows={data.entexQuery || []} + sortColumn={5} + searchable + sortDescending + itemsPerPage={10} + /> + } + { !loading && data && data.entexQuery.length==0 && No data available } + {entexActiveAnno && !entexActiveAnnoLoading && entexActiveAnno.entexActiveAnnotationsQuery.length>0 && + + Tissue, + value: (row) => row.tissue.split("_").map(s=>s[0].toUpperCase()+s.slice(1)).join(" "), + }, + { + header: "Supporting Assays", + HeaderRender: () => Supporting Assays, + value: (row) => row.assay_score.split("|").map(s=>s.split(":")[0]).join(",") + } + ]} + rows={entexActiveAnno.entexActiveAnnotationsQuery || []} + sortColumn={0} + searchable + sortDescending + itemsPerPage={10} + /> + + + } + ) + ); } \ No newline at end of file diff --git a/screen2.0/src/app/search/_ccredetails/functionaldata.tsx b/screen2.0/src/app/search/_ccredetails/functionaldata.tsx index 448a6e01..9f34e312 100644 --- a/screen2.0/src/app/search/_ccredetails/functionaldata.tsx +++ b/screen2.0/src/app/search/_ccredetails/functionaldata.tsx @@ -1,269 +1,289 @@ -"use client" -import React from "react" -import { client } from "./client" -import { useQuery } from "@apollo/client" -import { FUNCTIONAL_DATA_QUERY, CCRE_RDHS_QUERY, MPRA_FUNCTIONAL_DATA_QUERY, CAPRA_SOLO_FUNCTIONAL_DATA_QUERY, CAPRA_DOUBLE_FUNCTIONAL_DATA_QUERY } from "./queries" -import Grid2 from "@mui/material/Unstable_Grid2/Grid2" -import { DataTable } from "@weng-lab/psychscreen-ui-components" -import { LoadingMessage, ErrorMessage } from "../../../common/lib/utility" -import { Link } from "@mui/material" - -export const FunctionData = ({ coordinates , assembly, accession }) => { - const { loading, error, data } = useQuery(FUNCTIONAL_DATA_QUERY, { - variables: { - assembly: assembly === "GRCh38" ? "grch38" : "mm10", - coordinates, - }, - fetchPolicy: "cache-and-network", - nextFetchPolicy: "cache-first", - client, - }) - - const { loading: mpra_loading, error: mpra_error, data: mpra_data } = useQuery(MPRA_FUNCTIONAL_DATA_QUERY, { - variables: { - coordinates, - }, - skip: assembly === "mm10", - fetchPolicy: "cache-and-network", - nextFetchPolicy: "cache-first", - client, - }) - const { loading: capra_loading, error: capra_error, data: capra_data } = useQuery(CAPRA_SOLO_FUNCTIONAL_DATA_QUERY, { - variables: { - accession: [accession], - }, - skip: assembly === "mm10", - fetchPolicy: "cache-and-network", - nextFetchPolicy: "cache-first", - client, - }) - const { loading: capra_double_loading, error: capra_double_error, data: capra_double_data } = useQuery(CAPRA_DOUBLE_FUNCTIONAL_DATA_QUERY, { - variables: { - accession: [accession], - }, - skip: assembly === "mm10", - fetchPolicy: "cache-and-network", - nextFetchPolicy: "cache-first", - client, - }) - - //CCRE_RDHS_QUERY - const { loading: capra_double_rdhs_loading, error: capra_double_rdhs_error, data: capra_double_rdhs_data } = useQuery(CCRE_RDHS_QUERY, { - variables: { - assembly: "GRCh38", - rDHS: [capra_double_data && capra_double_data.capraFccDoubleQuery.length>0 &&capra_double_data.capraFccDoubleQuery[0].rdhs_p1,capra_double_data && capra_double_data.capraFccDoubleQuery.length>0 && capra_double_data.capraFccDoubleQuery[0].rdhs_p2], - }, - //capra_double_data.capraFccDoubleQuery[0].rdhs_p1,capra_double_data.capraFccDoubleQuery[0].rdhs_p2 - skip: capra_double_data===undefined || !capra_double_data , - fetchPolicy: "cache-and-network", - nextFetchPolicy: "cache-first", - client, - }) - - return loading || mpra_loading || capra_loading || capra_double_loading || capra_double_rdhs_loading? ( - - ) : error ? ( - - ) : ( - - - row.chromosome, - }, - { - header: "Start", - value: (row) => row.start, - }, - { - header: "Stop", - value: (row) => row.stop, - }, - { - header: "Element Id", - value: (row) => row.element_id, - render: (row)=> { - const experiment_id = assembly === "GRCh38" ? row.element_id.split("hs")[1] : row.element_id.split("mm")[1] - const organism_id = assembly === "GRCh38" ? 1: 2 - return ( - - )} - }, - { - header: "Assay Result", - value: (row) => row.assay_result, - }, - { - header: "Tissues [number of embryos positive/number of embryos negative]", - value: (row) => row.tissues, - } - ]} - rows={data.functionalCharacterizationQuery || []} - sortColumn={3} - itemsPerPage={5} - /> - - { mpra_error ? ( - - ) : <> - {assembly!=="mm10" && - row.chromosome, - }, - { - header: "Start", - value: (row) => row.start, - }, - { - header: "Stop", - value: (row) => row.stop, - }, - { - header: "Strand", - value: (row) => row.strand, - }, - { - header: "Log2 FC", - value: (row) => row.log2fc.toFixed(2), - HeaderRender: () => <>Log2(Fold Change) - }, - { - header: "Experiment", - value: (row) => row.experiment, - }, - { - header: "Cell Type", - value: (row) => row.celltype, - }, - { - header: "Assay Type", - value: (row) => row.assay_type, - }, - { - header: "Series", - value: (row) => row.series, - }, - { - header: "Location of element", - value: (row) => row.element_location, - }, - { - header: "Location of barcode", - value: (row) => row.barcode_location, - } - ]} - rows={mpra_data.mpraFccQuery || []} - sortColumn={4} - itemsPerPage={5} - /> - }} - { capra_error ? ( - - ) : <> - {assembly!=="mm10" && - row.experiment, - }, - { - header: "DNA Rep1", - value: (row) => row.dna_rep1, - }, - { - header: "RNA Rep1", - value: (row) => row.rna_rep1, - }, - { - header: "RNA Rep2", - value: (row) => row.rna_rep2, - }, - { - header: "RNA Rep3", - value: (row) => row.rna_rep3, - }, - { - header: "Log2FC", - HeaderRender: () => <>Log2(Fold Change), - value: (row) => row.log2fc.toFixed(2), - }, - { - header: "P", - value: (row) => row.pvalue.toFixed(2), - HeaderRender: () => P - }, - { - header: "FDR", - value: (row) => row.fdr.toFixed(2), - } - ]} - rows={capra_data.capraFccSoloQuery || []} - sortColumn={5} - itemsPerPage={5} - /> - }} - { capra_double_error ? ( - - ) : <> - {assembly!=="mm10" && - row.ccrep1+"-"+row.ccrep2, - }, - { - header: "Experiment", - value: (row) => row.experiment, - }, - { - header: "DNA Rep1", - value: (row) => row.dna_rep1, - }, - { - header: "RNA Rep1", - value: (row) => row.rna_rep1, - }, - { - header: "RNA Rep2", - value: (row) => row.rna_rep2, - }, - { - header: "RNA Rep3", - value: (row) => row.rna_rep3, - }, - { - header: "Log2(Fold Change)", - HeaderRender: () => <>Log2(Fold Change), - value: (row) => row.log2fc.toFixed(2), - }, - { - header: "P", - value: (row) => row.pvalue.toFixed(2), - HeaderRender: () => P, - }, - { - header: "FDR", - value: (row) => row.fdr.toFixed(2), - } - ]} - rows={capra_double_data && - capra_double_data.capraFccDoubleQuery.map(c=>{ return {...c, ccrep1: capra_double_rdhs_data && capra_double_rdhs_data.cCREQuery.length>0 && capra_double_rdhs_data.cCREQuery[0].accession, ccrep2: capra_double_rdhs_data && capra_double_rdhs_data.cCREQuery.length>0 && capra_double_rdhs_data.cCREQuery[1].accession } }) - || []} - sortColumn={6} - itemsPerPage={5} - /> - }} - - ) -} +"use client" +import React from "react" +import { client } from "./client" +import { useQuery } from "@apollo/client" +import { FUNCTIONAL_DATA_QUERY, CCRE_RDHS_QUERY, MPRA_FUNCTIONAL_DATA_QUERY, CAPRA_SOLO_FUNCTIONAL_DATA_QUERY, CAPRA_DOUBLE_FUNCTIONAL_DATA_QUERY } from "./queries" +import Grid from "@mui/material/Grid2" +import { DataTable } from "@weng-lab/psychscreen-ui-components" +import { LoadingMessage, ErrorMessage } from "../../../common/lib/utility" +import { Link } from "@mui/material" + +export const FunctionData = ({ coordinates , assembly, accession }) => { + const { loading, error, data } = useQuery(FUNCTIONAL_DATA_QUERY, { + variables: { + assembly: assembly === "GRCh38" ? "grch38" : "mm10", + coordinates, + }, + fetchPolicy: "cache-and-network", + nextFetchPolicy: "cache-first", + client, + }) + + const { loading: mpra_loading, error: mpra_error, data: mpra_data } = useQuery(MPRA_FUNCTIONAL_DATA_QUERY, { + variables: { + coordinates, + }, + skip: assembly === "mm10", + fetchPolicy: "cache-and-network", + nextFetchPolicy: "cache-first", + client, + }) + const { loading: capra_loading, error: capra_error, data: capra_data } = useQuery(CAPRA_SOLO_FUNCTIONAL_DATA_QUERY, { + variables: { + accession: [accession], + }, + skip: assembly === "mm10", + fetchPolicy: "cache-and-network", + nextFetchPolicy: "cache-first", + client, + }) + const { loading: capra_double_loading, error: capra_double_error, data: capra_double_data } = useQuery(CAPRA_DOUBLE_FUNCTIONAL_DATA_QUERY, { + variables: { + accession: [accession], + }, + skip: assembly === "mm10", + fetchPolicy: "cache-and-network", + nextFetchPolicy: "cache-first", + client, + }) + + //CCRE_RDHS_QUERY + const { loading: capra_double_rdhs_loading, error: capra_double_rdhs_error, data: capra_double_rdhs_data } = useQuery(CCRE_RDHS_QUERY, { + variables: { + assembly: "GRCh38", + rDHS: [capra_double_data && capra_double_data.capraFccDoubleQuery.length>0 &&capra_double_data.capraFccDoubleQuery[0].rdhs_p1,capra_double_data && capra_double_data.capraFccDoubleQuery.length>0 && capra_double_data.capraFccDoubleQuery[0].rdhs_p2], + }, + //capra_double_data.capraFccDoubleQuery[0].rdhs_p1,capra_double_data.capraFccDoubleQuery[0].rdhs_p2 + skip: capra_double_data===undefined || !capra_double_data , + fetchPolicy: "cache-and-network", + nextFetchPolicy: "cache-first", + client, + }) + + return loading || mpra_loading || capra_loading || capra_double_loading || capra_double_rdhs_loading? ( + + ) : error ? ( + + ) : ( + + + row.chromosome, + }, + { + header: "Start", + value: (row) => row.start, + }, + { + header: "Stop", + value: (row) => row.stop, + }, + { + header: "Element Id", + value: (row) => row.element_id, + render: (row)=> { + const experiment_id = assembly === "GRCh38" ? row.element_id.split("hs")[1] : row.element_id.split("mm")[1] + const organism_id = assembly === "GRCh38" ? 1: 2 + return ( + + )} + }, + { + header: "Assay Result", + value: (row) => row.assay_result, + }, + { + header: "Tissues [number of embryos positive/number of embryos negative]", + value: (row) => row.tissues, + } + ]} + rows={data.functionalCharacterizationQuery || []} + sortColumn={3} + itemsPerPage={5} + /> + + { mpra_error ? ( + + ) : <> + {assembly!=="mm10" && + row.chromosome, + }, + { + header: "Start", + value: (row) => row.start, + }, + { + header: "Stop", + value: (row) => row.stop, + }, + { + header: "Strand", + value: (row) => row.strand, + }, + { + header: "Log2 FC", + value: (row) => row.log2fc.toFixed(2), + HeaderRender: () => <>Log2(Fold Change) + }, + { + header: "Experiment", + value: (row) => row.experiment, + }, + { + header: "Cell Type", + value: (row) => row.celltype, + }, + { + header: "Assay Type", + value: (row) => row.assay_type, + }, + { + header: "Series", + value: (row) => row.series, + }, + { + header: "Location of element", + value: (row) => row.element_location, + }, + { + header: "Location of barcode", + value: (row) => row.barcode_location, + } + ]} + rows={mpra_data.mpraFccQuery || []} + sortColumn={4} + itemsPerPage={5} + /> + }} + { capra_error ? ( + + ) : <> + {assembly!=="mm10" && + row.experiment, + }, + { + header: "DNA Rep1", + value: (row) => row.dna_rep1, + }, + { + header: "RNA Rep1", + value: (row) => row.rna_rep1, + }, + { + header: "RNA Rep2", + value: (row) => row.rna_rep2, + }, + { + header: "RNA Rep3", + value: (row) => row.rna_rep3, + }, + { + header: "Log2FC", + HeaderRender: () => <>Log2(Fold Change), + value: (row) => row.log2fc.toFixed(2), + }, + { + header: "P", + value: (row) => row.pvalue.toFixed(2), + HeaderRender: () => P + }, + { + header: "FDR", + value: (row) => row.fdr.toFixed(2), + } + ]} + rows={capra_data.capraFccSoloQuery || []} + sortColumn={5} + itemsPerPage={5} + /> + }} + { capra_double_error ? ( + + ) : <> + {assembly!=="mm10" && + row.ccrep1+"-"+row.ccrep2, + }, + { + header: "Experiment", + value: (row) => row.experiment, + }, + { + header: "DNA Rep1", + value: (row) => row.dna_rep1, + }, + { + header: "RNA Rep1", + value: (row) => row.rna_rep1, + }, + { + header: "RNA Rep2", + value: (row) => row.rna_rep2, + }, + { + header: "RNA Rep3", + value: (row) => row.rna_rep3, + }, + { + header: "Log2(Fold Change)", + HeaderRender: () => <>Log2(Fold Change), + value: (row) => row.log2fc.toFixed(2), + }, + { + header: "P", + value: (row) => row.pvalue.toFixed(2), + HeaderRender: () => P, + }, + { + header: "FDR", + value: (row) => row.fdr.toFixed(2), + } + ]} + rows={capra_double_data && + capra_double_data.capraFccDoubleQuery.map(c=>{ return {...c, ccrep1: capra_double_rdhs_data && capra_double_rdhs_data.cCREQuery.length>0 && capra_double_rdhs_data.cCREQuery[0].accession, ccrep2: capra_double_rdhs_data && capra_double_rdhs_data.cCREQuery.length>0 && capra_double_rdhs_data.cCREQuery[1].accession } }) + || []} + sortColumn={6} + itemsPerPage={5} + /> + }} + + ); +} diff --git a/screen2.0/src/app/search/_ccredetails/geneexpression.tsx b/screen2.0/src/app/search/_ccredetails/geneexpression.tsx index ef56f3a5..30d8563d 100644 --- a/screen2.0/src/app/search/_ccredetails/geneexpression.tsx +++ b/screen2.0/src/app/search/_ccredetails/geneexpression.tsx @@ -4,7 +4,7 @@ import { LoadingMessage } from "../../../common/lib/utility" import { PlotGeneExpression } from "../../applets/gene-expression/geneexpressionplot" import { useQuery } from "@apollo/experimental-nextjs-app-support/ssr" import { Button, Typography, Stack, MenuItem, FormControl, SelectChangeEvent, Checkbox, InputLabel, ListItemText, OutlinedInput, Select, ToggleButton, ToggleButtonGroup, FormLabel, Box } from "@mui/material" -import Grid2 from "@mui/material/Unstable_Grid2/Grid2" +import Grid from "@mui/material/Grid2" import Image from "next/image" import { HUMAN_GENE_EXP, MOUSE_GENE_EXP } from "../../applets/gene-expression/const" import { GENE_EXP_QUERY, GENE_QUERY, GET_ORTHOLOG, GET_ORTHOLOG_DATA, GET_ORTHOLOG_VARS } from "../../applets/gene-expression/queries" @@ -179,7 +179,7 @@ export function GeneExpression(props: { }; return ( - + ( : - + Gene - {props.genes.map((gene) => { - return ( - setCurrentGene(gene.name)}> - {gene.name} - {gene?.linkedBy && Linked By: {gene.linkedBy.join(', ')}} - - ) - })} - - - - Peak - - - - - Sort By - - - - - - - {data_gene?.gene[0] && `Gene ID: ${data_gene.gene[0].id} ${peakDetails ? '(' + peakDetails.locusType + ')' : ''}`} - - - {peak && `${peak}: ${peakDetails?.chrom + ":" + peakDetails?.start.toLocaleString() + "-" + peakDetails?.end.toLocaleString()}`} - - - - {data && data.length == 0 ? (No data available) : - - - + return (loading ? : + + + + TSS Activity Profiles by RAMPAGE + + + + + + + + + + + + + + + Gene + + + + Peak + { + setSort(event.target.value as "byValue" | "byTissueMax" | "byTissue") }} - accession={currentGene} - open={configGBopen} - setOpen={setConfigGBOpen} - /> - - ) + > + Tissue + Tissue Max + Value + + + + + + {data_gene?.gene[0] && `Gene ID: ${data_gene.gene[0].id} ${peakDetails ? '(' + peakDetails.locusType + ')' : ''}`} + + + {peak && `${peak}: ${peakDetails?.chrom + ":" + peakDetails?.start.toLocaleString() + "-" + peakDetails?.end.toLocaleString()}`} + + + + {data && data.length == 0 ? (No data available) : + + + + } + + {/* Configure Trackhub */} + + ); } diff --git a/screen2.0/src/app/search/_ccredetails/tfintersection.tsx b/screen2.0/src/app/search/_ccredetails/tfintersection.tsx index 1747e1f3..3a8db3c6 100644 --- a/screen2.0/src/app/search/_ccredetails/tfintersection.tsx +++ b/screen2.0/src/app/search/_ccredetails/tfintersection.tsx @@ -4,7 +4,7 @@ import { Link } from "@mui/material" import { client } from "./client" import { useQuery } from "@apollo/client" import { TF_INTERSECTION_QUERY, CRE_TF_DCC_QUERY } from "./queries" -import Grid2 from "@mui/material/Unstable_Grid2/Grid2" +import Grid from "@mui/material/Grid2" import { DataTable } from "@weng-lab/psychscreen-ui-components" import { LoadingMessage } from "../../../common/lib/utility" @@ -77,81 +77,92 @@ export const TfIntersection: React.FC<{ assembly: string; coordinates: { chromos } }) - return ( - <> - {loading || !data ? ( - - - - - - ) : ( - <> - - + return (<> + {loading || !data ? ( + + + + + + ) : ( + <> + + + row.name, + render: (row) => ( + + + + ), + }, + { + header: "# of experiments that support TF binding", + value: (row) => row.n, + }, + { + header: "# experiments in total", + value: (row) => row.total, + }, + ]} + tableTitle="TFs that bind this cCRE " + rows={tableData || []} + onRowClick={(row) => { + setFactor(row.name) + setFactorHighlight(row) + }} + sortColumn={1} + itemsPerPage={5} + highlighted={factorHighlight} + /> + + {cre_tf_data && ( + row.name, + header: "cell type", + value: (row) => row.biosample_term_name, + }, + { + header: "experiment/file", + value: (row) => row.expID, render: (row) => ( - - + + ), }, - { - header: "# of experiments that support TF binding", - value: (row) => row.n, - }, - { - header: "# experiments in total", - value: (row) => row.total, - }, ]} - tableTitle="TFs that bind this cCRE " - rows={tableData || []} - onRowClick={(row) => { - setFactor(row.name) - setFactorHighlight(row) - }} - sortColumn={1} + tableTitle={`ChIP-seq ${factor} Experiments`} + rows={cre_tf_data || []} + sortColumn={0} itemsPerPage={5} - highlighted={factorHighlight} /> - - {cre_tf_data && ( - - row.biosample_term_name, - }, - { - header: "experiment/file", - value: (row) => row.expID, - render: (row) => ( - - - - ), - }, - ]} - tableTitle={`ChIP-seq ${factor} Experiments`} - rows={cre_tf_data || []} - sortColumn={0} - itemsPerPage={5} - /> - - )} - - - )} - - ) + + )} + + + )} + ); } diff --git a/screen2.0/src/app/search/_gbview/genomebrowserview.tsx b/screen2.0/src/app/search/_gbview/genomebrowserview.tsx index cf11d158..80eb577e 100644 --- a/screen2.0/src/app/search/_gbview/genomebrowserview.tsx +++ b/screen2.0/src/app/search/_gbview/genomebrowserview.tsx @@ -1,6 +1,6 @@ "use client" import React, { useMemo, useState, useRef, useCallback, useEffect } from "react" -import Grid2 from "@mui/material/Unstable_Grid2/Grid2" +import Grid from "@mui/material/Grid2" import { RulerTrack, GenomeBrowser } from "umms-gb" import Controls from "./controls" import { gql, useQuery } from "@apollo/client" @@ -186,74 +186,76 @@ export const GenomeBrowserView: React.FC = (props) => { } }, [bdata, props.biosample, props.assembly, props.biosampledisplayname]) - return ( - <> - - -
    - -
    -
    - -
    -
    -
    - + + +
    + +
    +
    + +
    +
    +
    + { + if (Math.ceil(x.end) - Math.floor(x.start) > 10) { + setCoordinates({ + chromosome: coordinates.chromosome, + start: Math.floor(x.start), + end: Math.ceil(x.end), + }) + } + }} + > + + + {highlight && ( + + )} + <> + {props.accessions && props.accessions.map((a)=>( + + ))} + + + { - if (Math.ceil(x.end) - Math.floor(x.start) > 10) { - setCoordinates({ - chromosome: coordinates.chromosome, - start: Math.floor(x.start), - end: Math.ceil(x.end), - }) - } + oncCREClicked={(x)=>{ + props.handlecCREClickInTrack && props.handlecCREClickInTrack({ accession: x.name, chromosome: x.coordinates.chromosome,start: x.coordinates.start,end: x.coordinates.end }) }} - > - - - {highlight && ( - - )} - <> - {props.accessions && props.accessions.map((a)=>( - - ))} - - - x && setHighlight(x)} + oncCREMousedOut={() => setHighlight(null)} + /> + {props.biosample && props.assembly != "mm10" && cTracks && ( + { - props.handlecCREClickInTrack && props.handlecCREClickInTrack({ accession: x.name, chromosome: x.coordinates.chromosome,start: x.coordinates.start,end: x.coordinates.end }) - }} + tracks={cTracks} oncCREMousedOver={(x) => x && setHighlight(x)} oncCREMousedOut={() => setHighlight(null)} + oncCREClicked={(x)=>{ + props.handlecCREClickInTrack && props.handlecCREClickInTrack({ accession: x.name, chromosome: x.coordinates.chromosome,start: x.coordinates.start,end: x.coordinates.end }) + }} /> - {props.biosample && props.assembly != "mm10" && cTracks && ( - x && setHighlight(x)} - oncCREMousedOut={() => setHighlight(null)} - oncCREClicked={(x)=>{ - props.handlecCREClickInTrack && props.handlecCREClickInTrack({ accession: x.name, chromosome: x.coordinates.chromosome,start: x.coordinates.start,end: x.coordinates.end }) - }} - /> - )} - -
    -
    - - ) + )} + + + + ); } diff --git a/screen2.0/src/app/search/_gbview/queries.ts b/screen2.0/src/app/search/_gbview/queries.ts index 7e222b08..7db9fae7 100644 --- a/screen2.0/src/app/search/_gbview/queries.ts +++ b/screen2.0/src/app/search/_gbview/queries.ts @@ -1,31 +1,31 @@ -import { gql } from "@apollo/client" -export const BIG_QUERY = gql` - query BigRequests($bigRequests: [BigRequest!]!) { - bigRequests(requests: $bigRequests) { - data - error { - errortype - message - } - } - } -` - -export const BIOSAMPLE_QUERY = gql` - query q_1($assembly: String!) { - ccREBiosampleQuery(assembly: $assembly) { - biosamples { - name - displayname - dnase: experimentAccession(assay: "DNase") - h3k4me3: experimentAccession(assay: "H3K4me3") - h3k27ac: experimentAccession(assay: "H3K27ac") - ctcf: experimentAccession(assay: "CTCF") - dnase_signal: fileAccession(assay: "DNase") - h3k4me3_signal: fileAccession(assay: "H3K4me3") - h3k27ac_signal: fileAccession(assay: "H3K27ac") - ctcf_signal: fileAccession(assay: "CTCF") - } - } - } -` +import { gql } from "@apollo/client" +export const BIG_QUERY = gql` + query BigRequests($bigRequests: [BigRequest!]!) { + bigRequests(requests: $bigRequests) { + data + error { + errortype + message + } + } + } +` + +export const BIOSAMPLE_QUERY = gql` + query q_1($assembly: String!) { + ccREBiosampleQuery(assembly: $assembly) { + biosamples { + name + displayname + dnase: experimentAccession(assay: "DNase") + h3k4me3: experimentAccession(assay: "H3K4me3") + h3k27ac: experimentAccession(assay: "H3K27ac") + ctcf: experimentAccession(assay: "CTCF") + dnase_signal: fileAccession(assay: "DNase") + h3k4me3_signal: fileAccession(assay: "H3K4me3") + h3k27ac_signal: fileAccession(assay: "H3K27ac") + ctcf_signal: fileAccession(assay: "CTCF") + } + } + } +` diff --git a/screen2.0/src/app/search/_gbview/tfsequencefeatures.tsx b/screen2.0/src/app/search/_gbview/tfsequencefeatures.tsx index f5ad09cc..6c7474d2 100644 --- a/screen2.0/src/app/search/_gbview/tfsequencefeatures.tsx +++ b/screen2.0/src/app/search/_gbview/tfsequencefeatures.tsx @@ -1,241 +1,243 @@ -"use client" -import React, { useMemo, useState, useRef, useCallback, useEffect } from "react" -import Grid2 from "@mui/material/Unstable_Grid2/Grid2" -import { RulerTrack, GenomeBrowser } from "umms-gb" -import Controls from "./controls" -import { gql, useQuery } from "@apollo/client" -import CytobandView, { GenomicRange } from "./cytobandview" -import EGeneTracks from "./egenetracks" -import { client } from "../_ccredetails/client" -import { TfMotifTrack } from "./tfmotiftrack" -import { EmptyTrack, FullBigWig } from "umms-gb" -import { GraphQLImportanceTrack } from "bpnet-ui" -import { BigQueryResponse } from "./types" -import { BIG_QUERY } from "./queries" -import { BigWigData } from "bigwig-reader" -type TfSequenceFeaturesProps = { - coordinates: { - start: number - end: number - chromosome?: string - } - assembly: string -} -const GENE_QUERY = gql` - query s_1($chromosome: String, $start: Int, $end: Int, $assembly: String!, $version: Int) { - gene(chromosome: $chromosome, start: $start, end: $end, assembly: $assembly, version: $version) { - name - strand - transcripts { - name - strand - exons { - coordinates { - chromosome - start - end - } - } - coordinates { - chromosome - start - end - } - } - } - } -` -export type Transcript = { - id: string - name: string - strand: string - coordinates: GenomicRange -} -export type SNPQueryResponse = { - gene: { - name: string - strand: string - transcripts: Transcript[] - }[] -} -export function expandCoordinates(coordinates, l = 0) { - return { - chromosome: coordinates.chromosome, - start: coordinates.start - l < 0 ? 0 : coordinates.start - l, - end: coordinates.end + l, - } -} -const DATA_QUERY = ` -query q($requests: [BigRequest!]!) { - bigRequests(requests: $requests) { - data - } -} -` - -export const TfSequenceFeatures: React.FC = (props) => { - - const [data, setData] = useState([]) - const [loading, setLoading] = useState(true) - const svgRef = useRef(null) - const expandedCoordinates = useMemo(() => expandCoordinates(props.coordinates), [props.coordinates]) - const [coordinates, setCoordinates] = useState(expandedCoordinates) - const [settingsMousedOver, setSettingsMousedOver] = useState(false) - useEffect(() => { - fetch("https://ga.staging.wenglab.org/graphql", { - method: "POST", - headers: { - "Content-Type": "application/json", - Accept: "application/json", - }, - body: JSON.stringify({ - query: DATA_QUERY, - variables: { - requests: [ - { - url: "gs://gcp.wenglab.org/SCREEN/all-sites.sorted.formatted.bigBed", - chr1: coordinates.chromosome, - start: coordinates.start, - chr2: coordinates.chromosome, - end: coordinates.end - }, - ], - }, - }), - }) - .then((x) => x.json()) - .then((x) => { - setData(x.data.bigRequests[0].data.filter((x) => x.name.split("$")[3] === "True")) - setLoading(false) - }) - }, [coordinates]) - const url = props.assembly==="GRCh38" ?"gs://gcp.wenglab.org/241-mammalian-2020v2.bigWig" : "gs://gcp.wenglab.org/mm10.phylop.bigWig" - const { data: sequenceData, loading: sequenceLoading } = useQuery(BIG_QUERY, { - variables: { bigRequests: [{ - url, - chr1: coordinates.chromosome, - start: coordinates.start, - chr2: coordinates.chromosome, - end: coordinates.end - }] }, - client, - }) - //sequenceData?.bigRequests array - const snpResponse = useQuery(GENE_QUERY, { - variables: { ...coordinates, assembly: props.assembly,version: props.assembly.toLowerCase()==="grch38" ? 40: 25 }, - fetchPolicy: "cache-and-network", - nextFetchPolicy: "cache-first", - client, - }) - - const groupedTranscripts = useMemo( - () => - snpResponse.data?.gene.map((x) => ({ - ...x, - transcripts: x.transcripts.map((xx) => ({ - ...xx, - color: "#aaaaaa", - })), - })), - [snpResponse] - ) - const onDomainChanged = useCallback( - (d: GenomicRange) => { - const chr = d.chromosome === undefined ? props.coordinates.chromosome : d.chromosome - const start = Math.round(d.start) - const end = Math.round(d.end) - if (end - start > 10) { - setCoordinates({ chromosome: chr, start, end }) - } - }, - [props.coordinates] - ) - const l = useCallback((c) => ((c - coordinates.start) * 1400) / (coordinates.end - coordinates.start), [coordinates]) - - return ( - <> - - -
    - -
    -
    - -
    -
    -
    - { - if (Math.ceil(x.end) - Math.floor(x.start) > 10) { - setCoordinates({ - chromosome: coordinates.chromosome, - start: Math.floor(x.start), - end: Math.ceil(x.end), - }) - } - }} - > - - <> - {(props.coordinates.start > coordinates.start || props.coordinates.end < coordinates.end ) && - - } - - - {!loading && data && props.assembly!=="mm10" && } - - - {coordinates.end - coordinates.start < 5000 ? : - } - {settingsMousedOver && ( - - )} - - setSettingsMousedOver(true)} - onMouseOut={() => setSettingsMousedOver(false)} - strokeWidth={1} - transform="translate(20,0)" - /> - - Sequence - - - - -
    -
    - - ) -} +"use client" +import React, { useMemo, useState, useRef, useCallback, useEffect } from "react" +import Grid from "@mui/material/Grid2" +import { RulerTrack, GenomeBrowser } from "umms-gb" +import Controls from "./controls" +import { gql, useQuery } from "@apollo/client" +import CytobandView, { GenomicRange } from "./cytobandview" +import EGeneTracks from "./egenetracks" +import { client } from "../_ccredetails/client" +import { TfMotifTrack } from "./tfmotiftrack" +import { EmptyTrack, FullBigWig } from "umms-gb" +import { GraphQLImportanceTrack } from "bpnet-ui" +import { BigQueryResponse } from "./types" +import { BIG_QUERY } from "./queries" +import { BigWigData } from "bigwig-reader" +type TfSequenceFeaturesProps = { + coordinates: { + start: number + end: number + chromosome?: string + } + assembly: string +} +const GENE_QUERY = gql` + query s_1($chromosome: String, $start: Int, $end: Int, $assembly: String!, $version: Int) { + gene(chromosome: $chromosome, start: $start, end: $end, assembly: $assembly, version: $version) { + name + strand + transcripts { + name + strand + exons { + coordinates { + chromosome + start + end + } + } + coordinates { + chromosome + start + end + } + } + } + } +` +export type Transcript = { + id: string + name: string + strand: string + coordinates: GenomicRange +} +export type SNPQueryResponse = { + gene: { + name: string + strand: string + transcripts: Transcript[] + }[] +} +export function expandCoordinates(coordinates, l = 0) { + return { + chromosome: coordinates.chromosome, + start: coordinates.start - l < 0 ? 0 : coordinates.start - l, + end: coordinates.end + l, + } +} +const DATA_QUERY = ` +query q($requests: [BigRequest!]!) { + bigRequests(requests: $requests) { + data + } +} +` + +export const TfSequenceFeatures: React.FC = (props) => { + + const [data, setData] = useState([]) + const [loading, setLoading] = useState(true) + const svgRef = useRef(null) + const expandedCoordinates = useMemo(() => expandCoordinates(props.coordinates), [props.coordinates]) + const [coordinates, setCoordinates] = useState(expandedCoordinates) + const [settingsMousedOver, setSettingsMousedOver] = useState(false) + useEffect(() => { + fetch("https://ga.staging.wenglab.org/graphql", { + method: "POST", + headers: { + "Content-Type": "application/json", + Accept: "application/json", + }, + body: JSON.stringify({ + query: DATA_QUERY, + variables: { + requests: [ + { + url: "gs://gcp.wenglab.org/SCREEN/all-sites.sorted.formatted.bigBed", + chr1: coordinates.chromosome, + start: coordinates.start, + chr2: coordinates.chromosome, + end: coordinates.end + }, + ], + }, + }), + }) + .then((x) => x.json()) + .then((x) => { + setData(x.data.bigRequests[0].data.filter((x) => x.name.split("$")[3] === "True")) + setLoading(false) + }) + }, [coordinates]) + const url = props.assembly==="GRCh38" ?"gs://gcp.wenglab.org/241-mammalian-2020v2.bigWig" : "gs://gcp.wenglab.org/mm10.phylop.bigWig" + const { data: sequenceData, loading: sequenceLoading } = useQuery(BIG_QUERY, { + variables: { bigRequests: [{ + url, + chr1: coordinates.chromosome, + start: coordinates.start, + chr2: coordinates.chromosome, + end: coordinates.end + }] }, + client, + }) + //sequenceData?.bigRequests array + const snpResponse = useQuery(GENE_QUERY, { + variables: { ...coordinates, assembly: props.assembly,version: props.assembly.toLowerCase()==="grch38" ? 40: 25 }, + fetchPolicy: "cache-and-network", + nextFetchPolicy: "cache-first", + client, + }) + + const groupedTranscripts = useMemo( + () => + snpResponse.data?.gene.map((x) => ({ + ...x, + transcripts: x.transcripts.map((xx) => ({ + ...xx, + color: "#aaaaaa", + })), + })), + [snpResponse] + ) + const onDomainChanged = useCallback( + (d: GenomicRange) => { + const chr = d.chromosome === undefined ? props.coordinates.chromosome : d.chromosome + const start = Math.round(d.start) + const end = Math.round(d.end) + if (end - start > 10) { + setCoordinates({ chromosome: chr, start, end }) + } + }, + [props.coordinates] + ) + const l = useCallback((c) => ((c - coordinates.start) * 1400) / (coordinates.end - coordinates.start), [coordinates]) + + return (<> + + +
    + +
    +
    + +
    +
    +
    + { + if (Math.ceil(x.end) - Math.floor(x.start) > 10) { + setCoordinates({ + chromosome: coordinates.chromosome, + start: Math.floor(x.start), + end: Math.ceil(x.end), + }) + } + }} + > + + <> + {(props.coordinates.start > coordinates.start || props.coordinates.end < coordinates.end ) && + + } + + + {!loading && data && props.assembly!=="mm10" && } + + + {coordinates.end - coordinates.start < 5000 ? : + } + {settingsMousedOver && ( + + )} + + setSettingsMousedOver(true)} + onMouseOut={() => setSettingsMousedOver(false)} + strokeWidth={1} + transform="translate(20,0)" + /> + + Sequence + + + + +
    +
    + ); +} diff --git a/screen2.0/src/app/search/_gbview/types.ts b/screen2.0/src/app/search/_gbview/types.ts index 983c2e16..3ab9b043 100644 --- a/screen2.0/src/app/search/_gbview/types.ts +++ b/screen2.0/src/app/search/_gbview/types.ts @@ -1,21 +1,21 @@ -import { BigWigData, BigBedData, BigZoomData } from "bigwig-reader" -import { RequestError } from "umms-gb/dist/components/tracks/trackset/types" -import { ValuedPoint } from "umms-gb/dist/utils/types" - - -export type BigResponseData = BigWigData[] | BigBedData[] | BigZoomData[] | ValuedPoint[] - -export type BigResponse = { - data: BigResponseData - error: RequestError -} - -export type BigQueryResponse = { - bigRequests: BigResponse[] -} - -export type GenomicRange = { - chromosome?: string - start: number - end: number +import { BigWigData, BigBedData, BigZoomData } from "bigwig-reader" +import { RequestError } from "umms-gb/dist/components/tracks/trackset/types" +import { ValuedPoint } from "umms-gb/dist/utils/types" + + +export type BigResponseData = BigWigData[] | BigBedData[] | BigZoomData[] | ValuedPoint[] + +export type BigResponse = { + data: BigResponseData + error: RequestError +} + +export type BigQueryResponse = { + bigRequests: BigResponse[] +} + +export type GenomicRange = { + chromosome?: string + start: number + end: number } \ No newline at end of file diff --git a/screen2.0/src/app/search/_geneAutocomplete/GeneAutocomplete.tsx b/screen2.0/src/app/search/_geneAutocomplete/GeneAutocomplete.tsx index a56e1933..411fd879 100644 --- a/screen2.0/src/app/search/_geneAutocomplete/GeneAutocomplete.tsx +++ b/screen2.0/src/app/search/_geneAutocomplete/GeneAutocomplete.tsx @@ -1,6 +1,6 @@ import React, { useState, useEffect, useCallback, useMemo } from "react" import Box from "@mui/material/Box" -import Grid2 from "@mui/material/Unstable_Grid2/Grid2" +import Grid from "@mui/material/Grid2" import Typography from "@mui/material/Typography" import { debounce } from "@mui/material/utils" import { GENE_AUTOCOMPLETE_QUERY } from "../../_mainsearch/queries" @@ -186,16 +186,16 @@ export const GeneAutocomplete = ( } else { return (
  • - - + + {option.name} {descriptions.find((g) => g.name === option.name)?.desc} - - + +
  • ) } diff --git a/screen2.0/src/app/search/mainresultsfilters.tsx b/screen2.0/src/app/search/mainresultsfilters.tsx index 54417aac..440d1248 100644 --- a/screen2.0/src/app/search/mainresultsfilters.tsx +++ b/screen2.0/src/app/search/mainresultsfilters.tsx @@ -27,7 +27,7 @@ import Radio from '@mui/material/Radio'; import RadioGroup from '@mui/material/RadioGroup'; import FormControl from '@mui/material/FormControl'; import ExpandMoreIcon from "@mui/icons-material/ExpandMore" -import Grid2 from "@mui/material/Unstable_Grid2" +import Grid from "@mui/material/Grid2" import { RangeSlider } from "@weng-lab/psychscreen-ui-components" import { FilterCriteria, MainQueryParams, RegistryBiosample } from "./types" import { eQTLsTissues, filtersModified } from "./searchhelpers" @@ -233,8 +233,8 @@ export function MainResultsFilters( const geneInfo = linkedGenesWithNums.find(x => x.geneName === option.name) return (
  • - - + + {loadingLinkedGenes ? @@ -248,8 +248,8 @@ export function MainResultsFilters( {descriptions.find((g) => g.name === option.name)?.desc + ` (Linked: ${geneInfo?.accessions.length ?? 0})`} - - + +
  • ) }, [loadingLinkedGenes, linkedGenesWithNums]) @@ -332,16 +332,16 @@ export function MainResultsFilters( ) => { return (
  • - - + + {option.name} {`${currentGene} linked to ${option.count} in this biosample`} - - + +
  • ) }, []) @@ -385,7 +385,7 @@ export function MainResultsFilters( return ( - + ( {/* cCREs within distance from SNP */} {mainQueryParams.snp.rsID && <> @@ -412,8 +412,8 @@ export function MainResultsFilters( - - + + - - + + @@ -465,8 +465,8 @@ export function MainResultsFilters( {geneTranscripts ? - - + + } label={<>Within distance of TSS of {mainQueryParams.gene.name}} /> - - {mainQueryParams.gene.nearTSS && + + {mainQueryParams.gene.nearTSS && Distance around TSS @@ -499,8 +499,8 @@ export function MainResultsFilters( marks={tssMarks} /> - } - + } + : } @@ -589,8 +589,8 @@ export function MainResultsFilters( - - {(!mainQueryParams.biosample || mainQueryParams.biosample.dnase) && + + {(!mainQueryParams.biosample || mainQueryParams.biosample.dnase) && - } - {(!mainQueryParams.biosample || mainQueryParams.biosample.h3k4me3) && + } + {(!mainQueryParams.biosample || mainQueryParams.biosample.h3k4me3) && - } - {(!mainQueryParams.biosample || mainQueryParams.biosample.h3k27ac) && + } + {(!mainQueryParams.biosample || mainQueryParams.biosample.h3k27ac) && - } - {(!mainQueryParams.biosample || mainQueryParams.biosample.ctcf) && + } + {(!mainQueryParams.biosample || mainQueryParams.biosample.ctcf) && - } - {(!mainQueryParams.biosample || mainQueryParams.biosample.atac) && + } + {(!mainQueryParams.biosample || mainQueryParams.biosample.atac) && - } - + } + {/* Classification */} @@ -722,8 +722,8 @@ export function MainResultsFilters( {/* cCRE Classes */} - - + + - - + + - - + + {/* Conservation */} @@ -817,8 +817,8 @@ export function MainResultsFilters( - - + + - - + + - - + + - - + + } {/* Linked Genes */} @@ -1171,6 +1171,6 @@ export function MainResultsFilters( } } - - ) + ) + ); } diff --git a/screen2.0/src/app/search/mainresultstable.tsx b/screen2.0/src/app/search/mainresultstable.tsx index a8e10c94..b19fd68f 100644 --- a/screen2.0/src/app/search/mainresultstable.tsx +++ b/screen2.0/src/app/search/mainresultstable.tsx @@ -240,7 +240,7 @@ export function MainResultsTable(props: MainResultsTableProps) { return ( //If linked genes data hasn't been fetched, fetch - ) => { event.stopPropagation(); !row.linkedGenes && getLinkedGenes() }} key={row.accession}> + () => { event.stopPropagation(); !row.linkedGenes && getLinkedGenes() }} key={row.accession}> } @@ -312,8 +312,8 @@ export function MainResultsTable(props: MainResultsTableProps) { } - - ) + ) + ); } }) cols.push({ @@ -327,7 +327,7 @@ export function MainResultsTable(props: MainResultsTableProps) { return ( //Box's onClick prevents onRowClick from running when interacting with modal - ) => { event.stopPropagation() }}> + () => { event.stopPropagation() }}> @@ -342,8 +342,8 @@ export function MainResultsTable(props: MainResultsTableProps) { open={open} setOpen={setOpen} /> - - ) + ) + ); } }) props.assembly === "GRCh38" && cols.push({ diff --git a/screen2.0/src/common/lib/utility.tsx b/screen2.0/src/common/lib/utility.tsx index 3fcc3378..6fe9a4b1 100644 --- a/screen2.0/src/common/lib/utility.tsx +++ b/screen2.0/src/common/lib/utility.tsx @@ -1,6 +1,6 @@ import React from "react" import { Link, Alert, AlertTitle, CircularProgress, Typography, TypographyPropsVariantOverrides, Stack, TypographyOwnProps } from "@mui/material" -import Grid2 from "@mui/material/Unstable_Grid2/Grid2" +import Grid from "@mui/material/Grid2" import { Snackbar, Box } from "@mui/material" import { OverridableStringUnion } from '@mui/types'; import { Variant } from "@mui/material/styles/createTypography"; @@ -75,14 +75,14 @@ export const CreateLink: React.FC<{ linkPrefix: string, linkArg?: string, label: */ export function LoadingMessage() { return ( - + Loading... - + ) } @@ -96,7 +96,7 @@ export function ErrorMessage(props: { error: Error }) { // throw error return ( - + - + ) } diff --git a/screen2.0/yarn.lock b/screen2.0/yarn.lock index 5a5f0e7e..002e2f55 100644 --- a/screen2.0/yarn.lock +++ b/screen2.0/yarn.lock @@ -670,7 +670,7 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.10.4, @babel/runtime@npm:^7.10.5, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.23.9, @babel/runtime@npm:^7.25.6, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.7": +"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.10.4, @babel/runtime@npm:^7.10.5, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.23.9, @babel/runtime@npm:^7.24.4, @babel/runtime@npm:^7.25.6, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.7": version: 7.25.6 resolution: "@babel/runtime@npm:7.25.6" dependencies: @@ -1699,14 +1699,14 @@ __metadata: languageName: node linkType: hard -"@mui/base@npm:5.0.0-beta.40": - version: 5.0.0-beta.40 - resolution: "@mui/base@npm:5.0.0-beta.40" +"@mui/base@npm:5.0.0-beta.42": + version: 5.0.0-beta.42 + resolution: "@mui/base@npm:5.0.0-beta.42" dependencies: - "@babel/runtime": ^7.23.9 + "@babel/runtime": ^7.24.4 "@floating-ui/react-dom": ^2.0.8 "@mui/types": ^7.2.14 - "@mui/utils": ^5.15.14 + "@mui/utils": ^6.0.0-alpha.1 "@popperjs/core": ^2.11.8 clsx: ^2.1.0 prop-types: ^15.8.1 @@ -1717,7 +1717,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 9c084ee67de372411a71af5eca9a5367db9f5bce57bb43973629c522760fe64fa2a43d2934dccd24d6dcbcd0ed399c5fc5c461226c86104f5767de1c9b8deba2 + checksum: f7af6e6003a4a8502062607b7861490eb6dc3a1f617532c92521981329ae077535444d65e378718bbf59ce8b7a52fc32275dc794969c73bdb389e5d69155fc69 languageName: node linkType: hard @@ -1728,7 +1728,14 @@ __metadata: languageName: node linkType: hard -"@mui/icons-material@npm:^5.11.0, @mui/icons-material@npm:^5.16.7": +"@mui/core-downloads-tracker@npm:^6.1.1": + version: 6.1.1 + resolution: "@mui/core-downloads-tracker@npm:6.1.1" + checksum: 4752f8a17394f1ae458c95ca61acc7de17b7a0fd6826169cda222df9d064fd79045139ccc4d6858ad73ea15d28d31c63f13001f00eacc2ac5b8e50e7ecd1c0f1 + languageName: node + linkType: hard + +"@mui/icons-material@npm:^5.11.0": version: 5.16.7 resolution: "@mui/icons-material@npm:5.16.7" dependencies: @@ -1744,21 +1751,37 @@ __metadata: languageName: node linkType: hard -"@mui/lab@npm:^5.0.0-alpha.170": - version: 5.0.0-alpha.173 - resolution: "@mui/lab@npm:5.0.0-alpha.173" +"@mui/icons-material@npm:^6.1.1": + version: 6.1.1 + resolution: "@mui/icons-material@npm:6.1.1" dependencies: - "@babel/runtime": ^7.23.9 - "@mui/base": 5.0.0-beta.40 - "@mui/system": ^5.16.5 - "@mui/types": ^7.2.15 - "@mui/utils": ^5.16.5 + "@babel/runtime": ^7.25.6 + peerDependencies: + "@mui/material": ^6.1.1 + "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: d03a410f8a73be026c296dfa2eefef57c86534618005a3abcb051c9327d1ca91d7db3aa8ed0d9f7d06588c3a41bb0fa6ec928427ace03e943cd534af522ec18a + languageName: node + linkType: hard + +"@mui/lab@npm:^6.0.0-beta.10": + version: 6.0.0-dev.240424162023-9968b4889d + resolution: "@mui/lab@npm:6.0.0-dev.240424162023-9968b4889d" + dependencies: + "@babel/runtime": ^7.24.4 + "@mui/base": 5.0.0-beta.42 + "@mui/system": ^6.0.0-dev.240424162023-9968b4889d + "@mui/types": ^7.2.14 + "@mui/utils": ^6.0.0-alpha.3 clsx: ^2.1.0 prop-types: ^15.8.1 peerDependencies: "@emotion/react": ^11.5.0 "@emotion/styled": ^11.3.0 - "@mui/material": ">=5.15.0" + "@mui/material": ^6.0.0-dev.240424162023-9968b4889d "@types/react": ^17.0.0 || ^18.0.0 react: ^17.0.0 || ^18.0.0 react-dom: ^17.0.0 || ^18.0.0 @@ -1769,13 +1792,13 @@ __metadata: optional: true "@types/react": optional: true - checksum: 22eda1106db35ac2a249ee049b84cd4100f39181a0fa93d983a2c3d2bced390426deffb379cb5e234f330d76bc6f9e0344b698d7656b76119c1ca8cee7445a21 + checksum: 9eb3ff01720e8d4b0d921b50370de9177333c06d1082908bca3dcd5f3a7f0d1470d24d80a097d78618bed93ab3c00952d5329b9365ff8c0230f5282859bbe43b languageName: node linkType: hard -"@mui/material-nextjs@npm:^6.1.0": - version: 6.1.0 - resolution: "@mui/material-nextjs@npm:6.1.0" +"@mui/material-nextjs@npm:^6.1.1": + version: 6.1.1 + resolution: "@mui/material-nextjs@npm:6.1.1" dependencies: "@babel/runtime": ^7.25.6 peerDependencies: @@ -1792,11 +1815,11 @@ __metadata: optional: true "@types/react": optional: true - checksum: 63dcda9f4214c4be6e28530ed84b078da2e7eb22462a4765428c1d477ab96d13ee4bdb60ac3cce319782eb24843492e06fd7270553d33248c8e45a24515049f8 + checksum: ca6b091f4dff80389e0c6f13b26cd9631f69e4f8b8e26a8d6e12402decabafb1daaef213888af5a36fc74624cc3d95b2f5ebfa1b50c8350aed53fb03cdabed79 languageName: node linkType: hard -"@mui/material@npm:^5.11.7, @mui/material@npm:^5.16.7": +"@mui/material@npm:^5.11.7": version: 5.16.7 resolution: "@mui/material@npm:5.16.7" dependencies: @@ -1829,6 +1852,42 @@ __metadata: languageName: node linkType: hard +"@mui/material@npm:^6.1.1": + version: 6.1.1 + resolution: "@mui/material@npm:6.1.1" + dependencies: + "@babel/runtime": ^7.25.6 + "@mui/core-downloads-tracker": ^6.1.1 + "@mui/system": ^6.1.1 + "@mui/types": ^7.2.17 + "@mui/utils": ^6.1.1 + "@popperjs/core": ^2.11.8 + "@types/react-transition-group": ^4.4.11 + clsx: ^2.1.1 + csstype: ^3.1.3 + prop-types: ^15.8.1 + react-is: ^18.3.1 + react-transition-group: ^4.4.5 + peerDependencies: + "@emotion/react": ^11.5.0 + "@emotion/styled": ^11.3.0 + "@mui/material-pigment-css": ^6.1.1 + "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@emotion/react": + optional: true + "@emotion/styled": + optional: true + "@mui/material-pigment-css": + optional: true + "@types/react": + optional: true + checksum: 738e62450942f2c3a8eb7229b1554a6a15ac936284ff431bf7d56509522eb7be7b1d4e9b254869745b97e73fedaf8436ee6e8ce6642bffa7e059b89ac605fb55 + languageName: node + linkType: hard + "@mui/private-theming@npm:^5.16.6": version: 5.16.6 resolution: "@mui/private-theming@npm:5.16.6" @@ -1846,6 +1905,23 @@ __metadata: languageName: node linkType: hard +"@mui/private-theming@npm:^6.1.1": + version: 6.1.1 + resolution: "@mui/private-theming@npm:6.1.1" + dependencies: + "@babel/runtime": ^7.25.6 + "@mui/utils": ^6.1.1 + prop-types: ^15.8.1 + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 20943e600fb8a68b6240cf996d42af9d6fabb0a9be5c728765978fda78bfe6e94d75f4fa16130bdbcad7449cd572d0c4eb480de8749c5e009573e128737d90ea + languageName: node + linkType: hard + "@mui/styled-engine@npm:^5.16.6": version: 5.16.6 resolution: "@mui/styled-engine@npm:5.16.6" @@ -1867,7 +1943,29 @@ __metadata: languageName: node linkType: hard -"@mui/system@npm:^5.16.5, @mui/system@npm:^5.16.7": +"@mui/styled-engine@npm:^6.1.1": + version: 6.1.1 + resolution: "@mui/styled-engine@npm:6.1.1" + dependencies: + "@babel/runtime": ^7.25.6 + "@emotion/cache": ^11.13.1 + "@emotion/sheet": ^1.4.0 + csstype: ^3.1.3 + prop-types: ^15.8.1 + peerDependencies: + "@emotion/react": ^11.4.1 + "@emotion/styled": ^11.3.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@emotion/react": + optional: true + "@emotion/styled": + optional: true + checksum: 9ea4396ae71b92eef4db0f9099ec3be757bfa3c09c5cb8573140f473c5b5f9539f1f2f64cf458c0b39a9867096cfea780c07e67fc0b01c7854afb8230c660f0f + languageName: node + linkType: hard + +"@mui/system@npm:^5.16.7": version: 5.16.7 resolution: "@mui/system@npm:5.16.7" dependencies: @@ -1895,6 +1993,34 @@ __metadata: languageName: node linkType: hard +"@mui/system@npm:^6.0.0-dev.240424162023-9968b4889d, @mui/system@npm:^6.1.1": + version: 6.1.1 + resolution: "@mui/system@npm:6.1.1" + dependencies: + "@babel/runtime": ^7.25.6 + "@mui/private-theming": ^6.1.1 + "@mui/styled-engine": ^6.1.1 + "@mui/types": ^7.2.17 + "@mui/utils": ^6.1.1 + clsx: ^2.1.1 + csstype: ^3.1.3 + prop-types: ^15.8.1 + peerDependencies: + "@emotion/react": ^11.5.0 + "@emotion/styled": ^11.3.0 + "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@emotion/react": + optional: true + "@emotion/styled": + optional: true + "@types/react": + optional: true + checksum: 9d030b9646da961c45411ea4e59113bc41f080ca28a2fd08b8055398a2f5a6fa9a9ba538363384e1db1a7ce0bdadfa290acaf4ac5b4d04aa10bf99b343536276 + languageName: node + linkType: hard + "@mui/types@npm:^7.2.14, @mui/types@npm:^7.2.15": version: 7.2.16 resolution: "@mui/types@npm:7.2.16" @@ -1907,7 +2033,19 @@ __metadata: languageName: node linkType: hard -"@mui/utils@npm:^5.15.14, @mui/utils@npm:^5.16.5, @mui/utils@npm:^5.16.6": +"@mui/types@npm:^7.2.17": + version: 7.2.17 + resolution: "@mui/types@npm:7.2.17" + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 21b7f7639f05663f4ba9baa75f8a3f2fbb1e675e0fa4a4ef3b97acdcb81b6290c04b5515d2ae719e8ed2397bbe379f9fb665c74b209a2181fcccd2f83483dd85 + languageName: node + linkType: hard + +"@mui/utils@npm:^5.16.6": version: 5.16.6 resolution: "@mui/utils@npm:5.16.6" dependencies: @@ -1927,6 +2065,26 @@ __metadata: languageName: node linkType: hard +"@mui/utils@npm:^6.0.0-alpha.1, @mui/utils@npm:^6.0.0-alpha.3, @mui/utils@npm:^6.1.1": + version: 6.1.1 + resolution: "@mui/utils@npm:6.1.1" + dependencies: + "@babel/runtime": ^7.25.6 + "@mui/types": ^7.2.17 + "@types/prop-types": ^15.7.12 + clsx: ^2.1.1 + prop-types: ^15.8.1 + react-is: ^18.3.1 + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 1f8b9d8a71fdabfe7adaf18d2d24b480dce250ad4b9491cc51e1fa503804332fb733c212cfb8601bb4e193f91f635f5b06c378c17c5e91d602033ea319ca3e74 + languageName: node + linkType: hard + "@next/env@npm:14.2.13": version: 14.2.13 resolution: "@next/env@npm:14.2.13" @@ -2409,7 +2567,7 @@ __metadata: languageName: node linkType: hard -"@types/react-transition-group@npm:^4.4.10": +"@types/react-transition-group@npm:^4.4.10, @types/react-transition-group@npm:^4.4.11": version: 4.4.11 resolution: "@types/react-transition-group@npm:4.4.11" dependencies: @@ -3330,9 +3488,9 @@ __metadata: languageName: node linkType: hard -"@weng-lab/psychscreen-ui-components@npm:^1.0.4": - version: 1.0.4 - resolution: "@weng-lab/psychscreen-ui-components@npm:1.0.4" +"@weng-lab/psychscreen-ui-components@npm:^2.0.0": + version: 2.0.0 + resolution: "@weng-lab/psychscreen-ui-components@npm:2.0.0" dependencies: "@visx/tooltip": ^3.3.0 cytoscape: ^3.29.2 @@ -3342,8 +3500,13 @@ __metadata: tippy.js: ^6.3.7 use-react-screenshot: ^4.0.0 peerDependencies: - react: ">=16" - checksum: a96764630b4b13c914699493cad833e1ef13854b93aebc1557d9d7fb78615d5571bcd9a120d75a0ef606ed36dbd245eb1b7badd5b54f972e894419f1406a8be3 + "@emotion/react": ^11.13.3 + "@emotion/styled": ^11.13.0 + "@mui/icons-material": ^6.1.1 + "@mui/material": ^6.1.1 + react: ^18.2.0 + react-dom: ^18.2.0 + checksum: 354a95a94beb1795d30437df2efde9ff88717556c536c660f5d503f29cc5820cca8962cc696d41b581ac4b5550b46a2bd83d0b0c7815997e162990371c94e45b languageName: node linkType: hard @@ -10159,17 +10322,17 @@ __metadata: "@graphql-codegen/cli": ^5.0.2 "@graphql-codegen/client-preset": ^4.3.3 "@graphql-typed-document-node/core": ^3.2.0 - "@mui/icons-material": ^5.16.7 - "@mui/lab": ^5.0.0-alpha.170 - "@mui/material": ^5.16.7 - "@mui/material-nextjs": ^6.1.0 + "@mui/icons-material": ^6.1.1 + "@mui/lab": ^6.0.0-beta.10 + "@mui/material": ^6.1.1 + "@mui/material-nextjs": ^6.1.1 "@types/node": ^22.6.1 "@types/react": ^18.3.8 "@types/react-dom": 18.3.0 "@visx/event": ^3.3.0 "@visx/responsive": ^3.10.2 "@visx/visx": ^3.11.0 - "@weng-lab/psychscreen-ui-components": ^1.0.4 + "@weng-lab/psychscreen-ui-components": ^2.0.0 "@weng-lab/ts-ztable": ^4.0.1 autoprefixer: 10.4.20 bpnet-ui: ^0.3.8 From b66b3f04f3b0e7b21ed4f0ca85cd2e05dc2649e4 Mon Sep 17 00:00:00 2001 From: jpfisher72 Date: Tue, 24 Sep 2024 15:45:40 -0400 Subject: [PATCH 3/5] Cleanup apollo deprecations --- .../src/app/_biosampleTables/BiosampleTables.tsx | 2 +- screen2.0/src/app/search/_ccredetails/ccredetails.tsx | 2 +- .../src/app/search/_ccredetails/geneexpression.tsx | 2 +- .../app/search/_ccredetails/inspecificbiosample.tsx | 2 +- screen2.0/src/app/search/mainresultsfilters.tsx | 3 +-- screen2.0/src/common/lib/apolloprovider.tsx | 11 +++++------ screen2.0/src/common/lib/client.ts | 2 +- 7 files changed, 11 insertions(+), 13 deletions(-) diff --git a/screen2.0/src/app/_biosampleTables/BiosampleTables.tsx b/screen2.0/src/app/_biosampleTables/BiosampleTables.tsx index 7f4f84d7..af637ba0 100644 --- a/screen2.0/src/app/_biosampleTables/BiosampleTables.tsx +++ b/screen2.0/src/app/_biosampleTables/BiosampleTables.tsx @@ -5,7 +5,7 @@ import { CheckboxState, FiltersKey, Props, RegistryBiosample, RegistryBiosampleP import KeyboardArrowRightIcon from "@mui/icons-material/KeyboardArrowRight" import { Check, Close, FilterList } from "@mui/icons-material" import SearchIcon from '@mui/icons-material/Search'; -import { useQuery } from "@apollo/experimental-nextjs-app-support/ssr" +import { useQuery } from "@apollo/client" import { assayHoverInfo, DownloadBiosamplecCREsButton, filterBiosamples } from "./helpers" import { BIOSAMPLE_QUERY, RNA_SEQ_QUERY } from "./queries" diff --git a/screen2.0/src/app/search/_ccredetails/ccredetails.tsx b/screen2.0/src/app/search/_ccredetails/ccredetails.tsx index d96bda9e..8269dd94 100644 --- a/screen2.0/src/app/search/_ccredetails/ccredetails.tsx +++ b/screen2.0/src/app/search/_ccredetails/ccredetails.tsx @@ -14,7 +14,7 @@ import Rampage from "./rampage" import { GeneExpression } from "./geneexpression" import { TfSequenceFeatures } from "../_gbview/tfsequencefeatures" import ConfigureGBTab from "./configuregbtab" -import { useQuery } from "@apollo/experimental-nextjs-app-support/ssr" +import { useQuery } from "@apollo/client" import { NEARBY_AND_LINKED_GENES } from "./queries" import { calcDistToTSS } from "./utils" import { LoadingMessage } from "../../../common/lib/utility" diff --git a/screen2.0/src/app/search/_ccredetails/geneexpression.tsx b/screen2.0/src/app/search/_ccredetails/geneexpression.tsx index 30d8563d..0f7b3148 100644 --- a/screen2.0/src/app/search/_ccredetails/geneexpression.tsx +++ b/screen2.0/src/app/search/_ccredetails/geneexpression.tsx @@ -2,7 +2,7 @@ import React, { useMemo, useState } from "react" import { LoadingMessage } from "../../../common/lib/utility" import { PlotGeneExpression } from "../../applets/gene-expression/geneexpressionplot" -import { useQuery } from "@apollo/experimental-nextjs-app-support/ssr" +import { useQuery } from "@apollo/client" import { Button, Typography, Stack, MenuItem, FormControl, SelectChangeEvent, Checkbox, InputLabel, ListItemText, OutlinedInput, Select, ToggleButton, ToggleButtonGroup, FormLabel, Box } from "@mui/material" import Grid from "@mui/material/Grid2" import Image from "next/image" diff --git a/screen2.0/src/app/search/_ccredetails/inspecificbiosample.tsx b/screen2.0/src/app/search/_ccredetails/inspecificbiosample.tsx index 6d24d03a..7d0f9fa4 100644 --- a/screen2.0/src/app/search/_ccredetails/inspecificbiosample.tsx +++ b/screen2.0/src/app/search/_ccredetails/inspecificbiosample.tsx @@ -1,6 +1,6 @@ "use client" import React from "react" -import { useQuery } from "@apollo/experimental-nextjs-app-support/ssr" +import { useQuery } from "@apollo/client" import { TOP_TISSUES, GET_CCRE_CT_TF } from "./queries" import { DataTable } from "@weng-lab/psychscreen-ui-components" import { z_score, z_score_render, GROUP_COLOR_MAP } from "./utils" diff --git a/screen2.0/src/app/search/mainresultsfilters.tsx b/screen2.0/src/app/search/mainresultsfilters.tsx index 440d1248..c3abd39e 100644 --- a/screen2.0/src/app/search/mainresultsfilters.tsx +++ b/screen2.0/src/app/search/mainresultsfilters.tsx @@ -32,7 +32,7 @@ import { RangeSlider } from "@weng-lab/psychscreen-ui-components" import { FilterCriteria, MainQueryParams, RegistryBiosample } from "./types" import { eQTLsTissues, filtersModified } from "./searchhelpers" import { LazyQueryResultTuple, gql, useLazyQuery } from "@apollo/client" -import { useQuery } from "@apollo/experimental-nextjs-app-support/ssr" +import { useQuery } from "@apollo/client" import { CancelRounded, InfoOutlined } from "@mui/icons-material"; import ClearIcon from '@mui/icons-material/Clear'; import { GeneAutocomplete } from "./_geneAutocomplete/GeneAutocomplete"; @@ -169,7 +169,6 @@ export function MainResultsFilters( skip: !mainQueryParams.gene.name, fetchPolicy: "cache-and-network", nextFetchPolicy: "cache-first" - }) //Recalculate when geneTranscripts available, near diff --git a/screen2.0/src/common/lib/apolloprovider.tsx b/screen2.0/src/common/lib/apolloprovider.tsx index 59109732..3743f47b 100644 --- a/screen2.0/src/common/lib/apolloprovider.tsx +++ b/screen2.0/src/common/lib/apolloprovider.tsx @@ -4,10 +4,10 @@ import React from "react"; import { ApolloLink, HttpLink } from "@apollo/client"; import { ApolloNextAppProvider, - NextSSRInMemoryCache, - NextSSRApolloClient, + InMemoryCache, + ApolloClient, SSRMultipartLink, -} from "@apollo/experimental-nextjs-app-support/ssr"; +} from "@apollo/experimental-nextjs-app-support"; import config from "../../config.json" import { setVerbosity } from "ts-invariant"; @@ -27,9 +27,8 @@ function makeClient() { // const { data } = useSuspenseQuery(MY_QUERY, { context: { fetchOptions: { cache: "force-cache" }}}); }); - return new NextSSRApolloClient({ - // use the `NextSSRInMemoryCache`, not the normal `InMemoryCache` - cache: new NextSSRInMemoryCache(), + return new ApolloClient({ + cache: new InMemoryCache(), link: typeof window === "undefined" ? ApolloLink.from([ diff --git a/screen2.0/src/common/lib/client.ts b/screen2.0/src/common/lib/client.ts index a97aeed7..efaff58c 100644 --- a/screen2.0/src/common/lib/client.ts +++ b/screen2.0/src/common/lib/client.ts @@ -1,5 +1,5 @@ import { ApolloClient, HttpLink, InMemoryCache } from "@apollo/client" -import { registerApolloClient } from "@apollo/experimental-nextjs-app-support/rsc" +import { registerApolloClient } from "@apollo/experimental-nextjs-app-support" import Config from "../../config.json" /** * @returns an ApolloClient instance scoped for the current request From 81b0d6c2a1a7afac8ac48a987d88f1882e34f1a5 Mon Sep 17 00:00:00 2001 From: jpfisher72 Date: Wed, 25 Sep 2024 10:57:19 -0400 Subject: [PATCH 4/5] Cleanup --- .../src/app/applets/gene-expression/geneexpressionplot.tsx | 2 -- screen2.0/src/app/applets/gwas/page.tsx | 4 ++-- screen2.0/src/app/downloads/annotations.tsx | 4 ++-- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/screen2.0/src/app/applets/gene-expression/geneexpressionplot.tsx b/screen2.0/src/app/applets/gene-expression/geneexpressionplot.tsx index c73ea9fb..e585e465 100644 --- a/screen2.0/src/app/applets/gene-expression/geneexpressionplot.tsx +++ b/screen2.0/src/app/applets/gene-expression/geneexpressionplot.tsx @@ -2,9 +2,7 @@ import React from "react" import { useRouter } from "next/navigation" import { Stack } from "@mui/material" import { Range2D, Point2D, linearTransform2D } from "jubilant-carnival" -import Grid from "@mui/material/Grid2" import { tissueColors } from "../../../common/lib/colors" -import { stringToColour } from "../../search/_ccredetails/utils" type QuantificationData = { accession: string, diff --git a/screen2.0/src/app/applets/gwas/page.tsx b/screen2.0/src/app/applets/gwas/page.tsx index 90368fb4..77f952e2 100644 --- a/screen2.0/src/app/applets/gwas/page.tsx +++ b/screen2.0/src/app/applets/gwas/page.tsx @@ -497,7 +497,7 @@ export default function GWAS() { }, [plotData, study, suggestionsOpen]) return ( - (
    +
    -
    ) +
    ); } diff --git a/screen2.0/src/app/downloads/annotations.tsx b/screen2.0/src/app/downloads/annotations.tsx index 964109ab..48a48a70 100644 --- a/screen2.0/src/app/downloads/annotations.tsx +++ b/screen2.0/src/app/downloads/annotations.tsx @@ -82,7 +82,7 @@ export function Annotations() { } return ( - ( + @@ -172,7 +172,7 @@ export function Annotations() { )} - ) + ); } From e2ca6cbe59ef62dd7275b9f39910b355eb8dab52 Mon Sep 17 00:00:00 2001 From: jpfisher72 Date: Wed, 25 Sep 2024 12:38:56 -0400 Subject: [PATCH 5/5] More cleanup --- screen2.0/.vscode/settings.json | 4 ---- screen2.0/src/app/_mainsearch/genomicregion.tsx | 4 ++-- screen2.0/src/app/about/page.tsx | 4 ++-- screen2.0/src/app/downloads/datamatrices.tsx | 4 ++-- screen2.0/src/app/downloads/downloadrange.tsx | 4 ++-- screen2.0/src/app/downloads/page.tsx | 6 +++--- screen2.0/src/app/page.tsx | 4 ++-- screen2.0/src/app/search/_ccredetails/chromhmm.tsx | 5 +++-- screen2.0/src/app/search/_ccredetails/entexdata.tsx | 4 ++-- screen2.0/src/app/search/_ccredetails/geneexpression.tsx | 4 ++-- screen2.0/src/app/search/_ccredetails/linkedgenes.tsx | 4 ++-- screen2.0/src/app/search/mainresultsfilters.tsx | 4 ++-- 12 files changed, 24 insertions(+), 27 deletions(-) delete mode 100644 screen2.0/.vscode/settings.json diff --git a/screen2.0/.vscode/settings.json b/screen2.0/.vscode/settings.json deleted file mode 100644 index d0679104..00000000 --- a/screen2.0/.vscode/settings.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "typescript.tsdk": "node_modules/typescript/lib", - "typescript.enablePromptUseWorkspaceTsdk": true -} \ No newline at end of file diff --git a/screen2.0/src/app/_mainsearch/genomicregion.tsx b/screen2.0/src/app/_mainsearch/genomicregion.tsx index 3afea0e8..976253cf 100644 --- a/screen2.0/src/app/_mainsearch/genomicregion.tsx +++ b/screen2.0/src/app/_mainsearch/genomicregion.tsx @@ -193,7 +193,7 @@ const GenomicRegion = (props: { assembly: "mm10" | "GRCh38"; header?: boolean }) }, [value, inputType, props.assembly, chromosome, start, end]) return ( - ( + {!props.header && ( @@ -389,7 +389,7 @@ const GenomicRegion = (props: { assembly: "mm10" | "GRCh38"; header?: boolean }) - ) + ); } diff --git a/screen2.0/src/app/about/page.tsx b/screen2.0/src/app/about/page.tsx index cd33affc..3410b0b8 100644 --- a/screen2.0/src/app/about/page.tsx +++ b/screen2.0/src/app/about/page.tsx @@ -70,7 +70,7 @@ export default function About() { return ( - (
    +
    {/* Header */} @@ -295,6 +295,6 @@ export default function About() { -
    ) +
    ); } \ No newline at end of file diff --git a/screen2.0/src/app/downloads/datamatrices.tsx b/screen2.0/src/app/downloads/datamatrices.tsx index 793468c8..1b4260c3 100644 --- a/screen2.0/src/app/downloads/datamatrices.tsx +++ b/screen2.0/src/app/downloads/datamatrices.tsx @@ -319,7 +319,7 @@ export function DataMatrices() { ] return ( - (
    +
    @@ -526,6 +526,6 @@ export function DataMatrices() { /> -
    ) +
    ); } diff --git a/screen2.0/src/app/downloads/downloadrange.tsx b/screen2.0/src/app/downloads/downloadrange.tsx index 8d3a14b8..7671fb42 100644 --- a/screen2.0/src/app/downloads/downloadrange.tsx +++ b/screen2.0/src/app/downloads/downloadrange.tsx @@ -119,7 +119,7 @@ export const DownloadRange: React.FC = () => { } return ( - ( + { {bedLoadingPercent !== null && } - ) + ); } \ No newline at end of file diff --git a/screen2.0/src/app/downloads/page.tsx b/screen2.0/src/app/downloads/page.tsx index 5795b45b..5ac229da 100644 --- a/screen2.0/src/app/downloads/page.tsx +++ b/screen2.0/src/app/downloads/page.tsx @@ -1,7 +1,7 @@ "use client" import * as React from "react" -import { Tabs, Tab, Box, Container, Divider} from "@mui/material" +import { Tabs, Tab, Container, Divider} from "@mui/material" import Grid from "@mui/material/Grid2" import { Annotations } from "./annotations" import { DataMatrices } from "./datamatrices" @@ -23,7 +23,7 @@ export default function Downloads() { } return ( - ( + @@ -39,6 +39,6 @@ export default function Downloads() { {page === 2 && } - ) + ); } diff --git a/screen2.0/src/app/page.tsx b/screen2.0/src/app/page.tsx index e2d6b31f..7cd68496 100644 --- a/screen2.0/src/app/page.tsx +++ b/screen2.0/src/app/page.tsx @@ -11,7 +11,7 @@ import mouseTransparentIcon from "../../public/Transparent_MouseIcon.png" export default function Home() { return ( - (
    +
    SCREEN @@ -65,6 +65,6 @@ export default function Home() { {"SCREEN -
    ) +
    ); } diff --git a/screen2.0/src/app/search/_ccredetails/chromhmm.tsx b/screen2.0/src/app/search/_ccredetails/chromhmm.tsx index 44107fc2..bcad08fa 100644 --- a/screen2.0/src/app/search/_ccredetails/chromhmm.tsx +++ b/screen2.0/src/app/search/_ccredetails/chromhmm.tsx @@ -17,6 +17,7 @@ import { BigBedData } from "bigwig-reader" import { styled } from '@mui/material/styles'; import { DataTable } from "@weng-lab/psychscreen-ui-components" import config from "../../../config.json" + const StyledTab = styled(Tab)(() => ({ textTransform: "none", })) @@ -178,7 +179,7 @@ export const ChromHMM = (props: { coordinates , assembly, accession }) =>{ const l = useCallback((c) => ((c - coordinates.start) * 1400) / (coordinates.end - coordinates.start), [coordinates]) return ( - ( + @@ -296,6 +297,6 @@ export const ChromHMM = (props: { coordinates , assembly, accession }) =>{ itemsPerPage={10} /> } - ) + ); } \ No newline at end of file diff --git a/screen2.0/src/app/search/_ccredetails/entexdata.tsx b/screen2.0/src/app/search/_ccredetails/entexdata.tsx index 880f02a2..b71ca51d 100644 --- a/screen2.0/src/app/search/_ccredetails/entexdata.tsx +++ b/screen2.0/src/app/search/_ccredetails/entexdata.tsx @@ -48,7 +48,7 @@ export const ENTExData = (props: { accession, coordinates }) =>{ }) return ( - ( + {loading && } {data && !loading && data.entexQuery.length>0 && { } - ) + ); } \ No newline at end of file diff --git a/screen2.0/src/app/search/_ccredetails/geneexpression.tsx b/screen2.0/src/app/search/_ccredetails/geneexpression.tsx index 0f7b3148..b892e22f 100644 --- a/screen2.0/src/app/search/_ccredetails/geneexpression.tsx +++ b/screen2.0/src/app/search/_ccredetails/geneexpression.tsx @@ -179,7 +179,7 @@ export function GeneExpression(props: { }; return ( - ( + - ) + ); } diff --git a/screen2.0/src/app/search/_ccredetails/linkedgenes.tsx b/screen2.0/src/app/search/_ccredetails/linkedgenes.tsx index 73dbf367..e52b200b 100644 --- a/screen2.0/src/app/search/_ccredetails/linkedgenes.tsx +++ b/screen2.0/src/app/search/_ccredetails/linkedgenes.tsx @@ -84,7 +84,7 @@ export const LinkedGenes: React.FC = (props) => { } return ( - ( + {HiCLinked.length > 0 ? = (props) => { } - ) + ); } diff --git a/screen2.0/src/app/search/mainresultsfilters.tsx b/screen2.0/src/app/search/mainresultsfilters.tsx index c3abd39e..9c75f3a2 100644 --- a/screen2.0/src/app/search/mainresultsfilters.tsx +++ b/screen2.0/src/app/search/mainresultsfilters.tsx @@ -384,7 +384,7 @@ export function MainResultsFilters( return ( - ( + {/* cCREs within distance from SNP */} {mainQueryParams.snp.rsID && <> @@ -1170,6 +1170,6 @@ export function MainResultsFilters( } } - ) + ); }