tag:blogger.com,1999:blog-1320528867223721914.post8260809679196650510..comments2024-03-18T10:00:22.981+01:00Comments on #!/perl/bioinfo: Eliminar secuencias redundantes y transcritos repetidos en genomas y proteomasbrunocontrerashttp://www.blogger.com/profile/06780659979139333360noreply@blogger.comBlogger3125tag:blogger.com,1999:blog-1320528867223721914.post-6381238132266031132010-09-14T00:19:03.643+02:002010-09-14T00:19:03.643+02:00Es mejor escribirlo como
$seq =~ s/\s+$//;
según...Es mejor escribirlo como<br /><br />$seq =~ s/\s+$//;<br /><br />según se indica en el perlfaq4, en la cuestión «How do I strip blank space from the beginning/end of a string?».<br /><br />O hacerlo solo una vez. Es decir, vas acumulando en $seq .= $_; y luego, cuando termine el bucle, haces un<br /><br />$seq =~ s/\s+$//gm;<br /><br />y eliminará todos los finales de línea de toda la secuencia.<br /><br />Caso extremo: si sabemos que la $seq no ha de tener ningún espacio, pues ya lo sabemos hacer:<br /><br />$seq =~ s/\s+//g;<br /><br />y solo hay que hacerlo una vez, al final.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-1320528867223721914.post-91817499715918485382010-09-11T17:29:19.554+02:002010-09-11T17:29:19.554+02:00Lo he corregido, la expresión 's/\012\015?|\01...Lo he corregido, la expresión 's/\012\015?|\015\012?//' la suelo usar en lugar de 'chomp' para eliminar saltos de línea (así evito problemas con archivos creados en algunos editores de windows), pero como bien dices había algo de código redundante.Anonymoushttps://www.blogger.com/profile/01111762212594457636noreply@blogger.comtag:blogger.com,1999:blog-1320528867223721914.post-79361727210610173842010-09-11T15:36:27.818+02:002010-09-11T15:36:27.818+02:00Hay un error en el código, creo.
La expresión reg...Hay un error en el código, creo.<br /><br />La expresión regular <b>s/\012\015?|\015\012?//;</b> se aplica a la variable $_, pero luego, ese nuevo valor transformado, no es utilizado.<br /><br />Es posible que esa línea deba aplicarse antes de <b>$seq .= $_;</b><br /><br />Si antes no se ha notado es porque, realmente, esa línea no tiene efecto alguno en el programa: la línea que filtra los caracteres en blanco, incluidos los caracteres \015 y \012, es la de <b>$seq =~ s/\s+//g;</b>. Incluso sobra la de <b>chomp $seq;</b>.Anonymousnoreply@blogger.com