从 ADNI 的 XML 文件中读取临床信息

本文提供了一种手把手式的ADNI影像数据下载与使用指南,重点介绍了如何通过Python读取XML文件中的project和subject信息,包括项目标识符、描述、站点、主题标识符、研究组及性别等关键字段。
Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

本文配合手把手式介绍 ADNI 影像数据下载使用。

仅给出了如下读取XML文件中的project和subject信息的部分代码,读取其他内容采用一样的写法即可。

只适合自己批量读取一下XML文件,所以凑合看即可。

可以循环遍历所有subject的XML文件,每次调用一下以下函数,然后存到一个list中,再用pandas保存到csv中。

代码如下:


def rxml(file):
    DOMTree = xml.dom.minidom.parse(file)
    root = DOMTree.documentElement

    # project
    project = root.getElementsByTagName("project")
    proID = project[0].getElementsByTagName("projectIdentifier")[0].childNodes[0].data if len(project[0].getElementsByTagName("projectIdentifier")) else ""
    ProDes = project[0].getElementsByTagName("projectDescription")[0].childNodes[0].data if len(project[0].getElementsByTagName("projectDescription")) else ""
    site = project[0].getElementsByTagName("siteKey")[0].childNodes[0].data if len(project[0].getElementsByTagName("siteKey")) else ""

    # subject
    subject = project[0].getElementsByTagName("subject")
    subID = subject[0].getElementsByTagName("subjectIdentifier")[0].childNodes[0].data if len(subject[0].getElementsByTagName("subjectIdentifier")) else ""
    group = subject[0].getElementsByTagName("researchGroup")[0].childNodes[0].data if len(subject[0].getElementsByTagName("researchGroup")) else ""
    sex = subject[0].getElementsByTagName("subjectSex")[0].childNodes[0].data if len(subject[0].getElementsByTagName("subjectSex")) else ""
    
        return proID, ProDes, site, subID, group, sex

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### 如何从ADNI数据库下载临床数据 为了获取来自阿尔茨海默病神经影像学计划 (ADNI) 数据库中的临床数据,需遵循一系列特定的操作流程。访问IDA官方网站并登录账户是第一步操作[^2]。 #### 登录与导航至目标页面 成功登录后,用户应前往ADNI项目专属页面,在此可以找到多种类型的可用资源链接。对于希望获得具体临床指标(如MMSE评分)的研究人员来说,应当特别关注那些标注有“Clinical Data”的选项。 #### 浏览及选择所需资料包 在Data Collections页面左侧菜单栏内提供了多个预整理完成的数据集合供研究者挑选;这些集合可能已经包含了部分经过初步处理后的临床测量结果和其他相关信息[^3]。如果想要更精确地定位到某类特殊疾病阶段或是治疗反应模式下的患者群体,则建议利用高级搜索工具进一步缩小范围直至锁定最合适的那一批次记录文件夹位置。 #### 下载过程注意事项 当确定好感兴趣的子集之后,点击对应的名称即可查看其详情描述以及可选版本列表。值得注意的是,并不是所有的公开版都能满足个人科研需求——某些敏感度较高的变量或许仅限于通过申请审核机制才能取得访问权限[^4]。因此,在提交请求前务必仔细阅读相关条款说明文档以确保所获授权级别能够覆盖预期用途范围内的一切必要字段内容。 ```python import requests from bs4 import BeautifulSoup def fetch_adni_clinical_data(url, username, password): session = requests.Session() login_payload = { 'username': username, 'password': password } response = session.post('https://ida.loni.usc.edu/login', data=login_payload) if "Logout" not in response.text: raise Exception("Login failed") soup = BeautifulSoup(session.get(url).content, 'html.parser') download_links = [] for link in soup.find_all('a'): href = link.get('href') if '/download' in str(href): download_links.append(f"https://ida.loni.usc.edu{href}") return download_links ``` 上述Python脚本展示了如何自动化这一过程中的一部分工作流:模拟浏览器行为自动填写表单实现无人值守登陆认证,并抓取指定URL页面内的所有下载链接地址以便后续批量处理任务调用。
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值