【发布时间】:2020-10-14 23:52:48
【问题描述】:
我正在处理带条形码的数据,我希望能够组合 fastq 文件并轻松判断读取的原始条形码是哪个条形码。所以我试图将读取的名称更改为文件的名称(即barcode01.fastq)并在末尾附加一个唯一编号。我希望最终产品是这样的:
> barcode01_1
AAGTAGCCTTCGTTCAGTTACGTATTG
+
(&)(*),+*)'(5<64?CA?<;A=@D6
> barcode01_2
...
到目前为止,我有以下使用 awk:
find . -type f -printf "/%P\n" | \
while read FILE ;
do
PREFIX=$(echo ">",${FILE##*/}"_");
awk -v PREFIX=$PREFIX '{
if (NR%4 == 1)
print PREFIX, ++i;
else
print $0
}' ${FILE} > ../${FILE}.fastq;
done
这会从子目录中获取所有 fastq 文件并生成标题 > barcode01_ 1 但我不知道如何摆脱空间。如果我删除PREFIX 和++i 之间的逗号:
find . -type f -printf "/%P\n" | \
while read FILE ;
do
PREFIX=$(echo ">",${FILE##*/}"_");
awk -v PREFIX=$PREFIX '{
if (NR%4 == 1)
print PREFIX ++i;
else
print $0
}' ${FILE} > ../${FILE}.fastq;
done
这使得标题仅增加数字而没有> barcode01_ 部分。
【问题讨论】:
-
尝试使用
printf而不是print。