Using perl Syntax Highlighting
- #!/usr/bin/perl
- use strict;
- use warnings;
- use Getopt::Long;
- my ($dir, $files, $file_name, $file_format, $extension);
- GetOptions (
- 'dr=s' =>\$dir
- );
- foreach $files (glob("$dir/*.fastq")) {
- open LINE, "<", $files or die "can't read open $files";
- while(
- defined(my $head = <LINE>) &&
- defined(my $seq = <LINE>) &&
- defined(my $qhead = <LINE>) &&
- defined(my $quality = <LINE>)
- ){
- substr($head, 0, 1, '>');
- $extension = "\\.fastq";
- $files =~ s/(.*)$extension(.*)/$1/;
- $file_name =$files;
- open OUTFILE, '>>', $file_name.".fasta";
- print OUTFILE $head, $seq;
- }
- }
- close LINE;
- close OUTFILE;
- exit;
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
El código funciona bien, solo que quiero agregarle más opciones. Una de ellas es convertir un solo archivo si así se desea, para lo cual quisiera saber cómo organizar en una subrutina la siguiente parte del código:
Using perl Syntax Highlighting
- while(
- defined(my $head = <LINE>) &&
- defined(my $seq = <LINE>) &&
- defined(my $qhead = <LINE>) &&
- defined(my $quality = <LINE>)
- ){
- substr($head, 0, 1, '>');
- $extension = "\\.fastq";
- $files =~ s/(.*)$extension(.*)/$1/;
- $file_name =$files;
- open OUTFILE, '>>', $file_name.".fasta";
- print OUTFILE $head, $seq;
- }
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Para usarlo en las dos opciones (carpeta con múltiples fastq y un solo archivo fastq). Actualmente tengo que usar dos scripts para las diferentes opciones y quisiera tenerlo en uno solo y creo que usar una subrutina me evitará tener código repetido.
¡¡Muchas gracias!!