cortar secuencia en tramos
Publicado por Eduardo (25 intervenciones) el 22/08/2018 19:13:21
Hola a todos, quiero cortar una secuencia en unos 4 tramos dependiendo del len, he intentado algo pero creo que no es lo correcto:
creo que podría haber otra solución usando talvez con un bucle interno? pero python no tiene do..while. Necesitaría hacer lo mismo para secuencias de miles de letras cortándola de 100 en 100 o de 500 en 500 para graficar el porcentaje de GC de tramo en tramo:
Alguien podría darme una mano por favor?¿Cómo uso otro bulce para reducir o simplificar todo este código, es decir no escribir[ t:t*2],[t: t*3] que me parece no es correcto y lo haría muy largo?
Muchas gracias y un saludo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
adn=("TGGTTGCAAGAGATCATGACAGGGGGAATTGGTTGAAAATAAATATATCGCCAGCAGCAGAGATTACGTCTGGTTGCAAGAGATCATGACAGGGGGAATTGGTTGAAAATAA")
t= l // 4 #redondeo la división
for i in adn:
sec1=adn[0:t]
sec2=adn[t:t*2]
sec3=adn[t*2:t*3]
print sec1
print sec2
print sec3
creo que podría haber otra solución usando talvez con un bucle interno? pero python no tiene do..while. Necesitaría hacer lo mismo para secuencias de miles de letras cortándola de 100 en 100 o de 500 en 500 para graficar el porcentaje de GC de tramo en tramo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
sec1=adn[0:100]
g1=sec1.count("G")
c1=sec1.count("C")
p1= 100*(g1+c1)/float(len(adn))
sec2=adn[101:200]
g2=sec2.count("G")
c2=sec2.count("C")
p2= 100*(g2+c2)/float(len(adn))
sec3=adn[201:300]
g3=sec3.count("G")
c3=sec3.count("C")
p3= 100*(g3+c3)/float(len(adn))
sec4=adn[301:400]
g4=sec4.count("G")
c4=sec4.count("C")
p4= 100*(g4+c4)/float(len(adn))
sec5=adn[401:500]
g5=sec5.count("G")
c5=sec5.count("C")
p5= 100*(g5+c5)/float(len(adn))
sec6=adn[501:540]
g6=sec6.count("G")
c6=sec6.count("C")
p6= 100*(g6+c6)/float(len(adn))
print p1,p2,p3,p4,p5,p6
plt.plot([100,200,300,400,500,600],[p1,p2,p3,p4,p5,p6])
plt.ylabel('Porcentaje')
plt.xlabel('Nucleotidos')
plt.show()
Alguien podría darme una mano por favor?¿Cómo uso otro bulce para reducir o simplificar todo este código, es decir no escribir[ t:t*2],[t: t*3] que me parece no es correcto y lo haría muy largo?
Muchas gracias y un saludo
Valora esta pregunta


0