https://github.com/cancervariants/fusion-curation

https://github.com/cancervariants/fusion-curation

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.3%) to scientific vocabulary
Last synced: 9 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: cancervariants
  • License: mit
  • Language: TypeScript
  • Default Branch: main
  • Size: 5.39 MB
Statistics
  • Stars: 2
  • Watchers: 4
  • Forks: 0
  • Open Issues: 51
  • Releases: 2
Created almost 5 years ago · Last pushed almost 2 years ago
Metadata Files
Readme License

README.md

CurFu: Curating fusions with the VICC Gene Fusion Guidelines

CurFu is an interactive curation tool for describing and representing gene fusions in a computable manner. It's developed to support the VICC Fusion Guidelines project.

Development

Installation

Clone the repo:

commandline git clone https://github.com/cancervariants/fusion-curation cd fusion-curation

Ensure that the following data sources are available:

Create a virtual environment for the server and install. Note: there's also a Pipfile so you can skip the virtualenv steps if you'd rather use a Pipenv instance instead of virtualenv/venv. I have been sticking with the latter because Pipenv doesn't play well with entry points in development, but if you aren't editing them in setup.cfg, then the former should be fine.

commandline cd server # regardless of your environment decision, build it in server/ virtualenv venv source venv/bin/activate python3 -m pip install -e ".[dev,tests]" # make sure to include the extra dependencies!

Acquire two sets of static assets and place all of them within the server/src/curfu/data directory:

  1. Gene autocomplete files, providing legal gene search terms to the client autocomplete component. One file each is used for entity types aliases, assoc_with, xrefs, prev_symbols, labels, and symbols. Each should be named according to the pattern gene_<type>_<YYYYMMDD>.tsv. These can be regenerated with the shell command curfu_devtools genes.

  2. Domain lookup file, for use in providing possible functional domains for user-selected genes in the client. This should be named according to the pattern domain_lookup_YYYYMMDD.tsv. These can be regenerated with the shell command curfu_devtools domains, although this is an extremely time- and storage-intensive process.

Your data/directory should look something like this:

server/src/curfu/data ├── domain_lookup_2022-01-20.tsv ├── gene_aliases_suggest_20211025.tsv ├── gene_assoc_with_suggest_20211025.tsv ├── gene_labels_suggest_20211025.tsv ├── gene_prev_symbols_suggest_20211025.tsv ├── gene_symbols_suggest_20211025.tsv └── gene_xrefs_suggest_20211025.tsv

Finally, start backend service with curfu, by default on port 5000. To use a different port, pass the number to the -p option:

commandline curfu -p 5000

In another shell, navigate to the repo client/ directory and install frontend dependencies:

commandline cd client yarn install

If you get the following error:

error api@3.4.2: The engine "node" is incompatible with this module. Expected version "^12 || ^14 || ^16". Got "18.0.0" error Found incompatible module. info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

You can run:

commandline yarn install --ignore-engines

Then start the development server:

commandline yarn start

Shared type definitions

The frontend utilizes Typescript definitions generated from the backend pydantic schema. These can be refreshed, from the server environment, with the command curfu_devtools client-types. This will only work if json2ts has been installed in the client's node_modules binary directory.

Style

Python code style is enforced by flake8 and Black, and frontend style is enforced by ESLint and Prettier. Conformance is ensured by pre-commit. Before your first commit, run

commandline pre-commit install

This will require installation of dev dependencies on the server side.

In practice, Prettier and Black will do most of the formatting work for you to be in accordance with ESLint and flake8. In the backend, run python3 -m black path/to/file, and in the frontend, run yarn run prettier --write path/to/file to autoformat a file.

Tests

Backend tests require installation of tests dependencies. Run with pytest.

Generating requirements

requirements.txt is used for Elastic Beanstalk to install the dependencies. Anytime you update package requirements, be sure to update requirements.txt. To generate run the below command from server directory (ensure you have started the venv):

commandline pip freeze --exclude-editable > ../requirements.txt

Owner

  • Name: VICC
  • Login: cancervariants
  • Kind: organization

The Variant Interpretation for Cancer Consortium

GitHub Events

Total
  • Issues event: 25
  • Delete event: 1
  • Issue comment event: 47
  • Pull request event: 2
  • Create event: 1
Last Year
  • Issues event: 25
  • Delete event: 1
  • Issue comment event: 47
  • Pull request event: 2
  • Create event: 1

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 63
  • Total pull requests: 47
  • Average time to close issues: 7 months
  • Average time to close pull requests: 7 days
  • Total issue authors: 4
  • Total pull request authors: 4
  • Average comments per issue: 1.06
  • Average comments per pull request: 0.23
  • Merged pull requests: 38
  • Bot issues: 0
  • Bot pull requests: 1
Past Year
  • Issues: 7
  • Pull requests: 1
  • Average time to close issues: 6 months
  • Average time to close pull requests: about 2 months
  • Issue authors: 2
  • Pull request authors: 1
  • Average comments per issue: 1.43
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • jsstevenson (39)
  • katiestahl (31)
  • korikuzma (6)
  • jarbesfeld (3)
  • ahwagner (3)
Pull Request Authors
  • jsstevenson (38)
  • katiestahl (24)
  • korikuzma (10)
  • dependabot[bot] (2)
  • jarbesfeld (1)
