用户工具

站点工具


strainphlan

StrainPhlAn软件介绍

StrainPhlAn是一种计算工具,用于跟踪大量样本中的单个菌株。StrainPhlAn的输入是一组元基因组样本,对于每个物种,输出是直接从样本中重建的所有物种菌株的多序列对齐(MSA)文件。从这个MSA中,StrainPhlAn调用PhyloPhlAn构建显示样本菌株菌株演变的系统发育树。

对于每个样本,StrainPhlAn能够通过合并和连接与物种特异性MetaPhlAn标记映射的所有读数来识别物种的菌株。

  • 普通列表项目该方法由于没有实际的数据进行分析,测试数据不能通过有效样本检验,因此无法得到真实结果,现在放置软件官方的说明示例进行展示:

让我们从3个受试者(每个在两个时间点采样)和一个Bacteroides caccie基因组G000273725的6个HMP肠道元基因组样本(S055982-subjectID_638754422,SRS021317-subjectID_638754422,SRS019161-subjectID_763496533,SRS013951-subjectID_7634840445,SRS014613-subjectID_763840445,SRS064276-subjectID_7638445)和一个Bacteroides caccae基因组G000273745开始。我们希望:

  1. 从这些样本中提取Bcteroides caccae(SGB1877)菌株,并将其与系统发育树中的参考基因组进行比较。
  2. 知道这些菌株和参考基因组之间有多少SNP。

通过在这些样本上运行StrainPhlAn,我们将获得Bacteroides caccae(SGB1877)系统发育树及其多序列对齐,如下图(由ete2和Jalview生成): 我们可以看到,来自同一主题的菌株被分组在一起。该树还强调,每个受试者的应变没有在两个采样时间点之间演变。从树中,我们还知道受试者“763496533”的菌株比其他菌株更接近参考基因组。

此外,下表显示了基于StrainPhlAn返回的菌株对齐的样本菌株和参考基因组之间的SNP数量。

用法

  • 步骤1。从此(链接)中的“fastqs”和“reference_genomes”文件夹中下载6个HMP肠道元基因组样本、metadata.txt文件和一个参考基因组,并将这些文件夹放在“strainer_tutorial”文件夹下。
  • 步骤2。通过将这些样本与MetaPhlAn数据库进行映射,从这些样本中获取sam文件:

此步骤将运行MetaPhlAn:元基因组样本将映射到MetaPhlAn标记数据库,然后将生成SAM文件(*.sam.bz2)。每个SAM文件(SAM格式)都包含与MetaPhlAn的标记数据库映射的读数。运行的命令是:

mkdir -p sams
mkdir -p bowtie2
mkdir -p profiles
for f in fastq/SRS*
do
    echo "Running MetaPhlAn on ${f}"
    bn=$(basename ${f})
    metaphlan ${f} --input_type fastq -s sams/${bn}.sam.bz2 --bowtie2out bowtie2/${bn}.bowtie2.bz2 -o profiles/${bn}_profiled.tsv
done

完成此步骤后,您将在“bowtie2”和“profiles”文件夹中有一个包含SAM文件(*.sam.bz2)和其他MetaPhlAn输出文件的“sams”文件夹。如果您想跳过此步骤,您可以从此链接中的“sams”文件夹中下载SAM文件。

  • 步骤3。生成共识标记文件,这些文件是StrainPhlAn的输入:

对于每个样品,此步骤将重建其中发现的所有物种菌株,并将其存储在泡菜文件中(*.pkl)。这些菌株被称为样品重建菌株。运行的命令是:

