运行内存实验的包
cogandmem的Python项目详细描述
cogandmem 0.1.0
作者:泰勒•M•恩索(tyler.ensor@mun.ca)
简要说明
cogandmem(认知和记忆的缩写)是一个运行记忆实验的python包。它在很大程度上依赖pygame,一个通常用于创建视频游戏的python包。 CogandMem可用于呈现刺激(目前支持单个词、词对和图像)、向屏幕显示指令、从键盘收集输入(例如,受试者键入对自由回忆测试的响应)以及将俄罗斯方块(俄罗斯方块克隆体)作为干扰任务播放。 目前,支持自由回忆和提示回忆,计划在不久的将来增加新旧和强迫选择识别。
依赖关系
除了python标准库中包含的几个包之外,cogandmem还需要pygame。通过pip命令安装cogandmem应该会自动安装pygame(如果您的系统中还没有pygame)。 cogandmem还需要numpy版本1.7.0或更高版本(这是添加numpy.random.choice()时)。
模块
CogandMem软件包由六个模块组成:
- 实验:运行实验的类和函数。
- 文本:将文本(如指令)呈现到pygame.surface实例的函数。此模块中的函数允许用户在不“触摸”pygame.surface对象的情况下向屏幕呈现文本(即创建pygame.surface的实例是“在引擎盖下”),但事先创建主显示面将为用户提供更多的控制(参见下面的示例)。
- tetromino:一个模块的灵感来自al sweigart在他的在线书Making Games with Python and Pygame(2012)中。俄罗斯方块模块允许在实验期间将俄罗斯方块克隆作为干扰任务呈现(参见下面的示例)。
- 评分:对实验结果进行评分的功能。
- 写入:将实验结果写入文件的功能。
- 泛型:cogandmem使用的函数,但在主题上不适合其他模块之一。
示例
请注意,所有模块、类和函数都包含docstring。模块的docstring列出了模块中包含的所有类和函数。类的docstring描述了类的所有方法和属性。函数和方法docstrings描述了函数的功能,除了非常明显的地方,还描述了必需的和可选的(即关键字)参数。 包中提供了一个注释较多的示例脚本(examples/cued recall/main.py)。我计划在将来添加更多的示例脚本。
未来计划
目前,cogandmem在自由提示回忆实验中表现得相当好。但是,需要添加一些特性,并且需要清理一些代码。 下面是计划的特性和更改的非详尽列表。
- 运行识别实验的功能(旧/新、2AFC和完整/重新排列)
- 更好的数据写入功能。特别是,利用python的csv模块应该可以大大改进将数据写入文件的过程。
- 代码清理:目前,cogandmem不使用任何装饰器。这应该在下一个版本中更改。许多函数都有几行相同的代码——使用decorators有两个好处:提高代码可读性和缩短函数长度。
- 变量名一致性:目前,函数使用不同的名称来引用同一个概念。例如,函数使用变量名(如clock、c、ticker、timer等)引用pygame.clock对象。多个函数之间的一致性将有助于可读性,并将防止对关键字参数名称的持续检查。
- 数据类:主题结果当前存储在dict中。这有点尴尬,需要为dict条目定义常量。相反,应该创建用于存储实验数据的类。
- S公司学习/测试列表类。类当前存在于单个项(例如,刺激、单词对)。学习/测试列表的课程将非常有帮助。
错误
请在github上报告错误,或通过电子邮件tyler.ensor@mun.ca向我报告。如果你发电子邮件给我,请把cogandmem放在主题栏里。 当前版本COGANDEMEM的一个问题是,几个函数具有很大的灵活性(参见,例如,COGANDEMEM.Time.FielyRealLay.())。这样做的好处是让用户可以对如何实现一个实验进行大量的控制,但也意味着很难测试每个可能的选项组合。这个包适用于我编写的实验,但我想代码中包含一些我还没有注意到的错误。
许可证
cogandmem包是在mit许可下发布的(更多信息请参见license.txt)。