[Biojava-l] Reading and writting Fastq files
xyz
mitlox at op.pl
Sun Mar 28 07:20:40 UTC 2010
Do not worry. I wrote following code:
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.biojava.bio.program.fastq.Fastq;
import org.biojava.bio.program.fastq.FastqBuilder;
import org.biojava.bio.program.fastq.FastqReader;
import org.biojava.bio.program.fastq.FastqWriter;
import org.biojava.bio.program.fastq.IlluminaFastqReader;
import org.biojava.bio.program.fastq.IlluminaFastqWriter;
public class Fastq2Fasta {
public static void main(String[] args) throws FileNotFoundException,
IOException {
FileInputStream inputFastq = new
FileInputStream("fastq2fasta.fastq"); FastqReader qReader = new
IlluminaFastqReader();
FileOutputStream outputFastq = new
FileOutputStream("fastq2fastaTrim.fastq"); FastqWriter qWriter =
new IlluminaFastqWriter();
for (Fastq fastq : qReader.read(inputFastq)) {
System.out.println(fastq.getDescription());
System.out.println(fastq.getSequence());
String trimSeq = fastq.getSequence().substring(0,
fastq.getSequence().length() - 6); System.out.println(trimSeq);
System.out.println(fastq.getQuality());
String trimQual = fastq.getQuality().substring(0,
fastq.getQuality().length() - 6); System.out.println(trimQual);
FastqBuilder trimFastq = new FastqBuilder();
trimFastq.withDescription(fastq.getDescription());
trimFastq.appendSequence(trimSeq);
trimFastq.appendQuality(trimQual);
qWriter.write(outputFastq, trimFastq.build());
}
}
}
and the input fastq file is:
@HWI-EAS406:5:1:0:1390#0/1
GGGTGATGGCCGCTGCCGATGGCGTCAAAACCCACC
+HWI-EAS406:5:1:0:1390#0/1
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAAAAAA
@HWI-EAS406:5:1:0:1390#0/1
GGGTGATGGCCGCTGCCGATGGCGTCAAATCCCACC
+HWI-EAS406:5:1:0:1390#0/1
PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPBBBBBB
@HWI-EAS406:5:1:0:1390#0/1
GGGTGATGGCCGCTGCCGATGGCGTCAAACCCCACC
+HWI-EAS406:5:1:0:1390#0/1
QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQCCCCCC
Unfortunately, I get the following error:
HWI-EAS406:5:1:0:1390#0/1
GGGTGATGGCCGCTGCCGATGGCGTCAAAACCCACC
GGGTGATGGCCGCTGCCGATGGCGTCAAAA
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAAAAAA
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
Exception in thread "main" java.io.IOException: sequence
HWI-EAS406:5:1:0:1390#0/1 not fastq-illumina format, was fastq-sanger
at
org.biojava.bio.program.fastq.IlluminaFastqWriter.validate(IlluminaFastqWriter.java:41)
at
org.biojava.bio.program.fastq.AbstractFastqWriter.append(AbstractFastqWriter.java:67)
at
org.biojava.bio.program.fastq.AbstractFastqWriter.write(AbstractFastqWriter.java:143)
at
org.biojava.bio.program.fastq.AbstractFastqWriter.write(AbstractFastqWriter.java:125)
at Fastq2Fasta.main(Fastq2Fasta.java:37) Java Result: 1
What did I wrong?
On Sun, 28 Mar 2010 00:27:16 -0400 (EDT)
Michael Heuer wrote:
>
> Sorry, I haven't written up an example for the Biojava Cookbook yet.
>
> The FASTQ package javadoc API is at
>
> http://www.biojava.org/docs/api/org/biojava/bio/program/fastq/package-summary.html
>
> If you want to read Illumina format FASTQ files, use
>
> FastqReader reader = new IlluminaFastqReader();
> for (Fastq fastq : reader.read(new File("in.fastq")))
> {
> // ...
> }
>
> michael
More information about the Biojava-l
mailing list