【发布时间】:2015-01-25 09:32:33
【问题描述】:
我需要替换一个不正确的 Illumina fasta 标头以在 QIIME 中进行格式化,而这个脚本并不像我想要的那样工作。我需要能够输入变量并使用 unix "s" 命令。有什么想法吗?
print 'What is the exact sequence of characters to replace? ';
chomp (my $seq_char = <> );
print 'What is the new label to attach? ';
chomp (my $label = <> );
while( $seq = $seq_in->next_seq() )
{
my $seqName = $seq->id;
$seqName =~ s/\'$seq_char'/\'$label' /g; #replace original characters with new label
$seqName =~ s/(gi\.\w*)\..*/$1/;
【问题讨论】:
-
没有's'命令,它更像是一个表达式,寻找某些模式并用不同的指定字符串替换它们。您需要在 fasta 标头中更改什么模式?
-
您好,欢迎来到本网站。 1) 没有 UNIX
s命令这样的东西;您可能是指 Perl 的s///运算符。 2)您需要向我们展示您的输入和所需的输出。 3) 您需要准确解释您的脚本是如何失败的,以便我们能够提供帮助。 4)您需要解释脚本是如何执行的,带有哪些参数。 5)您需要显示所有相关行。next_seq()函数是什么?$seq在哪里定义?请edit您的问题来解决这些问题。
标签: regex perl text-processing substitution