Bonjour,
Je chercher à remplacer des chaines de caractères en fonction de plusieurs conditions, voilà mon code:
voilà le résulat:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 pos=[] ref=[] alt=[] test=[16842,'G','C'],[16844,'T','G'],[16839,'C','T'],[16830,'T','ACCCC'],[16820,'T','GCC'] test2=[] for x in test: pos.append(x[0]) ref.append(x[1]) alt.append(x[2]) fasta=open('rCRS.txt','r') seq="" name="" tmp=fasta.readlines() fasta.close() name=tmp[0][1:-1] count=0 newfa=[">",name,"\n"] for x in tmp[1:] : for y in x: count+=1 if count in pos: if y == 'G' and 'C' in alt: newfa.append('W') elif y == 'T' and 'G' in alt: newfa.append('Z') elif y == 'C' and 'T' in alt: newfa.append('Y') else: newfa.append(y) print ''.join(newfa)
Le problème est que la lettre Z (ma seconde condition) apparaît à trois reprises alors qu'elle devrait être présente seulement une seule fois....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 CTGGTTCCTACTTCAGGGTCATAAAGCCTAAATAGCCCACACGTZCCCCTTAAAZAAGAC ATYACWAZG
De même si j'ai par exemple ce motif 'ACCCC' je dois le remplacer à la position 16830 si on a bien un T dans notre fichier input..
Si quelqu’un à une idée?
encore merci pour votre aide.
Piotreee
Partager