Script à faire
Résolu/Fermé
lypso15
Messages postés
6
Date d'inscription
mercredi 30 mai 2018
Statut
Membre
Dernière intervention
30 mai 2018
-
Modifié le 30 mai 2018 à 10:23
[Dal] Messages postés 6203 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 29 janvier 2025 - 31 mai 2018 à 09:36
[Dal] Messages postés 6203 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 29 janvier 2025 - 31 mai 2018 à 09:36
A voir également:
- Script à faire
- Script vidéo youtube - Guide
- Ghost script - Télécharger - Polices de caractères
- Microsoft activation script - Accueil - Windows
- Script bat - Guide
- Executeur de script - Télécharger - Édition & Programmation
2 réponses
jordane45
Messages postés
38404
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 février 2025
4 732
30 mai 2018 à 10:25
30 mai 2018 à 10:25
Bonjour,
Cela fait longtemps que je n'ai pas fait de PERL ...
mais quand on fait un IF avec plusieurs conditions... il faut mettre les conditions "en entier" !
Cela fait longtemps que je n'ai pas fait de PERL ...
mais quand on fait un IF avec plusieurs conditions... il faut mettre les conditions "en entier" !
if ($seq==~ m/AMRRVVTLSYNHLPSHLKPCFLYLSIFPEDFEIQRKRLVDRWIAEGFVRA/ || $seq==~ m/YDIEDCLDEFMVHVKSQSLSRQLMKLKDRHRIAIQIRBLKSRVEEVSNRN/)
[Dal]
Messages postés
6203
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
29 janvier 2025
1 098
Modifié le 30 mai 2018 à 10:58
Modifié le 30 mai 2018 à 10:58
Je ne comprends pas très bien ce que tu testes et comment du veux tester.
Un exemple de ce qui peut se trouver dans $seq et qui remplit ta condition permettrait d'y voir plus clair.
Si la condition est remplie si $seq comprend "AMRRVVTLSYNHLPSHLKPCFLYLSIFPEDFEIQRKRLVDRWIAEGFVRA" ou "YDIEDCLDEFMVHVKSQSLSRQLMKLKDRHRIAIQIRBLKSRVEEVSNRN", tu dois indiquer la deuxième partie de la condition comme le dit Jordane.
Cependant, je pense que tu veux plutôt faire
Tu devrais mettre
Dal
Un exemple de ce qui peut se trouver dans $seq et qui remplit ta condition permettrait d'y voir plus clair.
Si la condition est remplie si $seq comprend "AMRRVVTLSYNHLPSHLKPCFLYLSIFPEDFEIQRKRLVDRWIAEGFVRA" ou "YDIEDCLDEFMVHVKSQSLSRQLMKLKDRHRIAIQIRBLKSRVEEVSNRN", tu dois indiquer la deuxième partie de la condition comme le dit Jordane.
Cependant, je pense que tu veux plutôt faire
if ($seq=~et non
if ($seq==~.
Tu devrais mettre
use warnings;après
use strict;, qui t'aurait avertit d'un code anormal.
Dal
jordane45
Messages postés
38404
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 février 2025
4 732
30 mai 2018 à 11:26
30 mai 2018 à 11:26
Hello Dal,
Et pour la comparaison.... je ne sais pas comment se comporte une 'séquence' .
Mais ne serait-ce pas comme du "text" ? et dans ce cas utiliser le equal (ou not equal ) => "eq" au lieu du "==" ?
(== qui sert à comparer des nombres si ma mémoire est bonne )
Et pour la comparaison.... je ne sais pas comment se comporte une 'séquence' .
Mais ne serait-ce pas comme du "text" ? et dans ce cas utiliser le equal (ou not equal ) => "eq" au lieu du "==" ?
(== qui sert à comparer des nombres si ma mémoire est bonne )
[Dal]
Messages postés
6203
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
29 janvier 2025
1 098
Modifié le 30 mai 2018 à 12:04
Modifié le 30 mai 2018 à 12:04
oui en Perl,
https://perldoc.perl.org/perlop#Equality-Operators
:-)
mais dans le code posté c'est une regexp qui est appliquée à une variable, afin de vérifier si elle matche, cela serait donc l'opérateur
https://perldoc.perl.org/perlop#Binding-Operators
==est l'opérateur d'égalité numérique, pour comparer l'égalité de chaînes, c'est bien
eq... tout est là :
https://perldoc.perl.org/perlop#Equality-Operators
:-)
mais dans le code posté c'est une regexp qui est appliquée à une variable, afin de vérifier si elle matche, cela serait donc l'opérateur
=~qui est un "binding operator" qui lie l'expression scalaire contenue dans la variable à la regexp qu'elle est supposée matcher :
https://perldoc.perl.org/perlop#Binding-Operators
lypso15
Messages postés
6
Date d'inscription
mercredi 30 mai 2018
Statut
Membre
Dernière intervention
30 mai 2018
30 mai 2018 à 12:09
30 mai 2018 à 12:09
Une séquence c'est juste une succession de plusieurs centaines de lettres, sans aucun espace.
Par contre je recherches pas une séquences totalement identique au motif, mais dans une séquence beaucoup plus grande je cherches a voir si le motif est présent ou non, du coup eq ne sera pas approprier si ?
Par contre je recherches pas une séquences totalement identique au motif, mais dans une séquence beaucoup plus grande je cherches a voir si le motif est présent ou non, du coup eq ne sera pas approprier si ?
lypso15
Messages postés
6
Date d'inscription
mercredi 30 mai 2018
Statut
Membre
Dernière intervention
30 mai 2018
Modifié le 30 mai 2018 à 12:12
Modifié le 30 mai 2018 à 12:12
voici un exemple de se que contient $seq :
>LPERR06G01240.1 pep chromosome:Lperr_V1.4:6:801466:804082:-1 gene:LPERR06G01240 transcript:LPERR06G01240.1 gene_biotype:protein_coding transcript_biotype:protein_coding
MEENTTFDETDSMEDVRNYSPSNIDEAELVGFDTPKRELLDKMNIDGNDGHCKVLCVVGM
GGLGKTTLARKIFESKEDIGKNFPCRAWITVSQSFSKLEMLKDMISQLLGTESLKKCLKE
LEGKAMRVHDLAAYLRDRLKEENFALPSTNNRGSRVIVTTRVDGVANACTSKPFVYHLKL
LEKGPAIDLLLRKIGKNREDMENDDKLKNIATQLVKKCGCLPLAILTIGAMFANKRPSKW
EEMCIQLPSELESNPSSETEAIMRVVTLSYSHLPSHLKPCFLYLSIFPEDFEIKRRHLVD
RWIAEGQVRARVGMTISDVGESYFDELISRSMIQPSIVNMEGRVKSCRVHDIMRDIIVSI
SKEENFVYSTGDNVPTIVLEKFRHVSYHGGNCPIVGMDFSHVRSLTVFGEFGQRPMLFGS
SICSPQFTMLRALDLENAEFPVTQKDINNIGLLRHLRYLYMNNRRRSYIYTLPRSIGKLQ
NLQVLDIRRNHISTLPTDISKLLMLRVLHCTNVMVYSYFHPHKPIRNLALMCCMPLIWTP
LVRSTERNEFIAELHKAYSSHWSRTTGVRVLEVVDIKLTKTKAIEELGELHRLKKLSVTT
KGAQDNKCKILCDAIEKLSSLRSLDFDGTGTGDHGTGTFEWLGPSNFSPSPLLRKLTLIG
CIRVLPDCFRDLKHLRKIILGFSQLDDRAIKILGTLPNLVLLALNGDAFAGKKLAFKERE
FPNLRELRILGMLQLSGIRFEKNTLPHMEIIEIRYCELKSGIVGIKHLEQLKEITLQCLV
AGFNLLEEEVKAHPKEPRLWQLTEEIDIEMGSPVVLTEDEGSEDDRGSNRIGESSQVISS
L
les deux premières lignes sont supprimées grâce au while, elles ne sont pas utile pour la recherche de motif
>LPERR06G01240.1 pep chromosome:Lperr_V1.4:6:801466:804082:-1 gene:LPERR06G01240 transcript:LPERR06G01240.1 gene_biotype:protein_coding transcript_biotype:protein_coding
MEENTTFDETDSMEDVRNYSPSNIDEAELVGFDTPKRELLDKMNIDGNDGHCKVLCVVGM
GGLGKTTLARKIFESKEDIGKNFPCRAWITVSQSFSKLEMLKDMISQLLGTESLKKCLKE
LEGKAMRVHDLAAYLRDRLKEENFALPSTNNRGSRVIVTTRVDGVANACTSKPFVYHLKL
LEKGPAIDLLLRKIGKNREDMENDDKLKNIATQLVKKCGCLPLAILTIGAMFANKRPSKW
EEMCIQLPSELESNPSSETEAIMRVVTLSYSHLPSHLKPCFLYLSIFPEDFEIKRRHLVD
RWIAEGQVRARVGMTISDVGESYFDELISRSMIQPSIVNMEGRVKSCRVHDIMRDIIVSI
SKEENFVYSTGDNVPTIVLEKFRHVSYHGGNCPIVGMDFSHVRSLTVFGEFGQRPMLFGS
SICSPQFTMLRALDLENAEFPVTQKDINNIGLLRHLRYLYMNNRRRSYIYTLPRSIGKLQ
NLQVLDIRRNHISTLPTDISKLLMLRVLHCTNVMVYSYFHPHKPIRNLALMCCMPLIWTP
LVRSTERNEFIAELHKAYSSHWSRTTGVRVLEVVDIKLTKTKAIEELGELHRLKKLSVTT
KGAQDNKCKILCDAIEKLSSLRSLDFDGTGTGDHGTGTFEWLGPSNFSPSPLLRKLTLIG
CIRVLPDCFRDLKHLRKIILGFSQLDDRAIKILGTLPNLVLLALNGDAFAGKKLAFKERE
FPNLRELRILGMLQLSGIRFEKNTLPHMEIIEIRYCELKSGIVGIKHLEQLKEITLQCLV
AGFNLLEEEVKAHPKEPRLWQLTEEIDIEMGSPVVLTEDEGSEDDRGSNRIGESSQVISS
L
les deux premières lignes sont supprimées grâce au while, elles ne sont pas utile pour la recherche de motif
[Dal]
Messages postés
6203
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
29 janvier 2025
1 098
Modifié le 30 mai 2018 à 12:26
Modifié le 30 mai 2018 à 12:26
sauf erreur, dans cet exemple $seq n'est pas du tout identique et ne comprend pas non plus l'un quelconque des motifs
comme indiqué, l'opérateur
par exemple :
si tu cherches si une chaîne est contenue dans une autre, tu peux utiliser une regexp, comme tu sembles vouloir le faire, par exemple :
comme indiqué, l'opérateur
eqpermet de vérifier que deux chaînes sont (exactement) identiques
par exemple :
my $st = "toto"; if ($st eq "toto") { print "C'est bien toto\n"; }
si tu cherches si une chaîne est contenue dans une autre, tu peux utiliser une regexp, comme tu sembles vouloir le faire, par exemple :
my $st = "tititototutu"; if ($st =~ m/toto/) { print "Il y a bien toto dedans\n"; }
30 mai 2018 à 10:36