Mafft仅使用Python创建一个文件

妮可

所以我正在做一个项目,以对齐序列ID及其代码。给我一个条形码文件,其中包含DNA序列的标签,即TTAGG。然后有几个标签(ATTAC,ACCAT等)从序列文件中删除并带有seq ID。例子:

sequence file --> SEQ 01  TTAGGAACCCAAA
barcode file --> TTAGG

我想要的输出文件将删除条形码,并使用它来创建新的fasta格式文件。示例:testfile.TTAGG,该文件在打开时应具有

>SEQ01
AACCCAAA

这些文件有几个。我想获取创建并运行它们的每个文件mafft,但是运行脚本时,它只集中于的一个文件mafft我上面提到的文件可以正常mafft运行,但是在运行时,它仅运行最后创建的文件。

这是我的脚本:

#!/usr/bin/python

import sys
import os

fname = sys.argv[1]
barcodefname = sys.argv[2]

barcodefile = open(barcodefname, "r")
for barcode in barcodefile:
        barcode = barcode.strip()
        outfname = "%s.%s" % (fname, barcode)
        outf = open(outfname, "w+")
        handle = open(fname, "r")
        mafftname = outfname + ".mafft"
        for line in handle:
                newline = line.split()
                seq = newline[0]
                brc = newline[1]
                potential_barcode = brc[:len(barcode)]
                if potential_barcode == barcode:
                        outseq = brc[len(barcode):]
                        barcodeseq = ">%s\n%s\n" % (seq,outseq)
                        outf.write(barcodeseq)
        handle.close()
        outf.close()
cmd = "mafft %s > %s" % (outfname, mafftname)
os.system(cmd)
barcodefile.close()

我希望这很清楚!请帮忙!我尝试更改缩进量,并在关闭文件时进行调整。在大多数情况下,它根本不会制作.mafft文件,有时它会制作文件,但不会放任何东西,但是大多数情况下,它仅适用于最后创建的文件。

示例:代码的开头将创建文件,例如-

testfile.ATTAC
testfile.AGGAC
testfile.TTAGG

然后在运行mafft时仅创建testfile.TTAGG.mafft(使用正确的输入)

我尝试关闭outf文件,然后再次打开它,它告诉我我正在强制它。我已更改为outf仅写文件,没有任何更改。

ODiogoSilva

mafft只对齐最后一个文件的原因是因为其执行不在循环中。

如代码所示,您在循环的每个迭代中都创建一个输入文件名变量(outfname),但此变量始终在下一个迭代中被覆盖。因此,当您的代码最终到达mafft执行命令时,outfname变量将包含循环的最后一个文件名。

要解决此问题,只需在循环内插入mafft执行命令:

#!/usr/bin/python

import sys
import os

fname = sys.argv[1]
barcodefname = sys.argv[2]

barcodefile = open(barcodefname, "r")
for barcode in barcodefile:
        barcode = barcode.strip()
        outfname = "%s.%s" % (fname, barcode)
        outf = open(outfname, "w+")
        handle = open(fname, "r")
        mafftname = outfname + ".mafft"
        for line in handle:
                newline = line.split()
                seq = newline[0]
                brc = newline[1]
                potential_barcode = brc[:len(barcode)]
                if potential_barcode == barcode:
                        outseq = brc[len(barcode):]
                        barcodeseq = ">%s\n%s\n" % (seq,outseq)
                        outf.write(barcodeseq)
        handle.close()
        outf.close()
        cmd = "mafft %s > %s" % (outfname, mafftname)
        os.system(cmd)

barcodefile.close()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Python创建一个空的HTML文件?

来自分类Dev

创建一个仅上传到在线表单的文件

来自分类Dev

Makefile仅创建第一个文件

来自分类Dev

Flask 从子过程重定向 - 仅使用 python 创建一个等待页面

来自分类Dev

如何创建仅包含一个元素的Python集?

来自分类Dev

