0
私はfastaファイルを持っています。私は "N"を含む配列を削除する必要がありますか、少なくとも3つのユニークな塩基を含んでいません。 これまでのコードは以下の通りです。また、シーケンスIDラインを削除すると、削除したシーケンスの進行状況が表示されます。あなたのコードが間違って何perlがシーケンスに少なくとも3つのユニークな塩基が含まれているかどうかを確認し、削除しない場合は
#!/usr/bin/perl
use strict;
use warnings;
open FILE, '<', $ARGV[0] or die qq{Failed to open "$ARGV[1]" for input: $!\n};
open match_fh, ">$ARGV[0]_trimmed.fasta"
or die qq{Failed to open for output: $!\n};
while (my $line = <FILE>) {
chomp($line);
if ($line =~ m/^>/) {
print match_fh "$line\n";
my @data = split(/\|/, $line);
my $nextline = <FILE>;
if ($nextline !~ /N+/g) {
if ($nextline =~ /[ATGC]{3}/g) {
}
print match_fh "$nextline";
}
}
}
close FILE;
close match_fh;
INPUT
>seq1
ATGCGGGATGATCCGAACGTTTAATCTCGTATGCCGTCTTCTATCTCNNN
>seq2
GATGAGCTTGACTCTAGTCCATCTCGTATGCCGTCTTCTGCTATCTCGTA
>seq3
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTC
>seq4
TGGTACTGTAAGCATGAGAGTAATCTCGTATGCCGTCTTCTGCTTGAAAA
OUTPUT
>seq2
GATGAGCTTGACTCTAGTCCATCTCGTATGCCGTCTTCTGCTATCTCGTA
>seq4
TGGTACTGTAAGCATGAGAGTAATCTCGTATGCCGTCTTCTGCTTGAAAA
?それはエラーまたは不正確な結果を与えるか?はいの場合、どちらですか? – user5226582
3文字以下の行を削除しません。 – cara
短いサンプル入力ファイルと期待される出力ファイルを提供できますか? – dgw