栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

根据单独文件中的条目从FASTA文件中提取序列

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

根据单独文件中的条目从FASTA文件中提取序列

尝试这个:

f2 = open('accessionids.txt','r')f1 = open('fasta.txt','r')f3 = open('fasta_parsed.txt','w')AI_DICT = {}for line in f2:    AI_DICT[line[:-1]] = 1skip = 0for line in f1:    if line[0] == '>':        _splitline = line.split('|')        accessorIDWithArrow = _splitline[0]        accessorID = accessorIDWithArrow[1:-1]        # print accessorID        if accessorID in AI_DICT: f3.write(line) skip = 0        else: skip = 1    else:        if not skip: f3.write(line)f1.close()f2.close()f3.close()

先简单介绍一下这是怎么回事......这里

accessionids.txt
是你的 文件2 ,而
fasta.txt
为你的 文件1
。显然,您需要用代码中的实际文件名替换这些文件名。

首先,我们创建一个字典(有时称为哈希或关联数组),并为 文件2中的 每个Accession ID创建一个条目,其中 为Accession
ID,并且 设置为1(这并不意味着该值确实很重要)在这种情况下)。

接下来,我们查看 文件1,
然后再次查看该文件中的每一行。如果文件中的行以开头,

>
那么我们知道它包含一个登录ID。我们将这一行并沿分割,
|
因为每个具有Accession
ID的行在
|
字符串中都会有一个。接下来,按照的指定进行分割的第一部分
_splitline[0]
。我们
accessorIDWithArrow[1:-1]
用来截断字符串中的第一个和最后一个字符,它们是
>
前面的符号和后面的空白。

此时,

accessorID
现在包含我们希望从 文件2 获得的格式的登录ID 。

接下来,我们检查之前创建并填充的词典是否将此访问ID定义为键。如果是这样,我们立即将具有登录ID的行写入新文件

fasta_parsed.txt
,并将
skip
‘flag’变量设置/重置为
0
。然后,
else
包含该
ifnot skip
段的语句将允许与我们发现要打印到
fasta_parsed.txt
文件的登录号关联的后续行。

对于保藏ID从 文件1 不在字典中(未在发现 文件2
),我们没有行写入

fasta_parsed.txt
和我们设置
skip
标志为0。因此,直到另一个登录ID是在发现 文件1 中存在的
文件2 ,所有后续行都将被跳过。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/517017.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号