Mercurial > repos > rliterman > csp2
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