Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Build Python Package

on:
workflow_call: # Allows this workflow to be called by others

permissions:
contents: read

jobs:
build_package:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v5
with:
python-version: "3.11"

- name: Install build tools
run: |
python -m pip install --upgrade pip
python -m pip install build twine

- name: Build sdist and wheel
run: python -m build

- name: Validate metadata
run: python -m twine check dist/*

- name: Save build artifacts
uses: actions/upload-artifact@v4
with:
name: python-package-distributions
path: dist/
retention-days: 1
15 changes: 15 additions & 0 deletions .github/workflows/test-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: Test Python Package Build

on:
push:
branches: [ main, dev ]
pull_request:
branches: [ main, dev ]
workflow_dispatch: # Manual test button

permissions:
contents: read

jobs:
run-build:
uses: ./.github/workflows/build.yml
55 changes: 24 additions & 31 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,48 +1,41 @@
# Rawk: Metabolic reaction network local enrichment analysis
# Rawk

Rawk is a python package to identify and visualize locally enriched metabolic pathways in metabolic reaction networks.
A python package for metabolic pathway local enrichment analysis via random
walks on metabolic reaction network.

## Install

**Note** that Rawk currently can only be installed from local source files.
**Note** that Rawk currently can only be installed from the source files in
this repository.

Following is an example procedure for installing Rawk on a Linux computer using command line tools:
Rawk will be available on PyPI soon.

```bash
# Download rawk-0.0.5.tar.gz

tar -xvf rawk-0.0.5.tar.gz

cd rawk-0.0.5

pip install .
```

## Tutorials

The tutorials of Rawk are the python scripts in the `docs/tutorials` folder contained in `rawk-0.0.5.tar.gz`. The `docs/tutorials` folder contains the following tutorials:

- `construct_recon3d_met_net.py`: Construct a metabolic reaction network from a genome scale metabolic model.
- `example_mouse_data_analysis.py`: Run Rawk standard analysis workflow on an example mouse dataset.
- `example_human_data_analysis.py`: Run Rawk standard analysis workflow on an example human dataset.

Following is an example procedure for running the tutorials on a Linux computer using command line tools:
## Documentation

```bash
python construct_recon3d_met_net.py
### Tutorials

python example_mouse_data_analysis.py
The tutorials of Rawk are in the `docs/tutorials` folder,
which contains the following tutorials:

python example_human_data_analysis.py
```
- `construct_recon3d_mrn.md`: Construct a metabolic reaction network from a
genome scale metabolic model.
- `example_mouse_data_analysis.md`: Run Rawk standard analysis workflow on an
example mouse dataset.
- `example_human_data_analysis.md`: Run Rawk standard analysis workflow on an
example human dataset.

## Documentation
### API reference

Rawk package documentation can be accessed using `help` in python interpreter. For example, `help(rawk.Rawk)` shows the documentation of the `Rawk` class.
The API reference files of Rawk are in
`docs/api_reference`. The API reference files were
generated from the package docstrings. The docstrings can also be accessed
using `help` in python interpreter. For example, `help(rawk.Rawk)` shows the
documentation of the `Rawk` class.

## Troubleshooting

If you encounter any error related to `tkinter` multi-threading, try rerunning with `workers=1` or removing `tkinter` from the environment.
If you encounter any error related to `tkinter` multi-threading, try rerunning
with parameters set to use only one CPU core.

## Notice about license

Expand Down
Loading
Loading