Unix下写入文本时如何给文件名添加路径前缀生成Qiime manifest文件
Qiime manifest文件绝对路径生成解决方案
方案1:使用realpath(最简方案)
直接替换你原命令中的ls为realpath即可自动输出带完整路径的文件名:
realpath *1.fastq >> forward-manifest.txt # 生成反向读段manifest执行以下命令 realpath *2.fastq >> reverse-manifest.txt
方案2:使用find命令(全环境兼容)
如果你的系统没有预装realpath,使用自带的find命令也可以实现同样效果,执行时确保你处于fastq文件所在的目录:
find "$(pwd)" -name "*1.fastq" >> forward-manifest.txt
命令中的$(pwd)会自动读取当前目录的绝对路径,find搜索结果默认输出完整路径格式,符合你的需求。
进阶:一键生成Qiime标准格式manifest
Qiime导入数据要求的manifest通常为带表头的csv格式,你可以直接运行以下脚本一步生成符合要求的manifest文件,无需分开处理正反读段:
# 先写入表头 echo "sample-id,forward-absolute-filepath,reverse-absolute-filepath" > manifest.csv # 遍历所有正向读段文件,匹配对应反向读段,写入绝对路径 for r1 in *1.fastq; do r2=${r1/_1.fastq/_2.fastq} sample_id=${r1/_1.fastq/} echo "${sample_id},$(realpath ${r1}),$(realpath ${r2})" >> manifest.csv done
生成的manifest.csv可以直接用于qiime tools import命令,不需要额外修改。
内容的提问来源于stack exchange,提问作者Geomicro
相关产品推荐
相关产品推荐

