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
65 changes: 65 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# Contributing

We welcome contributions to **grassp**! This guide will help you get started with contributing to the project.

## Getting Started

1. **Fork** the repository on GitHub.
2. **Clone** your fork locally:

```bash
git clone https://github.com/yourusername/grassp.git
cd grassp
```

3. **Create a development environment:**

This installs the package with the `-e` option and development and documentation dependencies as well as pre-commit hooks.

```bash
make setup-develop
```

## Testing

1. Tests can be added to [grassp/tests](grassp/tests)
2. Run the tests:

```bash
pytest grassp/tests
```

## Code Style

- Follow [PEP 8](https://peps.python.org/pep-0008/) style guidelines.
- Use type hints where appropriate.
- Add docstrings to all public functions.
- Use [NumPy-style docstrings](https://numpydoc.readthedocs.io/en/latest/format.html).

## Documentation

- Update docstrings for any changed functions.
- Update tutorials if adding new features.
- Build docs locally to check formatting:

```bash
cd docs
# Optional (if running into errors): make clean
make html
```

## Adding New public functions

When adding support for new functionality:

1. Add the code for the function in the most appropriate submodule
1. `preprocessing` is for data filtering, enrichment, qc
2. `tools` is for dimensionality reduction, classification, differential testing
3. `plotting` is for visualization
4. `io` is for reading from diffferent sources and writing outputs
2. Make sure you follow the recommended [code style](#code-style) and describe the function and parameters accurately with a docstring
3. Expose the function as public by importing it in the `__init__.py` file of the submodule
4. Add the function to the documentation by adding it to the [api documentation](docs/source/api).
5. [Build the documentation](#documentation) to check proper formatting.
6. Add tests and [run them](#testing)
7. Create a PR against `main`
51 changes: 47 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,51 @@
# grassp
A python package for "GRaph-based Analysis of Subcellular/Spatial Proteomics"
[![PyPI - Version](https://img.shields.io/pypi/v/grassp)](https://img.shields.io/pypi/v/grassp)
[![CI](https://github.com/czbiohub-sf/grassp/actions/workflows/test.yml/badge.svg)](https://github.com/czbiohub-sf/grassp/actions/workflows/test.yml)
[![docs online](https://img.shields.io/badge/docs-online-blue)](https://onsite.czbiohub.org/compbio/grassp/)

## Installation

[anndata]: https://anndata.readthedocs.io
[scanpy]: https://scanpy.readthedocs.io
[protdata]: https://protdata.sf.czbiohub.org
[documentation]: https://onsite.czbiohub.org/compbio/grassp/


<p align="center">
<img src="https://raw.githubusercontent.com/czbiohub-sf/grassp/refs/heads/main/docs/source/_static/img/logo.svg" alt="grassp logo" width="300"/>
</p>

The **grassp** (**GR**aph-based **A**nalysis of **S**ubcellular/**S**patial **P**roteomics) python module enables fast, flexible and scalable analysis of subcellular proteomics datasets.

It uses the [anndata][] format to store mass-spec data and analysis results and [scanpy][] for many of the dimensionality reduction and visualization functions.

**grassp** enables

- Reading the ouput format of most mass-spectrometry search engines (using [protdata][])
- Calculating subcellular enrichment profiles of proteins for different experimental protocols
- Annotating the subcellular location of proteins in an unsupervised and semi-supervised manner
- Detecting proteins at the interface of organelles
- Detecting multi-localizing proteins (work in progress)
- Detecting re-localizing proteins between conditions (work in progress)
- Combining multiple subcellular proteomics datasets
- Assessing subcellular resolution
- Finding the optimal experimental design for future experiments based on simulations
- Integration of multiple modalities (e.g. Lipidomics) (work in progress)

Please refer to the [documentation] for reference to individual functions and [tutorials](https://onsite.czbiohub.org/compbio/grassp/tutorials/index.html).

## Installation

grassp can be installed via [pip](https://pypi.org/project/pip/) from [PyPI](https://pypi.org/project/grassp/) with:
```
pip install grassp
```
## [Documentation](https://public.czbiohub.org/comp.bio/grassp/)
For details on installation, please see the [install section of the documentation](https://onsite.czbiohub.org/compbio/grassp/installation.html)

## Contributing

If you'd like to contribute to **grassp** please feel free to look at our [contribution guide](https://onsite.czbiohub.org/compbio/grassp/contributing.html) and open a [Pull request](https://github.com/czbiohub-sf/grassp/pulls).

## Authors

**grassp** is created and maintained by the [Computational Biology Platform](https://www.czbiohub.org/comp-biology/) at the [Chan Zuckerberg Biohub San Francisco](https://www.czbiohub.org/sf/). For details, see the [Contributors page](https://onsite.czbiohub.org/compbio/grassp/contributors.html).

To get in touch please use the [GihHub issues](https://github.com/czbiohub-sf/grassp/issues) page.
230 changes: 230 additions & 0 deletions docs/source/_static/img/logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading