Skip to content

Commit

Permalink
Merge branch 'master' into dependabot/npm_and_yarn/web/packages/api/c…
Browse files Browse the repository at this point in the history
…acheable-request-and-nodemon--removed
  • Loading branch information
yunchae-kim authored Aug 14, 2023
2 parents d56c0b0 + a150dfb commit 3091570
Show file tree
Hide file tree
Showing 32 changed files with 28,233 additions and 1,238 deletions.
13 changes: 13 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
root = true

[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = false

# Python files
[*.{py, pyi, pyc, pyd, pyo, pyw, pyz}]
indent_size = 4
66 changes: 66 additions & 0 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
{
"extends": [
"airbnb",
"airbnb/hooks",
"plugin:prettier/recommended",
"plugin:react/recommended",
"plugin:react-hooks/recommended",
"plugin:jsx-a11y/recommended",
"plugin:import/recommended"
// "plugin:node/recommended"
],
"plugins": ["prettier", "react", "import"],
"parserOptions": {
"ecmaFeatures": {
"jsx": true
}
},
"rules": {
"prettier/prettier": ["error"],

"react-hooks/exhaustive-deps": "warn",
"react-hooks/rules-of-hooks": "error",
"react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }],
"react/jsx-indent-props": [2, 4],
"react/jsx-indent": [2, 4],
"react/jsx-one-expression-per-line": [0],
"react/prefer-stateless-function": [1],
"react/static-property-placement": [1, "property assignment"],
"react/no-multi-comp": ["error", { "ignoreStateless": true }],

"semi": 2,
"comma-dangle": "error",
"no-underscore-dangle": "error",
"space-before-blocks": "error",
"keyword-spacing": "error",
"spaced-comment": "error",
"quotes": ["error", "single"],
"prefer-template": "warn",
"template-curly-spacing": ["error", "never"],
"jsx-quotes": ["warn", "prefer-double"],
"camelcase": ["error", { "properties": "always" }],
"no-unused-vars": ["warn"],

"import/prefer-default-export": ["warn", { "target": "any" }],
"import/no-duplicates": ["error", { "considerQueryString": true }],
"import/order": [
"error",
{
"groups": ["builtin", "external", "internal"],
"pathGroups": [
{
"pattern": "react",
"group": "external",
"position": "before"
}
],
"pathGroupsExcludedImportTypes": ["react"],
"newlines-between": "always",
"alphabetize": {
"order": "asc",
"caseInsensitive": true
}
}
]
}
}
7 changes: 7 additions & 0 deletions .github/workflow-templates/romano-lab-ci.properties.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"name": "Romano Lab Workflow",
"description": "Romano Lab CI starter workflow.",
"iconName": "example-icon",
"categories": ["continuous-integration"],
"filePatterns": ["package.json$", "^Dockerfile", ".*\\.md$"]
}
17 changes: 17 additions & 0 deletions .github/workflow-templates/romano-lab-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: Romano Lab CI

on:
push:
branches: [$default-branch]
pull_request:
branches: [$default-branch]

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

- name: Run a one-line script
run: echo Hello from Romano Lab
21 changes: 21 additions & 0 deletions .github/workflows/doc-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: Documentation build

on:
- push
- workflow_dispatch
- pull_request

jobs:
build-docs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.8', '3.9', '3.10']

steps:
- uses: actions/checkout@v3
- name: Build document
uses: andreasofthings/doc-build@v13
with:
docs: 'docs'
dest: 'build'
26 changes: 26 additions & 0 deletions .github/workflows/python-package.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Python package

on:
- push
- workflow_dispatch

jobs:
build-package:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.8', '3.9', '3.10']

steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip setuptools wheel
python -m pip install .
- name: Test with pytest
# output test results in JUnit, code coverage in Cobertura
run: pytest --doctest-modules --junitxml=junit/test-results.xml --cov=com --cov-report=xml --cov-report=html
17 changes: 17 additions & 0 deletions .github/workflows/react-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: React build

on:
- push
- workflow_dispatch
- pull_request

jobs:
build-docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build React App
working-directory: ./web/packages/app
run: |
npm install
npm run build
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -102,4 +102,6 @@ CONFIG.yaml
catalog-*.xml
comptox_*.rdf

scripts/pfhxs
scripts/pfhxs
node_modules
build
8 changes: 8 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"printWidth": 100,
"semi": true,
"singleQuote": true,
"tabWidth": 2,
"trailingComma": "all",
"jsxSingleQuote": false
}
18 changes: 18 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
// See https://go.microsoft.com/fwlink/?LinkId=827846 to learn about workspace recommendations.
// Extension identifier format: ${publisher}.${name}. Example: vscode.csharp

