我想问一下如何获取存储在列表中的某些字符串的确切字母?我正在使用DNA字符串,使用BioPython SeqIO从FASTA文件中获取它们并将它们作为字符串存储在列表中。在下一步中,我将其转换为数字序列(称为基因组信号)。但作为Python的新手我不知道如何正确地从列表中获取它。我应该使用不同的数据类型吗?
在Maltab,我用过:
a=1+1i;c=-1-1i;g=-1+1i;t=1-1i; %base values definition
for i=1:number of sequences
length_of_sequence(i)=length(sequence{1,i});
temp=zeros(1,length_of_sequence(i),'double');
temp(sequence{i}=='A')=angle(a);
temp(sequence{i}=='C')=angle(c);
temp(sequence{i}=='G')=angle(g);
temp(sequence{i}=='T')=angle(t);
KontigNumS{i,1}=cumsum(temp); %cumulated phase of whole vector
end
是什么创建了一个向量并用相应的值替换零。 我无法找到类似的问题。谢谢你的回复。
我的python代码:
#Dependencies
from Bio import SeqIO #fasta loading
import cmath #complex numbers
import numpy as np
#Open FASTA file new variable
lengths=list()
sequences=list()
handle=open("F:\GC_Assembler_Python\xx.fasta","r")
for record in SeqIO.parse(handle, "fasta"):
print(record.id)
print(len(record.seq))
lengths.append(len(record.seq))
sequences.append(str(record.seq))
#Convert to genomic signals
a=complex(1,1)
c=complex(-1,-1)
g=complex(-1,1)
t=complex(1,-1)
I stopped here.
答案 0 :(得分:1)
我不知道MATLAB是如何做到的。在Python中,您可以访问字符串中的任何位置而无需转换为列表:
DNA = "ACGTACGTACGT"
print(DNA[2])
# outputs "G", the third base
如果要将“字符串存储在列表中”,可以执行以下操作:
DNA_list = ["AAAAAA", "CCCCC", "GGGGG", "TTTTT"]
print(DNA_list[0][0])
# outputs "A", the first "A" of the first sequence
print(DNA_list[1][0])
# outputs "C", the first "C" of the second sequence
答案 1 :(得分:0)
如果您使用以下内容,则可以将任何字符串转换为列表
list(The string)