[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/BhallaLab/MultiTimeFieldAnalysis/main/tcBind.cpp [Back]  [Original]

#include 
#include 
#include 
#include 
#include 

PYBIND11_MAKE_OPAQUE(std::vector);
using namespace std;
namespace py = pybind11;
#include "tcHeader.h"

vector< CellScore > r2bScore(py::array_t xs, const AnalysisParams& ap, double r2bThresh, double r2bPercentile );
vector< CellScore > tiScore( py::array_t xs, const AnalysisParams& ap, const TiAnalysisParams& tip );

vector< CellScore > peqScore( py::array_t xs, const AnalysisParams& ap, const PeqAnalysisParams& peq );

PYBIND11_MODULE(tc, m) {
	py::bind_vector< std::vector< double >>( m, "VectorDouble");

	py::class_( m, "AnalysisParams")
		.def( py::init())
		.def_readwrite( "numCells", &AnalysisParams::numCells)
		.def_readwrite( "numTrials", &AnalysisParams::numTrials)
		.def_readwrite( "numFrames", &AnalysisParams::numFrames)
		.def_readwrite( "csOnsetFrame", &AnalysisParams::csOnsetFrame)
		.def_readwrite( "usOnsetFrame", &AnalysisParams::usOnsetFrame)
		.def_readwrite( "circPad", &AnalysisParams::circPad)
		.def_readwrite( "circShuffleFrames", &AnalysisParams::circShuffleFrames)
		.def_readwrite( "binFrames", &AnalysisParams::binFrames)
		.def_readwrite( "numShuffle", &AnalysisParams::numShuffle)
		.def_readwrite( "epsilon", &AnalysisParams::epsilon)
		.def_readwrite( "dipFrames", &AnalysisParams::dipFrames)
		.def_readwrite( "epsilon", &AnalysisParams::epsilon)
		.def_readwrite( "frameDt", &AnalysisParams::frameDt)
		.def_readwrite( "minPeakSep", &AnalysisParams::minPeakSep)
		.def_readwrite( "dipSdev", &AnalysisParams::dipSdev);

	py::class_( m, "TiAnalysisParams")
		.def( py::init())
		.def_readwrite( "transientThresh", &TiAnalysisParams::transientThresh)
		.def_readwrite( "tiPercentile", &TiAnalysisParams::tiPercentile)
		.def_readwrite( "fracTrialsFiredThresh", &TiAnalysisParams::fracTrialsFiredThresh )
		.def_readwrite( "frameDt", &TiAnalysisParams::frameDt );

	py::class_( m, "PeqAnalysisParams")
		.def( py::init())
		.def_readwrite( "alpha", &PeqAnalysisParams::alpha)
		.def_readwrite( "beta", &PeqAnalysisParams::beta)
		.def_readwrite( "gamma", &PeqAnalysisParams::gamma )
		.def_readwrite( "hitWindow", &PeqAnalysisParams::hitWindow );

	py::class_( m, "CellScore")
		.def( py::init())
		.def_readonly( "meanScore", &CellScore::meanScore)
		.def_readonly( "baseScore", &CellScore::baseScore)
		.def_readonly( "percentileScore", &CellScore::percentileScore)
		.def_readonly( "sdev", &CellScore::sdev)
		.def_readonly( "eventWidthMean", &CellScore::eventWidthMean)
		.def_readonly( "eventWidthSdev", &CellScore::eventWidthSdev)
		.def_readonly( "imprecision", &CellScore::imprecision)
		.def_readonly( "sigMean", &CellScore::sigMean)
		.def_readonly( "sigBootstrap", &CellScore::sigBootstrap)
		.def_readonly( "fracTrialsFired", &CellScore::fracTrialsFired)
		.def_readonly( "meanTrace", &CellScore::meanTrace)
		.def_readonly( "meanPkIdx", &CellScore::meanPkIdx)
		.def_readonly( "allPkIndices", &CellScore::allPkIndices)
		.def_readonly( "allPkScores", &CellScore::allPkScores)
		.def_readonly( "allPkPvalues", &CellScore::allPkPvalues);

	py::bind_vector< std::vector< CellScore > >( m, "VectorCellScore");


    m.doc() = "pybind11 for time cells. Take a 2d vector of (cells, trials*frames) and return a vector of time-cell scores structs"; // module docstring

    m.def("r2bScore", &r2bScore, "A function which computes r2b time-cell score for this block of data", py::arg( "data" ), py::arg( "params" ), py::arg( "r2bThresh"), py::arg( "r2bPercentile" ) );
    m.def("tiScore", &tiScore, "A function which computes temporal information time-cell score for this block of data", py::arg( "data" ), py::arg( "params" ), py::arg( "tiParams" ) );
    m.def("peqScore", &peqScore, "A function which computes parametric equation score for this block of data", py::arg( "data" ), py::arg( "params" ), py::arg( "peqParams" ) );
}


Web Proxy Viewer  |  New URL  |  Original Page