// List of extensions which should be recommended for users of this workspace.
"recommendations": [
"ms-python.python",
"ms-python.vscode-pylance",
"ms-python.autopep8",
"ms-python.flake8",
"ms-python.isort",
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"njpwerner.autodocstring"
],
// List of extensions recommended by VS Code that should not be recommended for users of this workspace.
"unwantedRecommendations": []
}
40 changes: 33 additions & 7 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,34 @@
{
"emmet.includeLanguages": {
"javascript": "javascriptreact"
},
"python.pythonPath": "C:\\Users\\jdr2160\\Miniconda3\\envs\\comptox_ai\\python.exe",
"restructuredtext.confPath": "${workspaceFolder}\\docs\\source",
"restructuredtext.languageServer.disabled": true
}
"emmet.includeLanguages": {
"javascript": "javascriptreact"
},
"python.pythonPath": "C:\\Users\\jdr2160\\Miniconda3\\envs\\comptox_ai\\python.exe",
"restructuredtext.confPath": "${workspaceFolder}\\docs\\source",
"restructuredtext.languageServer.disabled": true,

// Javascript: Prettier
"[javascript]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
// Typescript formatter: Prettier
"[typescript]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
},

// Python Docstring formatter: AutoDocstring NumPy
"autoDocstring.docstringFormat": "numpy",

// Python formatter: PEP8
"[python]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "ms-python.autopep8"
},
"python.formatting.provider": "none",

// Python testing: PyTest
"python.testing.pytestArgs": ["tests"],
"python.testing.unittestEnabled": false,
"python.testing.pytestEnabled": true
}
50 changes: 43 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,64 @@
# `ComptoxAI`

[![DOI](https://zenodo.org/badge/202416245.svg)](https://zenodo.org/badge/latestdoi/202416245)
![Build](https://github.com/jdromano2/comptox_ai/actions/workflows/main.yml/badge.svg)

![comptox_ai](https://github.com/jdromano2/comptox_ai/actions/workflows/python-package.yml/badge.svg) ![web app](https://github.com/jdromano2/comptox_ai/actions/workflows/react-build.yml/badge.svg) ![docs](https://github.com/jdromano2/comptox_ai/actions/workflows/doc-build.yml/badge.svg)

[Website](https://comptox.ai/)

A modern data infrastructure for AI research in computational toxicology.

- - -
---

ComptoxAI is a collection of resources made to enable a diverse range of artificial intelligence applications for computational toxicology data. This repository contains all of the code that comprises the overall ComptoxAI project, including code related to the database, website, REST API, graph machine learning toolkit, and other miscellaneous utilities.

ComptoxAI is maintained by [Joseph D. Romano, PhD](http://jdr.bio), who is a postdoctoral researcher at the [University of Pennsylvania](https://upenn.edu) in the [Institute for Biomedical Informatics](https://ibi.med.upenn.edu/) and the [Center of Excellence in Environmental Toxicology](http://ceet.upenn.edu/).
ComptoxAI is maintained by [the Romano Lab](http://romanolab.org) at the [University of Pennsylvania](https://upenn.edu) in the [Institute for Biomedical Informatics](https://ibi.med.upenn.edu/) and the [Center of Excellence in Environmental Toxicology](http://ceet.upenn.edu/).

### Installing

How you install ComptoxAI depends on whether you want to _analyze the knowledge graph_ or if you want to _build the knowledge graph from scratch_:

**I want to analyze ComptoxAI's knowledge graph**:

This should be relatively simple. You might need to install a different version of Python (we currently perform testing on v3.8), but otherwise the following should suffice:

```bash
$ git clone https://github.com/RomanoLab/comptox_ai
$ cd comptox_ai
$ pip install .
```

**I want to build a copy of the knowledge graph myself**:

This is a bit more complex. The short version of what to do goes as follows:

1. Install `conda` or `mamba`
2. Clone this repository and install the `conda` environment specified in `environment.yml`, e.g.:

```bash
$ git clone https://github.com/RomanoLab/comptox_ai
$ cd comptox_ai
$ mamba env create -n comptox_ai --file environment.yml -c conda-forge
$ mamba activate comptox_ai
```

3. Download all of the necessary data/knowledge sources
4. Run `ista` to build the knowledge graph from the sources
5. Install the knowledge graph into Neo4j
6. Check to make sure everything works as intended

We'll create more detailed instructions at some point in the near future. In the meantime, you can file an Issue or contact us by email with any questions or bugs.

### Funding

- `K99-LM013646` (PI: Joseph D. Romano)
- `P30-ES013508` (PI: Trevor M. Penning)
- `R01-AG066833` (PIs: Jason H. Moore, Marylyn D. Ritchie, Li Shen)
- `K99-LM013646` (PI: Joseph D. Romano)
- `P30-ES013508` (PI: Trevor M. Penning)
- `R01-AG066833` (PIs: Jason H. Moore, Marylyn D. Ritchie, Li Shen)

### Contributions

We welcome collaborations and contributions from third-party developers. Please refer to [CONTRIBUTING.md](CONTRIBUTING.md) for further information.

### License

ComptoxAI is offered under a dual-license model, including an open-source option via the GNU GPLv3. See [LICENSE](LICENSE) for details.
ComptoxAI is offered under a dual-license model, including an open-source option via the GNU GPLv3. See [LICENSE](LICENSE) for details.
Loading

0 comments on commit 3091570

Please sign in to comment.