脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - python 服务器批处理得到PSSM矩阵的问题

python 服务器批处理得到PSSM矩阵的问题

2022-07-21 16:04李划水员 Python

这篇文章主要介绍了python 服务器批处理得到PSSM矩阵,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

1. 在linux上安装psiblast

最好新建一个python环境,因为我发现conda安装blast默认的是python==3.6.11,可能会不小心把你的python版本改掉…然后你写好的代码全die了……

conda create -n blast python==3.6.11
source activate blast
conda install -c bioconda blast

2.下载并编译用于比对的大型蛋白质数据库

nr和uniprot是比较通用的数据库:

ftp://ftp.ncbi.nlm.nih.gov/blast/db/
https://www.uniprot.org/downloads

1)nr是ncbi收集的目前所有微生物的蛋白序列,是用来计算氨基酸一般情况下的频率的,160G

2)uniprot90根据相似性做了一个去冗余,所以比nr要小很多,56G

# 以uniprot90为例
wget ftp://ftp.uniprot.org/pub/databases/uniprot/uniref/uniref90/uniref90.fasta.gz # 下载
gzip -d uniref90.fasta.gz # 解压
makeblastdb -in uniref90.fasta -parse_seqids -hash_index -dbtype prot # 编译

解析完成后的样子:

python 服务器批处理得到PSSM矩阵的问题

文件是这个样子:(只截取了一部分)

python 服务器批处理得到PSSM矩阵的问题

3. 获取PSSM矩阵

我的初始文件是:

python 服务器批处理得到PSSM矩阵的问题

P00269.fasta是对单条蛋白质处理,里面的格式是:

python 服务器批处理得到PSSM矩阵的问题

testset.fasta是对蛋白质集合批处理,里面的格式是(也可以单独蛋白质存为.fasta文件,由于blast只能处理单条蛋白糊,把这个集合知识归总的意思,第一步还是要生成单条蛋白质的.fasta文件,所以这个文件看个人意愿):

python 服务器批处理得到PSSM矩阵的问题

1)单条蛋白质序列的处理方法

import os
os.system("psiblast -query dataset/P00269.fasta -db /PSSM/uniref90.fasta -num_iterations 3 -out_ascii_pssm /dataset/P00269.pssm")##这个蛋白质好慢呀

2)批处理获取的方法

import os
 
file_name="/dataset/testset.fasta"
Protein_id=[]
with open(file_name,"r") as fp:
    i=0
    for line in fp:
 
        if i%2==0:
            # Protein_id.append(line[1:-1])
            id=line[0:-1]
            p=line[1:-1]
            with open ("/dataset/"+str(p)+".fasta","a") as protein:
                protein.write(id)
                # protein.write()
        if i%2==1:
            seq=line[0:-1]
            with open ("/dataset/"+str(p)+".fasta","a") as protein:
                protein.write("
")
                protein.write(seq)
        i=i+1
 
        os.system("psiblast -query "+"/dataset/"+str(p)+".fasta -db /PSSM/uniref90.fasta -num_iterations 3 -out_ascii_pssm /dataset/"+str(p)+".pssm")

##PSSM真是太慢了,下面是只生成一个后的截图

python 服务器批处理得到PSSM矩阵的问题

emmmm,在研究怎么把这个矩阵存入文件方便调用,今天应该会更新……但是他好慢啊,不想用了。

参考文献:

linux下用psiblast批量生成pssm矩阵

到此这篇关于python服务器批处理得到PSSM矩阵的文章就介绍到这了,更多相关python服务器批处理内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文地址:https://blog.csdn.net/Daisy4/article/details/125876214

延伸 · 阅读

精彩推荐
  • PythonPython Pandas两个表格内容模糊匹配的实现

    Python Pandas两个表格内容模糊匹配的实现

    模糊查询大家应该都不会陌生,下面这篇文章主要给大家介绍了关于Python Pandas两个表格内容模糊匹配的实现方法,文中通过示例代码介绍的非常详细,需要的朋...

    迪迦瓦特曼5552022-02-28
  • Pythonpython模块简介之有序字典(OrderedDict)

    python模块简介之有序字典(OrderedDict)

    字典是Python开发中很常用的一种数据结构,但dict有个缺陷(其实也不算缺陷),迭代时并不是按照元素添加的顺序进行,可能在某些场景下,不能满足我们...

    linuxidc4932020-09-13
  • Pythonpython 字典操作提取key,value的方法

    python 字典操作提取key,value的方法

    这篇文章主要介绍了python 字典操作提取key,value的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们...

    feng98ren4652021-07-22
  • PythonPython命令启动Web服务器实例详解

    Python命令启动Web服务器实例详解

    这篇文章主要介绍了Python命令启动Web服务器实例详解的相关资料,需要的朋友可以参考下...

    Python教程网7592020-09-21
  • PythonPython实现简单查找最长子串功能示例

    Python实现简单查找最长子串功能示例

    这篇文章主要介绍了Python实现简单查找最长子串功能,涉及字符串遍历、统计等相关操作技巧,需要的朋友可以参考下...

    dazuo_016132021-06-02
  • PythonPython增强下git那长长的指令详解

    Python增强下git那长长的指令详解

    这篇文章主要介绍了Python增强下git那长长的指令 ,在开发中用到的代码目录结构,本文也给大家详细讲解,需要的朋友可以参考下...

    M78-Seven4882022-01-07
  • Python如何利用Python这门编程语言下载一些无法下载的小姐姐的视频

    如何利用Python这门编程语言下载一些无法下载的小姐姐的视频

    在日常的学习生活中,我们多多少少的需要用到一些视频学习资料,但是如果需要下载,有的他不让你下载有的则需要下载客户端才能够缓存,缓存下来的...

    小徐之家5542021-08-05
  • Pythonpython爬虫基本知识

    python爬虫基本知识

    最近在做一个项目,这个项目需要使用网络爬虫从特定网站上爬取数据,于是乎,我打算写一个爬虫系列的文章,与大家分享如何编写一个爬虫。下面这篇...

    2048的渣渣8452021-01-19