Supprimer redondance fichier

Fermé
Nifaste - 15 févr. 2012 à 09:29
 Nifaste - 15 févr. 2012 à 17:36
Bonjour à tous,

J'ai un problème avec la manipulation d'un fichier.
Il se présente sous cette forme :

>pi1
ATGCGTGAAATGCAT
>pi2
TGCCCTGATAGGGACCAGTAGAC
>pi3
ATGCGTGAAATGCATA
>pi4
TGCATGACTA
>pi5
ATGCGTGAAATGCATAT

J'ai mis en gras les séquences ayant la même suite de lettre, et je souhaite garder seulement la plus longue séquence, donc mon nouveau fichier :
>pi5
ATGCGTGAAATGCATAT
>pi2
TGCCCTGATAGGGACCAGTAGAC
>pi4
TGCATGACTA

Je n'ai aucune idée de comment faire ce genre de chose, quelqu'un pourrait m'aider ?

Merci d'avance.

A voir également:

2 réponses

dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
15 févr. 2012 à 10:55
hello
la séquence ATGCGTGAAATGCAT est-elle fixe et de longueur constante, ou ça peut etre n'importe quelle séquence et de longueur variable ?
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 418
15 févr. 2012 à 10:59
Salut,

Si j'ai bien compris il ne veut garder que l'occurrence la plus longue de chaque séquence présente dans son fichier ;-\

cf son exemple de fichier final (je cite) :

donc mon nouveau fichier :
>pi5
ATGCGTGAAATGCATAT
>pi2
TGCCCTGATAGGGACCAGTAGAC
>pi4
TGCATGACTA
0
ca peut etre n'importe quelle sequence, là c'est un exemple ! et de longueur variable oui ....
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
15 févr. 2012 à 16:07
sur quelle longueur faut-il tester, parce qu'on peut dire que pi2 et pi4 commencent par TGC donc on ne devrait garder que pi4
0
en fait il faut que la séquence complète soit comprise, donc il aurait fallu que pi4 soit complètement dans pi2 ...
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 418
15 févr. 2012 à 17:23
Mais il n'y a pas une longueur minimale ?
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
Modifié par dubcek le 15/02/2012 à 17:25
Ca marche pour cet exmple en testant les 6 premiers caractères.
A tester plus.
$ awk '/^>/ {x=$0} /^[A-Z]/ {print $0 , x}' fichier | sort -r | uniq -w 6 | awk '{print $2 "\n" $1}'  
>pi2  
TGCCCTGATAGGGACCAGTAGAC  
>pi4  
TGCATGACTA  
>pi5  
ATGCGTGAAATGCATAT  
$   
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 418
15 févr. 2012 à 17:26
J'avais la même chose avec "sed" mais sur 5 caractères ;-))

$ sed 'N;s/\n/ /' plop | sort -r -k2 | uniq -f 1 -w 5 | sed 's/ /\n/'
>pi2
TGCCCTGATAGGGACCAGTAGAC
>pi4
TGCATGACTA
>pi5
ATGCGTGAAATGCATAT

$ 
0
Merci je vais voir ce que ca donne :)
0