mtDNA数据处理生物信息学

不会编程,如何进行批量操作

2019-07-27  本文已影响0人  基因学苑

想要批量完成工作,又不想学习编程怎么办,其中一个好办法就是花钱找人帮忙,谈钱伤感情,那还是学习一些技能吧,下面介绍不会编程如何进行批量操作。

通配符“*”

通配符是批量操作中最重要的内容,通配符代表任何数据的内容,例如想要查看#

#显示出当前目录下所有以.fq.gz结尾的文件,就可以使用通配符

ls-1*.fq.gz

#删除当前目录下所有以.log结尾的文件

rm-rf*.log

管道符“|”

管道操作符是批量操作中另一个比较重要的符号,管道的作用顾名思义,它是用来改变数据流的方向,默认数据流方向为屏幕输出,而管道的作用是将数据流导入另外的程序,作为它的输入文件。

#搜索当前目录下所有一点fna结尾的文件,然后删除掉。

find./ -name*.fna| xargs rm

#搜索当前目录下所有一点fna结尾的文件,然后打包压缩。

find ./ -name"*.fna"| xargs tar -zcf genome.tar.gz

sed

sed作为流文本处理器,可以用于批量替换,可以用于批量修改文件中的内容。

$ grep">"K12.ffn| head -3

>gi|

556503834|ref|NC_000913.3|:4636007-4636696 Escherichia coli str. K-12 substr. MG1655, complete genome

>gi|

556503834|ref|NC_000913.3|:4636696-4638120 Escherichia coli str. K-12 substr. MG1655, complete genome

>gi|

556503834|ref|NC_000913.3|:4638178-4639530 Escherichia coli str. K-12 substr. MG1655, complete genome

#删除掉Escherichia coli 以及后面所有内容

$ grep ">" K12.ffn |

sed -e's/ .*//g'|head -3 # 注意其中空格

>gi|

556503834|ref|NC_000913.3|:190-255

>gi|

556503834|ref|NC_000913.3|:337-2799

>gi|

556503834|ref|NC_000913.3|:2801-3733

awk批量生成脚本

awk是Linux下强大的文本处理工具,本身也是一门编程语言,awk可以批量生成脚本。现有5个样品,每个样品有两个测序文件,_1.fq.gz与_2.fq.gz,需要进行同样的处理,需要批量生成脚本,每个脚本只有样品名部分不同,类似与word中的邮件合并功能。

$ ls-1*.fq.gz |sed'N;s/\n/ /g'|awk'{print "fastqc -f fastq -o result " $1,$2}'

fastqc -f fastq -o result a_1.fq.gz a_2.fq.gz

fastqc -f fastq -o result b_1.fq.gz b_2.fq.gz

fastqc -f fastq -o result c_1.fq.gz c_2.fq.gz

fastqc -f fastq -o result d_1.fq.gz d_2.fq.gz

fastqc -f fastq -o result e_1.fq.gz e_2.fq.gz

for循环

这里for循环已经属于编程的内容了,要想进行批量操作,最好还是学编程。从NCBI下载nt库包含67个文件,每个文件配有一个md5校验文件,现在需要利用md5sum对每个文件进行校验;

#使用awk对当前目录下所有tar.gz文件生成校验脚本

$ ls -1 *.gz.md5  |wc

67      67    1139

$foriin*.gz.md5;domd5sum -c$i;done;

nt.00.tar.gz: OK

nt.01.tar.gz: OK

nt.02.tar.gz: OK

---------- END ----------

欢迎订阅我们的微信公众号:基因学苑

上一篇下一篇

猜你喜欢

热点阅读