コード例 #1
0
ファイル: compartmentLoader.cpp プロジェクト: jafyvilla/Fivox
    Impl( EventSource& output, const URIHandler& params )
        : _output( output )
        , _report( params.getConfig().getReportSource( params.getReport( )),
                   brion::MODE_READ, params.getGIDs( ))
    {
        const brain::Circuit circuit( params.getConfig( ));
        const auto morphologies = circuit.loadMorphologies(
            params.getGIDs(), brain::Circuit::COORDINATES_GLOBAL );

        helpers::addCompartmentEvents( morphologies, _report, output );
    }
コード例 #2
0
ファイル: somaLoader.cpp プロジェクト: BlueBrain/Fivox
    Impl( EventSource& output, const URIHandler& params )
        : _output( output )
        , _report( params.getConfig().getReportSource( params.getReport( )),
                   brion::MODE_READ, params.getGIDs( ))
    {
        const brain::Circuit circuit( params.getConfig( ));
        const auto morphologies = circuit.loadMorphologies(
            params.getGIDs(), brain::Circuit::Coordinates::global );

        // add soma events only
        helpers::addCompartmentEvents( morphologies, _report, output, true );
    }
コード例 #3
0
ファイル: spikeLoader.cpp プロジェクト: jafyvilla/Fivox
SpikeLoader::SpikeLoader( const URIHandler& params )
    : EventSource( params )
    , _impl( new Impl( *this, params ))
{
    if( getDt() < 0.f )
        setDt( params.getConfig().getTimestep( ));
}
コード例 #4
0
ファイル: vsdLoader.cpp プロジェクト: BlueBrain/Fivox
    Impl( EventSource& output, const URIHandler& params )
        : _output( output )
        , _circuit( params.getConfig( ))
        , _gids( params.getGIDs( ))
        , _voltageReport( params.getConfig().getReportSource( params.getReport( )),
                          brion::MODE_READ, _gids )
        , _areaReport( URI( params.getAreas( )), brion::MODE_READ, _gids )
        , _restingPotential( 0.f )
        , _areaMultiplier( 0.f )
        , _spikeFilter( false )
        , _apThreshold( 0.f )
        , _interpolate( false )
    {
        LBINFO << "Loading " << _gids.size() << " morphologies..." << std::endl;
        const auto morphologies = _circuit.loadMorphologies(
            _gids, brain::Circuit::Coordinates::global );

        LBINFO << "Creating events..." << std::endl;
        helpers::addCompartmentEvents( morphologies, _voltageReport, _output );

        LBINFO << "Loading areas..." << std::endl;
        _areas = _areaReport.loadFrame( 0.f );
    }
コード例 #5
0
ファイル: synapseLoader.cpp プロジェクト: jafyvilla/Fivox
    Impl( EventSource& output, const URIHandler& params )
        : _output( output )
    {
        const auto& gids = params.getGIDs();

        LBINFO << "Loading synapses for " << gids.size() << " cells..."
               << std::endl;
        boost::progress_display progress( gids.size( ));
        const brion::Synapse synapses( params.getConfig().getSynapseSource().getPath() +
                                       "/nrn_positions.h5" );

        for( const uint32_t gid : gids )
        {
            const brion::SynapseMatrix& data =
                synapses.read( gid, brion::SYNAPSE_PRESYNAPTIC_SURFACE_X |
                                    brion::SYNAPSE_PRESYNAPTIC_SURFACE_Y |
                                    brion::SYNAPSE_PRESYNAPTIC_SURFACE_Z );
            for( size_t i = 0; i < data.shape()[0]; ++i )
                _output.add( Event( Vector3f( data[i][0], data[i][1],
                                              data[i][2] ), 1.f ));
            ++progress;
        }
    }
コード例 #6
0
ファイル: spikeLoader.cpp プロジェクト: jafyvilla/Fivox
    Impl( EventSource& output, const URIHandler& params )
        : _output( output )
        , _duration( params.getDuration( ))
        , _spikesStart( 0.f )
        , _spikesEnd( 0.f )
    {
        const brion::GIDSet& gids = params.getGIDs();

        const brain::Circuit circuit( params.getConfig( ));
        const brion::Vector3fs& positions = circuit.getPositions( gids );

        size_t i = 0;
        _gidIndex.resize( *gids.rbegin() + 1 );
        for( const uint32_t gid: gids )
        {
            _output.add( Event( positions[ i ], VALUE_UNSET ));
            _gidIndex[gid] = i++;
        }
        _spikesPerNeuron.resize( gids.size( ));
        const std::string& spikePath = params.getSpikes();
        _loadSpikes( spikePath.empty() ? params.getConfig().getSpikeSource() :
                                         brion::URI( spikePath ));

    }