Cómo calcula Python la longitud de la secuencia
Según su pregunta anterior, suponga que sus datos se ajustan a este formato: >SeqName1
Seq1
>SeqName2
Seq2
...
No es necesario que Seq1 ocupe solo una línea (es decir, se permiten nuevas líneas). Si Seq siempre ocupa solo una línea, de hecho, las líneas impares son los nombres y las líneas pares son la secuencia en sí. La lectura no debería ser demasiado simple...
La siguiente es una. implementación sencilla. Teniendo en cuenta que el archivo puede ser grande, utilice la iteración para leer los datos uno por uno. Los archivos más pequeños se pueden implementar directamente usando expresiones de lista - -.
El proceso al recorrer el archivo:
Si la línea actual comienza con '>', guárdela como k (nombre de secuencia), hasta que se encuentren todas las líneas hasta el siguiente nombre de secuencia. , Complete v (secuencia). Cuando se vuelve a encontrar la línea que comienza con '>', (k, v) se almacena en el diccionario y v se borra. Además, se incluyen detalles de implementación. Los comentarios son demasiado prolijos. Si tienes alguna duda, por favor pregunta. fileFa?=?open("SEQ.FASTA",?"r")
dic,?k,?v?=?{},?'',?[]
for?i?in?fileFa:
if?i.startswith('>'):?
dic[k]?=?v?
k?=?i[1:-1]?
v?=?[]
otro:
v.append(i) p>
dic[k]?=?v
dic.pop('')
imprimir?"%s?secuencias?en?total"?%?len (dic)
for?(k,?v)?in?dic.items():
print("SECUENCIA:?%s\nLENGTH:%s"?% ?(k,?sum(map(len,?v))))
Usando las 4 secuencias proporcionadas en su pregunta anterior, el resultado es el siguiente: 4?sequences?in?total
SECUENCIA:?qwe56_44514
DURACIÓN:98
SECUENCIA:?qwe56_44606
DURACIÓN:82
SECUENCIA:?qwe56_44424 p>
LARGO:43
SECUENCIA:?qwe56_869
LARGO:39