I have a paired end fastq file and when I ran trim galore, the error said lengths of bases and qualities do not match, so I searched the solution and recommended to using bbtools reformat.sh to discard reads that have mismatching lengths of bases and qualities:
reformat.sh in=pair_1.fq.gz in2=pair_2.fq.gz out=fixed_1.fq.gz out2=fixed_2.fq.gz tossbrokenreads=t
Set INTERLEAVED to false Input is being processed as paired pigz: abort: read error on pair_1.fq.gz (Input/output error) java.lang.AssertionError: There appear to be different numbers of reads in the paired input files. The pairing may have been corrupted by an upstream process. It may be fixable by running repair.sh. at stream.ConcurrentGenericReadInputStream.pair(ConcurrentGenericReadInputStream.java:497) at stream.ConcurrentGenericReadInputStream.readLists(ConcurrentGenericReadInputStream.java:362) at stream.ConcurrentGenericReadInputStream.run0(ConcurrentGenericReadInputStream.java:206) at stream.ConcurrentGenericReadInputStream.run(ConcurrentGenericReadInputStream.java:182) at java.lang.Thread.run(Thread.java:745)
so I tried to repair it by using bbtools repairs.sh
repair.sh in1=pair_1.fq.gz in2=pair_2.fq.gz out1=fixed_1.fq.gz out2=fixed_2.fq.gz outs=singletons.fq repair Set INTERLEAVED to false Started output stream. pigz: abort: read error on pair_1.fq.gz (Input/output error) java.lang.Exception: Mismatch between length of bases and qualities for read 107893745 (id=ST-E00126:1085:HF3YVCCX2:1:2106:16620:58339 1:N:0:TAAGCTCC+AGATCTCG). # qualities=24, # bases=150 AAFFFFJJJJJJJJJJJJJJJJJJ GTGTAGGACATCCATTTTATCAAGTTTCTGCTACAAGAAATGAAAAAATGAGACACTTGATTACTACAGGCAGACCAACCAAAGTCTTTGTTCCACCTTTTAAAACTAAATCGCATTTTCACAGAGTTGAACAGTGTGTTAGGAATATTA This can be bypassed with the flag 'tossbrokenreads' or 'nullifybrokenquality' at shared.KillSwitch.kill(KillSwitch.java:96) at stream.Read.validateQualityLength(Read.java:214) at stream.Read.validate(Read.java:104) at stream.Read.<init>(Read.java:76) at stream.Read.<init>(Read.java:50) at stream.FASTQ.quadToRead_slow(FASTQ.java:809) at stream.FASTQ.toReadList(FASTQ.java:646) at stream.FastqReadInputStream.fillBuffer(FastqReadInputStream.java:107) at stream.FastqReadInputStream.nextList(FastqReadInputStream.java:93) at stream.ConcurrentGenericReadInputStream$ReadThread.readLists(ConcurrentGenericReadInputStream.java:680) at stream.ConcurrentGenericReadInputStream$ReadThread.run(ConcurrentGenericReadInputStream.java:656)
but the error said tossbrokenreads again, it kinda fall into a loop.
Anyone has experience this, please advice. Thanks.