remplacer plusieurs caractères dans un texte à une position donnée
Bonjour,
Je souhaite remplacer les bases A et G situé dans une position précise par T dans une séquence donnée
Je souhaite remplacer les A et G par T pour les positions entre 11-20; 34-57 et 105-116
fichier de la séquence
Code:
1 2 3
|
>seq
CGCCTGACTGGAGGCGGATCCAGCCGGCCAGCTGCCTCTCTGGAGCCCAGCTCTTGGGCCCCCTGCACTCACCTGCTCTTCCTGGGCTGGCTGTCTCCTGCTCATCCAGCCATGCGGT |
fichier position
Ainsi obtenir au final :
Code:
1 2
|
CGCCTGACTGNNNNNNNNNNCAGCCGGCCAGCTNNNNNNNNNNNNNNNNNNNNNNNNGCCCCCTGCACTCACCTGCTCTTCCTGGGCTGGCTGTCTCCTGCTCANNNNNNNNNNNN |
Ce que j'ai fait :
J'extrais les sous-séqueces correspondant aux différentes positions puis je remplace A et G par T dans ses sous séquences. Mais, je coince car je n'ai pas la séquence finale
Code:
1 2 3 4 5 6 7 8 9 10 11
|
for line in open(file_position):
line = line.replace('\n', '')
element = line.split("\t")
start_results=int(element[1])
seq = ''.join(name2seq.values()) # séquence
sous_seq = seq[start_results-1:stop_results:1] # extraction de la sous-séquence
mask = {'A':'T','G':'T'}
print (''.join([ e.replace(e, mask[e]) for e in sous_seq]) |
Je pense que ce n'est pas la bonne méthode mais comment remplacer plusieurs caractère dans un texte à une position donnée?