将文件夹

时间:2016-09-08 22:56:35

标签: perl bioinformatics fasta fastq

我想将文件夹中包含的所有fastq文件转换为fasta格式,每个文件都保留原始名称,但在fasta扩展名中,我在perl中创建了下一个代码,但是它只提取每个文件的最后一个序列!!!

#!/usr/bin/perl

use strict;
use warnings;
use Getopt::Long;

my ($dir, $files, $file_name, $file_format);

    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, '>'); 
                        ($file_name, $file_format) = split (/\./,$files);
                        open OUTFILE, '>', $file_name.".fasta";
                        print OUTFILE $head, $seq;
            }
}
close LINE;
close OUTFILE;
exit;

和额外的问题,我想使用pice下一个代码,作为一个子程序,我想开发相同的脚本,可以选择将文件夹或单个文件中的所有fastq文件转换为fasta文件!!! p>

while(
                        defined(my $head    = <LINE>)       &&
                        defined(my $seq     = <LINE>)       &&
                        defined(my $qhead   = <LINE>)       &&
                        defined(my $quality = <LINE>)           
                ){

1 个答案:

答案 0 :(得分:1)

对我自己有点新意,并且不了解生物信息学,但看起来你在while循环的每一个转折都覆盖了输出文件。我想你想附加到文件,所以你想要一个&gt;&gt;不只是&gt;。示例

{{1}}

希望有所帮助。