美文网首页
test9: 词条 依据第一列,合并多个文件,并统计数量

test9: 词条 依据第一列,合并多个文件,并统计数量

作者: 夕颜00 | 来源:发表于2020-06-30 14:37 被阅读0次

IPA_entry_Intersection的使用说明
脚本:Intersection_py3.py
需要用py3

一、准备文件:

1、从IPA上下载的词条文件

apoptosis_of_tumor_cells.txt
cell_cycle_progression.txt
metastasis_of_tumor_cells.txt
proliferation_of_tumor_cells.txt

2、下机蛋白文件

附件1_蛋白质鉴定列表.xlsx

根据附件1中的蛋白列表,匹配词条中的蛋白;

二、运行脚本

python Intersection_py3.py

#! /usr/bin/env python
# _*_ coding: utf-8 _*_
# make Intersection.xlsx file for IPA entry
## eg:python3 Intersection_193.py
## __email__ = "cn"

import os
import pandas as pd
import numpy as np
import sys

if __name__ == "__main__":
    if len(sys.argv) != 1:
        print("usage: python3 xx.py")
        sys.exit()

    output = "{0}/Intersection.xlsx".format(os.getcwd())

    pro = pd.read_excel(u"附件1_蛋白质鉴定列表.xlsx")
    pro_gene = pro.iloc[:, 0:2]
    # print(pro_gene)

    for i in os.listdir():
        if os.path.splitext(i)[1] == ".txt":
            entry = os.path.splitext(i)[0]
            entry_file = pd.read_table(entry + ".txt", skiprows=2)
            entry_symbol = entry_file.loc[:, ["Symbol"]]
            entry_symbol["Symbol"] = entry_symbol["Symbol"].str.upper()
            pro_gene = pd.merge(pro_gene, entry_symbol, how="left", left_on="Gene Name", right_on="Symbol")
            pro_gene = pro_gene.rename(columns={"Symbol": entry.replace("_", " ")})
            pro_gene.drop_duplicates(subset=None, keep='first', inplace=True)

    pro_gene_entry = pro_gene.iloc[:, 2:]
    pro_gene["Count"] = pd.notna(pro_gene_entry).sum(axis=1)
    pro_gene_entry.replace(np.nan, "", inplace=True)
    pro_gene_entry[pro_gene_entry != ""] = "Y"

    pro_gene_out = pd.concat([pro_gene.iloc[:, [0, 1]], pro_gene_entry, pro_gene.loc[:, ["Count"]]], axis=1)
    pro_gene_out.to_excel(output, sheet_name="intersection", index=False)

三、输出文件

Intersection.xlsx

image.png

相关文章

网友评论

      本文标题:test9: 词条 依据第一列,合并多个文件,并统计数量

      本文链接:https://www.haomeiwen.com/subject/vakxqktx.html