按列长度对大文本文件进行排序

时间:2014-10-18 10:41:17

标签: sorting bioinformatics large-files

我有一个大约2Gb FASTA(文本)文件,需要按第4列的长度排序。它看起来像

MERCURE:174:C0UT3ACXX:5:2316:18091:100842/1    +    dogpremirnas    4910    AAAAAAAAAA    DDC@BBDDDD    0    3:T>A,9:T>A
MERCURE:174:C0UT3ACXX:5:2316:18110:100902/1    +    dogpremirnas    4909    AAAAAAAAAA    DDDDDBDDBD    0    0:G>A,4:T>A
MERCURE:174:C0UT3ACXX:5:2316:18153:100840/1    -    dogpremirnas    2269    TTTTTTTTTTT    BDDB>9<@A><    0    5:C>T,9:C>T
MERCURE:174:C0UT3ACXX:5:2316:18259:100924/1    +    dogpremirnas    833    ACCGATCTCGTA    CHHFCC8ACBBB    0    6:G>C,7:C>T,8:T>C
MERCURE:174:C0UT3ACXX:5:2316:18344:100886/1    +    dogpremirnas    11734    AAAAAAAAAA    DCDCDDDDDD    0    4:C>A,9:G>A
MERCURE:174:C0UT3ACXX:5:2316:18415:100878/1    +    dogpremirnas    4909    AAAAAAAAAA    BDDCDDDDDB    0    0:G>A,4:T>A
MERCURE:174:C0UT3ACXX:5:2316:18442:100808/1    +    dogpremirnas    11734    AAAAAAAAAA    DDDDDDDDDB    0    4:C>A,9:G>A
MERCURE:174:C0UT3ACXX:5:2316:18461:100754/1    +    dogpremirnas    4914    AAAAAAAAAA    DDDDDDDBDB    0    5:T>A,6:T>A
MERCURE:174:C0UT3ACXX:5:2316:18464:100926/1    +    dogpremirnas    833    ACCGATCTCGTA    HHHFCC/=CBBB    0    6:G>C,7:C>T,8:T>C

并且需要按列的长度排序。在sort命令的手册页中,它说我可以指定密钥,但没有指示如何将“长度”放入其中。 我只需要第4列中超过20个符号的行。不幸的是,让我得到这个结果的软(bowtie)也没有提供这样的要求。

非常欢迎任何建议。 感谢。

1 个答案:

答案 0 :(得分:0)

我喜欢awk处理这样的列数据:

awk 'length($5)>20' /path/to/input > outputfile