关于python:如何检查给定文件是否为FASTA?

您所在的位置:网站首页 如何判断文件格式类型是否正确 关于python:如何检查给定文件是否为FASTA?

关于python:如何检查给定文件是否为FASTA?

#关于python:如何检查给定文件是否为FASTA? | 来源: 网络整理| 查看: 265

我正在设计一个需要在早期阶段之一输入.fasta文件的代码。 现在,我正在使用此功能验证输入:

12345678910111213def file_validation(fasta):     while True:         try:             file_name= str(raw_input(fasta))         except IOError:             print("Please give the name of the fasta file that exists in the folder!")             continue         if not(file_name.endswith(".fasta")):             print("Please give the name of the file with the .fasta extension!")         else:             break     return file_name

现在,尽管此功能可以正常工作,但就用户可能输入的文件(尽管文件名以.fasta结尾)可能在其中包含一些非.fasta内容的意义而言,仍有一些错误余地。 我应该怎么做才能防止这种情况并使用户知道他/她的.fasta文件已损坏?

相关讨论 编写Fasta解析器或在线查找现有解析器。 我自己对Fasta一无所知。 但是,在stackoverflow.com/a/7655072/131187上有一个可能对您有用的答案。 我会说,假设有道理,请尝试解析几百个字符。 如果解析成功,请接受文件。 @Kevin我尝试将Biopython SeqIO SeqIO.parse(file_name,fasta))用作条件树的一部分,以查看是否可以进行解析。 可悲的是,它不能警告用户该文件不是有效的.fasta文件。 这是你的意思吗? @BillBell很遗憾,我还没有完全了解您链接的代码的某些部分。 您是否认为我可以将其复制并粘贴到我的函数中,以便告知用户其文件不是正确的.fasta格式? 我知道您的问题已经回答!

为什么不仅仅像FASTA一样分析文件并查看它是否损坏?

使用biopython,它通过在非FASTA文件上返回空生成器而静默失败:

1234567891011from Bio import SeqIO my_file ="example.csv"  # Obviously not FASTA def is_fasta(filename):     with open(filename,"r") as handle:         fasta = SeqIO.parse(handle,"fasta")         return any(fasta)  # False when `fasta` is empty, i.e. wasn't a FASTA file is_fasta(my_file) # False 相关讨论 我试图弄清楚如何将以open(filename)....开始的代码部分集成到我的函数中,而Im很难使工作继续进行。 您是否认为我应该将其设为一个单独的函数,然后在原始验证函数中调用它? 这已经是一个独立的功能,因此您应该可以从验证功能中调用它。 您能说明您的意图吗? 我只是想确保我的代码没有中断,并且会继续提示用户输入有效答案。 最终,您的设置成功了! 非常感谢你。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3