<p>一般来说,phylip是不同程序之间系统发育最复杂的格式。有严格的phylip格式和放松的phylip格式等。。。t不容易知道所使用的分隔符、空格字符和/或回车符</p>
<p>我认为您似乎在分类单元的名称(即序列标签)和序列名称之间留了一个空格,即</p>
<pre><code>2. esv2
</code></pre>
<p>Phylip格式正在监视标签和序列数据之间的空间。在本例中,序列长度为3bp。使用“.”通常也不是一个好主意。整数似乎不表示行号</p>
<p>另一个问题是,您可以/应该尝试将序列与标签保持在同一行,并删除回车符,即</p>
<pre><code>esv2 TACGGAGGGTGCAAGCGTTATCCGGATTCACTGGGTTTAAAGGGTGCGTAGGTGGGTTGGTAAGTCAGTGGTGAAATCTCCGAGCTTAACTTGGAAACTGCCATTGATACTATTAATCTTGAATATTGTGGAGGTTAGCGGAATATGTCATGTAGCGGTGAAATGCTTAGAGATGACATAGAACACCAATTGCGAAGGCAGCTGGCTACACATATATTGACACTGAGGCACGAAAGCGTGGGGATCAAACAGG
</code></pre>
<p>有时回车符不起作用(这可能是phylip格式),传统格式使用空格字符“”。我总是保持统一数量的空格来保持对齐。。。不确定是否需要这样做</p>
<p><em>注意</em>如果分类单元名称超过10个字符,则需要宽松的phylip格式,这种格式在任何情况下都是一个好主意</p>
<p>最终的解决方案是,所有其他失败的都是转换为fasta,作为fasta导入,然后转换为phylip。如果这一切都失败了。。。回来后还有更多的问题需要解决</p>
<hr/>
<p>Fasta格式删除“23 254”标题,然后每个序列如下所示</p>
<pre><code>>esv2
TACGGAGGGTGCAAGCGTTATCCGGATTCACTGGGTTTAAAGGGTGCGTAGGTGGGTTGGTAAGTCAGTGGTGAAATCTCCGAGCTTAACTTGGAAACTGCCATTGATACTATTAATCTTGAATATTGTGGAGGTTAGCGGAATATGTCATGTAGCGGTGAAATGCTTAGAGATGACATAGAACACCAATTGCGAAGGCAGCTGGCTACACATATATTGACACTGAGGCACGAAAGCGTGGGGATCAAACAGG
</code></pre>
<p>在“>;esv2”和序列之间始终存在回车符。此外,始终存在“>;”作为标签(分类单元名称)的前缀,无任何spae。您可以简单地通过Python中的reg ex或“re”进行转换。使用perl单行程序,它将是<code>s/^([az]+[0-9]+)/>$1/g</code>类型的代码。我敢肯定,他们将是一个在线网站,将做到这一点</p>
<p>然后,只需在import命令中将“phylip”替换为“fasta”。一旦导入,您要求BioPython转换为您想要的任何格式,它应该不会有任何问题</p>