Metadata-Version: 2.4
Name: omics-kit
Version: 0.1.0
Summary: Command line helpers for omics data analysis, exposed as omics-kit sub-commands
Author-email: Lei Zheng <type.zheng@gmail.com>
License: Apache-2.0
Project-URL: Homepage, https://github.com/typekey/omics-kit
Project-URL: Repository, https://github.com/typekey/omics-kit
Project-URL: Issues, https://github.com/typekey/omics-kit/issues
Keywords: bioinformatics,omics,RNA,secondary structure,VARNA,RNAcentral
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: termcolor>=1.1
Dynamic: license-file

# omics-kit

[![PyPI](https://img.shields.io/pypi/v/omics-kit.svg)](https://pypi.org/project/omics-kit/)
[![Python](https://img.shields.io/pypi/pyversions/omics-kit.svg)](https://pypi.org/project/omics-kit/)
[![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](https://github.com/typekey/omics-kit/blob/main/LICENSE)

组学数据分析的命令行小工具集，每个工具都是 `omics-kit` 的一个子命令。

```bash
pip install omics-kit
omics-kit                       # 列出所有子命令
omics-kit rna-structure -h      # 单个子命令的参数
```

## 子命令

| 子命令 | 说明 | 文档 |
| --- | --- | --- |
| `rna-structure` | 用 VARNA 画 RNA 二级结构，支持 motif 高亮、RNAcentral/R2DT 直连、RNAfold 折叠 | [docs/rna-structure.md](https://github.com/typekey/omics-kit/blob/main/docs/rna-structure.md) |
| `rnacentral-fetch` | 从 RNAcentral 取序列 + R2DT 二级结构，写成 dbn | [docs/rna-structure.md](https://github.com/typekey/omics-kit/blob/main/docs/rna-structure.md) |

## 上手

```bash
# 从 RNAcentral 编号直接出图，并高亮三个 motif
omics-kit rna-structure -r URS00000DE3E2/9606 -o SNORA73A.svg \
    -m "7BM:18-31:#E8DAA6:#93C795" \
    -m "MBM:117-126:#EFB9C6:#93C795" \
    -m "Ψ pocket:143-152,186-192:fill=#AED6EA,outline=#93C795,type=L"

# 复现 Cell 2025 Figure 4A（motif 表已随包分发）
omics-kit rnacentral-fetch -r URS00000DE3E2/9606 -n SNORA73A -o SNORA73A.dbn
omics-kit rna-structure -i SNORA73A.dbn -M SNORA73A_figure4A -o figure4A.png \
    --title "SNORA73A structure" --title-size 14 --resolution 4
```

![SNORA73A](https://raw.githubusercontent.com/typekey/omics-kit/main/docs/images/SNORA73A_figure4A.png)

## 依赖

Python 侧只依赖 `termcolor`，其余按需：

| 工具 | 外部依赖 | 说明 |
| --- | --- | --- |
| `rna-structure` | Java 1.6+ | 运行 VARNA；jar 首次使用时自动下载到 `~/.cache/omics-kit/varna`（可用 `$VARNA_JAR` 或 `--jar` 指定） |
| `rna-structure --fold` | ViennaRNA | 只有需要现场折叠时才用到 `RNAfold` |

## 开发

```bash
git clone https://github.com/typekey/omics-kit.git
cd omics-kit
pip install -e .

python3 -m unittest discover -s tests -v            # 全部用例（联网 + 渲染）
OMICS_SKIP_NETWORK=1 python3 -m unittest discover -s tests   # 离线用例
python3 -m build                                    # 构建 wheel/sdist 到 dist/
```

### 新增一个子命令

1. 在 `src/omics_kit/<tool>/` 下写模块，暴露 `get_parser()` 和 `main(argv)`；
2. 在 `src/omics_kit/cli.py` 的 `COMMANDS` 里加一行（模块路径 + 一句话描述）。

模块是懒加载的，重依赖的工具不会拖慢其它子命令。

### 发布

打 tag 推上去即可，GitHub Action 会构建并通过 PyPI Trusted Publishing 发布：

```bash
git tag v0.1.0 && git push origin v0.1.0
```

## 引用

- VARNA：Darty K, Denise A, Ponty Y. *VARNA: Interactive drawing and editing of the RNA secondary structure.* Bioinformatics 2009, 25(15):1974-1975.
- R2DT / RNAcentral：Sweeney BA, et al. *R2DT is a framework for predicting and visualising RNA secondary structure using templates.* Nat Commun 2021, 12:3494.

## License

Apache-2.0
