跳转到主要内容

Braingeneers Python工具

项目描述

BrainGeneers Python 工具

ssec MIT License Documentation Status DOI

入门指南

欢迎使用 BrainGeneers Python 工具 仓库!本软件包收集并提供了作为 BrainGeneers 项目一部分开发的多种 Python 代码和工具。该软件包遵循 Python 包索引(PyPA)关于软件包结构和组织的标准。

贡献

我们欢迎协作者和对我们工作感兴趣的研究人员做出贡献。如果您有改进、建议或想要分享的新发现,请提交一个 pull 请求。您的贡献有助于推进我们的研究和分析工作。

要开始开发(或分叉),请点击下方的“使用 GitHub Codespaces 打开”按钮,以启动一个完全配置的开发环境,其中包括所有必要的工具和扩展。

Open in GitHub Codespaces

关于如何为此项目做出贡献的说明,请参阅 CONTRIBUTING.md

安装

您可以使用以下命令使用 pip 安装 braingeneers

从 PyPI 安装(推荐)

pip install braingeneers

从 GitHub 安装

pip install --force-reinstall git+https://github.com/braingeneers/braingeneerspy.git

使用可选依赖项安装

您可以根据需要使用以下命令示例使用特定可选依赖项安装 braingeneers

  • 使用机器学习依赖项安装
pip install "braingeneers[ml]"
  • 使用 Hengen 实验室依赖项安装
pip install "braingeneers[hengenlab]"
  • 使用开发者依赖项(运行测试和构建 Sphinx 文档)安装
pip install "braingeneers[dev]"
  • 使用所有可选依赖项安装
pip install "braingeneers[all]"

提交更改到仓库

要做出更改并在 GitHub 上发布,请参阅 CONTRIBUTING.md 文件以获取最新指南。

模块和子包

braingeneers 包含几个子包和模块,每个都在 BrainGeneers 项目中承担特定的职责

  • braingeneers.analysis:包含数据分析的代码。
  • braingeneers.data:提供基本数据访问的代码,包括处理电生理学、流体力学和成像数据的子包。
  • braingeneers.iot:提供物联网(IoT)通信的代码,包括消息接口。
  • braingeneers.ml:包含与机器学习相关的代码,例如用于电生理学数据的高性能 PyTorch 数据加载器。
  • braingeneers.utils:提供实用函数,包括 S3 访问和智能文件打开。

S3 访问和配置

braingeneers.utils.s3wrangler

此模块扩展了 awswrangler.s3 包以供 BrainGeneers/PRP 访问。有关 API 文档和使用示例,请访问 官方文档

以下是一个基本使用示例

import braingeneers.utils.s3wrangler as wr

# Get all UUIDs from s3://braingeneers/ephys/
uuids = wr.list_directories('s3://braingeneers/ephys/')
print(uuids)

braingeneers.utils.smart_open_braingeneers

此模块配置 smart_open 以供 BrainGeneers 在 PRP/S3 上使用。当导入此版本的 smart_open 时,BrainGeneers 将自动配置默认值。请注意,smart_open 支持本地和 S3 文件,因此可以用于所有文件,而不仅仅是 S3 文件访问。

以下是一个基本使用示例

import braingeneers.utils.smart_open_braingeneers as smart_open

with smart_open.open('s3://braingeneersdev/test_file.txt', 'r') as f:
    print(f.read())

您还可以安全地将 Python 的默认 open 函数替换为 smart_open.open

import braingeneers.utils.smart_open_braingeneers as smart_open

open = smart_open.open

自定义 S3 终端

默认情况下,smart_opens3wrangler 预配置为标准 BrainGeneers S3 终端。但是,如果您想使用不同的 S3 服务,则可以指定一个自定义的 ENDPOINT。这可以是一个本地路径或另一个 S3 服务的终端 URL(请注意,s3wrangler 仅支持 S3 服务,不支持本地路径,而 smart_open 支持本地路径)。

要设置自定义终端,请按照以下步骤操作

  1. 使用新终端设置环境变量 ENDPOINT。例如,在基于 Unix 的系统上

    export ENDPOINT="https://s3-west.nrp-nautilus.io"
    
  2. 调用 braingeneers.set_default_endpoint(endpoint: str)braingeneers.get_default_endpoint()。这些函数将更新 smart_opens3wrangler(如果它是 S3 终端,则本地路径终端由 s3wrangler 忽略)。

使用 PRP 内部 S3 终端

在PRP上运行作业时,您可以使用PRP内部S3端点,这比默认的外部端点更快。为此,请将以下环境变量添加到您的作业YAML文件中:

spec:
  template:
    spec:
      containers:
      - name: ...
        command: ...
        args: ...
        env:
          - name: "ENDPOINT"
            value: "http://rook-ceph-rgw-nautiluss3.rook"

请注意,这仅在PRP环境中运行的作业中有效。设置ENDPOINT环境变量也可以用于指定除PRP/S3之外的其他端点。

文档

使用sphinx-build -M html docs/source/ docs/build/设置了docs目录,以创建基于项目的文档结构。您可以通过添加内联文档(NumPy风格)来进一步丰富我们的项目文档。要本地渲染文档,请在终端导航到docs/build/html文件夹并运行python3 -m http.server

在Codespaces中工作

项目结构

  • src/: 此文件夹包含代表团队已完成工作的脚本和笔记本。

  • pyproject.toml: 此文件遵循PyPA指南,以记录项目设置信息。

自定义Devcontainer

devcontainer.json文件允许您使用扩展自定义Codespace容器和VS Code环境。您可以根据特定需求添加更多扩展来定制环境。在VS Code扩展市场中探索可能增强您工作流程的额外工具。

有关BrainGeneers的更多信息,请访问我们的网站

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

braingeneers-0.2.0.tar.gz (140.9 kB 查看哈希值)

上传时间:

构建分布

braingeneers-0.2.0-py3-none-any.whl (147.3 kB 查看哈希值)

上传时间: Python 3

由以下赞助商支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面