Mafft安装使用教程(MAFFT-7.526)

Mafft安装使用教程(MAFFT-7.526)

教程写于2025年2月19日,目前mafft最新版是7.526

The latest version is 7.526 (2024/Apr)

常用比对软甲比较(文献报道的)

比对速度(Muscle>MAFFT>ClustalW>T-Coffee)

比对准确性(MAFFT>Muscle>T-Coffee>ClustalW)

个人推荐使用MAFFT比对软件

一、安装

使用conda 安装

首先创建conda虚拟环境:

conda create -n mafft

然后激活环境:

conda activate mafft

然后安装:

conda install conda-forge::mafft

然后查看软件版本:

mafft --version

二、MAFFT 最简使用教程

1、使用--auto选项

  • --auto选项是MAFFT中最简单且强大的功能之一,它会根据输入序列的数量自动选择最适合的比对策略(在速度和准确性之间平衡)。对于大多数用户来说,这是最推荐的默认设置。

基本命令

mafft --auto input.fasta > output.fasta

说明

  • input.fasta:输入文件,必须是FASTA格式。
  • output.fasta:输出文件,比对结果将以FASTA格式保存。
  • --auto:自动选择比对策略。

2、设置多线程

MAFFT支持多线程计算,可以通过--thread选项指定线程数,从而加速比对过程。

命令示例

mafft --auto --thread 4 input.fasta > output.fasta

说明

  • --thread 4:指定使用4个线程进行计算。你可以根据计算机的CPU核心数调整线程数。例如,如果你的计算机有8核CPU,可以设置为--thread 8
  • 注意:多线程加速效果在序列数量较多时更为明显。

3、最简使用示例

假设你有一个名为input.fasta的序列文件,包含多条氨基酸或核苷酸序列,你可以使用以下命令进行比对:

mafft --auto --thread 4 input.fasta > output.fasta

这条命令会:

  1. 自动选择最适合的比对策略。
  2. 使用4个线程加速计算。
  3. 将比对结果保存到output.fasta文件中。
  4. 也可设置--thread -1 会自动使用计算机所有可使用CPU。

4、输出格式(可选)

如果你需要将结果保存为Clustal格式,可以添加--clustalout选项:

mafft --auto --thread 4 --clustalout input.fasta > output.clustal

5、总结

  • 最简命令mafft --auto input.fasta > output.fasta
  • 多线程加速mafft --auto --thread [线程数] input.fasta > output.fasta
  • 输出Clustal格式mafft --auto --thread [线程数] --clustalout input.fasta > output.clustal

三、MAFFT 详细使用教程

1、常规使用

以下是MAFFT的常用设置,适合大多数用户快速上手:


快速比对(适用于大量序列)

如果需要快速比对大量序列(如>2000条),推荐使用FFT-NS-1方法。该方法速度非常快,但牺牲了一定的准确性。

mafft --retree 1 --maxiterate 0 input.fasta > output.fasta

或使用简写命令:

fftns input.fasta > output.fasta

说明

  • --retree 1:仅构建一次引导树。
  • --maxiterate 0:不进行迭代优化。
  • 适用于序列数量较多(>2000条)的场景。

平衡速度与准确性的比对(中等数量序列)

对于中等数量的序列(如200-2000条),推荐使用FFT-NS-i方法。该方法通过两轮迭代优化,平衡了速度和准确性。

mafft --retree 2 --maxiterate 2 input.fasta > output.fasta

或使用简写命令:

fftnsi input.fasta > output.fasta

说明

  • --retree 2:构建两次引导树。
  • --maxiterate 2:进行两轮迭代优化。
  • 适用于序列数量适中的场景。

高准确性比对(少量序列)

