diff CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include/mash/CommandContain.h @ 69:33d812a61356

planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author jpayne
date Tue, 18 Mar 2025 17:55:14 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include/mash/CommandContain.h	Tue Mar 18 17:55:14 2025 -0400
@@ -0,0 +1,90 @@
+// Copyright © 2015, Battelle National Biodefense Institute (BNBI);
+// all rights reserved. Authored by: Brian Ondov, Todd Treangen,
+// Sergey Koren, and Adam Phillippy
+//
+// See the LICENSE.txt file included with this software for license information.
+
+#ifndef INCLUDED_CommandContain
+#define INCLUDED_CommandContain
+
+#include "Command.h"
+#include "Sketch.h"
+
+namespace mash {
+
+class CommandContain : public Command
+{
+public:
+    
+    struct ContainInput
+    {
+        ContainInput(const Sketch & sketchRefNew, const Sketch & sketchQueryNew, uint64_t indexRefNew, uint64_t indexQueryNew, uint64_t pairCountNew, const Sketch::Parameters & parametersNew)
+            :
+            sketchRef(sketchRefNew),
+            sketchQuery(sketchQueryNew),
+            indexRef(indexRefNew),
+            indexQuery(indexQueryNew),
+            pairCount(pairCountNew),
+            parameters(parametersNew)
+            {}
+        
+        const Sketch & sketchRef;
+        const Sketch & sketchQuery;
+		
+        uint64_t indexRef;
+        uint64_t indexQuery;
+        uint64_t pairCount;
+        
+        std::string nameRef;
+        const Sketch::Parameters & parameters;
+    };
+    
+    struct ContainOutput
+    {
+        ContainOutput(const Sketch & sketchRefNew, const Sketch & sketchQueryNew, uint64_t indexRefNew, uint64_t indexQueryNew, uint64_t pairCountNew)
+            :
+            sketchRef(sketchRefNew),
+            sketchQuery(sketchQueryNew),
+            indexRef(indexRefNew),
+            indexQuery(indexQueryNew),
+            pairCount(pairCountNew)
+        {
+            pairs = new PairOutput[pairCount];
+        }
+        
+        ~ContainOutput()
+        {
+            delete [] pairs;
+        }
+        
+        struct PairOutput
+        {
+			double score;
+			double error;
+		};
+    
+        const Sketch & sketchRef;
+        const Sketch & sketchQuery;
+		
+        uint64_t indexRef;
+        uint64_t indexQuery;
+        uint64_t pairCount;
+        
+        PairOutput * pairs;
+    };
+    
+    CommandContain();
+    
+    int run() const; // override
+    
+private:
+    
+    void writeOutput(ContainOutput * output, float error) const;
+};
+
+CommandContain::ContainOutput * contain(CommandContain::ContainInput * data);
+double containSketches(const HashList & hashesSortedRef, const HashList & hashesSortedQuery, double & errorToSet);
+
+} // namespace mash
+
+#endif