前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python脚本:nexus比对格式批量转化为fasta格式

python脚本:nexus比对格式批量转化为fasta格式

作者头像
用户7010445
发布2020-07-10 11:32:08
1.6K0
发布2020-07-10 11:32:08
举报
nexus比对格式
代码语言:javascript
复制
#NEXUS
BEGIN DATA;
dimensions ntax=4 nchar=28;
format missing=?
interleave=yes datatype=DNA gap=- match=.;

matrix
ccsA1       ATGATATTTTCAACTTTAGAGCATATAT
ccsA2       ATGATATTTTCAACTTTAGAGCATATAT
ccsA3       ATGATATTTTCAACTTTAGAGCATATAT
ccsA4       ATGATATTTTCAACTTTAGAGCATATAT

;
end;
fasta格式
代码语言:javascript
复制
>ccsA1
ATGATATTTTCAACTTTAGAGCATATAT

>ccsA2
ATGATATTTTCAACTTTAGAGCATATAT

>ccsA3
ATGATATTTTCAACTTTAGAGCATATAT

>ccsA4
ATGATATTTTCAACTTTAGAGCATATAT

**

nexus比对格式
代码语言:javascript
复制
#NEXUS
BEGIN DATA;
dimensions ntax=4 nchar=28;
format missing=?
interleave=yes datatype=DNA gap=- match=.;

matrix
ccsA1       ATGATATTTTCAACTTTAGAGCATATAT
ccsA2       ATGATATTTTCAACTTTAGAGCATATAT
ccsA3       ATGATATTTTCAACTTTAGAGCATATAT
ccsA4       ATGATATTTTCAACTTTAGAGCATATAT

;
end;
fasta格式
代码语言:javascript
复制
>ccsA1
ATGATATTTTCAACTTTAGAGCATATAT

>ccsA2
ATGATATTTTCAACTTTAGAGCATATAT

>ccsA3
ATGATATTTTCAACTTTAGAGCATATAT

>ccsA4
ATGATATTTTCAACTTTAGAGCATATAT

**不同的比对软件会输出不一样的比对格式;比对后分析用到的软件对输入格式的要求也不一样。比如序列比对我习惯使用MAFFT。MAFFT输出结果默认为fasta格式,clustal可选;如果后续需要使用MrBayes构建贝叶斯树,需要将其转化为NEXUS格式。这里推荐 **ALTER来完成比对格式转化的任务。如果分析的序列不是很多,可以选择网页版;如果序列条数比较多可以选择安装本地版 https://github.com/sing-group/ALTER;按照安装步骤执行即可,自己的安装过程没有遇到报错;

如果是单个文件可以借助alter这个在线工具来完成。

如果需要转化的文件很多,可以借助python中的dendropy这个模块,然后写python脚本完成批量转化。

今天有人发邮件问批量转化nexus格式为fasta格式。下面以这个为例介绍

在电脑上安装python,可以直接安装Anaconda https://www.anaconda.com/products/individual

我自己是win10系统,按windows+R快捷键,然后输入cmd调出命令行窗口,直接输入

代码语言:javascript
复制
pip install -U dendropy

安装dendropy模块

脚本
代码语言:javascript
复制
import os
import sys
import dendropy

in_folder = sys.argv[1]
out_folder = sys.argv[2]

os.makedirs(out_folder)

file_num = len(os.listdir(in_folder))
print("Total ", file_num, " nexus files need to be converted")
print("Ready,go!")

for nex_file in os.listdir(in_folder):
    file_path = in_folder + "/" + nex_file
    file_pre = nex_file.split(".")[0]
    nex = dendropy.DnaCharacterMatrix.get(path=file_path,schema='nexus')
    out_file_path = out_folder + "/" + file_pre + ".fasta"
    nex.write(path=out_file_path,schema='fasta')

print("OK")
使用方法

将需要转化的nexus格式文件放到input_nexus文件夹中,然后运行脚本

代码语言:javascript
复制
python .\batch_convert_nex_to_fasta.py .\input_nexus\ output_fasta

fasta结果文件将会保存在 output_fasta文件夹中

nexus比对格式
代码语言:javascript
复制
#NEXUS
BEGIN DATA;
dimensions ntax=4 nchar=28;
format missing=?
interleave=yes datatype=DNA gap=- match=.;

matrix
ccsA1       ATGATATTTTCAACTTTAGAGCATATAT
ccsA2       ATGATATTTTCAACTTTAGAGCATATAT
ccsA3       ATGATATTTTCAACTTTAGAGCATATAT
ccsA4       ATGATATTTTCAACTTTAGAGCATATAT

;
end;
fasta格式
代码语言:javascript
复制
>ccsA1
ATGATATTTTCAACTTTAGAGCATATAT