如果序列数量较少(<200条),且需要高准确性,推荐使用L-INS-i或G-INS-i方法。这两种方法通过迭代精修,能够获得较高的比对准确性。

  • L-INS-i(局部优化)

    mafft --localpair --maxiterate 1000 input.fasta > output.fasta
    

    或使用简写命令:

    linsi input.fasta > output.fasta
    
  • G-INS-i(全局优化)

    mafft --globalpair --maxiterate 1000 input.fasta > output.fasta
    

    或使用简写命令:

    ginsi input.fasta > output.fasta
    

说明

  • --localpair--globalpair:分别使用局部或全局比对算法。
  • --maxiterate 1000:进行最多1000轮迭代优化。
  • 适用于对准确性要求较高的场景。

分组比对

如果需要将两个已对齐的序列组进行比对,可以使用mafft-profile命令:

mafft-profile group1.fasta group2.fasta > output.fasta

或使用以下命令:

mafft --maxiterate 1000 --seed group1.fasta --seed group2.fasta /dev/null > output.fasta

说明

  • group1.fastagroup2.fasta是已对齐的序列组。
  • /dev/null用于忽略输入文件中的其他序列。

2、详细参数

以下是MAFFT的详细使用说明,包括参数解释和使用场景。


算法选择

MAFFT提供了多种比对算法,根据不同的需求选择合适的算法:

  • FFT-NS系列
    • FFT-NS-1:非常快,适合大量序列(>2000条),但准确性较低。
    • FFT-NS-2:较快,适合中等数量的序列(200-2000条),通过两轮迭代优化提高准确性。
    • FFT-NS-i:通过多次迭代优化,进一步提高准确性,但速度较慢。
  • INS-i系列
    • L-INS-i:局部优化,适合局部可比对的序列,准确性高。
    • G-INS-i:全局优化,适合全局可比对的序列,准确性高。
    • E-INS-i:适合含有大段不可比对区域的序列,通过广义仿射缺口成本算法优化。
  • NW系列
    • NW-NS-i:不使用FFT近似,适合需要高准确性的场景。
    • NW-NS-2:快速,不使用FFT近似。
    • NW-NS-PartTree-1:适合大量序列(约10,000-50,000条),使用PartTree算法快速构建引导树。

参数设置

MAFFT提供了丰富的参数用于调整比对行为:

  • 比对算法相关参数
    • --localpair:使用局部比对算法(Smith-Waterman)。
    • --globalpair:使用全局比对算法(Needleman-Wunsch)。
    • --genafpair:使用广义仿射缺口成本算法。
    • --retree:指定引导树构建的次数(默认为2)。
    • --maxiterate:指定迭代优化的次数(默认为0)。
  • 缺口参数
    • --op:组间比对的缺口开启惩罚(默认为1.53)。
    • --ep:组间比对的缺口延伸惩罚(默认为0.123)。
    • --lop--lep--lexp:局部比对的缺口参数。
  • 输出格式
    • --clustalout:输出为Clustal格式。
    • --treeout:输出引导树到文件。
    • --quiet:不显示比对进度。
  • 输入格式
    • --nuc:假设输入为核苷酸序列。
    • --amino:假设输入为氨基酸序列。
    • --seed:使用已对齐的序列作为种子进行比对。

使用场景示例

以下是几种常见使用场景的示例:

  • 快速比对大量序列

    mafft --retree 1 --maxiterate 0 input.fasta > output.fasta
    
  • 高准确性比对少量序列

    mafft --localpair --maxiterate 1000 input.fasta > output.fasta
    
  • 分组比对

    mafft-profile group1.fasta group2.fasta > output.fasta
    
  • 输出Clustal格式

    mafft --clustalout input.fasta > output.clustal
    
  • 使用PartTree算法

    mafft --retree 1 --maxiterate 0 --parttree input.fasta > output.fasta
    

注意事项

  • 序列数量:根据序列数量选择合适的算法。大量序列适合快速方法,少量序列适合高准确性方法。
  • 序列类型:通过--nuc--amino明确指定输入序列类型。
  • 输出格式:默认为FASTA格式,如需其他格式可使用相应参数(如--clustalout)。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值