替换没有键值对文件的fasta头

问题描述 投票:0回答:1

尝试以下方法使用 bioawk 替换没有键值对的 fasta 标头

for infile in $(ls *.faa)
do
        prefix=$(basename $infile .faa)
        bioawk -c fastx '{ print ">"$prefix"_" ++i "\n"$seq }' < ${infile} > ${prefix}_hdrrn.faa
done

基本上,我想替换我的

中的标题

物种名称.faa

>species_name_1, >species_name_2....>species_name_n

问题是

$prefix
里面的
bioawk print
不起作用。我得到的错误是,

bioawk:非法字段$(),名称“前缀”输入记录号1,文件 源代码行号 1

为什么替代没有发生?

awk bioinformatics fasta
1个回答
0
投票

我猜测

$seq
应该是当前输入行的内容,即
$0
如果是这样那么你可能应该使用:

#!/usr/bin/env bash

outdir='/some/where'
mkdir -p "$outdir" || exit 1
for infile in *.faa
do
    prefix=""${infile%.*}"
    bioawk -c fastx -v pfx="$prefix" '{ print ">" pfx "_" NR ORS $0 }' < "$infile" > "${outdir}/${prefix}_hdrrn.faa"
done

请注意,我正在其他目录中创建输出文件,因此它们的名称不会与您的输入文件名冲突。

© www.soinside.com 2019 - 2024. All rights reserved.