我正在使用Python为我工作的实验室编程.如何切出给定字符串中的每3个字符并将其附加到列表中?
即XXXxxxXXXxxxXXXxxxXXXxxxXXX(其中X或x是任何给定的字母)
string = 'XXXxxxXXXxxxXXXxxxXXXxxxXXX'
mylist = []
for x in string:
string[?:?:?]
mylist.append(string)
Run Code Online (Sandbox Code Playgroud)
我希望列表看起来像这样:['XXX','xxx','XXX','xxx','XXX'......等等]
有任何想法吗?
我正在用Python编写一个简短的程序来读取FASTA文件,该文件通常采用以下格式:
>gi|253795547|ref|NC_012960.1| Candidatus Hodgkinia cicadicola Dsem chromosome, 52 lines
GACGGCTTGTTTGCGTGCGACGAGTTTAGGATTGCTCTTTTGCTAAGCTTGGGGGTTGCGCCCAAAGTGA
TTAGATTTTCCGACAGCGTACGGCGCGCGCTGCTGAACGTGGCCACTGAGCTTACACCTCATTTCAGCGC
TCGCTTGCTGGCGAAGCTGGCAGCAGCTTGTTAATGCTAGTGTTGGGCTCGCCGAAAGCTGGCAGGTCGA
Run Code Online (Sandbox Code Playgroud)
我已经创建了另一个程序来读取这个FASTA文件的第一行(又名标题),现在我希望第二个程序从序列开始读取和打印.
我该怎么办?
到目前为止我有这个:
FASTA = open("test.txt", "r")
def readSeq(FASTA):
"""returns the DNA sequence of a FASTA file"""
for line in FASTA:
line = line.strip()
print line
readSeq(FASTA)
Run Code Online (Sandbox Code Playgroud)
多谢你们
-菜鸟
我正在尝试计算给定DNA序列内的密码子频率.
例如:
sequence = 'ATGAAGAAA'
codons = ['ATG', 'AAG', 'AAA']
Run Code Online (Sandbox Code Playgroud)
密码子中的XX:
frequency = codons.count(XX)/(codons.count(XX)+codons.count(XX2)+codons.count(XX3))
Run Code Online (Sandbox Code Playgroud)
请注意,XX2和XX3并不总是在序列中.一些密码子可能有也可能没有多个密码子.
实施例:赖氨酸具有2个密码子,AAA和AAG
所以的频率
AAA = codons.count('AAA')/(codons.count('AAA') + codons.count('AAG'))
Run Code Online (Sandbox Code Playgroud)
我怎样才能为列表中的每个密码子做这个?我如何解释多个密码子?
我目前正在创建一个函数,该函数从其他函数读取数据并将其写入桌面上的文本文件.
def outputResults(filename):
"""This function serves to output and write the results from analyzeGenome.py to a text file \
Input: filename of output file, dictionary of codon frequencies, dictionary of codon counts \
GC-content, FASTA header, & sequence length
Output: Text file containing all the above """
outString = "Header = %s" %header
filename.write(outString)
outString2 = "Sequence Length = %.3F MB" % length
filename.write(outString2)
Run Code Online (Sandbox Code Playgroud)
当我这样做时,python在文本文件中一个接一个地打印行.如何打印到下一行并在行之间添加空格?