III 型分泌系统 (Type III secretion system,T3SS) 主要是革兰氏阴性菌的分泌蛋白分泌到细胞外的运输途径,T3SS 效应蛋白 (Type III secretion system Effector protein) 与革兰氏阴性致病菌致病机理有关。

通常用软件 EffectiveT3 预测 T3SS,通过其内部特定的计算模型对每条氨基酸序列进行评分,分值越高,可信度越高,选出评分高于阈值的序列,认为这些序列为 III 型分泌系统效应蛋白。

EffectiveT3 的更新版本加强了 Effective 中 N 端信号肽的识别。对于更新,开发者收集了新的训练数据集,将来自 T3SEdb 的 504 个经过验证的分泌蛋白与其原始的训练数据结合在一起。新模型同样基于朴素贝叶斯分类器(Naive Bayesian Classifier),只是用了更多数据进行训练。在执行遗漏交叉验证测试(leave-one-taxon-out test )时,其精度为 0.87,与其之前的报告相当。

新模型现已嵌入到 Effective 中,也可供下载。在新模型中,朴素贝叶斯分类器对 “secreted” 类的默认最小分数为 0.9999。该默认值在网页上称为 “selective”,而 0.95 称为 “sensitive”。阈值也可以自由选择。

# 软件

  • 主程序

    • EffectiveT3
  • 依赖

    • openjdk >=6
  • 安装

    # 使用 conda 安装时依赖 Pyton 2.7,3.5,3.6,需要首先创建相应版本的 Python 环境(自行创建)
    conda install effectivet3
  • 数据库(modules)配置

    记录一个深坑:程序默认在 module 的路径前加了一个 "./module" 路径,因此,虽然程序安装的过程中自动下载了 modules,然而我们并没有办法调用它们,只能重新下载。用户每次运行软件前需要在当前目录下创建了 module 目录,并下载 modules,然后将其存到 module 目录中。

    mkdir -p module
    curl -o TTSS_STD-2.0.2.jar https://depot.galaxyproject.org/software/TTSS_STD/TTSS_STD_2.0.2_src_all.jar
    curl -o TTSS_ANIMAL-1.0.1.jar https://depot.galaxyproject.org/software/TTSS_ANIMAL/TTSS_ANIMAL_1.0.1_src_all.jar
    curl -o TTSS_PLANT-1.0.1.jar https://depot.galaxyproject.org/software/TTSS_PLANT/TTSS_PLANT_1.0.1_src_all.jar
    curl -o TTSS_STD-1.0.1.jar https://depot.galaxyproject.org/software/TTSS_STD/TTSS_STD_1.0.1_src_all.jar
    mv -f TTSS_STD-2.0.2.jar TTSS_ANIMAL-1.0.1.jar TTSS_PLANT-1.0.1.jar TTSS_STD-1.0.1.jar module

# 输入数据

包含蛋白序列的 FASTA 格式文件

# 运行软件

effectivet3 -f F02_bin.1.faa -m TTSS_TTSS_STD-2.0.2.jar -t selective -o F02_bin.1.out -q
  • -f: 输入文件
  • -m: 模型,可选 "TTSS_ANIMAL-1.0.1.jar","TTSS_PLANT-1.0.1.jar","TTSS_STD-1.0.1.jar" 和 “TTSS_STD-2.0.2.jar”,建议用 “TTSS_STD-2.0.2.jar”
  • -t: 模式,"sensitive" and "selective" 二选一,建议使用 "selective"
  • -o: 输出文件
  • -q: 启动命令行模式

# 输出文件解读

  • English: The table of results displays all query proteins sorted by prediction score. Effector classification (true/false) according to the applied threshold is shown in the last column.

  • 简体中文:结果包含了输入文件中所有的查询序列 IDs,根据得分进行排序。一共包含 4 列,第一列为序列 ID,第二列为序列描述,第三列为预测得分,第四列描述该序列是否为效应因子。各列间以英文的分号(;)分隔。

    F01_bin.1.out

# 批处理与结果整合

脚本名:run_effectiveT3.pl