>ccsA2
ATGATATTTTCAACTTTAGAGCATATAT

>ccsA3
ATGATATTTTCAACTTTAGAGCATATAT

>ccsA4
ATGATATTTTCAACTTTAGAGCATATAT

不同的比对软件会输出不一样的比对格式;比对后分析用到的软件对输入格式的要求也不一样。比如序列比对我习惯使用MAFFT。MAFFT输出结果默认为fasta格式,clustal可选;如果后续需要使用MrBayes构建贝叶斯树,需要将其转化为NEXUS格式。这里推荐 ALTER来完成比对格式转化的任务。如果分析的序列不是很多,可以选择网页版;如果序列条数比较多可以选择安装本地版 https://github.com/sing-group/ALTER;按照安装步骤执行即可,自己的安装过程没有遇到报错;

如果是单个文件可以借助alter这个在线工具来完成。

如果需要转化的文件很多,可以借助python中的dendropy这个模块,然后写python脚本完成批量转化。

今天有人发邮件问批量转化nexus格式为fasta格式。下面以这个为例介绍

在电脑上安装python,可以直接安装Anaconda https://www.anaconda.com/products/individual

我自己是win10系统,按windows+R快捷键,然后输入cmd调出命令行窗口,直接输入

代码语言:javascript
复制
pip install -U dendropy

安装dendropy模块

脚本
代码语言:javascript
复制
import os
import sys
import dendropy

in_folder = sys.argv[1]
out_folder = sys.argv[2]

os.makedirs(out_folder)

file_num = len(os.listdir(in_folder))
print("Total ", file_num, " nexus files need to be converted")
print("Ready,go!")

for nex_file in os.listdir(in_folder):
    file_path = in_folder + "/" + nex_file
    file_pre = nex_file.split(".")[0]
    nex = dendropy.DnaCharacterMatrix.get(path=file_path,schema='nexus')
    out_file_path = out_folder + "/" + file_pre + ".fasta"
    nex.write(path=out_file_path,schema='fasta')

print("OK")
使用方法

将需要转化的nexus格式文件放到input_nexus文件夹中,然后运行脚本

代码语言:javascript
复制
python .\batch_convert_nex_to_fasta.py .\input_nexus\ output_fasta

fasta结果文件将会保存在 output_fasta文件夹中

不同的比对软件会输出不一样的比对格式;比对后分析用到的软件对输入格式的要求也不一样。比如序列比对我习惯使用MAFFT。MAFFT输出结果默认为fasta格式,clustal可选;如果后续需要使用MrBayes构建贝叶斯树,需要将其转化为NEXUS格式。这里推荐 **ALTER来完成比对格式转化的任务。如果分析的序列不是很多,可以选择网页版;如果序列条数比较多可以选择安装本地版 https://github.com/sing-group/ALTER;按照安装步骤执行即可,自己的安装过程没有遇到报错;

如果是单个文件可以借助alter这个在线工具来完成。

如果需要转化的文件很多,可以借助python中的dendropy这个模块,然后写python脚本完成批量转化。

今天有人发邮件问批量转化nexus格式为fasta格式。下面以这个为例介绍

在电脑上安装python,可以直接安装Anaconda https://www.anaconda.com/products/individual

我自己是win10系统,按windows+R快捷键,然后输入cmd调出命令行窗口,直接输入

代码语言:javascript
复制
pip install -U dendropy

安装dendropy模块

脚本
代码语言:javascript
复制
import os
import sys
import dendropy

in_folder = sys.argv[1]
out_folder = sys.argv[2]

os.makedirs(out_folder)

file_num = len(os.listdir(in_folder))
print("Total ", file_num, " nexus files need to be converted")
print("Ready,go!")

for nex_file in os.listdir(in_folder):
    file_path = in_folder + "/" + nex_file
    file_pre = nex_file.split(".")[0]
    nex = dendropy.DnaCharacterMatrix.get(path=file_path,schema='nexus')
    out_file_path = out_folder + "/" + file_pre + ".fasta"
    nex.write(path=out_file_path,schema='fasta')

print("OK")
使用方法

将需要转化的nexus格式文件放到input_nexus文件夹中,然后运行脚本

代码语言:javascript
复制
python .\batch_convert_nex_to_fasta.py .\input_nexus\ output_fasta

fasta结果文件将会保存在 output_fasta文件夹中

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小明的数据分析笔记本 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • nexus比对格式
  • fasta格式
  • nexus比对格式
  • fasta格式
  • 脚本
  • 使用方法
  • nexus比对格式
  • fasta格式
  • 脚本
  • 使用方法
  • 脚本
  • 使用方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档