当前位置: 首页 > news >正文

成功在 Conda Python 2.7 环境中安装 Clipper(eCLIP peak caller)


🔬 成功在 Conda Python 2.7 环境中安装 Clipper(eCLIP peak caller)

本文记录了如何在无 root 权限下使用 Conda 环境,解决依赖、构建扩展模块并成功安装运行 clipper 的详细流程。适用于再现 eCLIP 分析流程时遇到 clipper 安装失败的情况。


🧱 环境准备

✅ 创建 Python 2.7 环境

conda create -n clipper_py27 python=2.7
conda activate clipper_py27

📦 安装依赖

✅ 安装 GCC 编译器(适用于无 root 的 Conda 环境)

conda install -c conda-forge gcc_linux-64=7 gxx_linux-64=7

✅ 安装编译依赖

conda install cython numpy pysam pybedtools

有些模块的最新版本不支持 Python 2.7,请手动指定版本:

conda install "numpy<=1.16" "pysam<=0.15.3" "pybedtools<=0.8.1" -c bioconda -c conda-forge

⏬ 下载 clipper 源码并切换到历史兼容版本

git clone https://github.com/YeoLab/clipper.git
cd clipper
git checkout 5d865bb17b2bc6787b4c382bc857119ae917ad59

这个版本兼容 Python 2.7,且没有使用过高版本的 scikit-learn, matplotlib, scipy 等依赖。


⚒️ 编译 Cython 和 C++ 模块

Clipper 依赖两个扩展模块:readsToWigglepeaks,需要先构建:

python setup.py build_ext --inplace

如果遇到 crypt.h: No such file or directory 错误,需安装 libxcrypt-dev(若无 sudo 权限,可联系管理员,或在支持的 HPC 环境中使用系统模块加载)。


🛠 安装 clipper 到 Conda 环境中(避免 egg)

为避免 .egg 导入失败,使用标准方式安装:
其中setup中一些依赖包的版本应该如下:

##setup.py
install_requires = ['setuptools', 'pysam >= 0.15.3','numpy <= 1.16.6 ','scipy<=1.2.1','matplotlib<=2.2.5','pybedtools <= 0.7.10','scikit-learn <=0.20.4','HTSeq<=0.6.1'],
python setup.py install --single-version-externally-managed --record record.txt

🧩 修复扩展模块无法找到的问题

有时安装完成后运行 clipper 仍报错:

ImportError: No module named peaks

虽然 clipper/src/peaks.so 已编译成功,但 Python 可能无法找到它。解决方法如下:

✅ 手动创建模块路径并复制 .so 文件:

mkdir -p $CONDA_PREFIX/lib/python2.7/site-packages/clipper/src/
cp ./clipper/src/peaks.so $CONDA_PREFIX/lib/python2.7/site-packages/clipper/src/

确认成功导入:

python -c "import clipper.src.peaks; print(clipper.src.peaks)"

✅ 最终测试 clipper 是否可用

clipper --help

成功输出帮助信息:

usage: clipper [-h] [-b BAM_FILE] [-s STRANDEDNESS] ...

🎉 至此,Clipper 已成功在 Python 2.7 Conda 环境中安装并可正常运行!


💡 小贴士

  • 避免使用 setup.py install 安装为 .egg 格式,否则 Python 2.7 下容易出现 ImportError
  • 若你在服务器中没有 root 权限,建议提前准备 GCC 环境(如 gcc_linux-64),并避免使用 pip 安装依赖。
  • 建议将 clipper 安装在 ~/eCLIP/bin/clipper 目录中并作为模块管理。
http://www.xdnf.cn/news/977725.html

相关文章:

  • Linux 系统可视化管理工具
  • python学习打卡day50
  • JPA将大数据量的Excel文件导入到数据库中
  • 拼音字母a和g的写法
  • AI Agent 核心策略解析:Function Calling 与 ReAct 的设计哲学与应用实践
  • React 第五十九节 Router中 createBrowserRouter使用详解与案例分析
  • Etcd数据持久化机制:WAL与Snapshot解析
  • python数据结构和算法(5)
  • zset类型
  • Bright Data网页抓取工具实战:BOSS直聘爬虫 + PandasAI分析洞察前端岗位市场趋势
  • 深度学习小项目合集之图像分割识别-视频介绍下自取
  • ThreadLocal实现原理
  • SpringBoot前后台交互 -- 登录功能实现(拦截器+异常捕获器)
  • 音频导入规范
  • 大模型实战篇之ChatGPT(国内可以用)一、实现连续对话智能体
  • 【Linux shell】条件判断和流程控制
  • DL00124-基于YOLOv12深度学习的棉花叶片病害检测含完整数据集
  • BERT 模型微调与传统机器学习的对比
  • uniapp音乐播放createInnerAudioContext
  • 零基础实战:云开发家政维修小程序搭建指南
  • UniApp组件封装,2025年最新HarmonyOS鸿蒙模块化开发项目式教程
  • vue3 + element plus 实现表格列头、行的添加及拖动换位
  • vue前端面试题——记录一次面试当中遇到的题(1)
  • element-ui 的el-table,多选翻页后,之前选择的数据丢失问题处理
  • 黑马教程强化day2-1
  • JAVA毕业设计227—基于SpringBoot+hadoop+spark+Vue的大数据房屋维修系统(源代码+数据库)
  • Linux 文件内容的查询与统计
  • xilinx的gt的ALIGN_COMMA_WORD设置的作用
  • UE5 学习系列(五)导入贴图资产
  • 纯血Harmony NETX 5小游戏实践:2048(附源文件)