Top Labels
Issue Labels
ux (25) bug (21) enhancement (21) priority:medium (16) priority:low (15) priority:high (14) technical debt (11) requirement (8) closed-by-stale (5) stale (5) chore (4) good first issue (4) documentation (4) test (3) cleanup (3) help wanted (1) ci/cd (1) keep-alive (1) duplicate (1) Epic (1) build (1) stale-exempt (1)
Pull Request Labels
priority:low (13) priority:medium (10) priority:high (9) ci/cd (5) bug (4) dependencies (2) chore (2) help wanted (2) enhancement (2) build (1)

Dependencies

requirements.txt pypi
  • appdirs ==1.4.4
  • appnope ==0.1.2
  • argcomplete ==1.12.3
  • argh ==0.26.2
  • asgiref ==3.4.1
  • attrs ==21.2.0
  • backcall ==0.2.0
  • beautifulsoup4 ==4.10.0
  • biocommons.seqrepo ==0.6.4
  • bioutils ==0.5.5
  • boto3 ==1.18.43
  • botocore ==1.21.43
  • bs4 ==0.0.1
  • canonicaljson ==1.4.0
  • certifi ==2021.5.30
  • charset-normalizer ==2.0.5
  • click ==8.0.1
  • coloredlogs ==15.0.1
  • configparser ==5.0.2
  • cssselect ==1.1.0
  • decorator ==5.1.0
  • fake-useragent ==0.1.11
  • fastapi ==0.68.1
  • flask ==2.0.1
  • frozendict ==2.0.6
  • fusor ==0.0.7
  • ga4gh.vrs ==0.7.0rc3
  • ga4gh.vrsatile.pydantic ==0.0.3
  • gene-normalizer ==0.1.20
  • gffutils ==0.10.1
  • h11 ==0.12.0
  • hgvs ==1.5.1
  • humanfriendly ==9.2
  • idna ==3.2
  • importlib-metadata ==4.8.1
  • inflection ==0.5.1
  • ipython ==7.27.0
  • itsdangerous ==2.0.1
  • jedi ==0.18.0
  • jinja2 ==3.0.1
  • jmespath ==0.10.0
  • jsonschema ==3.2.0
  • lxml ==4.6.3
  • markdown ==3.3.4
  • markupsafe ==2.0.1
  • matplotlib-inline ==0.1.3
  • numpy ==1.21.2
  • parse ==1.19.0
  • parsley ==1.3
  • parso ==0.8.2
  • pexpect ==4.8.0
  • pickleshare ==0.7.5
  • prompt-toolkit ==3.0.20
  • psycopg2-binary ==2.9.1
  • ptyprocess ==0.7.0
  • pydantic ==1.8.2
  • pyee ==8.2.2
  • pyfaidx ==0.6.2
  • pygments ==2.10.0
  • pyppeteer ==0.2.6
  • pyquery ==1.4.3
  • pyrsistent ==0.18.0
  • pysam ==0.16.0.1
  • python-dateutil ==2.8.2
  • python-jsonschema-objects ==0.3.10
  • pyyaml ==5.4.1
  • requests ==2.26.0
  • requests-html ==0.10.0
  • s3transfer ==0.5.0
  • simplejson ==3.17.5
  • six ==1.16.0
  • soupsieve ==2.2.1
  • sqlparse ==0.4.2
  • starlette ==0.14.2
  • tabulate ==0.8.9
  • tqdm ==4.62.2
  • traitlets ==5.1.0
  • typing-extensions ==3.10.0.2
  • urllib3 ==1.26.6
  • uvicorn ==0.15.0
  • w3lib ==1.22.0
  • wcwidth ==0.2.5
  • websockets ==9.1
  • werkzeug ==2.0.1
  • yoyo-migrations ==7.3.2
  • zipp ==3.5.0
client/package.json npm
  • @types/react-beautiful-dnd ^13.1.2 development
  • @types/react-dnd ^3.0.2 development
  • @types/uuid ^8.3.1 development
  • json2ts ^0.0.7 development
  • prettier ^2.7.1 development
  • react-dom ^17.0.2 development
  • react-router ^5.2.0 development
  • @emotion/react ^11.10.4
  • @emotion/styled ^11.10.4
  • @material-ui/core ^4.12.3
  • @material-ui/icons ^4.11.3
  • @material-ui/lab ^4.0.0-alpha.60
  • @mui/icons-material ^5.10.9
  • @mui/lab ^5.0.0-alpha.49
  • @mui/material ^5.10.9
  • @testing-library/jest-dom ^5.11.4
  • @testing-library/react ^11.1.0
  • @testing-library/user-event ^12.1.10
  • @types/jest ^26.0.15
  • @types/node ^12.0.0
  • @types/react ^17.0.0
  • @types/react-dom ^17.0.0
  • @types/styled-components ^5.1.14
  • api ^3.4.0
  • clipboard-copy ^4.0.1
  • cors ^2.8.5
  • express-generator ^4.16.1
  • json-schema-to-typescript ^10.1.5
  • react ^17.0.2
  • react-beautiful-dnd ^13.1.0
  • react-dnd ^14.0.3
  • react-material-ui-carousel ^3.4.2
  • react-scripts 5.0.0
  • sass ^1.38.2
  • styled-components ^5.3.1
  • ts-loader ^9.2.5
  • typescript ^4.4.3
  • uuid ^8.3.2
  • web-vitals ^1.0.1
client/yarn.lock npm
  • 1473 dependencies
server/setup.py pypi