Package: OPI 3.0.2

Andrew Turpin

OPI: Open Perimetry Interface

Implementation of the Open Perimetry Interface (OPI) for simulating and controlling visual field machines using R. The OPI is a standard for interfacing with visual field testing machines (perimeters) first started as an open source project with support of Haag-Streit in 2010. It specifies basic functions that allow many visual field tests to be constructed. As of February 2022 it is fully implemented on the Haag-Streit Octopus 900 and 'CrewT ImoVifa' ('Topcon Tempo') with partial implementations on the Centervue Compass, Kowa AP 7000 and Android phones. It also has a cousin: the R package 'visualFields', which has tools for analysing and manipulating visual field data.

Authors:Andrew Turpin [cre, aut, cph], David Lawson [ctb, cph], Ivan Marin-Franch [ctb, cph], Matthias Muller [ctb], Jonathan Denniss [ctb, cph], Astrid Zeman [ctb], Giovanni Montesano [ctb]

OPI_3.0.2.tar.gz
OPI_3.0.2.tar.gz(r-4.5-noble)OPI_3.0.2.tar.gz(r-4.4-noble)
OPI_3.0.2.tgz(r-4.4-emscripten)OPI_3.0.2.tgz(r-4.3-emscripten)
OPI.pdf |OPI.html
OPI/json (API)
NEWS

# Install 'OPI' in R:
install.packages('OPI', repos = c('https://cran.r-universe.dev', 'https://cloud.r-project.org'))

Peer review:

Datasets:
  • RtDbUnits - Response times to white-on-white Goldmann Size III targets for 12 subjects in dB units
  • RtSigmaUnits - Response times to white-on-white Goldmann Size III targets for 12 subjects in sigma units

This package does not link to any Github/Gitlab/R-forge repository. No issue tracker or development information is available.

3.03 score 1 stars 18 scripts 453 downloads 3 mentions 44 exports 11 dependencies

Last updated 4 months agofrom:b4bac5b1f7. Checks:OK: 2. Indexed: yes.

TargetResultDate
Doc / VignettesOKOct 08 2024
R-4.5-linuxOKOct 08 2024

Exports:.opi_envcdTodbchooseOpichooseOPIdbTocddegTopixfourTwo.finalfourTwo.startfourTwo.stepfourTwo.stopFTFT.finalFT.startFT.stepFT.stopgetTargetStimKTPsiKTPsi.finalKTPsi.startKTPsi.stepKTPsi.stopMOCSopiCloseopiInitialiseopiInitializeopiPresentopiQueryDeviceopiSetBackgroundopiSetuppixTodegQUESTPQUESTP.entropyQUESTP.finalQUESTP.LikelihoodQUESTP.PriorQUESTP.startQUESTP.stdevQUESTP.stepQUESTP.stopZESTZEST.finalZEST.startZEST.stepZEST.stop

Dependencies:abindaskpassjsonliteopensslRcppRcppArmadilloRcppGSLRcppParallelRcppZigguratRfastsys

Readme and manuals

Help Manual

