麻烦高手帮忙编个小python程序,合并两种文件

我有几个DNA序列文件,形式是:>序列号序列例如:>ABC_abc_14CATCGAGGCGCAACAAGCTGTAAAGTCCATACGT这几个DNA序列文件分两类:第... 我有几个DNA序列文件,形式是:
>序列号
序列
例如:
>ABC_abc_14
CATCGAGGCGCAACAAGCTGTAAAGTCCATACGT

这几个DNA序列文件分两类:
第一类以序列名称命名,例如:FBtr0332750.fa,FBtr0333088.fa...(有很多文件)
还有一个sequence.txt文件,里面是有序列名程的序列。(只有一个文件)
现想将sequence.txt文件中与第一类文件序列名称相同的序列复制到第一类文件的开头,并简化名称,只保留"序列号"_"name=后面的名字"。例如:

FBtr0333088.fa 文件打开为:
>ABC_abc_14
CATCGAGGCGCAACAAGCTGTAAAGTCCATACGTAAACAACAACTCGTTGAGGTGCGATCAATGGCTTACCGAAAACATAACCGATGAGGTGCGCG
>DEF_def_830
ACGGTGTTGTCCTCGTTCAACAGGATCGCCGCGACGCCGGCGAACATCTTCTTAAAGTGCTTCTGCAGCAGGCGCTCCAGGGAGCGCTGGACTGCAGGAATGTTGAG

sequence.txt 文件打开为:
>FBtr0333088 type=mRNA; loc=2L:complement(8054380..8071624); ID=FBtr0333088; name=poe-RB; dbxref=REFSEQ:NM_001273293,FlyBase:FBtr0333088,FlyBase_Annotation_IDs:CG14472-RB; score=11; score_text=Strongly Supported; MD5=a0e2317c56db60a07aba669fa42100f4; length=16158; parent=FBgn0011230; release=r5.54; species=Dmel;
CACAGTAGGCCGAGTACTCAGTACTATCGGGCAAATTGACGAGATTATTT
AAACAATAATGTCGGCCCACAGCGGCGGAACGGATTGGAATTCCGTTGTT

希望得到的最终文件为:FBtr0333088.fa

>FBtr0333088_poe-RB
CACAGTAGGCCGAGTACTCAGTACTATCGGGCAAATTGACGAGATTATTT
AAACAATAATGTCGGCCCACAGCGGCGGAACGGATTGGAATTCCGTTGTT
>ABC_abc_14
CATCGAGGCGCAACAAGCTGTAAAGTCCATACGTAAACAACAACTCGTTGAGGTGCGATCAATGGCTTACCGAAAACATAACCGATGAGGTGCGCG
>DEF_def_830
ACGGTGTTGTCCTCGTTCAACAGGATCGCCGCGACGCCGGCGAACATCTTCTTAAAGTGCTTCTGCAGCAGGCGCTCCAGGGAGCGCTGGACTGCAGGAATGTTGAG

若哪位高手能帮帮小女子,感激不尽!
展开
 我来答
hhanw
2014-01-03 · TA获得超过193个赞
知道小有建树答主
回答量:239
采纳率:0%
帮助的人:201万
展开全部

实现思路: 逐行读取sequence.txt文件, 若以'>'开头则发现新文件, 拆分字符串获取文件名. 然后备份该文件, 清空该文件, 从sequence.txt中读取DNA序列存入该文件. 最后关闭文件. (待合并的文件放置于同一目录下,由spth变量记录该目录)

追问
太谢谢了!能否再麻烦您在合并之后的文件中,可以在第一个序列新合并进来的序列后面加一个回车吗?也就是在例子中>ABC_abc_14可以另起一行。麻烦您了!
追答
在我这里没问题,系统环境win7,IDLE Python 3.3.2.
建议在程序的适当地方添加上
fil.write('\n')
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式