1
0

__init__.py 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. # -*- coding: utf-8 -*-
  2. """
  3. :mod:`neo.io` provides classes for reading and/or writing
  4. electrophysiological data files.
  5. Note that if the package dependency is not satisfied for one io, it does not
  6. raise an error but a warning.
  7. :attr:`neo.io.iolist` provides a list of successfully imported io classes.
  8. Functions:
  9. .. autofunction:: neo.io.get_io
  10. Classes:
  11. .. autoclass:: neo.io.AlphaOmegaIO
  12. .. autoclass:: neo.io.AsciiSignalIO
  13. .. autoclass:: neo.io.AsciiSpikeTrainIO
  14. .. autoclass:: neo.io.AxographIO
  15. .. autoclass:: neo.io.AxonIO
  16. .. autoclass:: neo.io.BCI2000IO
  17. .. autoclass:: neo.io.BlackrockIO
  18. .. autoclass:: neo.io.BrainVisionIO
  19. .. autoclass:: neo.io.BrainwareDamIO
  20. .. autoclass:: neo.io.BrainwareF32IO
  21. .. autoclass:: neo.io.BrainwareSrcIO
  22. .. autoclass:: neo.io.ElanIO
  23. .. autoclass:: neo.io.ElphyIO
  24. .. autoclass:: neo.io.IgorIO
  25. .. autoclass:: neo.io.IntanIO
  26. .. autoclass:: neo.io.KlustaKwikIO
  27. .. autoclass:: neo.io.KwikIO
  28. .. autoclass:: neo.io.MicromedIO
  29. .. autoclass:: neo.io.NeoHdf5IO
  30. .. autoclass:: neo.io.NeoMatlabIO
  31. .. autoclass:: neo.io.NestIO
  32. .. autoclass:: neo.io.NeuralynxIO
  33. .. autoclass:: neo.io.NeuroExplorerIO
  34. .. autoclass:: neo.io.NeuroScopeIO
  35. .. autoclass:: neo.io.NeuroshareIO
  36. .. autoclass:: neo.io.NixIO
  37. .. autoclass:: neo.io.NSDFIO
  38. .. autoclass:: neo.io.OpenEphysIO
  39. .. autoclass:: neo.io.PickleIO
  40. .. autoclass:: neo.io.PlexonIO
  41. .. autoclass:: neo.io.RawBinarySignalIO
  42. .. autoclass:: neo.io.RawMCSIO
  43. .. autoclass:: neo.io.StimfitIO
  44. .. autoclass:: neo.io.TdtIO
  45. .. autoclass:: neo.io.WinEdrIO
  46. .. autoclass:: neo.io.WinWcpIO
  47. """
  48. import os.path
  49. # try to import the neuroshare library.
  50. # if it is present, use the neuroshareapiio to load neuroshare files
  51. # if it is not present, use the neurosharectypesio to load files
  52. try:
  53. import neuroshare as ns
  54. except ImportError as err:
  55. from neo.io.neurosharectypesio import NeurosharectypesIO as NeuroshareIO
  56. # print("\n neuroshare library not found, loading data with ctypes" )
  57. # print("\n to use the API be sure to install the library found at:")
  58. # print("\n www.http://pythonhosted.org/neuroshare/")
  59. else:
  60. from neo.io.neuroshareapiio import NeuroshareapiIO as NeuroshareIO
  61. # print("neuroshare library successfully imported")
  62. # print("\n loading with API...")
  63. from neo.io.alphaomegaio import AlphaOmegaIO
  64. from neo.io.asciisignalio import AsciiSignalIO
  65. from neo.io.asciispiketrainio import AsciiSpikeTrainIO
  66. from neo.io.axonio import AxonIO
  67. from neo.io.axographio import AxographIO
  68. from neo.io.blackrockio import BlackrockIO
  69. from neo.io.blackrockio_v4 import BlackrockIO as OldBlackrockIO
  70. from neo.io.bci2000io import BCI2000IO
  71. from neo.io.brainvisionio import BrainVisionIO
  72. from neo.io.brainwaredamio import BrainwareDamIO
  73. from neo.io.brainwaref32io import BrainwareF32IO
  74. from neo.io.brainwaresrcio import BrainwareSrcIO
  75. from neo.io.elanio import ElanIO
  76. # from neo.io.elphyio import ElphyIO
  77. from neo.io.exampleio import ExampleIO
  78. from neo.io.igorproio import IgorIO
  79. from neo.io.intanio import IntanIO
  80. from neo.io.klustakwikio import KlustaKwikIO
  81. from neo.io.kwikio import KwikIO
  82. from neo.io.micromedio import MicromedIO
  83. from neo.io.hdf5io import NeoHdf5IO
  84. from neo.io.neomatlabio import NeoMatlabIO
  85. from neo.io.nestio import NestIO
  86. from neo.io.neuralynxio import NeuralynxIO
  87. from neo.io.neuralynxio_v1 import NeuralynxIO as OldNeuralynxIO
  88. from neo.io.neuroexplorerio import NeuroExplorerIO
  89. from neo.io.neuroscopeio import NeuroScopeIO
  90. from neo.io.nixio import NixIO
  91. from neo.io.nixio_fr import NixIO as NixIOFr
  92. from neo.io.nsdfio import NSDFIO
  93. from neo.io.openephysio import OpenEphysIO
  94. from neo.io.pickleio import PickleIO
  95. from neo.io.plexonio import PlexonIO
  96. from neo.io.rawbinarysignalio import RawBinarySignalIO
  97. from neo.io.rawmcsio import RawMCSIO
  98. from neo.io.spike2io import Spike2IO
  99. from neo.io.stimfitio import StimfitIO
  100. from neo.io.tdtio import TdtIO
  101. from neo.io.winedrio import WinEdrIO
  102. from neo.io.winwcpio import WinWcpIO
  103. iolist = [
  104. AlphaOmegaIO,
  105. AsciiSignalIO,
  106. AsciiSpikeTrainIO,
  107. AxonIO,
  108. AxographIO,
  109. BCI2000IO,
  110. BlackrockIO,
  111. BrainVisionIO,
  112. BrainwareDamIO,
  113. BrainwareF32IO,
  114. BrainwareSrcIO,
  115. ElanIO,
  116. # ElphyIO,
  117. ExampleIO,
  118. IgorIO,
  119. IntanIO,
  120. KlustaKwikIO,
  121. KwikIO,
  122. MicromedIO,
  123. NixIO, # place NixIO before NeoHdf5IO to make it the default for .h5 files
  124. NeoHdf5IO,
  125. NeoMatlabIO,
  126. NestIO,
  127. NeuralynxIO,
  128. NeuroExplorerIO,
  129. NeuroScopeIO,
  130. NeuroshareIO,
  131. NSDFIO,
  132. OpenEphysIO,
  133. PickleIO,
  134. PlexonIO,
  135. RawBinarySignalIO,
  136. RawMCSIO,
  137. Spike2IO,
  138. StimfitIO,
  139. TdtIO,
  140. WinEdrIO,
  141. WinWcpIO
  142. ]
  143. def get_io(filename, *args, **kwargs):
  144. """
  145. Return a Neo IO instance, guessing the type based on the filename suffix.
  146. """
  147. extension = os.path.splitext(filename)[1][1:]
  148. for io in iolist:
  149. if extension in io.extensions:
  150. return io(filename, *args, **kwargs)
  151. raise IOError("File extension %s not registered" % extension)