#!/usr/bin/perl
use strict;
use warnings;
# Author: Liu hualin
# Date: Oct 13, 2021
# Download modules
# 记录一个深坑,程序默认在 module 的路径前加了一个 "./module" 路径,因此,虽然程序安装的过程中自动下载了 modules,然而我们并没有办法调用它们,只能重新下载。
# 以下代码在当前目录下创建了 module 目录,并下载 modules,然后将其存到 module 目录中。
system("mkdir -p module");
system("curl -o TTSS_STD-2.0.2.jar https://depot.galaxyproject.org/software/TTSS_STD/TTSS_STD_2.0.2_src_all.jar");
system("curl -o TTSS_ANIMAL-1.0.1.jar https://depot.galaxyproject.org/software/TTSS_ANIMAL/TTSS_ANIMAL_1.0.1_src_all.jar");
system("curl -o TTSS_PLANT-1.0.1.jar https://depot.galaxyproject.org/software/TTSS_PLANT/TTSS_PLANT_1.0.1_src_all.jar");
system("curl -o TTSS_STD-1.0.1.jar https://depot.galaxyproject.org/software/TTSS_STD/TTSS_STD_1.0.1_src_all.jar");
system("mv -f TTSS_STD-2.0.2.jar TTSS_ANIMAL-1.0.1.jar TTSS_PLANT-1.0.1.jar TTSS_STD-1.0.1.jar module");
# Predict one by one
my @faa = glob("*.faa");
foreach  (@faa) {
	$_=~/(.+).faa/;
	my $out = $1 . ".T3";
	system("effectivet3 -f $_ -m TTSS_STD-2.0.2.jar -t selective -o $out -q");
}
# information aggregation
my (%hash, %strain);
my $line_num = 0;
open T3, ">T3SS.txt" || die;
print T3 "Strain\tId\tDescription\tScore\tis secreted\tProtein sequences\n";
my @t3 = glob("*.T3");
foreach my $t3 (@t3) {
	$t3=~/(.+).T3/;
	my $str = $1;
	my $faa = $1 . ".faa";
	$strain{$str}++;
	my %temp;
	# Save ID and Sequence to %temp
	open FAA, "$faa" || die;
	local $/ = ">";
	<FAA>;
	while (<FAA>) {
		chomp;
		my ($header, $seq) = split (/\n/, $_, 2);
		$header=~/(\S+)/;
		my $id = $1;
		$seq=~s/[\r\n]+//g;
		$temp{$id} = $seq;
	}
	close FAA;
	local $/ = "\n";
	open IN, "$t3" || die;
	<IN>;
	while (<IN>) {
		chomp;
		if (!/^#/) {
			my @lines = split /\;/;
			if ($lines[3] eq "true") {
				$line_num++;
				print T3 "$str\t" . join("\t", @lines) . "\t" . $temp{$lines[0]} . "\n";
				$hash{$str}{true}++;
			}else {
				$hash{$str}{false}++;
			}
		}
	}
	close IN;
}
close T3;
if ($line_num > 1) {
	open T3NUM, ">T3SS.num" || die;
	print T3NUM "Strain\tTotal sequences\tT3S effective true\tT3S effective false\n";
	foreach  (sort keys %strain) {
		if ($hash{$_}{true} && $hash{$_}{false}) {
			my $total = $hash{$_}{true} + $hash{$_}{false};
			print T3NUM $_ . "\t" . $total . "\t" . $hash{$_}{true} . "\t" . $hash{$_}{false} . "\n";
		}elsif ($hash{$_}{true}) {
			$hash{$_}{false} = 0;
			my $total = $hash{$_}{true} + $hash{$_}{false};
			print T3NUM $_ . "\t" . $total . "\t" . $hash{$_}{true} . "\t" . $hash{$_}{false} . "\n";
		}else {
			$hash{$_}{true} = 0;
			my $total = $hash{$_}{true} + $hash{$_}{false};
			print T3NUM $_ . "\t" . $total . "\t" . $hash{$_}{true} . "\t" . $hash{$_}{false} . "\n";
		}
	}
	close T3NUM;
}
system("mkdir -p T3SS_result");
system("mv *.T3 T3SS.num T3SS.txt T3SS_result");

用法:将脚本与含有氨基酸序列的 FASTA 格式文件(后缀名为 ".faa",如果为其他,需要修改脚本第 19、21 和 31 行)放在同一目录下,在终端里运行如下命令(不需要事先配置数据库):

perl run_effectiveT3.pl

报错:Use of uninitialized value $seq in substitution (s///) at run_effectiveT3.pl line 47, <FAA> chunk .

原因:氨基酸序列 ID/Header 那一行的注释信息中含有”>“。该报错不影响结果的准确性,可以忽略。

# 结果解读

  • T3SS_result/strain_name.T3:(strain_name 代表输入文件的名称)effectiveT3 输出的原始结果,共 4 列,如前文所述。

    CXY008.T3

  • T3SS_result/T3SS.txt:包含了所有菌株的预测得到的效应因子,共 6 列,第一列为菌株名,中间的 4 列同上一个文件,最后一列为对应的氨基酸序列。

    T3SS.txt

  • T3SS_result/T3SS.sum:记录所有菌株中序列总数、效应因子序列数和非效应因子序列数。

    T3SS.sum

# 脚本获取

关注公众号 “生信之巅”,聊天窗口回复 “fb68” 获取下载链接。

生信之巅微信公众号生信之巅小程序码

敬告:使用文中脚本请引用本文网址,请尊重本人的劳动成果,谢谢!Notice: When you use the scripts in this article, please cite the link of this webpage. Thank you!

# 参考

  • EffectiveDB
  • Bioconda
Edited on Views times

Give me a cup of [coffee]~( ̄▽ ̄)~*

Hualin Liu WeChat Pay

WeChat Pay

Hualin Liu Alipay

Alipay