├── bot ├── helper │ ├── __init__.py │ ├── cli │ │ ├── __init__.py │ │ ├── create_release.py │ │ ├── update_background.py │ │ ├── clean.py │ │ ├── ingest_paper_info.py │ │ ├── ingest.py │ │ └── ingest_gene_info.py │ ├── __main__.py │ ├── plpy.py │ └── utils.py ├── deps.txt ├── requirements.txt ├── Dockerfile ├── README.md └── bot.sh ├── enrich ├── .gitignore ├── .dockerignore ├── Rocket.toml ├── Dockerfile ├── Cargo.toml └── src │ ├── fastfisher.rs │ ├── bitvec.rs │ └── async_rwlockhashmap.rs ├── db ├── requirements.txt ├── deps.txt ├── docker-entrypoint-initdb.d │ └── search-paths.sh ├── migrations │ ├── 20230925165804_orderby_created.sql │ ├── 20240105152755_gene_set_desc.sql │ ├── 20240116174826_gene_set_hash_required.sql │ ├── 20240105161415_gene_set_dedupe.sql │ ├── 20231212201532_gene_info.sql │ ├── 20240312145213_gene_map_v2.sql │ ├── 20241030152737_user_gene_set_count.sql │ ├── 20230830165721_view_geneset_genes.sql │ ├── 20230920201419_oldest_background.sql │ ├── 20240102204243_gene_set_ordering.sql │ ├── 20230828144957_pmc_info.sql │ ├── 20241203171342_empty_gene_ids.sql │ ├── 20230830210011_term_search_count.sql │ ├── 20231212222546_gene_mapping.sql │ ├── 20230920195024_tracking.sql │ ├── 20230925141013_nogenes_mapped.sql │ ├── 20230918153613_api_enrich.sql │ ├── 20230830171356_geneset_len_pmc_to_terms.sql │ ├── 20230925181844_enrich_filter.sql │ └── 20240108174441_dedupe_enrich.sql └── Dockerfile ├── .eslintrc.json ├── public ├── googlefd59d862ecdd9c24.html └── images │ ├── loading.gif │ ├── cc-by-nc-sa.png │ ├── ismms_white.png │ ├── maayanlab_white.png │ └── rummagene_logo.png ├── src ├── app │ ├── globals.css │ ├── favicon.ico │ ├── page.tsx │ ├── @jsonld │ │ ├── default.tsx │ │ └── page.tsx │ ├── download │ │ ├── page.tsx │ │ └── client.tsx │ ├── gene_set │ │ └── [id] │ │ │ ├── item.ts │ │ │ ├── submit │ │ │ ├── g2sg │ │ │ │ └── route.ts │ │ │ ├── enrichr │ │ │ │ └── route.ts │ │ │ ├── enrichr-kg │ │ │ │ └── route.ts │ │ │ ├── pwb │ │ │ │ └── route.ts │ │ │ ├── rummagene │ │ │ │ └── route.ts │ │ │ ├── rummageo │ │ │ │ └── route.ts │ │ │ └── gse │ │ │ │ └── route.ts │ │ │ └── page.tsx │ ├── enrich │ │ ├── page.tsx │ │ └── download │ │ │ └── route.ts │ ├── pubmed-search │ │ ├── page.tsx │ │ └── client.tsx │ ├── term-search │ │ ├── page.tsx │ │ └── client.tsx │ ├── runtimeConfig.tsx │ ├── homeLayout.tsx │ ├── analytics.jsx │ ├── inputForm.tsx │ ├── layout.tsx │ ├── about │ │ └── page.tsx │ └── example.json ├── cli │ ├── graphql.ts │ └── version-compose.ts ├── utils │ ├── clientDownloadBlob.ts │ ├── blobTsv.ts │ ├── streamTsv.ts │ ├── useQsState.ts │ └── array.ts ├── pages │ └── api │ │ ├── config.ts │ │ ├── download.gmt.ts │ │ └── [...path].ts ├── lib │ ├── apollo │ │ ├── client.ts │ │ └── provider.tsx │ └── postgraphile.ts ├── components │ ├── loading.tsx │ ├── linkedTerm.tsx │ ├── pmcSearchData.tsx │ ├── header.tsx │ ├── nav.tsx │ ├── pagination.tsx │ ├── stats.tsx │ ├── enrichrButton.tsx │ ├── footer.tsx │ ├── termTable.tsx │ ├── pmcTable.tsx │ └── geneSetModal.tsx └── graphql │ └── core.graphql ├── requirements.txt ├── figures ├── .gitignore ├── requirements.txt ├── README.md ├── clean_gmt.py ├── assemble_enrichr_gmt.py ├── download_enrichr_db.py ├── collect_citations.py ├── compute_umap.py ├── gene_lookup.py ├── compute_joint_umap.py ├── similarity_matrices.py ├── fig5.py ├── fig6.py ├── create_tf_kinase_gsl.py ├── Makefile └── fig2e-h.py ├── postcss.config.js ├── Dockerfile ├── graphql.config.yml ├── .dockerignore ├── tailwind.config.js ├── next.config.js ├── .gitignore ├── .env.example ├── tsconfig.json ├── README.md ├── package.json └── docker-compose.yaml /bot/helper/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /enrich/.gitignore: -------------------------------------------------------------------------------- 1 | target -------------------------------------------------------------------------------- /db/requirements.txt: -------------------------------------------------------------------------------- 1 | requests -------------------------------------------------------------------------------- /enrich/.dockerignore: -------------------------------------------------------------------------------- 1 | target -------------------------------------------------------------------------------- /bot/deps.txt: -------------------------------------------------------------------------------- 1 | default-jre 2 | libreoffice-common -------------------------------------------------------------------------------- /enrich/Rocket.toml: -------------------------------------------------------------------------------- 1 | [default] 2 | address = "0.0.0.0" -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /bot/helper/cli/__init__.py: -------------------------------------------------------------------------------- 1 | import click 2 | @click.group() 3 | def cli(): pass -------------------------------------------------------------------------------- /public/googlefd59d862ecdd9c24.html: -------------------------------------------------------------------------------- 1 | google-site-verification: googlefd59d862ecdd9c24.html -------------------------------------------------------------------------------- /src/app/globals.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | click 2 | psycopg2-binary 3 | python-dotenv 4 | tqdm 5 | pandas 6 | requests -------------------------------------------------------------------------------- /src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaayanLab/rummagene/HEAD/src/app/favicon.ico -------------------------------------------------------------------------------- /db/deps.txt: -------------------------------------------------------------------------------- 1 | curl 2 | postgresql-plpython3-15 3 | postgresql-server-dev-15 4 | python3 5 | python3-pip -------------------------------------------------------------------------------- /figures/.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__ 2 | .venv 3 | data 4 | figures 5 | Mammalia/Homo_sapiens.gene_info.tsv -------------------------------------------------------------------------------- /public/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaayanLab/rummagene/HEAD/public/images/loading.gif -------------------------------------------------------------------------------- /public/images/cc-by-nc-sa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaayanLab/rummagene/HEAD/public/images/cc-by-nc-sa.png -------------------------------------------------------------------------------- /public/images/ismms_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaayanLab/rummagene/HEAD/public/images/ismms_white.png -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /public/images/maayanlab_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaayanLab/rummagene/HEAD/public/images/maayanlab_white.png -------------------------------------------------------------------------------- /public/images/rummagene_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaayanLab/rummagene/HEAD/public/images/rummagene_logo.png -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:22.10 2 | WORKDIR /app 3 | ADD package.json . 4 | ADD package-lock.json . 5 | RUN npm i 6 | ADD . . 7 | RUN npm run build && rm .env 8 | CMD ["npm", "start"] -------------------------------------------------------------------------------- /db/docker-entrypoint-initdb.d/search-paths.sh: -------------------------------------------------------------------------------- 1 | #/bin/sh 2 | 3 | cat >> /var/lib/postgresql/data/postgresql.conf << EOF 4 | search_path = '"$user", public, app_public_v2, app_private_v2' 5 | EOF 6 | -------------------------------------------------------------------------------- /db/migrations/20230925165804_orderby_created.sql: -------------------------------------------------------------------------------- 1 | -- migrate:up 2 | create index release_created_idx on app_public_v2.release (created); 3 | 4 | -- migrate:down 5 | drop index release_created_idx; 6 | -------------------------------------------------------------------------------- /db/migrations/20240105152755_gene_set_desc.sql: -------------------------------------------------------------------------------- 1 | -- migrate:up 2 | alter table app_public_v2.gene_set add column description varchar; 3 | 4 | -- migrate:down 5 | alter table app_public_v2.gene_set drop column description; 6 | -------------------------------------------------------------------------------- /db/migrations/20240116174826_gene_set_hash_required.sql: -------------------------------------------------------------------------------- 1 | -- migrate:up 2 | alter table app_public_v2.gene_set alter column hash set not null; 3 | 4 | -- migrate:down 5 | alter table app_public_v2.gene_set alter column hash drop not null; 6 | -------------------------------------------------------------------------------- /src/cli/graphql.ts: -------------------------------------------------------------------------------- 1 | import http from "http" 2 | import postgraphile from "@/lib/postgraphile" 3 | 4 | http 5 | .createServer(postgraphile) 6 | .listen(3000, '0.0.0.0', () => { 7 | console.log('listening on http://0.0.0.0:3000') 8 | }) 9 | -------------------------------------------------------------------------------- /db/migrations/20240105161415_gene_set_dedupe.sql: -------------------------------------------------------------------------------- 1 | -- migrate:up 2 | alter table app_public_v2.gene_set add column hash uuid; 3 | create index on app_public_v2.gene_set (hash); 4 | 5 | -- migrate:down 6 | alter table app_public_v2.gene_set drop column hash; 7 | -------------------------------------------------------------------------------- /graphql.config.yml: -------------------------------------------------------------------------------- 1 | schema: 2 | - http://localhost:3000/graphql 3 | documents: 4 | - ./src/graphql/**/*.graphql 5 | generates: 6 | ./src/graphql/index.ts: 7 | plugins: 8 | - typescript 9 | - typescript-operations 10 | - typescript-react-apollo -------------------------------------------------------------------------------- /src/app/page.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import InputForm from "./inputForm"; 3 | import HomeLayout from "./homeLayout"; 4 | 5 | export default function Home() { 6 | return ( 7 | 8 | 9 | 10 | ) 11 | } 12 | -------------------------------------------------------------------------------- /enrich/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM rust as builder 2 | WORKDIR /usr/src/enrich 3 | COPY . . 4 | RUN cargo install --path . 5 | 6 | FROM debian:bookworm-slim 7 | COPY --from=builder /usr/src/enrich/Rocket.toml . 8 | COPY --from=builder /usr/local/cargo/bin/enrich /usr/local/bin/enrich 9 | CMD ["enrich"] -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | __pycache__ 2 | .DS_Store 3 | .env*.local 4 | .git 5 | .pnp.js 6 | .venv 7 | .vercel 8 | *.pem 9 | *.tsbuildinfo 10 | /.next/ 11 | /.pnp 12 | /build 13 | /coverage 14 | /enrich 15 | /figures 16 | /node_modules 17 | /out/ 18 | data 19 | next-env.d.ts 20 | npm-debug.log* 21 | yarn-debug.log* 22 | yarn-error.log* -------------------------------------------------------------------------------- /src/app/@jsonld/default.tsx: -------------------------------------------------------------------------------- 1 | export default function JSONLD() { 2 | return