zoukankan      html  css  js  c++  java
  • ADNI数据

    之前整理的数据相关内容

    数据的模态有

    Clinical Data(临床数据)
    Genetic(基因数据)
    MRI
    PET
    BIOSPECIMEN(生物样本)

    各模态数据的内容、特点

    Clinical Data
    内容: 招聘、人口统计、体检和认知评估数据。完整的临床数据集可以作为逗号分隔值(CSV)文件批量下载

    基因数据
    内容: 受试者的基因分型和测序数据,数据格式:CSV,VCF,BAM
    基因分型数据:

    APOE Genotyping -- CSV
    TOMM40 PolyT Variant -- CSV

    全基因组测序数据:

    WGS (GATK Call) – SNV + Indel -- VCF
    WGS (CASAVA Call) – SNV -- VCF
    Sequenced alignment data -- BAM(不可直接下载)

    存在VCF数据,不过数据量都较大,是以G为单位的
    VCF数据完整的表现应为:

    Record(CHROM, POS, ID, REF, ALT, QUAL, FILTER, INFO, FORMAT, sample_indexes, samples=None)
    

    其中:

    • CHROM:染色体名称,类型为str
    • POS:位点在染色体上的位置,类型为int
    • ID:一般是突变的rs号,类型为str。如果是‘.’,则为None
    • REF:参考基因组在该位点上的碱基,类型为str
    • ALT:在该位点的测序结果。是_AltRecord类的子类实例的列表。类型为list。_AltRecord类有4个子类,代表了突变的几种类型:如snp,indel,structual variants等。所有的实例都可以进行比较(仅限于相等的比较,没有大于小于之说),部分子类没有实现str方法,也就是说不能转成字符串
    • QUAL:该位点的测序质量,类型为int或float
    • FILTER:过滤信息。将FILTER列按分号分隔形成的字符串列表,类型为list。如果未给出参数则为None
    • INFO:该位点的一些测试指标。将‘=’前的参数作为键,后面的参数作为值,构建成的字典。类型为dict
    • FORMAT:基因型信息。保存vcf的FORMAT列的原始形式,类型为str

    现下载了一个较小的文件,数据量为:39.5 M(不知道当时是怎么找到的了),里面的信息以条为单位,其中前十记录表现为:

    Record(CHROM=gi|251831106|ref|NC_012920.1|, POS=3, REF=T, ALT=[C])
    Record(CHROM=gi|251831106|ref|NC_012920.1|, POS=41, REF=C, ALT=[T])
    Record(CHROM=gi|251831106|ref|NC_012920.1|, POS=42, REF=T, ALT=[TC])
    Record(CHROM=gi|251831106|ref|NC_012920.1|, POS=55, REF=T, ALT=[C])
    Record(CHROM=gi|251831106|ref|NC_012920.1|, POS=56, REF=A, ALT=[AC])
    Record(CHROM=gi|251831106|ref|NC_012920.1|, POS=57, REF=T, ALT=[C, G])
    Record(CHROM=gi|251831106|ref|NC_012920.1|, POS=64, REF=C, ALT=[T])
    Record(CHROM=gi|251831106|ref|NC_012920.1|, POS=72, REF=T, ALT=[C, G])
    Record(CHROM=gi|251831106|ref|NC_012920.1|, POS=73, REF=A, ALT=[G])
    Record(CHROM=gi|251831106|ref|NC_012920.1|, POS=75, REF=G, ALT=[A])
    Record(CHROM=gi|251831106|ref|NC_012920.1|, POS=93, REF=A, ALT=[G])
    

    读取方式

    import vcf
    import os
    
    
    vcf_file = "adni_mito_genomes.vcf"
    vcf_reader = vcf.Reader(filename=vcf_file)
    i = 0
    for record in vcf_reader:
        print(record)
        if i == 10:
            break
        i += 1
    
    

    MRI
    内容: 原始、预处理和后处理的图像文件,FMRI和DTI
    数据格式: MRI(structural, diffusion weighted imaging, perfusion, and resting state sequences)
    可得到的图像数据

    图像示例

    下载数据(经过处理)示例:
    名字: ADNI1_Complete_2Yr_1.5T
    格式: NiFTI
    大小: 22.5 M
    尺寸: 192 * 192 * 160
    类型: T1
    制造商: SIEMENS
    成像信息:

    Acquisition Plane=SAGITTAL; Acquisition Type=3D; Coil=HE; Field Strength=1.5 tesla; Flip Angle=8.0 degree; Manufacturer=SIEMENS; Matrix X=192.0 pixels; Matrix Y=192.0 pixels; Matrix Z=160.0 ; Mfg Model=Symphony; Pixel Spacing X=1.25 mm; Pixel Spacing Y=1.25 mm; Pulse Sequence=IR/GR; Slice Thickness=1.2000000476837158 mm; TE=3.609999895095825 ms; TI=1000.0 ms; TR=3000.0 ms; Weighting=T1

    使用Mango可直接显示图片,效果如下

    名字:ADNI1_Baseling_3T
    格式:NiFTI
    大小:22.5 M
    尺寸: 192 * 192 * 160
    制造商: GE MEDICAL SYSTEMS
    类型: T1
    成像信息:

    Acquisition Plane=SAGITTAL; Acquisition Type=3D; Coil=8HRBRAIN; Field Strength=3.0 tesla; Flip Angle=8.0 degree; Manufacturer=GE MEDICAL SYSTEMS; Matrix X=256.0 pixels; Matrix Y=256.0 pixels; Matrix Z=166.0 ; Mfg Model=SIGNA EXCITE; Pixel Spacing X=1.0156199932098389 mm; Pixel Spacing Y=1.0156199932098389 mm; Pulse Sequence=RM; Slice Thickness=1.2000000476837158 mm; TE=2.8399999141693115 ms; TI=900.0 ms; TR=6.616000175476074 ms; Weighting=T1

    使用Mango可直接显示图片,效果如下

    ADNI中的扫描是在两种不同的特斯拉扫描仪上进行的,即飞利浦医疗系统和西门子
    飞利浦医疗系统扫描的EPI序列为144个体积,场强=3.0特斯拉,翻转角=80.0°,TE=30.0ms,TR=3000.0ms,64×65矩阵,6720.0层厚度为3.31mm的静止状态fMRI
    用飞利浦医学系统扫描仪进行扩展静息状态fMRI的EPI序列为:200体积,场强=3.0tesla,翻转角=90.0°,TE=30.0ms,TR=3000.0,64×65矩阵,9600.0层厚3.31mm
    对于西门子扫描仪,EPI序列是197个体积,场强=3.0特斯拉,翻转角=80.0度,TE=30.0ms,TR=2999.99,448×448矩阵,以及197个3.4mm厚度的切片
    (此处显示的信息与下载的经过处理的信息TE不一致)

    python代码示例

    import skimage.io as io
    import nibabel as nib
    import numpy as np
    import random
    
    
    nii_file = "1.nii"
    img = nib.load(nii_file)
    img_arr = img.get_fdata()
    img_arr = np.squeeze(img_arr)
    #随机选取一张图片
    img_arr1 = img_arr[:, :, random.randint(0, img_arr.shape[2])]
    # 数据归一化至[0,1]
    print(img_arr.shape)
    img_arr1 = (img_arr1 - np.min(img_arr)) / (np.max(img_arr) - np.min(img_arr))
    io.imshow(img_arr1)
    io.show()
    
    

    注:只能找到T1的图像,T2的未找到

    PET
    特点:该数据的目标是跟踪’老年痴呆症的恶化和潜在的病理变化
    可得到的数据

    图像示例

    下载的数据:
    单个图片大小:3.44 M
    格式: NiFTI
    尺寸: 91 * 109 * 91
    使用Mango可直接显示图片,效果如下

    BIOSPECIMEN(生物样本)
    内容:血液、尿液和脑脊液(CSF)等生物标本

  • 相关阅读:
    RabbitMQ死信队列另类用法之复合死信
    Asp.NetCore轻松学-使用Docker进行容器化托管
    Asp.NetCore轻松学-使用Supervisor进行托管部署
    Asp.NetCore轻松学-部署到 Linux 进行托管
    Asp.NetCore轻松学-部署到 IIS 进行托管
    一个提问引发的职业规划热议-拨开迷雾,走向光明
    Asp.Net Core 轻松学-使用MariaDB/MySql/PostgreSQL和支持多个上下文对象
    Asp.Net Core 轻松学-经常使用异步的你,可能需要看看这个文章
    Asp.Net Core 轻松学-10分钟使用EFCore连接MSSQL数据库
    Asp.Net Core 轻松学-多线程之Task(补充)
  • 原文地址:https://www.cnblogs.com/zhhfan/p/10151697.html
Copyright © 2011-2022 走看看