Linux下的文本排序让我很意外
我分享给大家的ngs流程里面经常是需要制作配置文件,里面的每个样品名字都有两个测序文件,因为目前都是双端测序,制作配置文件的过程其实就是Linux下的文本处理,代码如下所示:
echo A_{1..25}_2.fq.gz |sed 's/\s/\n/g'|sort >2
echo A_{1..25}_1.fq.gz |sed 's/\s/\n/g'|sort >1
paste 1 2
这里就是{1..25}语法,是shell的扩展,shell扩展有以下几种,并按以下顺序处理,当然如果没找到匹配的扩展格式,那就不处理:
brace expansion 大括号({})扩展 tilde expansion ~
字符扩展parameter and variable expansion 参数和变量扩展 arithmetic expansion 算术扩展 command substitution 命令替换 process substitution 过程替换 word splitting Filename Expansion 通配符扩展
以上扩展中,只有brace expansion,word splitting,filename expansion 三种扩展可以改变token个数,我们演示的{1..25}语法就是这个大括号扩展(brace expansion)的序列输出功能,其中两个点是进行序列输出,然后外面套的大括号是进行扩展。这个文本处理的结果如下所示:
A_10_1.fq.gz A_10_2.fq.gz
A_11_1.fq.gz A_11_2.fq.gz
A_1_1.fq.gz A_12_2.fq.gz
A_12_1.fq.gz A_1_2.fq.gz
A_13_1.fq.gz A_13_2.fq.gz
A_14_1.fq.gz A_14_2.fq.gz
A_15_1.fq.gz A_15_2.fq.gz
A_16_1.fq.gz A_16_2.fq.gz
A_17_1.fq.gz A_17_2.fq.gz
A_18_1.fq.gz A_18_2.fq.gz
A_19_1.fq.gz A_19_2.fq.gz
A_20_1.fq.gz A_20_2.fq.gz
A_21_1.fq.gz A_21_2.fq.gz
A_2_1.fq.gz A_22_2.fq.gz
A_22_1.fq.gz A_2_2.fq.gz
A_23_1.fq.gz A_23_2.fq.gz
A_24_1.fq.gz A_24_2.fq.gz
A_25_1.fq.gz A_25_2.fq.gz
A_3_1.fq.gz A_3_2.fq.gz
A_4_1.fq.gz A_4_2.fq.gz
A_5_1.fq.gz A_5_2.fq.gz
A_6_1.fq.gz A_6_2.fq.gz
A_7_1.fq.gz A_7_2.fq.gz
A_8_1.fq.gz A_8_2.fq.gz
A_9_1.fq.gz A_9_2.fq.gz
眼尖的小伙伴应该是已经看到了问题所在:
A_1_1.fq.gz A_12_2.fq.gz
A_12_1.fq.gz A_1_2.fq.gz
A_2_1.fq.gz A_22_2.fq.gz
A_22_1.fq.gz A_2_2.fq.gz
出现了少量样品的排序混乱情况。
确实让人有点费解啊!
引用:
(公众号推文) linux命令行文本操作一文就够
(公众号推文)linux系统环境变量一文就够
(公众号推文)构建shell脚本一文就够
(公众号推文) conda管理生信软件一文就够
shell中的扩展(Expansions) /linux/linux-shell-brace-parameter-command-pathname-expansion/
bash脚本的参数扩展 (parameter expansion) :https://www.ibm.com/developerworks/cn/linux/l-bash-parameters.html
shell通配符(wildcard):https://cloud.tencent.com/developer/article/1114732
type命令:/type
字符串操作:https://my.oschina.net/aiguozhe/blog/41557
视频都在B站,大家把R语言和linux一起学习,数十万人观看的教学视频,你值得拥有:
书籍我推荐两本:
作业的话,力推我设计的5套习题,加油,在生物信息学的路上等大家!
最低要求是完成我的 linux 20题 /2900.html
其次完成生物信息学数据格式的习题(blast/blat/fa-fq/sam-bam/vcf/bed/gtf-gff),收集这些格式的说明书。
fasta和fastq格式文件的shell小练习 /3575.html
sam和bam格式文件的shell小练习 /3578.html
VCF格式文件的shell小练习 /3577.html
0条评论