拯救单细胞代谢研究!从部署到修复:scFEA 的终极使用攻略

项目地址 changwn/scFEA:单细胞通量估计分析 (scFEA) 尝试下面的 Web 服务器! --- changwn/scFEA: single cell Flux Estimation Analysis (scFEA) Try the below web server! [changwn/scFEA:单细胞通量估计分析 (scFEA) 尝试下面的 Web 服务器! --- changwn/scFEA: single cell Flux Estimation Analysis (scFEA) Try the below web server!](https://github.com/changwn/scFEA)

Download scFEA: 下载 scFEA:

shell 复制代码
git clone https://github.com/changwn/scFEA

Install requirements: 安装要求:

shell 复制代码
cd scFEA
conda install --file requirements
conda install pytorch torchvision -c pytorch
pip install --user magic-impute

装完之后发现可以调出帮助 但是执行python src/scFEA.py就报错了

shell 复制代码
python src/scFEA.py --help
usage: scFEA.py [-h] [--data_dir <data_directory>]
                [--input_dir <input_directory>] [--res_dir <data_directory>]
                [--test_file TEST_FILE] [--moduleGene_file MODULEGENE_FILE]
                [--stoichiometry_matrix STOICHIOMETRY_MATRIX]
                [--sc_imputation {True,False}]

scFEA: A graph neural network model to estimate cell-wise metabolic flux using
single cell RNA-seq data

optional arguments:
  -h, --help            show this help message and exit
  --data_dir <data_directory>
                        The data directory for scFEA model files.
  --input_dir <input_directory>
                        The data directory for single cell input data.
  --res_dir <data_directory>
                        The data directory for result [output]. The output of scFEA includes two matrices, predicted metabolic flux and metabolites
                        stress at single cell resolution.
  --test_file TEST_FILE
                        The test SC file [input]. The input of scFEA is a single cell profile matrix, where row is gene and column is cell. Example
                        datasets are provided in /data/ folder. The input can be raw counts or normalised counts. The logarithm would be performed
                        if value larger than 30.
  --moduleGene_file MODULEGENE_FILE
                        The table contains genes for each module. We provide human and mouse two models in scFEA. For human model, please use
                        module_gene_m168.csv which is default. All candidate moduleGene files are provided in /data/ folder.
  --stoichiometry_matrix STOICHIOMETRY_MATRIX
                        The table describes relationship between compounds and modules. Each row is an intermediate metabolite and each column is
                        metabolic module. For human model, please use cmMat_171.csv which is default. All candidate stoichiometry matrices are
                        provided in /data/ folder.
  --cName_file CNAME_FILE
                        The name of compounds. The table contains two rows. First row is compounds name and second row is corresponding id.
  --sc_imputation {True,False}
                        Whether perform imputation for SC dataset (recommend set to <True> for 10x data).

报错

shell 复制代码
(scFEA) :~/Downloads/scFEA$ python src/scFEA.py
Starting load data...
Load compound name file, the balance output will have compound name.
Load data done.
Starting process data...
Traceback (most recent call last):
  File "/Downloads/scFEA/src/scFEA.py", line 370, in <module>
    main(args)
  File "/Downloads/scFEA/src/scFEA.py", line 172, in main
    geneExprDf = geneExprDf.append(temp, ignore_index = True, sort=False)
  File "/.local/lib/python3.10/site-packages/pandas/core/generic.py", line 5989, in __getattr__
    return object.__getattribute__(self, name)
AttributeError: 'DataFrame' object has no attribute 'append'. Did you mean: '_append'?

最坑的来了 作者从没回复过issue, 根据报错提示 ai会提示让降级numpy和pandas 然并卵 降级后就只剩重装了

正确的步骤就是下面这个安装顺序 scFEA需要改函数调用

r 复制代码
mamba install --file requirements  
mamba install pytorch torchvision -c pytorch  
mamba install pytorch torchvision torchaudio cpuonly -c pytorch  # 单cpu 无GPU
mamba install bioconda::magic-impute  

在 Pandas 的最新版本中,DataFrame.append 方法已被废弃,并被 _append 方法取代。因此,代码中使用 .append 方法的部分需要调整以兼容较新的 Pandas 版本。

解决方法:

  1. 替换 append 方法 : 使用 pandas.concat 替代 DataFrame.append,因为这是推荐的标准方法。

    修改以下代码:

    ini 复制代码
    geneExprDf = geneExprDf.append(temp, ignore_index = True, sort=False)

    为:

    ini 复制代码
    geneExprDf = pd.concat([geneExprDf, temp], ignore_index=True)

    注意concat 不支持 sort 参数,所以如果需要排序,可能需要额外处理。

最终 再次运行 完美解决

bash 复制代码
(scFEA) :~/Downloads/scFEA$ python src/scFEA.py
Starting load data...
Load compound name file, the balance output will have compound name.
Load data done.
Starting process data...
Process data done.
Starting train neural network...
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 100/100 [00:54<00:00,  1.83it/s]
Training time:  54.65031886100769
scFEA job finished. Check result in the desired output folder.
相关推荐
Xi_er_5 小时前
密钥管理系统在数据安全解决方案中的重要性
运维·数据仓库·物联网·web安全·前端框架·智慧城市·安全架构
练小杰5 小时前
我在广州学 Mysql 系列——有关数据表的插入、更新与删除相关练习
android·运维·数据库·经验分享·学习·mysql·adb
hqxnb6667 小时前
深入理解 Linux 管道:创建与应用详解(匿名管道&&进程池)
linux·运维·服务器
vvw&7 小时前
如何在 Ubuntu 24.04 上安装 Drupal CMS 11 并配置 Nginx, MariaDB 和 SSL 教程
linux·运维·服务器·nginx·ubuntu·ssl·mariadb
未完成的歌~8 小时前
Kali 离线安装 ipmitool 笔记
linux·运维·笔记
会飞的土拨鼠呀8 小时前
docker system df命令
运维·docker·容器
vvw&8 小时前
在 Ubuntu 22.04 上部署 AppArmor 应用安全教程
linux·运维·服务器·nginx·安全·ubuntu·node.js
qq13267029408 小时前
GitLab创建用户,设置访问SSH Key
linux·运维·服务器·gitlab·gitlab创建用户·设置ssh key
xxxx12344510 小时前
Linux-Ubuntu之RGBLCD显示屏
linux·运维·c语言·ubuntu
dessler10 小时前
Docker-原理之cgroup
linux·运维·docker