Saya menggunakan rantai perintah berikut untuk mengurutkan file FASTQ :
cat reads.fq | paste - - - - | sort -k1,1 -S 3G | tr '\t' '\n' > sorted_reads.fq
File FASTQ dipisahkan menjadi grup-grup untuk empat baris yang pertama adalah id yang ingin kami urutkan.
Tetapi dalam output saya melihat pola ini:
@ERR894725.10000000/1
AGAAAAAGAAAAATTGTTTCCTGTTATATCCATTTCCTTTAATATAGTTTACAAATTGTGCATTTCAACAGCAGCACTCTGTCCATATGTCTAGCAGACTCCTTAACACACTGTGCTACAACTTCT
+
<B<<B<<<B<<<<<<<B<B<BB<BB<<<<<BB<BB<BB<B<B0<<<<BBB<<BBB<B<B<BB<<B<BB<B<BB0BB<B<B<<<<<<BB<B<BB<BB<B<BBBBBBB0B<B<BBB<B0B<BB<<07<
@ERR894725.100000002/1
AGATAGAGTCTTGCTCTGTCACCCAGCCTGGAGTGCAACGGTGCTATCTCTACTAACTGCAACCTCCGCCCCCCAGGTTCAAGCGATTCTCCTGCCTCAGCCTCCTGAGCAGCTGGGACTACAGTG
+
<<<<<BB<<<B<<BB<B<B<B<BBBBBBB<BBBB<BBB<7BB<BB<<<B<B<<B<B<B<BBB<<B<B7BBBBBBBBBBB<BBBB'B<B<BB<B<BBBBBBBBBBBBB<BBBBBBBBBB<BB<<<<<
@ERR894725.100000002/2
TGTACAGAAAGTATCTGTTTTATTAATTCAACACTGTAAACATTTGCCATGTCTTAAAGTTCAAGTCTCTGTAACCTCCTGAGGTCAGGAGTTTGACATCAGCCTGACCAACATGGTGAAACCCTG
+
<<<<<B<BB<<<<<<B<<<<<<<<<<<<<B<<B<B<<<<<<B<<<<B<B<<<<B<<<<<<<<<<<B<B<B<B<B<BB<BB<BBBB<BBBBBBBB<B<B<<BBBBB<B<BBB<BBBBBBBBB<<<<<
@ERR894725.10000000/2
CTACATAATTTCCCTTACTGGACTAGCTTTTTTTCGGTGCTATTTTAAAATATGTTTAATTCTCCAACTGCTTAGAAGTCTTTTTAGATATTTTGCTGGGTGCAATAGCACACTTTATATCTATAT
+
7B<<B<<<<<B<<<B<<<B<<B<B<<BB<<<<<<<7<B<BB<<<<<<B<<<<<<B<<<<<<<<<<BB<B0<B0<0BBBB<BBBBB<<<<<<BBB<BB<<BB<BBB<BBB0<B<BBBBBBBBB<<7<
@ERR894725.100000003/1
AAAGAGAGCCCGCATTGCCAAGTCAATCCTAAGCCAAAAGAACAAAGCTGGAGGCATCACGCTACCTGACTTCAAATTATACTACAAGGCTACAGTAACCAAAACAGCATGGTACTGGTACCAAAA
+
<<<<B<B<<<<7BB<<<BBBBBB<BB<<BB<BBBBBBBBBBB<BBBBBB<BBBBBB<<B<7B<<<BB<B<BB<BBB<B<<<<B<<BB<BBBB<BBB<B<BBBBB<BBBBBBBBB<BBBBB<B<<<B
@ERR894725.100000003/2
AAATTTTCTCCCATTCTGTAGGTTGCCTGTTCACTCTGATGGTAGTTTCTTTTGCTGTGCAGAAGCTCTTTAGTTTAATTAGAACCCATTTGTCAATTTTGGCTTTTGTTGCCATTGCTTTTGGTG
+
<<<<<<<<B<<<B<<<B<<<<<<<<B<B<<<<B<B<B<B<<<<<B<<<<B<<<<BB<<<BB<<<BBB<B<B<BBBB<B<B<BBB<BBB<BB<B<B<<BBB<BBB<BBBBB<B<0BBBBBBBB<<70
Mengapa ada celah antara @ERR894725.10000000/1
kelompok dan yang @ERR894725.10000000/2
satu? Kode ASCII untuk /
lebih kecil dari nomor apa pun jadi saya tidak melihat mengapa @ERR894725.100000002/1
diutamakan @ERR894725.10000000/2
.
Saya melihat pola yang sama di seluruh file. Ada kesenjangan antara @ERR894725.10000001/1
dan @ERR894725.10000001/1
diisi oleh @ERR894725.100000012/1
dan @ERR894725.100000012/1
dan sebagainya.
Penjelasan mengapa hal ini terjadi dan cara untuk menghindarinya sangat dihargai.
** Pembaruan: Data aktualnya cukup besar (1TB +) dan tidak dapat disediakan secara keseluruhan. Saya mencoba menyortir contoh di atas menggunakan perintah yang sama lagi dan memberikan hasil yang benar. Saya akan mencoba menggunakan output lengkap yang sudah diurutkan untuk melihat apakah itu memperbaiki sesuatu. Masih aneh mengapa ini terjadi.
tr
perintah?
tr -s '\r' '\n' < reads.fq
(untuk mengkonversi semua linebreak ke gaya Unix), bukan cat reads.fq
?
--debug
untuk melihat apa yang sedang disortir .