【发布时间】:2016-12-06 22:53:00
【问题描述】:
我正在尝试从文件中的 DNA 序列中发现以 ASCII 编码的文本。
下面是我的代码:
首先是打开FASTA文件,set是一个变量。
with open("/home/<username>/python/progseq") as mydnaseq:
sequence = mydnaseq.read().replace('\n','')
第二位是将序列转换为二进制,并将字母 C 和 G/T 转换为等于 1:
binarysequence = sequence.replace('A','0')
然后我拿了这个loooooong二进制序列,想把它变成8bits:
for i in range(0,len(binarysequence),8):
binarysequence [i:i+8]
然后创建了这样的输出:
'00110100'
'00110010'
'01000110'
'00011000'
'0'
虽然我的输出要长得多,但我只包含了序列的最后四个。
想知道如何将其转换为字母。
【问题讨论】:
-
您可以使用
sequence.encode()将 ASCII 字符串转换为二进制(字节)。该函数将每个字符替换为其 8 位 ASCII 字符码。例如,“A”变为 65。但是您接下来打算如何处理这些位? -
您好@DYZ,感谢您的回复。我想用相应的 ASCII 字符替换这一系列 8 位(不仅仅是这四个),因为我被告知它应该揭示一首诗。我只是不知道如何使用并且想知道是否使用 encode() 或 decode() 或者是否有不同的方法。我希望我说得通。我是编程世界的新手。
-
我不应该使用 ord() 而是相应地翻译每个字母 ([A,C=0][T,G=1])。我只是不确定现在从哪里开始。
标签: python decode encode translate binascii