1. find, xargs 和 GNU parallel命令行
在当前目录及其子目录中递归搜索 .bam 文件
find . -name *.bam
删除所有 .bam 文件
不可逆操作:使用时需谨慎!删除前确认文件列表。
find . -name *.bam | xargs rm
将所有 .txt 文件重命名为 .bak
如在对 *.txt 做其他操作前备份。
find . -name *.txt | sed "s/\.txt$//" | xargs -i echo mv {
}.txt {
}.bak | sh
对原始 Illumina 数据进行 chastity 过滤
grep 包含 :N: 的 reads,附加(-A)匹配行后包含序列和质量信息的三行,并写入新的过滤后的 fastq 文件。
find *fq | parallel "cat {} | grep -A 3 '^@.*[^:]*:N:[^:]*:' | grep -v '^\-\-$' > {}.filt.fq"
并行运行 FASTQC,每次运行 12 个任务
find *.fq | parallel -j 12 "fastqc {} --outdir ."
并行索引 bam 文件,但仅输出命令(--dry-run)而不实际运行
find *.bam | parallel --dry-run 'samtools index {}'
2. seqtk命令技巧
seqtk 是一个快速轻量的工具,用于处理 FASTA 或 FASTQ 格式的序列。可从 https://github.com/lh3/seqtk 或conda下载安装seqtk。
将 FASTQ 转换为 FASTA
seqtk seq -a in.fq.gz > out.fa
将 ILLUMINA 1.3+ 格式的 FASTQ 转换为 FAST
参数:将质量低于 20 的碱基 masking 为小写(第一条命令)或 N(第二条命令)
seqtk seq -aQ64 -q20 in.fq > out.fa
seqtk seq -aQ64 -q20 -n N in.fq > out.fa
折叠长的 FASTA/Q 行并移除 FASTA/Q 注释
seqtk seq -Cl60 in.fa > out.fa
对 FASTA/Q 进行反向互补
seqtk seq -r in.fq > out.fq
提取名称在文件 name.lst 中的序列(每行一个序列名)
seqtk subseq in.fq name.lst > out.fq
提取文件 reg.bed 中包含的区域的序列
seqtk subseq in.fa reg.bed > out.fa
将 reg.bed 中的区域 masking 为小写
seqtk seq -M reg.bed in.fa > out.fa
从两个大型双端 FASTQ 文件中随机抽样 10000 对 reads
使用相同的随机种子以保持配对。
seqtk sample -s100 read1.fq 10000 > sub1.fq
seqtk sample -s100 read2.fq 10000 > sub2.fq
使用 Phred 算法从两端修剪低质量碱基
seqtk trimfq in.fq > out.fq
从每个 read 的左端修剪 5bp,右端修剪 10bp
seqtk trimfq -b 5

最低0.47元/天 解锁文章
478

被折叠的 条评论
为什么被折叠?



