Commit 38d18d35 authored by Andreas Tille's avatar Andreas Tille
Browse files

New upstream version 0.39+dfsg

parent d2edfdea
Loading
Loading
Loading
Loading
+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" />
+69 −7
Original line number Diff line number Diff line
@@ -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();
		
+61 −20
Original line number Diff line number Diff line
@@ -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();