两个python程序搞定NCBI数据搜索并将结果保存到excel里面

最近有一大堆质谱数据,但好多蛋白都是已经研究过得,为了寻找和bait蛋白相关,但又特异的假定蛋白,决定写个Python程序过滤掉不需要的信息,保留想要的信息。

方案:

1,找出所有质谱数据中特异蛋白中的假定蛋白并按得分高低排序。

2,根据蛋白序列号找出假定蛋白可能含有的结构域,写入excel文件。

3,说干就干

第一步主要用集合的性质去重,用re正则表达式找出序列号,用openpyxl写入excel,根据得分排序。

#质谱蛋白去重
import re
import openpyxl

reg = re.compile(r‘MGG_\d{5}‘)
def read_csv(name):
    with open(name,‘r‘) as f:
        csv_data = f.read()
        csv_num = re.findall(reg, csv_data)
        return set(csv_num)

def write_excel(file,filename):
    wb = openpyxl.Workbook()
    ws = wb.active
    ws[‘A1‘],ws[‘B1‘],ws[‘C1‘],ws[‘D1‘],ws[‘E1‘]  = ‘序列号‘,‘蛋白信息‘,‘得分‘,‘覆盖度‘,‘分子量‘
    ws.freeze_panes = ‘A2‘
    for num in unique:
        for line in open(file):
            #print(line+‘****‘)
            if num  in line and ‘hypothetical protein‘ in line:
                ws.append((line.split(‘,‘)[1:]))
    wb.save(filename)

if __name__ == ‘__main__‘:

    ATG3 = read_csv(r‘C:\Users\zhuxueming\Desktop\ATG3.csv‘)#添加所需比对的文件,以及绝对路径。需要.csv格式的excel
    Vps9 = read_csv(r‘C:\Users\zhuxueming\Desktop\vps9.csv‘)#添加所需比对的文件,以及绝对路径。需要.csv格式的excel
    K3G4 = read_csv(r‘C:\Users\zhuxueming\Desktop\K3G4.csv‘)#添加所需比对的文件,以及绝对路径。需要.csv格式的excel
    unique = ATG3-(Vps9|K3G4)#进行数据筛选,ATG3-(Vps9|K3G4)代表ATG3中的数据有,而vps9和K3G4中都没有的集合。-号为差集,|为并集
    #unique_Vps9 = Vps9-(K3G4|ATG3)
    write_excel(r‘C:\Users\zhuxueming\Desktop\ATG3.csv‘,                r‘C:\Users\zhuxueming\Desktop\unique_Atg31.xlsx‘)#第一个为需要比对的文件,第二个为所输出的excel和路径    

>>>

第二步,根据第一步excel中的序列号在NCBI上找出结构域信息获取并写入新的excel中。

import requests
import re
import openpyxl
from bs4 import BeautifulSoup

head = {‘User-Agent‘:‘Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36‘}
url = r‘https://www.ncbi.nlm.nih.gov/gene/?term=‘
wb = openpyxl.Workbook()
ws = wb.active
ws[‘A1‘],ws[‘B1‘],ws[‘C1‘],ws[‘D1‘],ws[‘E1‘]  = ‘假定蛋白信息‘,‘得分‘,‘结构域1‘,‘结构域2‘,‘结构域3‘
ws.freeze_panes = ‘A2‘

def seq_data(file, filename):
    for line in open(file):
        if ‘MGG_‘ in line:
            score = line.split(‘,‘)[2]
            MGG = re.search(r‘MGG_\d{5}‘,line).group(0)
            full_url = url + MGG
            l = []
            l.append(MGG)
            l.append(score)
            try:
                res = requests.get(full_url,headers = head)
                res.encoding = ‘utf-8‘
                soup = BeautifulSoup(res.text,‘lxml‘)
                domain = soup.find_all("dd",class_=‘clearfix‘)#获取标签内容
                for each in domain:
                    l.append(each.text)
            except BaseException:
                pass
            ws.append(l)#写入excel
    wb.save(filename)#保存

if __name__ == ‘__main__‘:
    seq_data(r‘C:\Users\zhuxueming\Desktop\unique_Atg31.csv‘,         r‘C:\Users\zhuxueming\Desktop\ATG3_special_hyp_protein_domain.xlsx‘)
    

原文地址:https://www.cnblogs.com/Zhu-Xueming/p/8407195.html

时间: 2024-11-08 18:54:06

两个python程序搞定NCBI数据搜索并将结果保存到excel里面的相关文章

30天搞定大数据爬虫项目

详情请交流  QQ  709639943 00.30天搞定大数据爬虫项目 00.零基础实战机器学学习 00.企业级实战 Spark离线和实时电影推荐系统 00.三大项目掌握Storm流计算 00.道路交通实时流量监控预测系统 00.基于Spark2.x新闻网大数据实时分析可视化系统 00.小码哥Java大神班五期 任小龙SSM Spring5 Mybatis SpringMVC 00.Python玩转人工智能框架 TensorFlow 00.web开发级mysql颠覆实战课程 00.微信小游戏入