mkdir -p consensus_markers
sample2markers.py -i sams/*.sam.bz2 -o consensus_markers -n 8

完成此步骤后,将有一个包含所有示例标记文件的consensus_markers文件夹(*.pkl)。

如果想跳过此步骤,可以从此链接中的“consensus_markers”文件夹中下载共识标记文件。

  • 步骤4。从MetaPhlAn数据库中提取Bacteroides_caccae(SGB1877)的标记(稍后添加其参考基因组):

此步骤将在数据库中提取Bacteroides_caccae(SGB1877)的标记,然后StrainPhlAn将识别参考基因组中与它们封闭的序列(下一步使用blast)。这些将被连接起来,并称为参考基因组重建菌株。运行的命令是:

mkdir -p db_markers
extract_markers.py -c t__SGB1877 -o db_markers/

完成此步骤后,您应该在db_markers文件夹中有一个文件:SGB1877.fna,其中包含Bacteroides caccae(SGB1877)的标记。这些标记可以在链接的db_markers文件夹中找到。

  • 步骤5。构建多序列对齐和系统发育树:

此步骤将根据它们在样品重建菌株(存储在步骤3中生成的标记文件中)和参考基因组(如果指定)中的存在来过滤选定的分支标记。此外,样品重建的菌株和参考基因组将根据选定的支系标记的存在进行过滤。从这个过滤的标记和样本中,StrainPhlAn将调用PhyloPhlAn来生成多序列对齐(MSA),然后构建系统发育树。

运行的命令是:

mkdir -p output
strainphlan -s consensus_markers/*.pkl -m db_markers/SGB1877.fna -r reference_genomes/G000273725.fna.bz2 -o output -n 8 -c SGB1877 --mutation_rates

完成此步骤后,您将找到树“output/RAxML_bestTree.SGB1877。应变PhlAn4.tre”。所有输出文件都可以在此链接的“输出”文件夹中找到。您可以通过始祖龙或任何其他观众观看它。

为了添加元数据,我们提供了一个名为add_metadata_tree.py的脚本,该脚本可以按以下方式使用:

add_metadata_tree.py -t output/RAxML_bestTree.SGB1877.StrainPhlAn4.tre -f fastq/metadata.txt -m subjectID --string_to_remove .fastq.bz2

脚本“add_metadata_tree.py”可以接受多个元数据文件(空格分隔,也可以使用通配符)和多个树。元数据文件是一个制表符分隔的文件,其中第一行是元标题,下一行包含每个样本的元数据。如果您的样本来自多个数据集,并且您不想合并元数据文件,则使用多个元数据文件。

有关使用“add_metadata_tree.py”的更多详细信息,请参阅其帮助(带有选项“-h”)。元数据文件的一个例子是“fastqs/metadata.txt”文件,内容如下:

sampleID        subjectID
SRS055982       638754422
SRS022137       638754422
SRS019161       763496533
SRS013951       763496533
SRS014613       763840445
SRS064276       763840445
G000273725  ReferenceGenomes

请注意,“sampleID”是一个必填字段。

添加元数据后,您将获取带有元数据的树文件“*.tre.metadata”,并像上一步一样通过Archaeopteryx查看它们。

如果您安装了graphlan,您可以使用plot_tree_graphlan.py脚本绘制树:

plot_tree_graphlan.py -t output/RAxML_bestTree.SGB1877.StrainPhlAn4.tre.metadata -m subjectID

并获取以下数字(输出/RAxML_bestTree.SGB1877。StrainPhlAn4.tre.元数据.png):

测试示例

#注意环境中软件的调用,交付组没有在humann环境中安装samtools和blast

source /TJPROJ7/GB_MICRO/PUBLIC/software/meta/miniconda3/bin/activate humann3
export PATH=/TJPROJ7/GB_MICRO/PUBLIC/software/meta/samtools-1.3/:/TJPROJ7/GB_MICRO/PUBLIC/software/meta/bowtie2-2.5.1/:/TJPROJ5/META_ASS/script/yuxi/Share/ncbi-blast-2.14.0+/bin:$PATH

mkdir -p sams
mkdir -p bowtie2
mkdir -p profiles
for f in fastq/SRS*
do
    echo "Running MetaPhlAn on ${f}"
    bn=$(basename ${f})
    metaphlan ${f} --input_type fastq -s sams/${bn}.sam.bz2 --bowtie2out bowtie2/${bn}.bowtie2.bz2 -o profiles/${bn}_profiled.tsv
done

mkdir -p consensus_markers
sample2markers.py -i sams/*.sam.bz2 -o consensus_markers -n 8

mkdir -p db_markers
extract_markers.py -c t__SGB1877 -o db_markers/

mkdir -p output
strainphlan -s consensus_markers/*.pkl -m db_markers/t__SGB1877.fna -r reference_genomes/G000273725.fna.bz2 -o output -n 8 -c t__SGB1877 --mutation_rates

add_metadata_tree.py -t output/RAxML_bestTree.t__SGB1877.StrainPhlAn4.tre -f fastq/metadata.txt -m subjectID --string_to_remove .fastq.bz2

plot_tree_graphlan.py -t output/RAxML_bestTree.t__SGB1877.StrainPhlAn4.tre.metadata -m subjectID

  • 测试路径:/TJPROJ1/META_ASS/PreSaleEvaluation/StrainPhlAn

客户需求:三个亲本,每个亲本有3个子代,还有三个沙子数据。假如A母体子代A1还有大肠杆菌,我想知道A1的大肠杆菌是来自沙子,还是母体,菌群溯源分析? 文献(Metagenomic analysis of mother-infant gut microbiome reveals global distinct and shared microbial signatures)中是这样描述:“The strains were considered to be shared by infants with their mothers if the strain distance of mother–infant dyads was less than the conservative threshold of 0.1, otherwise, the strain was identified to be distinct.”,母婴对的菌株距离小于保守阈值0.1,则认为这些菌株是由婴儿与其母亲共享,对于文件中使用的方法,使用MetaPhlan对微生物物种数据进行鉴定,通过SNP calling方法(使用StrainPhlAn获得每个优势菌株在各个样本中的SNP,该优势菌株需要在获得MetaPhlAn后进行指定,提取关注物种在MetaPhlAn中数据库的基因组信息作为参考基因组与各个样本序列做SNP)使用RaxML为每个菌株生成一种特定的系统发育树,该发育树可以观察具体物种在母婴间的距离,从而判断来源。由于StrainPhlAn官方示例提供的脚本运行时无法筛选得到满足条件的有效样本数据,只能通过官方示例结果进行初步窥视,最终得到output/RAxML_bestTree.t__SGB1877.StrainPhlAn4.tre的结果内容,客户可基于该结果进行解读查看不同样本间的距离情况;另外:该分析结果不依赖宏基因组标准分析结果数据,需要额外执行MetaPhlan、StrainPhlAn等分析软件。

strainphlan.txt · 最后更改: 2024/11/05 09:04 由 yuxi