Bonjour à tous,
Je sollicite la communauté Linux car je suis devant un problème dont voici un court extrait de fichier:
J'ai un tableau avec 1 million de lignes et 300 colonnes. Les colonnes de référence sont CHROM (Lu01), POS(n°), REF(A,G, C ou T) ALT(A, G, C ou T et les combinaisons sont possible) puis celles de mes échantillons à modifier sont les suivantes (ech1, ech2...)
Mon objectif: Si dans mes colonnes ech1, ech2...
- je trouve le motif ./.:...., alors je remplace cette case par celle la case de la colonne REF
- Dans le cas ou j'ai sur un mème ligne 1/1 et 2/2, alors j'ai dans ma colonne ALT, 2 lettres séparées par une virgule. les cases 1/1 devront prendre la valeur de la lettre avant la virgule, et les case 2/2 la valeur après la virgule
- je trouve uniquement le motif 1/1 sur une même ligne...., alors je remplace cette case par celle la case de la colonne ALT.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 CHROM POS REF ALT ech1 ech2 ech3 Lu01 10 G A 1/1:99:30:30:2:27:90%:1,5465E-14:37:36:2:0:27:0 1/1:99:37:37:5:31:83,78%:1,6935E-15:37:37:5:0:31:0 1/1:18:4:4:0:4:100%:1,4286E-2:0:37:0:0:4:0 Lu03 15 G A 1/1:99:42:42:3:39:92,86%:8,4519E-21:37:37:3:0:39:0 ./.:.:.:.:.:.:.:.:.:.:.:.:.:. 1/1:18:4:4:0:4:100%:1,4286E-2:0:37:0:0:4:0 Lu10 32 C T ./.:.:.:.:.:.:.:.:.:.:.:.:.:. ./.:.:.:.:.:.:.:.:.:.:.:.:.:. ./.:.:.:.:.:.:.:.:.:.:.:.:.:. Lu01 33 G T,C ./.:.:.:.:.:.:.:.:.:.:.:.:.:. ./.:.:.:.:.:.:.:.:.:.:.:.:.:. 2/2:24:5:5:0:5:100%:3,9683E-3:0:37:0:0:5:0 Lu02 34 G T ./.:.:.:.:.:.:.:.:.:.:.:.:.:. ./.:.:.:.:.:.:.:.:.:.:.:.:.:. 1/1:99:47:47:5:41:87,23%:5,7183E-21:37:36:5:0:41:0
Avez vous des idées ?
Vous trouverez en PJ l'extrait du fichier pour une meilleure visualisation
Merci bcp :-)
Partager