摘要
问题重述
人体的每条染色体携带一个DNA分子,人的遗传密码由人体中的DNA携带。DNA是由分别带有A、T、C、G四种碱基的脱氧核苷酸链接组成的双螺旋长链分子。在这条双螺旋的长链中,共有约30亿个碱基对,而基因则是DNA长链中有遗传效应的一些片段。在组成DNA的数量浩瀚的碱基对(或对应的脱氧核苷酸)中,有一些特定位置的单个核苷酸经常发生变异引起DNA的多态性,我们称之为位点。染色体、基因和位点的结构关系见图1.
在DNA长链中,位点个数约为碱基对个数的1/1000。由于位点在DNA长链中出现频繁,多态性丰富,近年来成为人们研究DNA遗传信息的重要载体,被称为人类研究遗传学的第三类遗传标记。
大量研究表明,人体的许多表型性状差异以及对药物和疾病的易感性等都可能与某些位点相关联,或和包含有多个位点的基因相关联。因此,定位与性状或疾病相关联的位点在染色体或基因中的位置,能帮助研究人员了解性状和一些疾病的遗传机理,也能使人们对致病位点加以干预,防止一些遗传病的发生。
近年来,研究人员大都采用全基因组的方法来确定致病位点或致病基因,具体做法是:招募大量志愿者(样本),包括具有某种遗传病的人和健康的人,通常用1表示病人,0表示健康者。 对每个样本,采用碱基(A,T,C,G)的编码方式来获取每个位点的信息(因为染色体具有双螺旋结构,所以用两个碱基的组合表示一个位点的信息)。在任意位点处,不同样本的编码都是A、T、C和G中同一对碱基的组合。类似地其他的位点虽然碱基的组合不同,但也只有三种不同编码。研究人员可以通过对样本的健康状况和位点编码的对比分析来确定致病位点,从而发现遗传病或性状的遗传机理。
本题目针对某种遗传疾病(简称疾病A)提供1000个样本的信息,这些信息包括这1000个样本的疾病信息、样本的9445个位点编码信息,以及包含这些位点的基因信息。本文提出的问题包括:
问题一、将genotype.dat中每个位点的碱基(A,T,C,G) 编码方式转化成数值编码方式。
问题二、根据1000个样本在某条有可能致病的染色体片段上的9445个位点的编码信息(见genotype.dat)和样本患有遗传疾病A的信息(见phenotype.txt),找出与该疾病关联最大的一个或几个致病位点。
问题三、现有300个基因,每个基因所包含的位点名称见文件夹gene_info中的300个dat文件,每个dat文件列出了对应基因所包含的位点(位点信息见文件genotype.dat)。将基因视作若干个位点组成的集合,遗传疾病与基因的关联性由基因中包含的位点的全集或其子集合表现。找出与疾病最有可能相关的一个或几个基因。
问题四、在问题二中,已知9445个位点,其编码信息见genotype.dat文件。将相关的性状或疾病看成一个整体,然后来探寻与它们相关的位点或基因。根据multi_phenos.txt文件给出的1000个样本的10个相关联性状的信息及其9445个位点的编码信息,找出与multi_phenos.txt中10个性状有关联的位点。
基本假设
1. 各个位点处于同等地位,所有位点都有可能与疾病相关,即不能直接舍去任意位点。
2. 对于任意一个与疾病相关的位点,它的编码方式与是否患病必然存在一定的相关性,且这一相关性必然反映在统计结果中。
3. 从生物学角度出发,一对碱基对至多影响一个氨基酸的翻译(除非该碱基对恰好形成终止子),而一个氨基酸至多影响一个蛋白质的形成,因此疾病通常不会仅与单个位点有关,必然与多个位点有关。
4. 考虑到遗传疾病的产生会受到包括环境因素在内的非遗传因素影响,因此必须假设所有样本个体受到相同的非遗传因素的影响,且远小于遗传因素的影响。
问题分析
问题一分析
文件genotype.dat中每个位点的编码方式由字母A、T、C、G组成,这不利于数据分析。为了简单起见,将不同字母型编码依次映射为1~n的不同数字,这里n为genotype.dat中编码的种类个数。
问题二分析
根据题给信息,作为特征的位点数(=9445)非常大,而样本数(=1000)远小于特征数,因此有必要首先进行数据选择。我们考虑采用若干种不同的方法,每一种方法都能获取与疾病关联性最强的位点集合,然后分别建立规则并加以检验,取准确率最高的位点集合作为最终要求的致病位点集合。
首先考虑到每个位点都是三种编码(实际上根据题目所给数据,个别位点在健康样本或疾病样本中只有两种编码,但将健康样本与疾病样本合并后,所有位点在总样本都出现了三种编码),且都对应相同的phenotype.txt,因此自由度均为(2-1)*(3-1)=2,可以用卡方值来表征该位点与疾病间的相关程度:卡方值越大说明相关程度越高,卡方值越小说明相关程度越低。计算各个位点对应的卡方值,取卡方值较大的纳入考察,通过关联分析找到支持度与置信度最优的规则,并得到第一组致病位点集合。
其次
问题三分析
问题四分析
模型求解
问题一求解
通过编写.py程序(见附录文件fileread.py和rewriter.py),读取文件genotype.dat的数据,发现该文件中有20种不同的字母型编码:AA,AT,TA,AC,CA,AG,GA,TT,TC,CT,TG,GT,CC,CG,GC,GG,II,ID,DI,DD。将这20种字母编码按表1所示映射为数字编码1~20,便于后面的数据分析。应用这一映射关系,得到新的编码数据文件rwgenotype.txt,见附录 。
表1
问题二求解
根据之前分析,我们一共使用四种方法来获取致病位点集合:_______。