AnVIL客户端库。将gen3、terra客户端api与单点登录和数据协调用例相结合。

pyAnVIL的Python项目详细描述


平砧:terra+gen3

gen3和terra的python客户端集成。在

对于需要同时访问terra和gen3平台的python开发人员来说,pyAnVIL是一个集成模块,它使用terra作为IDP(身份提供程序)提供SSO(单点登录),并管理依赖关系的分布,这与处理多个凭据和安装不同,pyAnVIL提供了开发人员友好的体验。在

安装

先决条件:

  • gcloud cli工具已安装并配置gcloud。在

  • Terra和Gen3中提供的Google Id:

    • 一次性帐户链接:
      • 先决条件:在Gen3和Terra中都提供了google帐户。在
      • 登录https://gen3.theanvil.io/
      • 登录https://anvil.terra.bio
      • 在Terra中,导航到您的个人资料
        • 在“IDENTITY&EXTERNAL SERVERS”下,登录到NHGRI AnVIL Data Commons Framework Services,系统应该为您提供一个gen3oauth流。在
        • 注意用于计费的google项目
  • 每个实例,terra API设置:

    • 使用google帐户和帐单项目为terra api设置凭据。
        gcloud auth login <google-account>
        gcloud auth application-default set-quota-project <billing-project-id>   
      
  • 验证

    ^{pr2}$ 在
  • 设置

    pip install pyAnVIL
    

用例

SSO

   from anvil.gen3_auth import Gen3TerraAuth
   from gen3.submission import Gen3Submission

   auth = Gen3TerraAuth()
   gen3_endpoint = "https://gen3.theanvil.io"
   submission_client = Gen3Submission(gen3_endpoint, auth)

sso sequence diagram

API包装

第3代

   query = '{project(first:0) {code,  subjects {submitter_id}, programs {name}  }}'
   results = submission_client.query(query)
   [p['code'] for p in results['data']['project']]
   >>> ['GTEx', '1000Genomes']

地形

   from anvil.terra import FAPI
   FAPI.whoami()
   >>> 'anvil.user@gmail.com'

Terra公用事业公司

   from anvil.terra import get_projects
   projects = get_projects(namespaces=['anvil-datastorage'], project_pattern='AnVIL_CCDG.*')
   [p['workspace']['name'] for p in projects]
   >>> ['AnVIL_CCDG_WashU_CVD_EOCAD_BioMe_WGS',
        'AnVIL_CCDG_Broad_CVD_EOCAD_TaiChi_WGS',
        'AnVIL_CCDG_Broad_AI_IBD_Brant_DS-IBD_WGS', ...]

数据仪表板

notebook example

贡献

  • 设置虚拟环境

    python3 -m venv venv
    source venv/bin/activate
    python3 -m pip install -r requirements.txt
    python3 -m pip install -r requirements-dev.txt
    
  • 测试gen3授权

    python3 -m pytest --user_email <GMAIL ACCOUNT>  --log-level DEBUG  --gen3_endpoint <GEN3_ENDPOINT>  tests/integration/test_gen3_auth.py
    
  • 持续集成

       # see https://github.com/broadinstitute/firecloud-tools/tree/master/scripts/register_service_account
       docker run --rm -it -v "$HOME"/.config:/.config -v /Users/walsbr/client-apis/pyAnVIL/client_secret.json:/svc.json broadinstitute/firecloud-tools python /scripts/register_service_account/register_service_account.py -j /svc.json -e  brian@bwalsh.com
       The service account pyanvil@api-project-807881269549.bwalsh.com.iam.gserviceaccount.com is now registered with FireCloud. You can share workspaces with this address, or use it to call APIs.   
    

分配

  • PyPi公司
# refresh from data ingestion tracker spread sheet, update pypi

export TWINE_USERNAME=  #  the username to use for authentication to the repository.
export TWINE_PASSWORD=  # the password to use for authentication to the repository.

rm -r dist/
python3  setup.py data_ingestion_tracker sdist bdist_wheel
twine upload dist/*
  • 阅读文档
https://readthedocs.org/projects/pyanvil/

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用JNI在Java中调用C#代码的基本(实用)教程   java获取列表的最小和最大字符串   Java Spring异常中的延迟加载   安卓的java LWJGL端口   安卓上的java按下音量按钮?   C#相当于Java的线程。设置守护进程?   java Android Studio未能解析:com。github。Udhayarajan:liquidswipe安卓:1.0.1   Spring引导集成中MQTTPAHomeMessageHandler和MQTTPAHomeMessageDrivenChannelAdapter之间共享相同MQTT客户端实例的java   环境中的Android Studio错误。java无法解析符号com。谷歌。安卓   java Godaddy JNDI问题无法为连接URL“null”创建类“”的JDBC驱动程序   javascript无法打开到同一SockJS端点的多个连接   如何从JAVA中现有的XML节点生成新的XML   java SectionsPagerAdapter找不到片段id的视图   java通过列表一次打印出一个字符