Bonjour à tous,

J'ai un fichier de type
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
Cluster0 CAGCCGCGTTATA 2
Cluster1 aacaggcacagtcagtgctacAGTTCTTACAGCCGCGTTATa 75
Cluster2 CAGGCACAGTCAGTGCTACAGTTCTTACAGCCGCGTTAGCTA 1
Cluster3 CAACAGGCACAGTCAGTGCTACAGTTCTTACAGCCGCTTATA 1
Cluster4 GCCGCGTTATA 1
Cluster5 TATA 1
Cluster6 TCAGTGCTACAGTTCTTACAGCCGCGTTAGTA 1
Cluster7 CAGTCAAGTGCGTACCAGTTCTTACGCCGCGTTATA 1
Cluster8 GTCTTACAGCGCGTTATA 1
Cluster9 CGCCGCGTTATA 1
Cluster10 ACAGGCACAGTCAGTGCTACAGTTCTTACAGCCGCGTTTATA 1
Cluster11 CTACAGTTCTTACGCGCGTTATA 1
Cluster12 TTA 1
Cluster13 TCAGTGCTACAGTTCTTACAGCGCGTTAGTA 1
Cluster14 CAGGCACAGTTCAGTGCTACAGTTCTTACAGCCGGCGTTATA 1
Cluster15 TTCTTACAGCGCGTTATA 1
Cluster16 GTTCTTACAGCCGCGTTATA 1
Cluster17 CAACAGCACAGTCAGTGCTACAGTCCTTACAGCCGCGTTATA 1
Mon problème est le suivant :
je souhaite pouvoir conserver les séquences différentes au niveau des lettres sans tenir compte de la longueur ni de la casse,
je souhaite aussi conserver le chiffre associé aux séquences.

Dans cet exemple, les seq 0 et 16 peuvent être éliminées, car elles matchent avec la 1; la 17, par contre, est différente de la 1, et est donc à garder.

Idéalement le fichier voulu ressemblerait à ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Cluster1 aacaggcacagtcagtgctacAGTTCTTACAGCCGCGTTATa 75
Cluster2 CAGGCACAGTCAGTGCTACAGTTCTTACAGCCGCGTTAGCTA 1
Cluster3 CAACAGGCACAGTCAGTGCTACAGTTCTTACAGCCGCTTATA 1
Cluster6 TCAGTGCTACAGTTCTTACAGCCGCGTTAGTA 1
Cluster7 CAGTCAAGTGCGTACCAGTTCTTACGCCGCGTTATA 1
Cluster8 GTCTTACAGCGCGTTATA 1
Cluster9 CGCCGCGTTATA 1
Cluster10 ACAGGCACAGTCAGTGCTACAGTTCTTACAGCCGCGTTTATA 1
Cluster11 CTACAGTTCTTACGCGCGTTATA 1
Cluster12 TTA 1
Cluster13 TCAGTGCTACAGTTCTTACAGCGCGTTAGTA 1
Cluster14 CAGGCACAGTTCAGTGCTACAGTTCTTACAGCCGGCGTTATA 1
Cluster15 TTCTTACAGCGCGTTATA 1
Cluster17 CAACAGCACAGTCAGTGCTACAGTCCTTACAGCCGCGTTATA 1
et le fichier serait ensuite amélioré en définissant une longueur et en mettant des tirets pour les aligner.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Cluster1 ----------------aacaggcacagtcagtgctacAGTTCTTACAGCCGCGTTATa 75
Cluster2 CAGGCACAGTCAGTGCTACAGTTCTTACAGCCGCGTTAGCTA 1
Cluster3 CAACAGGCACAGTCAGTGCTACAGTTCTTACAGCCGCTTATA 1
Cluster6 ---------------------TCAGTGCTACAGTTCTTACAGCCGCGTTAGTA 1
Cluster7 -------------CAGTCAAGTGCGTACCAGTTCTTACGCCGCGTTATA 1
Cluster8 --------------------------------------------------GTCTTACAGCGCGTTATA 1
Cluster9 --------------------------------------------------------------CGCCGCGTTATA 1
Cluster10 ACAGGCACAGTCAGTGCTACAGTTCTTACAGCCGCGTTTATA 1
Cluster11 ---------------------------------------CTACAGTTCTTACGCGCGTTATA 1
Cluster12 -------------------------------------------------------------------------------TTA 1
Cluster13 -----------------------TCAGTGCTACAGTTCTTACAGCGCGTTAGTA 1
Cluster14 -CAGGCACAGTTCAGTGCTACAGTTCTTACAGCCGGCGTTATA 1
Cluster15 --------------------------------------------------TTCTTACAGCGCGTTATA 1
Cluster17 CAACAGCACAGTCAGTGCTACAGTCCTTACAGCCGCGTTATA 1
Je ne sais pas trop comment procéder pour automatiser le process. J'ai commencé par faire des alignements (avec bwa) pour me lancer dans un script qui éliminerait les différences de taille pour le même alignement, mais c'est assez lourd.
On m'a dit que le langage awk pourrait me faciliter la tache

Qu'en pensez vous ? Je ne connais pas awk, pourrais je avoir quelques pistes ?

Merci pour votre aide!