Help pageTopics
Global environment for OPI to hold machine specific constants, etc..opi_env
Convert cd/m^2 to perimetric dB.cdTodb
chooseOPI selects an OPI machine to use.chooseOPI chooseOpi
Convert perimetric dB to cd/m^2dbTocd
Convert degrees to pixels for machine 'machine'degTopix
4-2 StaircasefourTwo.final fourTwo.start fourTwo.step fourTwo.stop
Full ThresholdFT FT.final FT.start FT.step FT.stop
Present kinetic on Kowa AP7000 (internal use)kowa.presentKinetic
Present static on Kowa AP7000 (internal use)kowa.presentStatic
Present temporal stim on Kowa AP7000 (internal use)kowa.presentTemporal
An implementation of Kontsevich and Tyler Psi algorithm.KTPsi KTPsi.final KTPsi.start KTPsi.step KTPsi.stop
Method of Constant Stimuli (MOCS)MOCS
Present Kinetic stimuli on O900 (internal use)octo900.presentKinetic
Present static on O900 (internal use)octo900.presentStatic
Present Temporal stimuli on O900 (internal use)octo900.presentTemporal
Open a socket on ip and port.open_socket
Calls opiClose_for_MACHINE as appropriate.opiClose
Implementation of opiClose for the Compass machine.opiClose_for_Compass
Implementation of opiClose for the Display machine.opiClose_for_Display
Implementation of opiClose for the ImoVifa machine.opiClose_for_ImoVifa
Implementation of opiClose for the Kowa AP7000 machine.opiClose_for_KowaAP7000
Implementation of opiClose for the O600 machine.opiClose_for_O600
Implementation of opiClose for the Octopus900 machine.opiClose_for_Octopus900
Implementation of opiClose for the PhoneHMD machine.opiClose_for_PhoneHMD
Implementation of opiClose for the PicoVR machine.opiClose_for_PicoVR
opiClose_for_SimGaussianopiClose_for_SimGaussian
opiClose_for_SimHensonopiClose_for_SimHenson
opiClose_for_SimHensonRTopiClose_for_SimHensonRT
opiClose_for_SimNoopiClose_for_SimNo
opiClose_for_SimYesopiClose_for_SimYes
Calls opiInitialise_for_MACHINE as appropriate.opiInitialise opiInitialize
Implementation of opiInitialise for the ImoVifa machine.opiInitialise_for_Compass
Implementation of opiInitialise for the Display machine.opiInitialise_for_Display
Implementation of opiInitialise for the ImoVifa machine.opiInitialise_for_ImoVifa
Implementation of opiInitialise for the Octopus900 machine.opiInitialise_for_KowaAP7000
Implementation of opiInitialise for the O600 machine.opiInitialise_for_O600
Implementation of opiInitialise for the Octopus900 machine.opiInitialise_for_Octopus900
Implementation of opiInitialise for the PhoneHMD machine.opiInitialise_for_PhoneHMD
Implementation of opiInitialise for the PicoVR machine.opiInitialise_for_PicoVR
opiInitialize_for_SimGaussianopiInitialise_for_SimGaussian
opiInitialise_for_SimHensonopiInitialise_for_SimHenson
opiInitialise_for_SimHensonRTopiInitialise_for_SimHensonRT
opiInitialise_for_SimNoopiInitialise_for_SimNo
opiInitialise_for_SimYesopiInitialise_for_SimYes
For backwards compatibility. Used by Octopus900 and KowaAP7000.opiKineticStimulus
Calls opiPresent_for_MACHINE as appropriate.opiPresent
Implementation of opiPresent for the Compass machine.opiPresent_for_Compass
Implementation of opiPresent for the Display machine.opiPresent_for_Display
Implementation of opiPresent for the ImoVifa machine.opiPresent_for_ImoVifa
Implementation of opiPresent for the KowaAP7000 machine.opiPresent_for_KowaAP7000
Implementation of opiPresent for the O600 machine.opiPresent_for_O600
Implementation of opiPresent for the Octopus090 machine.opiPresent_for_Octopus900
Implementation of opiPresent for the PhoneHMD machine.opiPresent_for_PhoneHMD
Implementation of opiPresent for the PicoVR machine.opiPresent_for_PicoVR
opiPresent_for_SimGaussianopiPresent_for_SimGaussian
opiPresent_for_SimHensonopiPresent_for_SimHenson
opiPresent_for_SimHensonRTopiPresent_for_SimHensonRT
opiPresent_for_SimNoopiPresent_for_SimNo
opiPresent_for_SimYesopiPresent_for_SimYes
Calls opiQueryDevice_for_MACHINE as appropriate.opiQueryDevice
Implementation of opiQueryDevice for the ImoVifa machine.opiQueryDevice_for_Compass
Implementation of opiQueryDevice for the Display machine.opiQueryDevice_for_Display
Implementation of opiQueryDevice for the ImoVifa machine.opiQueryDevice_for_ImoVifa
Implementation of opiQueryDevice for the Kowa AP7000 machine.opiQueryDevice_for_KowaAP7000
Implementation of opiQueryDevice for the O600 machine.opiQueryDevice_for_O600
Implementation of opiQueryDevice for the Octopus900 machine.opiQueryDevice_for_Octopus900
Implementation of opiQueryDevice for the PhoneHMD machine.opiQueryDevice_for_PhoneHMD
Implementation of opiQueryDevice for the PicoVR machine.opiQueryDevice_for_PicoVR
opiQueryDevice_for_SimGaussianopiQueryDevice_for_SimGaussian
opiQueryDevice_for_SimHensonopiQueryDevice_for_SimHenson
opiQueryDevice_for_SimHensonRTopiQueryDevice_for_SimHensonRT
opiQueryDevice_for_SimNoopiQueryDevice_for_SimNo
opiQueryDevice_for_SimYesopiQueryDevice_for_SimYes
Deprecated. Use 'opiSetup()'.opiSetBackground
Calls opiSetup_for_MACHINE as appropriate.opiSetup
Implementation of opiSetup for the Compass machine.opiSetup_for_Compass
Implementation of opiSetup for the Display machine.opiSetup_for_Display
Implementation of opiSetup for the ImoVifa machine.opiSetup_for_ImoVifa
opiSetBackgroundopiSetup_for_KowaAP7000
opiSetup for the O600 machine.opiSetup_for_O600
Implementation of opiSetup for the Octopus900 machine.opiSetup_for_Octopus900
Implementation of opiSetup for the PhoneHMD machine.opiSetup_for_PhoneHMD
Implementation of opiSetup for the PicoVR machine.opiSetup_for_PicoVR
opiSetup_for_SimGaussianopiSetup_for_SimGaussian
opiSetup_for_SimHensonopiSetup_for_SimHenson
opiSetup_for_SimHensonRTopiSetup_for_SimHensonRT
opiSetup_for_SimNoopiSetup_for_SimNo
opiSetup_for_SimYesopiSetup_for_SimYes
For backwards compatibility. Used by Octopus900 and KowaAP7000.opiStaticStimulus
For backwards compatibility. Used by Octopus900 and KowaAP7000.opiTemporalStimulus
Convert pixels to degrees for machine 'machine'pixTodeg
QUEST+getTargetStim QUESTP QUESTP.entropy QUESTP.final QUESTP.Likelihood QUESTP.Prior QUESTP.start QUESTP.stdev QUESTP.step QUESTP.stop
Response times to white-on-white Goldmann Size III targets for 12 subjects in dB unitsRtDbUnits
Response times to white-on-white Goldmann Size III targets for 12 subjects in sigma unitsRtSigmaUnits
ZESTZEST ZEST.final ZEST.start ZEST.step ZEST.stop