生信软件51 - 生物信息高效命令行find,cut, xargs和seqtk技巧

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 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

生信与基因组学

每一份鼓励是我坚持下去动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值