gpt4 book ai didi

perl - 仅从 fasta 文件中提取第一个序列

转载 作者:行者123 更新时间:2023-12-02 06:57:05 27 4
gpt4 key购买 nike

我只想从多个序列的 fasta 文件中提取第一个序列。我在下面有这段代码,但我无法让循​​环恰到好处地相互配合。

while (my $line = <$in_fh>) {
chomp $line;
for (my $i = 1; $i <= 1; $i++) {
print $out_fh $line;
}
}

close $out_fh;

我认为它在 while 循环中混淆了,但无论我尝试什么,它都不正确。例如,我尝试将 for 循环移到外面,但它没有用。它是循环的类型吗?非常感谢大家的指点。

最佳答案

如果您只需要输入文件的第一行,则不需要 while 循环。

my $line = <$in_fh>;
print $out_fh $line;

编辑:

在研究了 FASTA format 之后,我认为它足够复杂,您不应该手动解析它。相反,您应该使用 BioPerl .

编辑 2:

这是一个使用 BioPerl 的工作示例:

#!/usr/bin/perl

use strict;
use warnings;

use Bio::Seq;
use Bio::SeqIO;

my $fasta_file = shift @ARGV or die "Usage: $0 FASTA_FILE\n";

my $seqin = Bio::SeqIO->new( -format => 'Fasta', -file => $fasta_file )
or die "can't load fasta file: $fasta_file\n";

my $seqobj = $seqin->next_seq();

my $sequence = $seqobj->seq();

print $sequence;

关于perl - 仅从 fasta 文件中提取第一个序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29240422/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com