这是我关于堆栈溢出的第一个问题,所以如果我的问题格式不正确,我想先道歉。我不是特别有经验的编码,但我正在努力解决一个具体的问题,我的工作。在
我正在尝试替换一个大的fasta文件的头文件(用于对齐DNA序列)。我有一个包含fasta对齐的txt文件(对齐.txt),其内容如下:>418035201_b1_168_m12_gag__Assembly_8
ATGGGTGCGAGAGCGTCAGTATTAAGTGGGGGAAA......
>418035201_b1_168_m12_gag__Assembly_19
ATGGGTGCGAGAGCGTCAGTATTAAGTGGGGGAAA......
我还有一个包含所需名称的文本文件(新标题.txt),其内容如下:
^{pr2}$
我正在尝试替换对齐.txt包含新标题的文件新标题.txt文件。在
我有一个包含以下内容的python脚本:#!/usr/bin/env python
fasta= open('alignment.txt','r')
newnames= open('newheaders.txt','r')
newfasta= open('newfasta.txt', 'w')
for line in fasta:
if line.startswith('>'):
newname= newnames.readline()
newfasta.write(newname)
else:
newfasta.write(line)
print line
fasta.close()
newnames.close()
newfasta.close()
运行此程序时,我得到以下输出:>418035201_pM_s38_B168_m12_gag_c08_M13F_X00_consensus
䄊䝔䝇䝔䝃䝁䝁䝃䍔䝁䅔呔䅁呇䝇䝇䅇䅁呁䅔䅇䝔䅃䝔䝇䅁䅁䅁呔....
>418035201_pM_s38_B168_m12_gag_c19_M13F_X00_consensus
䄊䝔䝇䝔䝃䝁䝁䝃䍔䝁䅔呔䅁呇䝇䝇䅇䅁呁䅔䅇䝔䅃䝔䝇䝁䅁䅁呔....
“line”正在从罗马字符改为中文字符。它不应该是汉字,我也不知道为什么会这样!在
当“line”被打印到控制台时,它会正确地打印它。一、 eATGGGTGCGAGAGCGTCAGTATTAAGTGGGGGAAAATTAGATGCGTGGGAGAA....
所以我相信这一定和它的写作方式有关。在
如果有人能在这方面帮助我或提供一些见解,我将不胜感激,谢谢。在
[编辑:现在解决。见下文。谢谢大家!]在