2014-10-18 60 views
0

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

MERCURE:174:C0UT3ACXX:5:2316:18091:100842/1 + dogpremirnas 4910 AAAAAAAAAA [email protected] 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 

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

任何建议将非常受欢迎。 谢谢。

+0

可以使用普通的Linux工具来做到这一点,但它超过了内存可能需要别的东西。 – simonzack 2014-10-18 10:45:08

+0

1)添加一个额外的列,包含第四个字段的长度并在新字段**或**上排序2)创建您自己的排序程序 – wildplasser 2014-10-18 11:14:33

回答

0

我喜欢AWK与列数据的工作是这样的:

awk 'length($5)>20' /path/to/input > outputfile 
相关问题