This is an automated email from the git hooks/post-receive script. tille pushed a commit to branch master in repository rambo-k.
commit c988c5c9ba404c105152d5f1b950756b521ea283 Author: Andreas Tille <[email protected]> Date: Tue Oct 25 19:16:11 2016 +0200 New upstream version 1.21+r5 --- RAMBO-K-plugin_eclipse/.classpath | 9 - RAMBO-K-plugin_eclipse/.project | 17 -- .../RAMBO-K Indexer (32 bit).launch | 27 --- .../RAMBO-K indexer (64 bit).launch | 27 --- RAMBO-K-plugin_eclipse/RAMBO-K-Indexer.iml | 13 -- RAMBO-K-plugin_eclipse/plugin.properties | 11 -- .../org/rki/rambok/indexer/GeneiousDataReader.java | 56 ------ .../org/rki/rambok/indexer/GeneiousDataWriter.java | 73 -------- .../src/org/rki/rambok/indexer/GeneiousReader.java | 82 -------- .../src/org/rki/rambok/indexer/GeneiousWriter.java | 53 ------ .../src/org/rki/rambok/indexer/Indexer.java | 189 ------------------- .../src/org/rki/rambok/indexer/IndexerPlugin.java | 92 --------- .../rki/rambok/indexer/RAMBOKProgressListener.java | 43 ----- .../src/org/rki/rambok/indexer/RAMBOKresult.java | 206 --------------------- .../rambok/indexer/RAMBOKresultDocumentViewer.java | 79 -------- ReadClassifier_eclipse/.classpath | 1 - .../src/org/rki/readclassifier/AbstractWriter.java | 7 - .../src/org/rki/readclassifier/Classifier.java | 2 +- .../readclassifier/ClassifierProgressListener.java | 5 - .../org/rki/readclassifier/ClassifierThread.java | 41 ++-- .../src/org/rki/readclassifier/MMClassifier.java | 38 ---- .../src/org/rki/readclassifier/Read.java | 19 +- .../src/org/rki/readclassifier/Reader.java | 6 +- .../src/org/rki/readclassifier/Writer.java | 2 +- .../src/org/rki/readtrainer/AbstractReader.java | 9 - .../src/org/rki/readtrainer/Trainer.java | 2 +- .../rki/readtrainer/TrainerProgressListener.java | 5 - .../src/org/rki/readtrainer/TrainerThread.java | 9 +- 28 files changed, 30 insertions(+), 1093 deletions(-) diff --git a/RAMBO-K-plugin_eclipse/.classpath b/RAMBO-K-plugin_eclipse/.classpath deleted file mode 100644 index 20c0f69..0000000 --- a/RAMBO-K-plugin_eclipse/.classpath +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<classpath> - <classpathentry kind="src" path="src"/> - <classpathentry combineaccessrules="false" kind="src" path="/GeneiousFiles"/> - <classpathentry combineaccessrules="false" kind="src" path="/ReadTrainer"/> - <classpathentry combineaccessrules="false" kind="src" path="/ReadClassifier"/> - <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> - <classpathentry kind="output" path="bin"/> -</classpath> diff --git a/RAMBO-K-plugin_eclipse/.project b/RAMBO-K-plugin_eclipse/.project deleted file mode 100644 index 629e25b..0000000 --- a/RAMBO-K-plugin_eclipse/.project +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>RAMBO-K-plugin_eclipse</name> - <comment></comment> - <projects> - </projects> - <buildSpec> - <buildCommand> - <name>org.eclipse.jdt.core.javabuilder</name> - <arguments> - </arguments> - </buildCommand> - </buildSpec> - <natures> - <nature>org.eclipse.jdt.core.javanature</nature> - </natures> -</projectDescription> diff --git a/RAMBO-K-plugin_eclipse/RAMBO-K Indexer (32 bit).launch b/RAMBO-K-plugin_eclipse/RAMBO-K Indexer (32 bit).launch deleted file mode 100644 index 36e92e1..0000000 --- a/RAMBO-K-plugin_eclipse/RAMBO-K Indexer (32 bit).launch +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication"> -<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"> -<listEntry value="/RAMBO-K-Indexer"/> -</listAttribute> -<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES"> -<listEntry value="4"/> -</listAttribute> -<mapAttribute key="org.eclipse.debug.core.environmentVariables"> -<mapEntry key="DYLD_LIBRARY_PATH" value="./activation/macos:./native_libs/macos"/> -<mapEntry key="LD_LIBRARY_PATH" value="./activation/linux32:./native_libs/linux32"/> -</mapAttribute> -<listAttribute key="org.eclipse.debug.ui.favoriteGroups"> -<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/> -</listAttribute> -<listAttribute key="org.eclipse.jdt.launching.CLASSPATH"> -<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry containerPath="org.eclipse.jdt.launching.JRE_CONTAINER" javaProject="RAMBO-K-Indexer" path="1" type="4"/> "/> -<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry id="org.eclipse.jdt.launching.classpathentry.defaultClasspath"> <memento exportedEntriesOnly="false" project="RAMBO-K-Indexer"/> </runtimeClasspathEntry> "/> -<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/GeneiousFiles/resources" path="3" type="2"/> "/> -</listAttribute> -<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/> -<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.biomatters.iseek.application.ISeekMain"/> -<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="extraPlugins="org.rki.rambok.indexer.IndexerPlugin""/> -<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="RAMBO-K-Indexer"/> -<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-ea -Xss512K -Xms256M -Xmx768M -XX:MaxPermSize=96M -Djava.util.logging.config.file=no_logging.properties"/> -<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:GeneiousFiles}"/> -</launchConfiguration> diff --git a/RAMBO-K-plugin_eclipse/RAMBO-K indexer (64 bit).launch b/RAMBO-K-plugin_eclipse/RAMBO-K indexer (64 bit).launch deleted file mode 100644 index 87532e4..0000000 --- a/RAMBO-K-plugin_eclipse/RAMBO-K indexer (64 bit).launch +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication"> -<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"> -<listEntry value="/RAMBO-K-Indexer"/> -</listAttribute> -<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES"> -<listEntry value="4"/> -</listAttribute> -<mapAttribute key="org.eclipse.debug.core.environmentVariables"> -<mapEntry key="DYLD_LIBRARY_PATH" value="./activation/macos:./native_libs/macos"/> -<mapEntry key="LD_LIBRARY_PATH" value="./activation/linux64:./native_libs/linux64"/> -</mapAttribute> -<listAttribute key="org.eclipse.debug.ui.favoriteGroups"> -<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/> -</listAttribute> -<listAttribute key="org.eclipse.jdt.launching.CLASSPATH"> -<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry containerPath="org.eclipse.jdt.launching.JRE_CONTAINER" javaProject="RAMBO-K-Indexer" path="1" type="4"/> "/> -<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry id="org.eclipse.jdt.launching.classpathentry.defaultClasspath"> <memento exportedEntriesOnly="false" project="RAMBO-K-Indexer"/> </runtimeClasspathEntry> "/> -<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/GeneiousFiles/resources" path="3" type="2"/> "/> -</listAttribute> -<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/> -<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.biomatters.iseek.application.ISeekMain"/> -<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="extraPlugins="org.rki.rambok.indexer.IndexerPlugin""/> -<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="RAMBO-K-Indexer"/> -<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-XX:+UseConcMarkSweepGC -ea -Xss512K -Xms256M -Xmx768M -XX:MaxPermSize=256M -Djava.util.logging.config.file=no_logging.properties"/> -<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:GeneiousFiles}"/> -</launchConfiguration> diff --git a/RAMBO-K-plugin_eclipse/RAMBO-K-Indexer.iml b/RAMBO-K-plugin_eclipse/RAMBO-K-Indexer.iml deleted file mode 100644 index a8a2107..0000000 --- a/RAMBO-K-plugin_eclipse/RAMBO-K-Indexer.iml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<module type="JAVA_MODULE" version="4"> - <component name="NewModuleRootManager" inherit-compiler-output="true"> - <exclude-output /> - <content url="file://$MODULE_DIR$"> - <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" /> - </content> - <orderEntry type="inheritedJdk" /> - <orderEntry type="sourceFolder" forTests="false" /> - <orderEntry type="module" module-name="GeneiousFiles" /> - </component> -</module> - diff --git a/RAMBO-K-plugin_eclipse/plugin.properties b/RAMBO-K-plugin_eclipse/plugin.properties deleted file mode 100644 index a69ba44..0000000 --- a/RAMBO-K-plugin_eclipse/plugin.properties +++ /dev/null @@ -1,11 +0,0 @@ -# This file contains important information about the plugin -# and must be included in the plugin jar file. - -# This is the fully qualified name of the main class -# of the plugin you are developing. This is required by -# Geneious to install a plugin. -plugin-name=org.rki.rambok.indexer.IndexerPlugin - -# This is the short name for your plugin. It is used -# to name the gplugin file for distribution. -short-plugin-name=IndexerPlugin \ No newline at end of file diff --git a/RAMBO-K-plugin_eclipse/src/org/rki/rambok/indexer/GeneiousDataReader.java b/RAMBO-K-plugin_eclipse/src/org/rki/rambok/indexer/GeneiousDataReader.java deleted file mode 100644 index 8af469c..0000000 --- a/RAMBO-K-plugin_eclipse/src/org/rki/rambok/indexer/GeneiousDataReader.java +++ /dev/null @@ -1,56 +0,0 @@ -package org.rki.rambok.indexer; - -import java.util.List; -import java.util.concurrent.LinkedBlockingQueue; - -import org.rki.readclassifier.Read; -import org.rki.readclassifier.ReadPair; -import org.rki.readtrainer.AbstractReader; - -import com.biomatters.geneious.publicapi.documents.sequence.NucleotideGraphSequenceDocument; -import com.biomatters.geneious.publicapi.documents.sequence.NucleotideSequenceDocument; -import com.biomatters.geneious.publicapi.documents.sequence.SequenceListDocument; - -public class GeneiousDataReader extends AbstractReader { - private List<NucleotideSequenceDocument> _seqs; - private int _numThreads; - - public GeneiousDataReader(SequenceListDocument doc, int numThreads) { - _seqs = doc.getNucleotideSequences(); - _numThreads = numThreads; - try { - reads = new LinkedBlockingQueue<ReadPair>(50000); - } catch(Exception e) { - System.out.println("--------------\n"); - e.printStackTrace(); - System.out.println("--------------\n"); - } - } - - public void run() { - readReads(); - try { - for(int i=0; i<_numThreads; i++) { - reads.put(new ReadPair(null, null)); - } - } catch(Exception e) { - e.printStackTrace(); - } - } - - private void readReads() { - for(NucleotideSequenceDocument seq : _seqs) { - NucleotideGraphSequenceDocument gseq = (NucleotideGraphSequenceDocument)seq; - byte[] intQualities = new byte[gseq.getSequenceLength()]; - for(int i=0; i<gseq.getSequenceLength(); i++) { - intQualities[i] = (byte)gseq.getSequenceQuality(i); - } - Read read = new Read(seq.getName(), gseq.getSequenceString(), intQualities, true); - try { - reads.put(new ReadPair(read, null)); - } catch(InterruptedException e) { - e.printStackTrace(); - } - } - } -} diff --git a/RAMBO-K-plugin_eclipse/src/org/rki/rambok/indexer/GeneiousDataWriter.java b/RAMBO-K-plugin_eclipse/src/org/rki/rambok/indexer/GeneiousDataWriter.java deleted file mode 100644 index 4f52b0d..0000000 --- a/RAMBO-K-plugin_eclipse/src/org/rki/rambok/indexer/GeneiousDataWriter.java +++ /dev/null @@ -1,73 +0,0 @@ -package org.rki.rambok.indexer; - -import java.util.Date; -import java.util.LinkedList; -import java.util.concurrent.LinkedBlockingQueue; - -import org.rki.readclassifier.AbstractWriter; -import org.rki.readclassifier.Read; -import org.rki.readclassifier.ReadPair; - -import com.biomatters.geneious.publicapi.documents.sequence.CompactQualityOnlyGraph; -import com.biomatters.geneious.publicapi.documents.sequence.DefaultSequenceListDocument; -import com.biomatters.geneious.publicapi.implementations.sequence.DefaultNucleotideGraphSequence; - -public class GeneiousDataWriter extends AbstractWriter { - private int _numThreads; - private DefaultSequenceListDocument _out1; - private int _scoreCutoff; - private int _numToTrain; - private int _numTrained; - private RAMBOKresult _resdoc; - - public GeneiousDataWriter(int numThreads, DefaultSequenceListDocument out1, DefaultSequenceListDocument out2, int scoreCutoff, int numToTrain, RAMBOKresult resdoc) { - outReads = new LinkedBlockingQueue<ReadPair>(50000); - _numThreads = numThreads; - _out1 = out1; - _scoreCutoff = scoreCutoff; - _numToTrain = numToTrain; - _numTrained = 0; - _resdoc = resdoc; - } - - public void run() { - LinkedList<Double> scores = new LinkedList<Double>(); - int threadsRunning = _numThreads; - while(true) { - try { - ReadPair reads = outReads.take(); - if(reads.read1 == null) { - threadsRunning --; - if(threadsRunning == 0) - break; - continue; - } - if(reads.read1.invalid && (reads.read2 == null || reads.read2.invalid)) - continue; - if(reads.read1.score > _scoreCutoff) { - _out1.addNucleotideSequence(makeSeqGraph(reads.read1)); - } - _numTrained += 1; - if(_numTrained < _numToTrain) { - scores.add(reads.read1.score); - } - else if(_numTrained == _numToTrain) { - _resdoc.setRealScores(scores); - } -// else { -// _out2.addNucleotideSequence(makeSeqGraph(reads.read1)); -// } - } catch(Exception e) { - e.printStackTrace(); - } - } - if(_numTrained < _numToTrain) { - _resdoc.setRealScores(scores); - } - } - - private DefaultNucleotideGraphSequence makeSeqGraph(Read read) { - DefaultNucleotideGraphSequence gdoc = new DefaultNucleotideGraphSequence(read.name, "", read.bases, new Date(), new CompactQualityOnlyGraph(read.intQualities)); - return gdoc; - } -} diff --git a/RAMBO-K-plugin_eclipse/src/org/rki/rambok/indexer/GeneiousReader.java b/RAMBO-K-plugin_eclipse/src/org/rki/rambok/indexer/GeneiousReader.java deleted file mode 100644 index 3d40ee1..0000000 --- a/RAMBO-K-plugin_eclipse/src/org/rki/rambok/indexer/GeneiousReader.java +++ /dev/null @@ -1,82 +0,0 @@ -package org.rki.rambok.indexer; - -import java.util.List; -import java.util.Random; -import java.util.concurrent.LinkedBlockingQueue; - -import org.rki.readclassifier.Read; -import org.rki.readclassifier.ReadPair; -import org.rki.readtrainer.AbstractReader; - -import com.biomatters.geneious.publicapi.documents.sequence.DefaultSequenceListDocument; -import com.biomatters.geneious.publicapi.documents.sequence.NucleotideSequenceDocument; -import com.biomatters.geneious.publicapi.documents.sequence.SequenceCharSequence; - -public class GeneiousReader extends AbstractReader { - private List<NucleotideSequenceDocument> _seqs; - private int _numReads; - private int _numThreads; - private int _readsRead = 0; - - public GeneiousReader(DefaultSequenceListDocument doc, int numReads, int numThreads) { - _seqs = doc.getNucleotideSequences(); - _numReads = numReads; - _numThreads = numThreads; - try { - reads = new LinkedBlockingQueue<ReadPair>(numReads); - } catch(Exception e) { - System.out.println("--------------\n"); - e.printStackTrace(); - System.out.println("--------------\n"); - } - } - - public void run() { - readReads(); - try { - for(int i=0; i<_numThreads; i++) { - reads.put(new ReadPair(null, null)); - } - } catch(Exception e) { - e.printStackTrace(); - } - } - - private void readReads() { - int readLength = 100; - Random rand = new Random(); - int numpos = 0; - for(NucleotideSequenceDocument seq : _seqs) { - numpos += seq.getSequenceLength(); - } - double posOdds = (double)_numReads / (double)numpos; - readloop: while(_readsRead < _numReads) { - for(NucleotideSequenceDocument seq : _seqs) { - int numToDraw = (int)(posOdds*rand.nextDouble()*seq.getSequenceLength()); - int numDrawn = 0; - SequenceCharSequence seqSeq = seq.getCharSequence(); - while(numDrawn < numToDraw) { - int seqPos = (int)(rand.nextDouble()*(seq.getSequenceLength()-readLength)); - SequenceCharSequence readSeq = seqSeq.subSequence(seqPos, seqPos+readLength); - boolean canKeep = true; - for(int i=0; i<readSeq.length(); i++) { - if(readSeq.charAt(i) != 'A' && - readSeq.charAt(i) != 'G' && - readSeq.charAt(i) != 'C' && - readSeq.charAt(i) != 'T') { - canKeep = false; - break; - } - } - if(canKeep) { - Read read = new Read("1", readSeq.toString(), null); - reads.add(new ReadPair(read, null)); - _readsRead += 1; - if(_readsRead >= _numReads-1) - break readloop; - } - } - } - } - } -} diff --git a/RAMBO-K-plugin_eclipse/src/org/rki/rambok/indexer/GeneiousWriter.java b/RAMBO-K-plugin_eclipse/src/org/rki/rambok/indexer/GeneiousWriter.java deleted file mode 100644 index 3638d92..0000000 --- a/RAMBO-K-plugin_eclipse/src/org/rki/rambok/indexer/GeneiousWriter.java +++ /dev/null @@ -1,53 +0,0 @@ -package org.rki.rambok.indexer; - -import java.util.LinkedList; -import java.util.concurrent.LinkedBlockingQueue; - -import org.rki.readclassifier.AbstractWriter; -import org.rki.readclassifier.Classifier; -import org.rki.readclassifier.ReadPair; - -public class GeneiousWriter extends AbstractWriter { - - private int _numThreads; - private LinkedList<Double> _scores; - private int _currentOrg = 0; - - public GeneiousWriter(int numReads, int numThreads) { - outReads = new LinkedBlockingQueue<ReadPair>(numReads); - _numThreads = numThreads; - _scores = new LinkedList<Double>(); - } - - public void setCurrentOrg(int currentOrg) { - _currentOrg = currentOrg; - } - - public void run() { - int threadsRunning = _numThreads; - while(true) { - try { - ReadPair reads = outReads.take(); - if(reads.read1 == null) { - threadsRunning --; - if(threadsRunning == 0) - break; - } - if(reads.read1.invalid && reads.read2.invalid) - continue; - _scores.add(reads.read1.score); -// if(Classifier.useCutoff == Classifier.Cutoff.HIGHER && reads.read1.score < Classifier.cutoffHigher) -// continue; -// else if(Classifier.useCutoff == Classifier.Cutoff.LOWER && reads.read1.score > Classifier.cutoffLower) -// continue; -// out1w.write(reads.read1.toString(true)); - } catch(Exception e) { - } - } - } - - public LinkedList<Double> getScores() { - return _scores; - } - -} diff --git a/RAMBO-K-plugin_eclipse/src/org/rki/rambok/indexer/Indexer.java b/RAMBO-K-plugin_eclipse/src/org/rki/rambok/indexer/Indexer.java deleted file mode 100644 index d705bbd..0000000 --- a/RAMBO-K-plugin_eclipse/src/org/rki/rambok/indexer/Indexer.java +++ /dev/null @@ -1,189 +0,0 @@ -package org.rki.rambok.indexer; - -import java.util.Date; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.List; -import java.util.concurrent.atomic.AtomicInteger; - -import org.rki.readclassifier.ClassifierThread; -import org.rki.readclassifier.MMClassifier; -import org.rki.readtrainer.Trainer; -import org.rki.readtrainer.TrainerThread; - -import com.biomatters.geneious.publicapi.documents.AnnotatedPluginDocument; -import com.biomatters.geneious.publicapi.documents.DocumentUtilities; -import com.biomatters.geneious.publicapi.documents.sequence.DefaultSequenceListDocument; -import com.biomatters.geneious.publicapi.implementations.sequence.DefaultNucleotideSequence; -import com.biomatters.geneious.publicapi.plugin.DocumentOperation; -import com.biomatters.geneious.publicapi.plugin.DocumentSelectionOption; -import com.biomatters.geneious.publicapi.plugin.DocumentSelectionSignature; -import com.biomatters.geneious.publicapi.plugin.DocumentType; -import com.biomatters.geneious.publicapi.plugin.GeneiousActionOptions; -import com.biomatters.geneious.publicapi.plugin.Options; -import com.biomatters.geneious.publicapi.plugin.Options.IntegerOption; - -import jebl.util.ProgressListener; - -/** - * This plugin shows how to create a simple AlignmentOperation by providing an implementation that just pads the alignment - * to make all sequences the same length - * - * @author Matt Kearse - * @version $Id$ - */ - -public class Indexer extends DocumentOperation { - public String getHelp() { - return "This plugin separates foreground reads from background reads using RAMBO-K."; - } - - public String getName() { - return "RAMBO-K"; - } - - public double getTabPosition() { - return 0.5; - } - - public DocumentSelectionSignature[] getSelectionSignatures() { - return new DocumentSelectionSignature[] { DocumentSelectionSignature.forNucleotideSequences(1, Integer.MAX_VALUE) }; - } - - public boolean isProOnly() { - return false; - } - - @Override - public Options getOptions(AnnotatedPluginDocument[] docs) { - Options opt= new Options(this.getClass()); - opt.addIntegerOption("kMerSize", "Kmer size to use", 8, 2, 10); - opt.addIntegerOption("scoreCutoff", "Score cutoff (everything with a lower score will be considered background)", 0, -1000, 1000); - opt.addIntegerOption("numThreads", "Number of threads to use", 4, 1, 64); - HashSet<DocumentType> allowedDocs = new HashSet<DocumentType>(); - allowedDocs.add(DocumentType.NUCLEOTIDE_SEQUENCE_LIST_TYPE); - allowedDocs.add(DocumentType.NUCLEOTIDE_SEQUENCE_TYPE); - opt.addDocumentSelectionOption("foregroundReference", "Foreground reference(s)", DocumentSelectionOption.FolderOrDocuments.EMPTY, allowedDocs, null, "Reference sequence(s)", null, false, new LinkedList<AnnotatedPluginDocument>()); - opt.addDocumentSelectionOption("backgroundReference", "Background reference(s)", DocumentSelectionOption.FolderOrDocuments.EMPTY, allowedDocs, null, "Background sequence(s)", null, false, new LinkedList<AnnotatedPluginDocument>()); - return opt; - } - - @Override - public GeneiousActionOptions getActionOptions() { -/* GeneiousActionOptions parent = new GeneiousActionOptions("RAMBO-K").setMainMenuLocation(GeneiousActionOptions.MainMenu.Tools).setInMainToolbar(true); - GeneiousActionOptions index = new GeneiousActionOptions("Build index", "Builds a RAMBO-K index from reference sequence(s)", null); - GeneiousActionOptions res = GeneiousActionOptions.createSubmenuActionOptions(index, parent); - return res;*/ - return new GeneiousActionOptions("Spearate reads through RAMBO-K").setMainMenuLocation(GeneiousActionOptions.MainMenu.Tools).setInMainToolbar(true); - } - - public List performOperation(AnnotatedPluginDocument[] docs, ProgressListener progress, Options options) { - int numToTrain = 50000; - int numThreads = ((IntegerOption)(options.getOption("numThreads"))).getValue(); - int kmersize = ((IntegerOption)(options.getOption("kMerSize"))).getValue(); - int scoreCutoff = ((IntegerOption)(options.getOption("scoreCutoff"))).getValue(); - Trainer.kmersize = kmersize; - int numReal = 0; - DefaultSequenceListDocument realReads = null; - try { - realReads = (DefaultSequenceListDocument)(docs[0].getDocument()); - numReal = realReads.getNucleotideSequences().size(); - } catch(Exception e) { - e.printStackTrace(); - } - RAMBOKProgressListener prog = new RAMBOKProgressListener(progress, 2*numToTrain, 2*numToTrain+numReal); - AtomicInteger[][] matrix1 = new AtomicInteger[(int)Math.pow(4, kmersize)][4]; - AtomicInteger[][] matrix2 = new AtomicInteger[(int)Math.pow(4, kmersize)][4]; - List<AnnotatedPluginDocument> res = new LinkedList<AnnotatedPluginDocument>(); - LinkedList<Double>[] scores = new LinkedList[] {new LinkedList<Double>(), new LinkedList<Double>()}; - try { - prog.setTitle("Training model..."); - DefaultSequenceListDocument seqDoc1 = (DefaultSequenceListDocument)(((DocumentSelectionOption)(options.getOption("foregroundReference"))).getDocuments().get(0).getDocument()); - trainMatrix(seqDoc1, matrix1, numToTrain, numThreads, prog); - DefaultSequenceListDocument seqDoc2 = (DefaultSequenceListDocument)(((DocumentSelectionOption)(options.getOption("backgroundReference"))).getDocuments().get(0).getDocument()); - trainMatrix(seqDoc2, matrix2, numToTrain, numThreads, prog); - - prog.setTitle("Classifying simulated reads..."); - MMClassifier classifier = new MMClassifier(); - classifier.setMatrices(matrix1, matrix2, seqDoc1.getName(), seqDoc2.getName(), kmersize); - scores[0] = testReads(seqDoc1, classifier, numToTrain, numThreads, kmersize, prog); - scores[1] = testReads(seqDoc2, classifier, numToTrain, numThreads, kmersize, prog); - RAMBOKresult resdoc = new RAMBOKresult("RAMBOK summary: foreground " + seqDoc1.getName() + " vs. background " + seqDoc2.getName(), seqDoc1.getName(), seqDoc2.getName(), scores[0], scores[1]); - prog.setTitle("Classifying real reads..."); - res = classifyReads(realReads, numThreads, classifier, prog, scoreCutoff, numToTrain, resdoc); - res.get(0).setName("RAMBO-K foreground reads: " + seqDoc1.getName()); -// res.add(resdoc); - res.add(DocumentUtilities.createAnnotatedPluginDocument(resdoc)); - res.get(1).setName(resdoc.getName()); - // res.get(1).setName("RAMBO-K reads: " + seqDoc2.getName()); - } catch (Exception e) { - e.printStackTrace(); - } - return res; - } - - private LinkedList<AnnotatedPluginDocument> classifyReads(DefaultSequenceListDocument doc, int numThreads, MMClassifier classifier, RAMBOKProgressListener prog, int scoreCutoff, int numToTrain, RAMBOKresult resdoc) throws InterruptedException { - GeneiousDataReader reader = new GeneiousDataReader(doc, numThreads); - DefaultSequenceListDocument out1 = new DefaultSequenceListDocument(); - DefaultSequenceListDocument out2 = new DefaultSequenceListDocument(); - GeneiousDataWriter writer = new GeneiousDataWriter(numThreads, out1, out2, scoreCutoff, numToTrain, resdoc); - System.out.println("\n====" + scoreCutoff + "===="); - writer.start(); - reader.start(); - LinkedList<ClassifierThread> threadList = new LinkedList<ClassifierThread>(); - while(threadList.size() < numThreads) { - threadList.add(new ClassifierThread(reader, writer, classifier, prog)); - } - for(ClassifierThread c : threadList) { - c.start(); - } - for(ClassifierThread c : threadList) { - c.join(); - } - reader.join(); - writer.join(); - out1.addNucleotideSequence(new DefaultNucleotideSequence("test", "AG")); -// out2.addNucleotideSequence(new DefaultNucleotideSequence("test", "AG")); - LinkedList<AnnotatedPluginDocument> res = new LinkedList<AnnotatedPluginDocument>(); - res.add(DocumentUtilities.createAnnotatedPluginDocument(out1)); -// res.add(DocumentUtilities.createAnnotatedPluginDocument(out2)); - return res; - } - - private LinkedList<Double> testReads(DefaultSequenceListDocument doc, MMClassifier classifier, int numToTrain, int numThreads, int kmersize, RAMBOKProgressListener prog) throws InterruptedException { - GeneiousWriter writer = new GeneiousWriter(numToTrain, numThreads); - writer.start(); - GeneiousReader reader = new GeneiousReader(doc, numToTrain, numThreads); - reader.start(); - LinkedList<ClassifierThread> threadList = new LinkedList<ClassifierThread>(); - while(threadList.size() < numThreads) { - threadList.add(new ClassifierThread(reader, writer, classifier, prog)); - } - for(ClassifierThread c : threadList) { - c.start(); - } - for(ClassifierThread c : threadList) { - c.join(); - } - reader.join(); - writer.join(); - return writer.getScores(); - } - - private void trainMatrix(DefaultSequenceListDocument doc, AtomicInteger[][] matrix, int numToTrain, int numThreads, RAMBOKProgressListener prog) throws InterruptedException { - Trainer.clearMatrix(matrix); - GeneiousReader reader = new GeneiousReader(doc, numToTrain, numThreads); - reader.start(); - LinkedList<TrainerThread> trainers = new LinkedList<TrainerThread>(); - for(int i=0; i<numThreads; i++) { - trainers.add(new TrainerThread(reader, matrix, prog)); - } - for(TrainerThread trainer : trainers) { - trainer.start(); - } - for(TrainerThread trainer : trainers) { - trainer.join(); - } - reader.join(); - } -} diff --git a/RAMBO-K-plugin_eclipse/src/org/rki/rambok/indexer/IndexerPlugin.java b/RAMBO-K-plugin_eclipse/src/org/rki/rambok/indexer/IndexerPlugin.java deleted file mode 100644 index dc3c3ca..0000000 --- a/RAMBO-K-plugin_eclipse/src/org/rki/rambok/indexer/IndexerPlugin.java +++ /dev/null @@ -1,92 +0,0 @@ -package org.rki.rambok.indexer; - -import com.biomatters.geneious.publicapi.documents.AnnotatedPluginDocument; -import com.biomatters.geneious.publicapi.plugin.DocumentOperation; -import com.biomatters.geneious.publicapi.plugin.DocumentSelectionSignature; -import com.biomatters.geneious.publicapi.plugin.DocumentViewer; -import com.biomatters.geneious.publicapi.plugin.DocumentViewerFactory; -import com.biomatters.geneious.publicapi.plugin.GeneiousPlugin; - -/** - * This plugin shows how to create a simple alignment operation plugin. This allows - * the user to create an alignment document out of sequences. - * <p/> - * All the plugin has to do, is given a list of sequences return a list of aligned sequences to be - * appear in the alignment and the Geneious framework handles the rest (such as: - * <ul>; - * <li>The type of documents that have been selected (sequence documents, sequence list documents, or alignment documents)</li>; - * <li>Reordering and reversing of the sequences</li>; - * <li>Whether the alignment is local or global</li>; - * <li>Referenced documents</li>; - * <li>Bases/residues unsupported by the underlying algorithm</li>; - * </ul>; - * <p/> - * This class just provides the framework to hook the {@link RAMBO-K-Indexer} - * into Geneious. All of the real work happens in {@link RAMBO-K-Indexer}. - */ -public class IndexerPlugin extends GeneiousPlugin { - @Override - public DocumentOperation[] getDocumentOperations() { - return new DocumentOperation[] {new Indexer() }; - } - - public DocumentViewerFactory[] getDocumentViewerFactories() { - return new DocumentViewerFactory[] { - new DocumentViewerFactory() { - - @Override - public DocumentSelectionSignature[] getSelectionSignatures() { - return new DocumentSelectionSignature[] { new DocumentSelectionSignature(RAMBOKresult.class, 1, 1)}; - } - - @Override - public String getName() { - return "RAMBO-K results viewer"; - } - - @Override - public String getHelp() { - return "Shows the metrics associated with a RAMBO-K result."; - } - - @Override - public String getDescription() { - return "Shows the metrics associated with a RAMBO-K result."; - } - - @Override - public DocumentViewer createViewer(AnnotatedPluginDocument[] docs) { - return new RAMBOKresultDocumentViewer((RAMBOKresult)docs[0].getDocumentOrCrash()); - } - } - }; - } - - public String getName() { - return "RAMBO-K"; - } - - public String getHelp() { - return "RAMBO-K"; - } - - public String getDescription() { - return "RAMBO-K"; - } - - public String getAuthors() { - return "Piotr Wojciech Dabrowski & Simon H. Tausch, Robert Koch Insitute"; - } - - public String getVersion() { - return "0.1"; - } - - public String getMinimumApiVersion() { - return "4.11"; - } - - public int getMaximumApiVersion() { - return 4; - } -} diff --git a/RAMBO-K-plugin_eclipse/src/org/rki/rambok/indexer/RAMBOKProgressListener.java b/RAMBO-K-plugin_eclipse/src/org/rki/rambok/indexer/RAMBOKProgressListener.java deleted file mode 100644 index 6a90f91..0000000 --- a/RAMBO-K-plugin_eclipse/src/org/rki/rambok/indexer/RAMBOKProgressListener.java +++ /dev/null @@ -1,43 +0,0 @@ -package org.rki.rambok.indexer; - -import java.util.concurrent.atomic.AtomicInteger; - -import org.rki.readclassifier.ClassifierProgressListener; -import org.rki.readtrainer.TrainerProgressListener; - -import jebl.util.ProgressListener; - -public class RAMBOKProgressListener implements TrainerProgressListener, ClassifierProgressListener { - private AtomicInteger _numReadsProcessed = new AtomicInteger(0); - private int _numReadsToTrain; - private int _numReadsToClassify; - private int _numSteps; - private ProgressListener _progress; - - public RAMBOKProgressListener(ProgressListener progress, int readsToTrain, int readsToClassify) { - _numReadsProcessed = new AtomicInteger(0); - _numReadsToTrain = readsToTrain; - _numReadsToClassify = readsToClassify; - _progress = progress; - _numSteps = _numReadsToTrain + _numReadsToClassify; - _progress.setProgress(0, _numReadsToTrain); - } - - public void readTrained() { - int numt = _numReadsProcessed.incrementAndGet(); - if(numt % 1000 == 0) { - _progress.setProgress(numt, _numSteps); - } - } - - public void readClassified() { - int numt = _numReadsProcessed.incrementAndGet(); - if(numt % 1000 == 0) { - _progress.setProgress(numt, _numSteps); - } - } - - public void setTitle(String title) { - _progress.setTitle(title); - } -} diff --git a/RAMBO-K-plugin_eclipse/src/org/rki/rambok/indexer/RAMBOKresult.java b/RAMBO-K-plugin_eclipse/src/org/rki/rambok/indexer/RAMBOKresult.java deleted file mode 100644 index 1c859c4..0000000 --- a/RAMBO-K-plugin_eclipse/src/org/rki/rambok/indexer/RAMBOKresult.java +++ /dev/null @@ -1,206 +0,0 @@ -package org.rki.rambok.indexer; - -import java.util.Collections; -import java.util.Date; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; - -import org.jdom.Element; - -import com.biomatters.geneious.publicapi.documents.DocumentField; -import com.biomatters.geneious.publicapi.documents.PluginDocument; -import com.biomatters.geneious.publicapi.documents.URN; -import com.biomatters.geneious.publicapi.documents.XMLSerializationException; - -public class RAMBOKresult implements PluginDocument { - private int NUMBINS = 100; - - private static int HIST_ORG1 = 0; - private static int HIST_ORG2 = 1; - private static int HIST_REAL = 2; - - private String _name; - private String _oname1; - private String _oname2; - private LinkedList<Double> _scores1; - private LinkedList<Double> _scores2; - private LinkedList<Double> _realScores; - private Date _creationDate; - private int[][] _scoreHist; - private double _histMin; - private double _histMax; - private double _histStep; - private int _highestNum; - - public RAMBOKresult(String docname, String oname1, String oname2, LinkedList<Double> scores1, LinkedList<Double> scores2) { - _name = docname; - _oname1 = oname1; - _oname2 = oname2; - _scores1 = scores1; - _scores2 = scores2; - _scoreHist = new int[NUMBINS][3]; - for(int i=0; i<NUMBINS; i++) { - for(int j=0; j<3; j++) { - _scoreHist[i][j] = 0; - } - } - } - - public RAMBOKresult() {} - - public void setRealScores(LinkedList<Double> scores) { - _realScores = scores; - calculateHistograms(); - } - - private void calculateHistograms() { - Collections.sort(_scores1); - Collections.sort(_scores2); - Collections.sort(_realScores); - LinkedList<Double> allscores = new LinkedList<Double>(); - allscores.addAll(_scores1); - allscores.addAll(_scores2); - allscores.addAll(_realScores); - Collections.sort(allscores); - _histMin = allscores.get(5*allscores.size()/100); - _histMax = allscores.get(allscores.size()-(5*allscores.size()/100)); - _histStep = (_histMax - _histMin)/NUMBINS; - - double currVal = _histMin; - int currpos = 0; - Iterator<Double> s1it = _scores1.iterator(); - Iterator<Double> s2it = _scores2.iterator(); - Iterator<Double> srit = _realScores.iterator(); - double n1 = s1it.next(); - double n2 = s2it.next(); - double nr = srit.next(); - while(currVal <= _histMax && currpos < _scoreHist.length) { - while(n1 <= currVal) { - _scoreHist[currpos][0] += 1; - if(s1it.hasNext()) - n1 = s1it.next(); - else - n1 = Double.MAX_VALUE; - } - while(n2 <= currVal) { - _scoreHist[currpos][1] += 1; - if(s2it.hasNext()) - n2 = s2it.next(); - else - n2 = Double.MAX_VALUE; - } - while(nr <= currVal) { - _scoreHist[currpos][2] += 1; - if(srit.hasNext()) - nr = srit.next(); - else - nr = Double.MAX_VALUE; - } - currVal += _histStep; - currpos += 1; - } - _highestNum = 0; - for(int i=0; i<NUMBINS; i++) { - _highestNum = Math.max(_highestNum, getLargest(_scoreHist[i])); - } - } - - private int getLargest(int[] vals) { - int max = 0; - for(int i=0; i<vals.length; i++) { - if(vals[i] > max) - max = vals[i]; - } - return max; - } - - public int[][] getHistogram() { - return _scoreHist; - } - - public int getHighestNum() { - return _highestNum; - } - - public void fromXML(Element doc) throws XMLSerializationException { - _name = doc.getChildText("name"); - _oname1 = doc.getChildText("oname1"); - _oname2 = doc.getChildText("oname2"); - _histMin = Double.parseDouble(doc.getChildText("histMin")); - _histMax = Double.parseDouble(doc.getChildText("histMax")); - _histStep = Double.parseDouble(doc.getChildText("histStep")); - NUMBINS = Integer.parseInt(doc.getChildText("histBins")); - _highestNum = Integer.parseInt(doc.getChildText("highestNum")); - histFromString(doc.getChildText("scoreHist")); - } - - public Element toXML() { - Element root = new Element("TextDocument"); - root.addContent(new Element("name").setText(_name)); - root.addContent(new Element("oname1").setText(_oname1)); - root.addContent(new Element("oname2").setText(_oname2)); - root.addContent(new Element("histMin").setText(Double.toString(_histMin))); - root.addContent(new Element("histMax").setText(Double.toString(_histMax))); - root.addContent(new Element("histStep").setText(Double.toString(_histStep))); - root.addContent(new Element("histBins").setText(Integer.toString(NUMBINS))); - root.addContent(new Element("highestNum").setText(Integer.toString(_highestNum))); - root.addContent(new Element("scoreHist").setText(histToString())); - return root; - } - - private String histToString() { - StringBuilder res = new StringBuilder(); - for(int i=0; i<NUMBINS; i++) { - for(int j=0; j<3; j++) { - res.append(Integer.toString(_scoreHist[i][j])); - res.append(","); - } - } - return res.toString(); - } - - private void histFromString(String hist) { - _scoreHist = new int[NUMBINS][3]; - String[] vals = hist.split(","); - for(int i=0; i<NUMBINS; i++) { - for(int j=0; j<3; j++) { - _scoreHist[i][j] = Integer.parseInt(vals[3*i+j]); - } - } - } - - public Date getCreationDate() { - return _creationDate; - } - - public String getDescription() { - // TODO Auto-generated method stub - return null; - } - - public List<DocumentField> getDisplayableFields() { - // TODO Auto-generated method stub - return null; - } - - public Object getFieldValue(String arg0) { - // TODO Auto-generated method stub - return null; - } - - public String getName() { - return _name; - } - - public URN getURN() { - // TODO Auto-generated method stub - return null; - } - - public String toHTML() { - // TODO Auto-generated method stub - return null; - } - -} diff --git a/RAMBO-K-plugin_eclipse/src/org/rki/rambok/indexer/RAMBOKresultDocumentViewer.java b/RAMBO-K-plugin_eclipse/src/org/rki/rambok/indexer/RAMBOKresultDocumentViewer.java deleted file mode 100644 index 3b0fc2b..0000000 --- a/RAMBO-K-plugin_eclipse/src/org/rki/rambok/indexer/RAMBOKresultDocumentViewer.java +++ /dev/null @@ -1,79 +0,0 @@ -package org.rki.rambok.indexer; - -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Graphics; - -import javax.swing.JComponent; -import javax.swing.JPanel; - -import com.biomatters.geneious.publicapi.plugin.DocumentViewer; - -public class RAMBOKresultDocumentViewer extends DocumentViewer { - - private int _histHeight=300; - private int _histWidth = 500; - private int _offsetX = 10; - private int _offsetY = 10; - private int _topSpace = 50; - private int _fillAlpha = 80; - private RAMBOKresult _doc; - - public RAMBOKresultDocumentViewer(RAMBOKresult doc) { - _doc = doc; - } - - @Override - public JComponent getComponent() { - JPanel res = new JPanel() { - public void paintComponent(Graphics g) { - int maxHeight = _histHeight - _topSpace; - int[][] hist = _doc.getHistogram(); - int stepX = _histWidth / hist.length; - int highestNum = _doc.getHighestNum(); - int[] scaled = new int[hist.length+2]; - int[] xpoints = new int[hist.length+2]; - xpoints[0] = _offsetX; - scaled[0] = _offsetY+_histHeight; - xpoints[xpoints.length-1] = _offsetX+_histWidth; - scaled[scaled.length - 1] = _offsetY+_histHeight; - for(int i=0; i<hist.length; i++) { - scaled[i+1] = maxHeight*hist[i][0]; - scaled[i+1] /= highestNum; - scaled[i+1] = _offsetY+_topSpace+maxHeight - scaled[i+1]; - xpoints[i+1] = i*stepX+_offsetX; - } - g.setColor(new Color(255, 0, 0, _fillAlpha)); - g.fillPolygon(xpoints, scaled, scaled.length); - g.setColor(new Color(255, 0, 0, 255)); - g.drawPolyline(xpoints, scaled, scaled.length); - for(int i=0; i<hist.length; i++) { - scaled[i+1] = maxHeight*hist[i][1]; - scaled[i+1] /= highestNum; - scaled[i+1] = _offsetY+_topSpace+maxHeight - scaled[i+1]; - } - g.setColor(new Color(0, 0, 255, _fillAlpha)); - g.fillPolygon(xpoints, scaled, scaled.length); - g.setColor(new Color(0, 0, 255, 255)); - g.drawPolyline(xpoints, scaled, scaled.length); - for(int i=0; i<hist.length; i++) { - scaled[i+1] = maxHeight*hist[i][2]; - scaled[i+1] /= highestNum; - scaled[i+1] = _offsetY+_topSpace+maxHeight - scaled[i+1]; - } - g.setColor(new Color(0, 150, 0, _fillAlpha)); - g.fillPolygon(xpoints, scaled, scaled.length); - g.setColor(new Color(0, 150, 0, 255)); - g.drawPolyline(xpoints, scaled, scaled.length); - g.setColor(Color.BLACK); - g.drawRect(_offsetX, _offsetY, _histWidth, _histHeight); - } - - public Dimension getPreferredSize() { - return new Dimension(800, 800); - } - }; - return res; - } - -} diff --git a/ReadClassifier_eclipse/.classpath b/ReadClassifier_eclipse/.classpath index 93d6cb1..ecb5636 100644 --- a/ReadClassifier_eclipse/.classpath +++ b/ReadClassifier_eclipse/.classpath @@ -4,6 +4,5 @@ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> <classpathentry kind="lib" path="lib/commons-cli-1.2.jar"/> <classpathentry kind="lib" path="lib/log4j-1.2.15.jar"/> - <classpathentry combineaccessrules="false" kind="src" path="/ReadTrainer"/> <classpathentry kind="output" path="bin"/> </classpath> diff --git a/ReadClassifier_eclipse/src/org/rki/readclassifier/AbstractWriter.java b/ReadClassifier_eclipse/src/org/rki/readclassifier/AbstractWriter.java deleted file mode 100644 index 470dd32..0000000 --- a/ReadClassifier_eclipse/src/org/rki/readclassifier/AbstractWriter.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.rki.readclassifier; - -import java.util.concurrent.BlockingQueue; - -public abstract class AbstractWriter extends Thread { - public BlockingQueue<ReadPair> outReads; -} diff --git a/ReadClassifier_eclipse/src/org/rki/readclassifier/Classifier.java b/ReadClassifier_eclipse/src/org/rki/readclassifier/Classifier.java index 6b68a1a..e5bc477 100644 --- a/ReadClassifier_eclipse/src/org/rki/readclassifier/Classifier.java +++ b/ReadClassifier_eclipse/src/org/rki/readclassifier/Classifier.java @@ -77,7 +77,7 @@ public class Classifier { reader.start(); writer.start(); while(threadList.size() < threads) { - threadList.add(new ClassifierThread(reader, writer, selectedClassifier, null)); + threadList.add(new ClassifierThread(reader, writer, selectedClassifier)); } for(ClassifierThread c : threadList) { c.start(); diff --git a/ReadClassifier_eclipse/src/org/rki/readclassifier/ClassifierProgressListener.java b/ReadClassifier_eclipse/src/org/rki/readclassifier/ClassifierProgressListener.java deleted file mode 100644 index 8fb5c62..0000000 --- a/ReadClassifier_eclipse/src/org/rki/readclassifier/ClassifierProgressListener.java +++ /dev/null @@ -1,5 +0,0 @@ -package org.rki.readclassifier; - -public interface ClassifierProgressListener { - public void readClassified(); -} diff --git a/ReadClassifier_eclipse/src/org/rki/readclassifier/ClassifierThread.java b/ReadClassifier_eclipse/src/org/rki/readclassifier/ClassifierThread.java index ed0a44d..e9b7250 100644 --- a/ReadClassifier_eclipse/src/org/rki/readclassifier/ClassifierThread.java +++ b/ReadClassifier_eclipse/src/org/rki/readclassifier/ClassifierThread.java @@ -1,42 +1,35 @@ package org.rki.readclassifier; -import org.rki.readtrainer.AbstractReader; public class ClassifierThread extends Thread { - private AbstractReader reader; - private AbstractWriter writer; + private Reader reader; + private Writer writer; private ReadClassifier readClassifier; - private ClassifierProgressListener prog; - - public ClassifierThread(AbstractReader reader, AbstractWriter writer, ReadClassifier readClassifier, - ClassifierProgressListener prog) { + + public ClassifierThread(Reader reader, Writer writer, ReadClassifier readClassifier) { super(); this.reader = reader; this.writer = writer; this.readClassifier = readClassifier; - this.prog = prog; } - + public void run() { try { - while (true) { + while(true) { ReadPair reads = reader.reads.take(); - if (reads.read1 == null) { - writer.outReads.put(new ReadPair(null, null)); - return; - } - reads.read1.bases = reads.read1.bases.toUpperCase(); - if (reads.read2 != null) - reads.read2.bases = reads.read2.bases.toUpperCase(); + if(reads.read1 == null) { + writer.outReads.put(new ReadPair(null, null)); + return; + } + reads.read1.bases = reads.read1.bases.toUpperCase(); + if(reads.read2 != null) + reads.read2.bases = reads.read2.bases.toUpperCase(); readClassifier.getScore(reads); - reads.read1.toString(); - if (reads.read2 != null) - reads.read2.toString(); - writer.outReads.put(reads); - if (prog != null) { - prog.readClassified(); - } + reads.read1.toString(); + if(reads.read2 != null) + reads.read2.toString(); + writer.outReads.put(reads); } } catch (Exception e) { e.printStackTrace(); diff --git a/ReadClassifier_eclipse/src/org/rki/readclassifier/MMClassifier.java b/ReadClassifier_eclipse/src/org/rki/readclassifier/MMClassifier.java index 024dd6b..425217f 100644 --- a/ReadClassifier_eclipse/src/org/rki/readclassifier/MMClassifier.java +++ b/ReadClassifier_eclipse/src/org/rki/readclassifier/MMClassifier.java @@ -3,9 +3,6 @@ package org.rki.readclassifier; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; -import java.util.concurrent.atomic.AtomicInteger; - -import org.rki.readtrainer.Trainer; public class MMClassifier implements ReadClassifier { private double tmorg1[][]; @@ -26,41 +23,6 @@ public class MMClassifier implements ReadClassifier { return("Classifies reads based on Markov Model of Kmer transitions."); } - public void setMatrices(AtomicInteger[][] matrix1, AtomicInteger[][] matrix2, String o1name, String o2name, int kmersize) { - this.kmersize = kmersize; - kmermask = (int)Math.pow(4, kmersize) - 1; - tmorg1 = new double[(int)Math.pow(4, kmersize)][4]; - tmorg2 = new double[(int)Math.pow(4, kmersize)][4]; - setMatrix(matrix1, tmorg1); - setMatrix(matrix2, tmorg2); - org1name = o1name; - org2name = o2name; - } - - private void setMatrix(AtomicInteger[][] matrix, double[][] tm) { - for(int i=0; i<matrix.length; i++) { - int rowsum = 0; - for(int j=0; j<4; j++) { - rowsum += matrix[i][j].get(); - } - if(rowsum == 0) { - for(int j=0; j<4; j++) { - tm[i][j] = Double.NaN; - } - continue; - } - for(int j=0; j<4; j++) { - double val = (double)matrix[i][j].get(); - if(val == 0) - val = Trainer.absentval; - val = val/(double)rowsum*4.0d; - val = Math.log(val); - tm[i][j] = val; - } - } - - } - @Override public void readData(InputStream in) throws Exception { BufferedReader reader = new BufferedReader(new InputStreamReader(in)); diff --git a/ReadClassifier_eclipse/src/org/rki/readclassifier/Read.java b/ReadClassifier_eclipse/src/org/rki/readclassifier/Read.java index 9ce25b7..3a4fe6e 100644 --- a/ReadClassifier_eclipse/src/org/rki/readclassifier/Read.java +++ b/ReadClassifier_eclipse/src/org/rki/readclassifier/Read.java @@ -1,13 +1,10 @@ package org.rki.readclassifier; -import java.util.LinkedList; - public class Read { public boolean invalid = false; public String name; public String bases; public String qualities; - public byte[] intQualities = null; public double score = 0; public double score1 = 0; public double score2 = 0; @@ -22,20 +19,12 @@ public class Read { this.score2 = 0; } - public Read(String name, String bases, byte[] qualities, boolean intQuals) { - this.name = name; - this.bases = bases; - this.intQualities = qualities; - this.score1 = 0; - this.score2 = 0; - } - public String toString(boolean showQuals) { - if(intQualities == null) - return ""; - if(qualities != null) + if(qualities != null) { return toFastq(showQuals); - return toFasta(showQuals); + } + else + return toFasta(showQuals); } public void normalizeTo(int length) { diff --git a/ReadClassifier_eclipse/src/org/rki/readclassifier/Reader.java b/ReadClassifier_eclipse/src/org/rki/readclassifier/Reader.java index 7e4c489..e9378f7 100644 --- a/ReadClassifier_eclipse/src/org/rki/readclassifier/Reader.java +++ b/ReadClassifier_eclipse/src/org/rki/readclassifier/Reader.java @@ -4,9 +4,10 @@ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; +import java.util.concurrent.BlockingQueue; import java.util.concurrent.LinkedBlockingQueue; -public class Reader extends AbstractReader { +public class Reader extends Thread { private InputStream in1; private InputStream in2; private int numReads; @@ -19,8 +20,9 @@ public class Reader extends AbstractReader { private boolean firstRead2 = true; private int numThreads; + public BlockingQueue<ReadPair> reads; public Boolean fileDone = false; - public boolean stop = false; + public boolean stop = false; public Reader(InputStream infile1, InputStream infile2, int numReads, int bufferSize, int numThreads) { super(); diff --git a/ReadClassifier_eclipse/src/org/rki/readclassifier/Writer.java b/ReadClassifier_eclipse/src/org/rki/readclassifier/Writer.java index 794c70b..0bb7aea 100644 --- a/ReadClassifier_eclipse/src/org/rki/readclassifier/Writer.java +++ b/ReadClassifier_eclipse/src/org/rki/readclassifier/Writer.java @@ -7,7 +7,7 @@ import java.io.OutputStreamWriter; import java.util.concurrent.BlockingQueue; import java.util.concurrent.LinkedBlockingQueue; -public class Writer extends AbstractWriter { +public class Writer extends Thread { private BufferedWriter out1w; private BufferedWriter out2w; public BlockingQueue<ReadPair> outReads; diff --git a/ReadTrainer_eclipse/src/org/rki/readtrainer/AbstractReader.java b/ReadTrainer_eclipse/src/org/rki/readtrainer/AbstractReader.java deleted file mode 100644 index 7c98462..0000000 --- a/ReadTrainer_eclipse/src/org/rki/readtrainer/AbstractReader.java +++ /dev/null @@ -1,9 +0,0 @@ -package org.rki.readtrainer; - -import java.util.concurrent.BlockingQueue; - -import org.rki.readclassifier.ReadPair; - -public abstract class AbstractReader extends Thread { - public BlockingQueue<ReadPair> reads; -} diff --git a/ReadTrainer_eclipse/src/org/rki/readtrainer/Trainer.java b/ReadTrainer_eclipse/src/org/rki/readtrainer/Trainer.java index 175768c..ba90ffb 100644 --- a/ReadTrainer_eclipse/src/org/rki/readtrainer/Trainer.java +++ b/ReadTrainer_eclipse/src/org/rki/readtrainer/Trainer.java @@ -132,7 +132,7 @@ public class Trainer { reader.start(); LinkedList<TrainerThread> trainers = new LinkedList<TrainerThread>(); for(int i=0; i<threads; i++) { - trainers.add(new TrainerThread(reader, matrix, null)); + trainers.add(new TrainerThread(reader, matrix)); } for(TrainerThread trainer : trainers) { trainer.start(); diff --git a/ReadTrainer_eclipse/src/org/rki/readtrainer/TrainerProgressListener.java b/ReadTrainer_eclipse/src/org/rki/readtrainer/TrainerProgressListener.java deleted file mode 100644 index 6598d3a..0000000 --- a/ReadTrainer_eclipse/src/org/rki/readtrainer/TrainerProgressListener.java +++ /dev/null @@ -1,5 +0,0 @@ -package org.rki.readtrainer; - -public interface TrainerProgressListener { - public void readTrained(); -} diff --git a/ReadTrainer_eclipse/src/org/rki/readtrainer/TrainerThread.java b/ReadTrainer_eclipse/src/org/rki/readtrainer/TrainerThread.java index 82368e0..36d5c72 100644 --- a/ReadTrainer_eclipse/src/org/rki/readtrainer/TrainerThread.java +++ b/ReadTrainer_eclipse/src/org/rki/readtrainer/TrainerThread.java @@ -8,16 +8,14 @@ import org.rki.readclassifier.ReadPair; import org.rki.readclassifier.Reader; public class TrainerThread extends Thread { - private AbstractReader reader; + private Reader reader; private int kmermask; private AtomicInteger[][] matrix; - private TrainerProgressListener listener; - public TrainerThread(AbstractReader reader, AtomicInteger[][] matrix, TrainerProgressListener listener) { + public TrainerThread(Reader reader, AtomicInteger[][] matrix) { super(); this.reader = reader; this.matrix = matrix; - this.listener = listener; } public void run() { @@ -33,9 +31,6 @@ public class TrainerThread extends Thread { pair.read2.bases = pair.read2.bases.toUpperCase(); trainRead(pair.read2); } - if(listener != null) { - listener.readTrained(); - } } } catch(Exception e) { e.printStackTrace(); -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/rambo-k.git _______________________________________________ debian-med-commit mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-med-commit