如何使用SQLAlchemy仅创建一个表?

来自分类Dev

仅使用微调器(在中间)创建一个progressDialog

来自分类Dev

使用Flask + SqlAlchemy仅创建一个表

来自分类Dev

仅使用微调器(在中间)创建一个progressDialog

来自分类Dev

仅使用一个变量创建此序列

来自分类Dev

使用Apache Beam Python`WriteToFiles`转换,每个窗口仅写入一个文件

来自分类Dev

使用Python解压缩二进制文件仅返回一个值

来自分类Dev

Python Popen仅下载一个文件

来自分类Dev

允许用户仅使用Plupload上传一个文件

来自分类Dev

允许用户仅使用Plupload上传一个文件

来自分类Dev

使用python仅将更新/新文件从一个文件夹复制到另一个文件夹

来自分类Dev

如何在Python中使用某人的名字并创建一个使用该名字写入的文件?

来自分类Dev

使用python-docx创建一个文档,其中标题仅显示在第一页上

来自分类Dev

使用vector emplace创建两个sdl窗口仅创建一个窗口

来自分类Dev

如何使用Linux / Python创建一个CSV文件派生列?

来自分类Dev

使用python中的字典元素从列表中创建一个csv文件

来自分类Dev

根据 csv 文件中的组创建一个列表,并使用 Python 传递给 SQL 查询

来自分类Dev

在一个文件中创建一个函数并从另一个文件访问它 - Python

来自分类Dev

python中的多进程仅使用一个进程

来自分类Dev

创建一个批处理以使用另一个文件的名称删除一个文件

来自分类Dev

创建一个从网站抓取文件的python程序

来自分类Dev

Python:创建一个空文件对象

来自分类Dev

试图在python中创建一个动态主机文件

来自分类Dev

在python中创建一个新的INI文件

Related 相关文章

  1. 1

    使用Python创建一个空的HTML文件?

  2. 2

    创建一个仅上传到在线表单的文件

  3. 3

    Makefile仅创建第一个文件

  4. 4

    Flask 从子过程重定向 - 仅使用 python 创建一个等待页面

  5. 5

    如何创建仅包含一个元素的Python集?

  6. 6

    如何使用SQLAlchemy仅创建一个表?

  7. 7

    仅使用微调器(在中间)创建一个progressDialog

  8. 8

    使用Flask + SqlAlchemy仅创建一个表

  9. 9

    仅使用微调器(在中间)创建一个progressDialog

  10. 10

    仅使用一个变量创建此序列

  11. 11

    使用Apache Beam Python`WriteToFiles`转换,每个窗口仅写入一个文件

  12. 12

    使用Python解压缩二进制文件仅返回一个值

  13. 13

    Python Popen仅下载一个文件

  14. 14

    允许用户仅使用Plupload上传一个文件

  15. 15

    允许用户仅使用Plupload上传一个文件

  16. 16

    使用python仅将更新/新文件从一个文件夹复制到另一个文件夹

  17. 17

    如何在Python中使用某人的名字并创建一个使用该名字写入的文件?

  18. 18

    使用python-docx创建一个文档,其中标题仅显示在第一页上

  19. 19

    使用vector emplace创建两个sdl窗口仅创建一个窗口

  20. 20

    如何使用Linux / Python创建一个CSV文件派生列?

  21. 21

    使用python中的字典元素从列表中创建一个csv文件

  22. 22

    根据 csv 文件中的组创建一个列表,并使用 Python 传递给 SQL 查询

  23. 23

    在一个文件中创建一个函数并从另一个文件访问它 - Python

  24. 24

    python中的多进程仅使用一个进程

  25. 25

    创建一个批处理以使用另一个文件的名称删除一个文件

  26. 26

    创建一个从网站抓取文件的python程序

  27. 27

    Python:创建一个空文件对象

  28. 28

    试图在python中创建一个动态主机文件

  29. 29

    在python中创建一个新的INI文件

热门标签

归档