本文的主要内容分为
1、下载blast+程序
2、下载nr数据库,也可选择下载nt数据库或其他数据库,操作一样。
3、修改环境变量并本地化blast程序
4、将自己的序列与数据库文件对比,生成pssm矩阵
5、通过python程序批量生成pssm矩阵
一、下载blast+程序 (#mark1)
从 ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/下载blast+程序
或者进入NCBI输入blast进入界面
下载到非系统盘,如E:\blast 并新建文件夹db,后面放nr数据库使用。
二、下载nr数据库或者其他数据库
地址https://ftp.ncbi.nlm.nih.gov/blast/db/
可以下载已经格式化过的nr数据库分文件
下载完之后解压在刚才新建的db文件夹下。会得到以下文件
三、修改环境变量并本地化blast程序
使用 win+r 命令进入运行界面,输入sysdm.cpl进入系统环境变量设置
设置环境变量,方便后续操作
并添加配置文件
新建txt文件,里面输入
[NCBI]
Data=“E:\blast\data”
并把文件命名为ncbi.ini,放入C:\WINDOWS目录下
四、此时可进行比对操作(blastn、blastp、psiblast)
我用的是psiblast,打开命令行。使用cd命令切换到bin目录下
跑完之后可得到pssm矩阵
pssm矩阵实例长这个样子
五、使用Python程序批量生成pssm矩阵
#!/usr/bin/python
# -*- coding:utf-8 -*-
import os
totalSize = 0
fileNum = 0
dirNum = 0
def visitDir(path):
global totalSize
global fileNum
global dirNum
for lists in os.listdir(path):
sub_path = os.path.join(path, lists)
if os.path.isfile(sub_path):
fileNum = fileNum+1 # 统计文件数量
totalSize = totalSize+os.path.getsize(sub_path) # 文件总大小
elif os.path.isdir(sub_path):
dirNum = dirNum+1
visitDir(sub_path)
visitDir("C:/Users/cpc/Desktop/新建文件夹/dp525/")
print(fileNum)
for i in range(1,fileNum+1):
os.system("E:/blast/bin/psiblast -query C:/Users/cpc/Desktop/新建文件夹/dp525/"+ str(i)+"_dp.txt"+" -db nr -num_iterations 3"+" -out_ascii_pssm "+str(i)+".pssm")