查找特定文本并将其保存到变量中

Looking for specific text and save it into variable

我正在寻找最简单的方法来查找大文件中的文本并将其保存到相同的变量中供以后使用。

文件格式为:

>gi|24585363|ref|NP_724239.1| short neuropeptide F precursor [Drosophila melanogaster]
MFHLKRELSQGCALALICLVSLQMQQPAQAEVSSAQGTPLSNLYDNLLQREYAGPVVFPNHQVERKAQRS
PSLRLRFGRSDPDMLNSIVEKRWFGDVNQKPIRSPSLRLRFGRRDPSLPQMRRTAYDDLLERELTLNSQQ
QQQQLGTEPDSDLGADYDGLYERVVRKPQRLRWGRSVPQFEANNADNEQIERSQWYNSLLNSDKMRRMLV
ALQQQYEIPENVASYANDEDTDTDLNNDTSEFQREVRKPMRLRWGRSTGKAPSEQKHTPEETSSIPPKTQ
N
>gi|442619471|ref|NP_001262643.1| neuropeptide F, isoform C [Drosophila melanogaster]
MCQTMRCILVACVALALLAAGCRVEASNSRPPRKNDVNTMADAYKFLQDLDTYYGDRARVRFGKRGSLMD
ILRNHEMDNINLGKNANNGGEFARGFNEEEIF
>gi|442619469|ref|NP_001262642.1| neuropeptide F, isoform B [Drosophila melanogaster]
MCQTMRCILVACVALALLAAGCRVEASNSRPPRKNDVNTMADAYKFLQDLDTYYGDRARVRFGKRGSLMD
ILRNHEMDNINLGKNANNGGEFARGFNEEEIF

每个序列都以“>”开头

我试过这个:

open (FILE, $fastaFile);
while (<FILE>) {
chomp;
($name, $name2) = split(/:/);

print "Name: $name\n";
print "Name2: $name2\n";

} close (FILE);

exit;

我从来不需要寻找特定的文本。也许使用 grep 会很容易,只是我不知道。

对我来说最大的问题是我在另一个文件中有其他程序的结果,我需要在另一个文件中找到这些结果。

我的主程序给了我这些结果:

>gi|24585363|ref|NP_724239.1|
>gi|442619469|ref|NP_001262642.1|

我需要在第二个文件中找到它,并将其保存到 $name 中,然后将该名称的序列放入 $sequence 中。:

$name = ">gi|24585363|ref|NP_724239.1|"
$sequnce = "MFHLKRELSQGCALALICLVSLQMQQPAQAEVSSAQGTPLSNLYDNLLQREYAGPVVFPNHQVERKAQRS
    PSLRLRFGRSDPDMLNSIVEKRWFGDVNQKPIRSPSLRLRFGRRDPSLPQMRRTAYDDLLERELTLNSQQ
    QQQQLGTEPDSDLGADYDGLYERVVRKPQRLRWGRSVPQFEANNADNEQIERSQWYNSLLNSDKMRRMLV
    ALQQQYEIPENVASYANDEDTDTDLNNDTSEFQREVRKPMRLRWGRSTGKAPSEQKHTPEETSSIPPKTQ
    N"

谁能给我建议如何进行?如果使用 grep 或其他方式到达那里。

这应该可以帮助您获得想要的东西。您将需要安装 Bio Perl

#!/usr/bin/perl
use warnings;
use strict;
use Bio::SeqIO;

my $seqFile = Bio::SeqIO->new('-format' => 'fasta', '-file' => 'myFasta.fasta');
while((my $seqObj = $seqFile->next_seq())){
     print "Seen Sequence " . $seqObj->display_id . "\n";
     print "Sequence: " . $seqObj->seq() . "\n";
}