#1 Le 05/01/2013, à 17:37
- laeti5690
Effacer du texte entre deux caractères
Bonjour, je possède un fichier texte sous forme fasta, et j'aimerai effacer tout le texte ce trouvant entre les caractères > et rRNA.
Voici un exemple du texte:
>ENST00000387461 mt_genbank_import:Mt_tRNA chromosome:GRCh37:MT:15956:16023:-1 gene:ENSG00000210196 gene_biotype:Mt_tRNA transcript_biotype:Mt_tRNA
CAGAGAATAGTTTAAATTAGAATCTTAGCTTTGGGTGCTAATGGTGGAGTTAAAGACTTT
TTCTCTGA
>ENST00000389680 mt_genbank_import:Mt_rRNA chromosome:GRCh37:MT:648:1601:1 gene:ENSG00000211459 gene_biotype:Mt_rRNA transcript_biotype:Mt_rRNA
AATAGGTTTGGTCCTAGCCTTTCTATTAGCTCTTAGTAAGATTACACATGCAAGCATCCC
CGTTCCAGTGAGTTCACCCTCTAAATCACCACGATCAAAAGGAACAAGCATCAAGCACGC
AGCAATGCAGCTCAAAACGCTTAGCCTAGCCACACCCCCACGGGAAACAGCAGTGATTAA
CCTTTAGCAATAAACGAAAGTTTAACTAAGCTATACTAACCCCAGGGTTGGTCAATTTCG
TGCCAGCCACCGCGGTCACACGATTAACCCAAGTCAATAGAAGCCGGCGTAAAGAGTGTT
TTAGATCACCCCCTCCCCAATAAAGCTAAAACTCACCTGAGTTGTAAAAAACTCCAGTTG
ACACAAAATAGACTACGAAAGTGGCTTTAACATATCTGAACACACAATAGCTAAGACCCA
AACTGGGATTAGATACCCCACTATGCTTAGCCCTAAACCTCAACAGTTAAATCAACAAAA
CTGCTCGCCAGAACACTACGAGCCACAGCTTAAAACTCAAAGGACCTGGCGGTGCTTCAT
ATCCCTCTAGAGGAGCCTGTTCTGTAATCGATAAACCCCGATCAACCTCACCACCTCTTG
CTCAGCCTATATACCGCCATCTTCAGCAAACCCTGATGAAGGCTACAAAGTAAGCGCAAG
TACCCACGTAAAGACGTTAGGTCAAGGTGTAGCCCATGAGGTGGCAAGAAATGGGCTACA
TTTTCTACCCCAGAAAACTACGATAGCCCTTATGAAACTTAAGGGTCGAAGGTGGATTTA
GCAGTAAACTAAGAGTAGAGTGCTTAGTTGAACAGGGCCCTGAAGCGCGTACACACCGCC
CGTCACCCTCCTCAAGTATACTTCAAAGGACATTTAACTAAAACCCCTACGCATTTATAT
AGAGGAGACAAGTCGTAACATGGTAAGTGTACTGGAAAGTGCACTTGGACGAAC
>ENST00000387347 mt_genbank_import:Mt_rRNA chromosome:GRCh37:MT:1671:3229:1 gene:ENSG00000210082 gene_biotype:Mt_rRNA transcript_biotype:Mt_rRNA
GCTAAACCTAGCCCCAAACCCACTCCACCTTACTACCAGACAACCTTAGCCAAACCATTT
ACCCAAATAAAGTATAGGCGATAGAAATTGAAACCTGGCGCAATAGATATAGTACCGCAA
GGGAAAGATGAAAAATTATAACCAAGCATAATATAGCAAGGACTAACCCCTATACCTTCT
GCATAATGAATTAACTAGAAATAACTTTGCAAGGAGAGCCAAAGCTAAGACCCCCGAAAC
CAGACGAGCTACCTAAGAACAGCTAAAAGAGCACACCCGTCTATGTAGCAAAATAGTGGG
AAGATTTATAGGTAGAGGCGACAAACCTACCGAGCCTGGTGATAGCTGGTTGTCCAAGAT
AGAATCTTAGTTCAACTTTAAATTTGCCCACAGAACCCTCTAAATCCCCTTGTAAATTTA
ACTGTTAGTCCAAAGAGGAACAGCTCTTTGGACACTAGGAAAAAACCTTGTAGAGAGAGT
AAAAAATTTAACACCCATAGTAGGCCTAAAAGCAGCCACCAATTAAGAAAGCGTTCAAGC
TCAACACCCACTACCTAAAAAATCCCAAACATATAACTGAACTCCTCACACCCAATTGGA
CCAATCTATCACCCTATAGAAGAACTAATGTTAGTATAAGTAACATGAAAACATTCTCCT
CCGCATAAGCCTGCGTCAGATTAAAACACTGAACTGACAATTAACAGCCCAATATCTACA
ATCAACCAACAAGTCATTATTACCCTCACTGTCAACCCAACACAGGCATGCTCATAAGGA
AAGGTTAAAAAAAGTAAAAGGAACTCGGCAAATCTTACCCCGCCTGTTTACCAAAAACAT
CACCTCTAGCATCACCAGTATTAGAGGCACCGCCTGCCCAGTGACACATGTTTAACGGCC
GCGGTACCCTAACCGTGCAAAGGTAGCATAATCACTTGTTCCTTAAATAGGGACCTGTAT
GAATGGCTCCACGAGGGTTCAGCTGTCTCTTACTTTTAACCAGTGAAATTGACCTGCCCG
TGAAGAGGCGGGCATAACACAGCAAGACGAGAAGACCCTATGGAGCTTTAATTTATTAAT
GCAAACAGTACCTAACAAACCCACAGGTCCTAAACTACCAAACCTGCATTAAAAATTTCG
GTTGGGGCGACCTCGGAGCAGAACCCAACCTCCGAGCAGTACATGCTAAGACTTCACCAG
TCAAAGCGAACTACTATACTCAATTGATCCAATAACTTGACCAACGGAACAAGTTACCCT
AGGGATAACAGCGCAATCCTATTCTAGAGTCCATATCAACAATAGGGTTTACGACCTCGA
TGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATT
AAAGTCCTACGTGATCTGAGTTCAGACCGGAGTAATCCAGGTCGGTTTCTATCTACNTTC
AAATTCCTCCCTGTACGAAAGGACAAGAGAAATAAGGCCTACTTCACAAAGCGCCTTCCC
CCGTAAATGATATCATCTCAACTTAGTATTATACCCACACCCACCCAAGAACAGGGTTT
Ce qui est en gras, c'est ce que je veux récupérer à la fin.
Sed est une commande appropriée pour ce genre de choses?
Merci d'avance
Hors ligne
#2 Le 05/01/2013, à 17:43
- pingouinux
Re : Effacer du texte entre deux caractères
Bonjour,
Ceci devrait faire l'affaire :
sed 's/>.*rRNA//' fichier
Hors ligne
#3 Le 05/01/2013, à 17:48
- laeti5690
Re : Effacer du texte entre deux caractères
merci j'essaye et je vous dirais si ça fonctionne
Hors ligne
#4 Le 05/01/2013, à 18:01
- laeti5690
Re : Effacer du texte entre deux caractères
Le terminal m'indique sed : -e expression n 1 caractère 11 commande inconnue ``/' quoique je fasse
Hors ligne
#5 Le 05/01/2013, à 18:09
- pingouinux
Re : Effacer du texte entre deux caractères
Tu as dû faire une erreur en tapant la commande. Peux-tu faire un copier-coller de ce que tu as tapé dans le terminal, et de la réponse ?
Ajouté : Tu as dû oublier le s entre ' et /
Dernière modification par pingouinux (Le 05/01/2013, à 18:15)
Hors ligne
#6 Le 05/01/2013, à 18:10
- laeti5690
Re : Effacer du texte entre deux caractères
pardon j'avais mis une , au lieu du .
ça fonctionne.
Par contre je voudrais vous demander la logique de la synthaxe:
sed 's/>.*rRNA//' fichier
' c'est juste pour encadrer l'écriture
le premier / c'est pour le premier compartiment que indique les éléments à supprimer
le . c'est pour dire de là à là
Le deuxi-me / c'est le séparateur
Et // c'est pour dire qu'on efface et qu'on remplace par rien
Merci
Hors ligne
#7 Le 05/01/2013, à 18:21
- pingouinux
Re : Effacer du texte entre deux caractères
. : désigne n'importe quel caractère
* : désigne 0 ou plus occurrence(s) du caractère qui précède
.* : désigne 0 ou plus caractères quelconques
Hors ligne
#8 Le 05/01/2013, à 19:51
- nesthib
Re : Effacer du texte entre deux caractères
@laeti5690 : comme ça n'est pas la première fois que tu parles de travailler avec des fichiers FASTA, je te suggère de jeter un œil à biopython qui te permet de travailler avec ces séquences (et bien d'autres formats de séquences biologiques) tout en ayant la praticité du langage python. Je ne sais pas si cela correspondra à tes besoins mais je pense que c'est un projet intéressant pour les biologistes.
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#9 Le 06/01/2013, à 16:34
- laeti5690
Re : Effacer du texte entre deux caractères
Merci je vais y jeter un oeil!
Hors ligne