我想将文件夹中包含的所有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>)
){
答案 0 :(得分:1)
对我自己有点新意,并且不了解生物信息学,但看起来你在while循环的每一个转折都覆盖了输出文件。我想你想附加到文件,所以你想要一个&gt;&gt;不只是&gt;。示例
{{1}}
希望有所帮助。