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
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
Metadata Files
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:
- the VICC Gene Normalization database, accessible from a DynamoDB-compliant service. Set the endpoint address with environment variable
GENE_NORM_DB_URL; default value ishttp://localhost:8000. - the Biocommons SeqRepo database, used by
Cool-Seq-Tool. The precise file location is configurable via theSEQREPO_ROOT_DIRvariable, per the documentation. - the Biocommons Universal Transcript Archive, by way of Genomic Med Lab's Cool Seq Tool package. Connection parameters to the Postgres database are set most easily as a Libpq-compliant URL under the environment variable
UTA_DB_URL.
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:
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, andsymbols. Each should be named according to the patterngene_<type>_<YYYYMMDD>.tsv. These can be regenerated with the shell commandcurfu_devtools genes.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 commandcurfu_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
- Website: http://cancervariants.org
- Repositories: 14
- Profile: https://github.com/cancervariants
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
Pull Request Labels
Dependencies
- 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
- @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
- 1473 dependencies