我需要在我的文件的标题行中搜索一个模式,并用 Perl 连接下一行 [英] I need search a pattern in a header line of my file and concatenates the next line with Perl
本文介绍了我需要在我的文件的标题行中搜索一个模式,并用 Perl 连接下一行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的 multi-fasta 存档格式如下:
My multi-fasta archive is in this format:
>miRNA65 dvex2345
CGATGCTAGATGCTATGACAACGATGCCTCG-G
>miRNA60 dvex1234
T-TAA-ACTCATCATCATCATACTCATCATCATCATCAGCATATTAACAAG
>miRNA65 dvex2345
T-TAA-ACTTATCATCATCATACTCATCATCATCATCAGCATATTAACAAG
我是 Perl 新手,我需要搜索等于> 行"并连接下一行以加入序列.
I am new in Perl and I need to search the equals '> lines' and concatenate the next line to join the sequence.
我期待上述文件的以下输出:
I'm expecting the following output for the above file:
>miRNA60 dvex1234
T-TAA-ACTCATCATCATCATACTCATCATCATCATCAGCATATTAACAAG
>miRNA65 dvex2345
T-TAA-ACTTATCATCATCATACTCATCATCATCATCAGCATATTAACAAG.CGATGCTAGATGCTATGACAACGATGCCTCG-G
完成这项工作的最佳方法是什么?
What is the best way to get this done?
推荐答案
%hash;
while (<DATA>) {
if (/^>(miRNA\d+)/) {
$hash{$1}[0] = $_;
chomp($n = <DATA>);
unshift @{$hash{$1}[1]}, $n;
}
}
for $k (sort keys %hash) {
print $hash{$k}[0], join(',', @{$hash{$k}[1]}), "\n";
}
__DATA__
>miRNA65 dvex2345
CGATGCTAGATGCTATGACAACGATGCCTCG-G
>miRNA60 dvex1234
T-TAA-ACTCATCATCATCATACTCATCATCATCATCAGCATATTAACAAG
>miRNA65 dvex2345
T-TAA-ACTTATCATCATCATACTCATCATCATCATCAGCATATTAACAAG
这篇关于我需要在我的文件的标题行中搜索一个模式,并用 Perl 连接下一行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文