我有一些成功的代碼,如果一個數字位置(來自另一個文件)位於其中,並且將正則表達式捕獲和原始位置打印爲結果。在FASTA頭文件中成功匹配後打印下一行
文件1點的示例數據:
7065_8#10 9436 - t
7065_8#10 126477 - c
7065_8#10 413711 + T
文件2的示例數據:
>SAEMRSA15_00020 dnaN_DNA_polymerase_III,_beta_chain 2156 3289 forward
ATGATGGAATTCACTATTAAAAGAGATTATTTTATTACACAATTAAATGACACATTAAAAGCTATTTCACCAAGAACAACATTACCT
>SAEMRSA15_00060 gyrA_DNA_gyrase_subunit_A 7005 9674 forward
ATGTCGGAAAAAGAAATTTGGGA
代碼:
#!/usr/bin/perl
use strict;
use warnings;
use autodie;
my $outputfile = "/Users/edwardtickle/Documents/CC22CDS.txt";
open FILE1, "/Users/edwardtickle/Documents/CC22indels.tab";
open FILE2, "/Users/edwardtickle/Documents/CC22_CDS_rmmge.aln";
open(OUTPUTFILE, ">$outputfile");
my @file1list =();
while (<FILE1>) {
if (/^\S+\s+(\d+)/) {
push @file1list, $1;
}
}
close FILE1;
while (<FILE2>) {
if (/^>(\S+\s+\S+\s+(\d+)\s+(\d+)\s+(\S+))/) {
my $cds1 = $1;
my $cds2 = $2;
my $cds3 = $3;
my $cds4 = $4;
for my $cc22 (@file1list) {
if ($cc22 > $cds2 && $cc22 < $cds3) {
print OUTPUTFILE "$cc22 $cds2 $cds3 $cds4\n";
}
}
}
}
close FILE2;
例如輸出:
9436 7005 9674 forward
除了捕獲的信息外,我還希望在匹配後打印FASTA文件的下一行,其中包括該基因的序列數據。我希望在原始數據之後的下一行被打印在同一行上。這聽起來非常簡單,但我無法解決如何做到這一點!我試圖使用以前的答案,並將其併入我的代碼無濟於事(如下所示)。如果可能的話,請你改編我的代碼,而不是爲原始的正確代碼提供一個全新的方法,我試圖確保我理解我使用的每一個腳本,而不是簡單地粘貼在答案中。
所需的輸出:
9436 7005 9674 forward ATGTCGGAAAAAGAAATTTGGGA
錯誤代碼:
#!/usr/bin/perl
use strict;
use warnings;
use autodie;
my $outputfile = "/Users/edwardtickle/Documents/CC22CDS.txt";
open FILE1, "/Users/edwardtickle/Documents/CC22indels.tab";
open FILE2, "/Users/edwardtickle/Documents/CC22_CDS_rmmge.aln";
open(OUTPUTFILE, ">$outputfile");
my @file1list =();
while (<FILE1>) {
if (/^\S+\s+(\d+)/) {
push @file1list, $1;
}
}
my $nextline = 0;
close FILE1;
while (my $line = <FILE2>) {
if (/^>(\S+\s+\S+\s+(\d+)\s+(\d+)\s+(\S+))/) {
my $cds1 = $1;
my $cds2 = $2;
my $cds3 = $3;
my $cds4 = $4;
for my $cc22 (@file1list) {
if ($cc22 > $cds2 && $cc22 < $cds3) {
if ($nextline) {
print OUTPUTFILE "$cc22 $cds2 $cds3 $cds4 $nextline\n";
$nextline = ($line =~ /^>(\S+\s+\S+\s+(\d+)\s+(\d+)\s+(\S+))/);
}
}
}
}
}
close FILE2;
提前感謝!
能ÿ ou添加一些示例數據? – 2014-10-20 15:57:12
對不起,我剛添加它。 – 2014-10-20 16:39:46