Loading build.xml +1 −1 Original line number Diff line number Diff line <project name="Trimmomatic" default="dist" basedir="."> <property name="version" value="0.38"/> <property name="version" value="0.39"/> <property name="src" location="src" /> <property name="lib" location="lib" /> Loading src/org/usadellab/trimmomatic/trim/HeadCropTrimmer.java +69 −7 Original line number Diff line number Diff line Loading @@ -2,24 +2,86 @@ package org.usadellab.trimmomatic.trim; import org.usadellab.trimmomatic.fastq.FastqRecord; public class HeadCropTrimmer extends AbstractSingleRecordTrimmer public class HeadCropTrimmer implements Trimmer { private int bases; private int maxLength=Integer.MAX_VALUE/2; private int firstBases; private int midBases; private int lastBases; private int firstMaxLength=Integer.MAX_VALUE/2; private int midMaxLength=Integer.MAX_VALUE/2; private int lastMaxLength=Integer.MAX_VALUE/2; public HeadCropTrimmer(String args) { String arg[]=args.split(":"); bases=Integer.parseInt(arg[0]); switch(arg.length) { case 1: firstBases=midBases=lastBases=Integer.parseInt(arg[0]); break; case 2: firstBases=midBases=lastBases=Integer.parseInt(arg[0]); firstMaxLength=midMaxLength=lastMaxLength=Integer.parseInt(arg[1]); break; case 4: firstBases=midBases=Integer.parseInt(arg[0]); firstMaxLength=midMaxLength=Integer.parseInt(arg[1]); lastBases=Integer.parseInt(arg[2]); lastMaxLength=Integer.parseInt(arg[3]); break; case 6: firstBases=Integer.parseInt(arg[0]); firstMaxLength=Integer.parseInt(arg[1]); midBases=Integer.parseInt(arg[2]); midMaxLength=Integer.parseInt(arg[3]); lastBases=Integer.parseInt(arg[4]); lastMaxLength=Integer.parseInt(arg[5]); break; default: } if(arg.length>1) maxLength=Integer.parseInt(arg[1]); } @Override public FastqRecord processRecord(FastqRecord in) public FastqRecord[] processRecords(FastqRecord[] in) { if(in==null) return null; FastqRecord out[]=new FastqRecord[in.length]; int lastRecord=in.length-1; if(in.length>0) { if(in[0]!=null) out[0]=processRecord(in[0], firstBases, firstMaxLength); } for(int i=1;i<lastRecord;i++) { if(in[i]!=null) out[i]=processRecord(in[i], midBases, midMaxLength); } if(lastRecord>0) { if(in[lastRecord]!=null) out[lastRecord]=processRecord(in[lastRecord], lastBases, lastMaxLength); } return out; } private FastqRecord processRecord(FastqRecord in, int bases, int maxLength) { int len=in.getSequence().length(); Loading src/org/usadellab/trimmomatic/trim/TailCropTrimmer.java +61 −20 Original line number Diff line number Diff line Loading @@ -2,44 +2,85 @@ package org.usadellab.trimmomatic.trim; import org.usadellab.trimmomatic.fastq.FastqRecord; public class TailCropTrimmer extends AbstractSingleRecordTrimmer public class TailCropTrimmer implements Trimmer { private int bases; private int maxLength=Integer.MAX_VALUE/2; private int firstBases; private int midBases; private int lastBases; private int firstMaxLength=Integer.MAX_VALUE/2; private int midMaxLength=Integer.MAX_VALUE/2; private int lastMaxLength=Integer.MAX_VALUE/2; public TailCropTrimmer(String args) { String arg[]=args.split(":"); bases=Integer.parseInt(arg[0]); switch(arg.length) { case 1: firstBases=midBases=lastBases=Integer.parseInt(arg[0]); break; case 2: firstBases=midBases=lastBases=Integer.parseInt(arg[0]); firstMaxLength=midMaxLength=lastMaxLength=Integer.parseInt(arg[1]); break; case 4: firstBases=midBases=Integer.parseInt(arg[0]); firstMaxLength=midMaxLength=Integer.parseInt(arg[1]); lastBases=Integer.parseInt(arg[2]); lastMaxLength=Integer.parseInt(arg[3]); break; case 6: firstBases=Integer.parseInt(arg[0]); firstMaxLength=Integer.parseInt(arg[1]); midBases=Integer.parseInt(arg[2]); midMaxLength=Integer.parseInt(arg[3]); lastBases=Integer.parseInt(arg[4]); lastMaxLength=Integer.parseInt(arg[5]); break; default: if(arg.length>1) maxLength=Integer.parseInt(arg[1]); } } /* @Override public FastqRecord[] processRecords(FastqRecord[] in) { public FastqRecord[] processRecords(FastqRecord[] in) { if(in==null) return null; FastqRecord out[]=new FastqRecord[in.length]; for(int i=0;i<in.length;i++) int lastRecord=in.length-1; if(in.length>0) { if(in[0]!=null) out[0]=processRecord(in[0], firstBases, firstMaxLength); } for(int i=1;i<lastRecord;i++) { if(in[i]!=null) out[i]=processRecord(in[i]); out[i]=processRecord(in[i], midBases, midMaxLength); } return out; if(lastRecord>0) { if(in[lastRecord]!=null) out[lastRecord]=processRecord(in[lastRecord], lastBases, lastMaxLength); } */ return out; } @Override public FastqRecord processRecord(FastqRecord in) private FastqRecord processRecord(FastqRecord in, int bases, int maxLength) { int len=in.getSequence().length(); Loading Loading
build.xml +1 −1 Original line number Diff line number Diff line <project name="Trimmomatic" default="dist" basedir="."> <property name="version" value="0.38"/> <property name="version" value="0.39"/> <property name="src" location="src" /> <property name="lib" location="lib" /> Loading
src/org/usadellab/trimmomatic/trim/HeadCropTrimmer.java +69 −7 Original line number Diff line number Diff line Loading @@ -2,24 +2,86 @@ package org.usadellab.trimmomatic.trim; import org.usadellab.trimmomatic.fastq.FastqRecord; public class HeadCropTrimmer extends AbstractSingleRecordTrimmer public class HeadCropTrimmer implements Trimmer { private int bases; private int maxLength=Integer.MAX_VALUE/2; private int firstBases; private int midBases; private int lastBases; private int firstMaxLength=Integer.MAX_VALUE/2; private int midMaxLength=Integer.MAX_VALUE/2; private int lastMaxLength=Integer.MAX_VALUE/2; public HeadCropTrimmer(String args) { String arg[]=args.split(":"); bases=Integer.parseInt(arg[0]); switch(arg.length) { case 1: firstBases=midBases=lastBases=Integer.parseInt(arg[0]); break; case 2: firstBases=midBases=lastBases=Integer.parseInt(arg[0]); firstMaxLength=midMaxLength=lastMaxLength=Integer.parseInt(arg[1]); break; case 4: firstBases=midBases=Integer.parseInt(arg[0]); firstMaxLength=midMaxLength=Integer.parseInt(arg[1]); lastBases=Integer.parseInt(arg[2]); lastMaxLength=Integer.parseInt(arg[3]); break; case 6: firstBases=Integer.parseInt(arg[0]); firstMaxLength=Integer.parseInt(arg[1]); midBases=Integer.parseInt(arg[2]); midMaxLength=Integer.parseInt(arg[3]); lastBases=Integer.parseInt(arg[4]); lastMaxLength=Integer.parseInt(arg[5]); break; default: } if(arg.length>1) maxLength=Integer.parseInt(arg[1]); } @Override public FastqRecord processRecord(FastqRecord in) public FastqRecord[] processRecords(FastqRecord[] in) { if(in==null) return null; FastqRecord out[]=new FastqRecord[in.length]; int lastRecord=in.length-1; if(in.length>0) { if(in[0]!=null) out[0]=processRecord(in[0], firstBases, firstMaxLength); } for(int i=1;i<lastRecord;i++) { if(in[i]!=null) out[i]=processRecord(in[i], midBases, midMaxLength); } if(lastRecord>0) { if(in[lastRecord]!=null) out[lastRecord]=processRecord(in[lastRecord], lastBases, lastMaxLength); } return out; } private FastqRecord processRecord(FastqRecord in, int bases, int maxLength) { int len=in.getSequence().length(); Loading
src/org/usadellab/trimmomatic/trim/TailCropTrimmer.java +61 −20 Original line number Diff line number Diff line Loading @@ -2,44 +2,85 @@ package org.usadellab.trimmomatic.trim; import org.usadellab.trimmomatic.fastq.FastqRecord; public class TailCropTrimmer extends AbstractSingleRecordTrimmer public class TailCropTrimmer implements Trimmer { private int bases; private int maxLength=Integer.MAX_VALUE/2; private int firstBases; private int midBases; private int lastBases; private int firstMaxLength=Integer.MAX_VALUE/2; private int midMaxLength=Integer.MAX_VALUE/2; private int lastMaxLength=Integer.MAX_VALUE/2; public TailCropTrimmer(String args) { String arg[]=args.split(":"); bases=Integer.parseInt(arg[0]); switch(arg.length) { case 1: firstBases=midBases=lastBases=Integer.parseInt(arg[0]); break; case 2: firstBases=midBases=lastBases=Integer.parseInt(arg[0]); firstMaxLength=midMaxLength=lastMaxLength=Integer.parseInt(arg[1]); break; case 4: firstBases=midBases=Integer.parseInt(arg[0]); firstMaxLength=midMaxLength=Integer.parseInt(arg[1]); lastBases=Integer.parseInt(arg[2]); lastMaxLength=Integer.parseInt(arg[3]); break; case 6: firstBases=Integer.parseInt(arg[0]); firstMaxLength=Integer.parseInt(arg[1]); midBases=Integer.parseInt(arg[2]); midMaxLength=Integer.parseInt(arg[3]); lastBases=Integer.parseInt(arg[4]); lastMaxLength=Integer.parseInt(arg[5]); break; default: if(arg.length>1) maxLength=Integer.parseInt(arg[1]); } } /* @Override public FastqRecord[] processRecords(FastqRecord[] in) { public FastqRecord[] processRecords(FastqRecord[] in) { if(in==null) return null; FastqRecord out[]=new FastqRecord[in.length]; for(int i=0;i<in.length;i++) int lastRecord=in.length-1; if(in.length>0) { if(in[0]!=null) out[0]=processRecord(in[0], firstBases, firstMaxLength); } for(int i=1;i<lastRecord;i++) { if(in[i]!=null) out[i]=processRecord(in[i]); out[i]=processRecord(in[i], midBases, midMaxLength); } return out; if(lastRecord>0) { if(in[lastRecord]!=null) out[lastRecord]=processRecord(in[lastRecord], lastBases, lastMaxLength); } */ return out; } @Override public FastqRecord processRecord(FastqRecord in) private FastqRecord processRecord(FastqRecord in, int bases, int maxLength) { int len=in.getSequence().length(); Loading