一篇文章搞懂DataSet、DataFrame、RDD-《每日五分钟搞定大数据》

1. 三者共性: 1.RDD.DataFrame.Dataset全都是spark平台下的分布式弹性数据集,为处理超大型数据提供便利 2.三者都有惰性机制,执行trainform操作时不会立即执行,遇到Action才会执行 3.三者都会根据spark的内存情况自动缓存运算,这样即使数据量很大,也不用担心会内存溢出 4.三者都有partition的概念,如 var predata=data.repartition(24).mapPartitions{       PartLine => {     

zookeeper-非常重要的zab协议-《每日五分钟搞定大数据》

上篇文章paxos与一致性说到zab是在paxos的基础上做了重要的改造,解决了一系列的问题,这一篇我们就来说下这个zab. zab协议的全称是ZooKeeper Atomic Broadcast即zookeeper"原子""广播"协议.它规定了两种模式:崩溃恢复和消息广播 恢复模式 什么时候进入? 当整个服务框架在启动过程中 当Leader服务器出现网络中断崩溃退出与重启等异常情况 当有新的服务器加入到集群中且集群处于正常状态(广播模式),新服会与leader进行

HDFS-异常大全-《每日五分钟搞定大数据》

点击看<每日五分钟搞定大数据>完整思维导图以及所有文章目录 问题1:Decomminssioning退役datanode(即删除节点) 1.配置exclude: <name>dfs.hosts.exclude</name> <value>/data/hadoop/excludes</value> 在/data/hadoop/excludes文件添加要退役的节点ip(可同时退役多个,一个一行) 2.配置完后刷新节点 # $HADOOP_HOME/b

将爬取的数据保存到Excel表格

第一步.导入模块 import xlwt # 导入写入excel需要的包第二步.定义函数,将爬取好的数据保存到excel文件中,下面以保存python的关键词为例,介绍详细流程. def write_to_excel(filename, lst): # 为防止写入失败,捕获异常 try: # 1 创建一个workbook,相当于创建excel文件 work_book = xlwt.Workbook(encoding='utf-8') # 2 创建一个sheet表单 sheet = work_bo

告别set和get,两大利器轻松搞定model转换

场景一:一般我们遇到需要新建model,常规做法就是创建一个类,老老实实的定义好model中的所有属性,一般来说属性对应的set方法和get方法都是少不了的,有时候还需要toString甚至equals和hashCode方法. 现在的IDE已经很成熟了,一般不会手写set和get方法,采用IDE自带的快捷方式自动生成居多.如下图所示 该方式相对手写方法来说,效率已经有了很大的提升,但还是有进一步的提升空间(下文会介绍).而且该种方式维护性较差,当需要修改某个属性名称或者属性类型时,对应的set和

在使用Eclipse时出现的两个问题:“搞定 NiosII 工程文件夹目录路径改变”与“Connected system ID hash not found on target at expected base address”

问题一: “搞定 NiosII 工程文件夹目录路径改变”的过程中,按照<NiosII的奇幻漂流-v2.0.pdf>这本书附录一章<20.2 四步搞定 NiosII 工程文件夹目录路径改变>所说的方法进行问题解决的时候,总是会出现一些小问题,例如有一个问题“xxx.sopcinfo could not be found.”最后只能删掉工程,重建project,copy源码.虽然最后能够解决路径问题,但花费精力过多,无数次的删除原工程下的project,无数次的自己重建,虽然也能解决问

Python中,添加写入数据到已经存在的Excel的xls文件,即打开excel文件,写入新数据

背景 Python中,想要打开已经存在的excel的xls文件,然后在最后新的一行的数据. 折腾过程 1.找到了参考资料: writing to existing workbook using xlwt 其实是没有直接实现: 打开已有的excel文件,然后在文件最后写入,添加新数据 的函数的. 只不过,可以利用: Working with Excel Files in Python 中的库,组合实现. 2. writing to existing workbook using xlwt 给出了示

10 张图帮你搞定 TensorFlow 数据读取机制

导读 在学习tensorflow的过程中,有很多小伙伴反映读取数据这一块很难理解.确实这一块官方的教程比较简略,网上也找不到什么合适的学习材料.今天这篇文章就以图片的形式,用最简单的语言,为大家详细解释一下tensorflow的数据读取机制,文章的最后还会给出实战代码以供参考. 一.tensorflow读取机制图解 首先需要思考的一个问题是,什么是数据读取?以图像数据为例,读取数据的过程可以用下图来表示: 假设我们的硬盘中有一个图片数据集0001.jpg,0002.jpg,0003.jpg--我