实验课试题(请仔细阅读提示)
一、 写程序并打印出结果。
有一条短DNA序列
ACTGATCGATTACGTATAGTAGAATTCTATCATACATATATATCGATGCGTTCAT
1. 计算该DNA序列的AT含量。
提示:使用+,-,*,/和()。
2. 该DNA序列的互补链
3. 该DNA序列有EcoRI限制性内切酶的识别位点G*AATTC(*代表切割位点)。计算酶切后两个片段的大小。
二、基因组DNA片段序列
ATCGATCGATCGATCGACTGACTAGTCATAGCTATGCATGTAGCTACTCGATCGATCGATCGATCGATCGATCGATCGATCGATCATGCTATCATCGATCGATATCGATGCATCGACTACTAT
1. 该序列含有两个外显子和一个内含子。第一个外显子从序列开始到第63个核苷酸,第二个外显子从第91个核苷酸到结尾。
写出程序打印出该基因组DNA片段序列的编码区域。
2. 计算编码区域在该基因组DNA片段序列中所占的百分比例。
3. 将该基因组DNA片段序列的编码序列用大写字母,非编码序列用小写字母打印出来。
三、基因组DNA序列剖分
文件genomic_dna.txt中有基因组DNA序列
ATCGATCGATCGATCGACTGACTAGTCATAGCTATGCATGTAGCTACTCGATCGATCGA
TCGATCGATCGATCGATCGATCGATCATGCTATCATCGATCGATATCGATGCATCGACT
ACTAT
同样,第一个外显子从序列开始到第63个核苷酸,第二个外显子从第91个核苷酸到结尾。
将该基因组DNA片段序列的编码序列和非编码序列分开,并写入两个不同的文件。
四、FASTA文件格式被广泛用于DNA和蛋白质序列存储,通常格式如下:
>sequence_name
ATCGACTGATCGATCGTACGAT
其中,sequence_name用于描述序列,>号表示起始处。通常这一行有公共数据库中的序列号(accession number),可以直接用于查询。
单个FASTA文件也可以包含多条序列,如:
>sequence_one
ATCGATCGATCGATCGAT
>sequence_two
ACTAGCTAGCTAGCATCG
>sequence_three
ACTGCATCGATCGTACCT
1. 创建一个FASTA文件,内含如下三条序列,且所有序列中只含ATGC,而且核苷酸字母都是大写形式。
>ABC123
ATCGTACGATCGATCGATCGCTAGACGTATCG
>DEF456
actgatcgacgatcgatcgatcacgact
>HIJ789
ACTGAC-ACTGT–ACTGTA—-CATGTG
2. 分别创建三个文件,每个文件只含有一条序列。文件名用序列名,后缀名用fasta。
五、文件input.txt中有几条DNA序列,一条一行。每条序列开头有相同的14个碱基(测序接头序列)。
写出程序a)切掉这些接头序列,并将剩余序列写到一个新文件中;b)将每条序列长度打印到屏幕上。
六、文件genomic_dna.txt包含一段基因组DNA序列;文件exons.txt列有外显子的起始和结束位置。每个外显子单独成行,起始和结束位置由逗号分隔。
写出程序提取外显子片段,连接在一起后,输出到一个新文件中。
七、定义一个函数,有两个参数:蛋白质序列和氨基酸残基,返回蛋白质中该氨基酸的百分比含量。使用以下条件来测试函数:
assert my_function("MSRSLLLRFLLFLLLLPPLP","M") == 5
assert my_function("MSRSLLLRFLLFLLLLPPLP","r") == 10
assert my_function("MSRSLLLRFLLFLLLLPPLP","L") == 50
assert my_function("MSRSLLLRFLLFLLLLPPLP","Y") == 0
八、氨基酸残基百分比(二)
修改函数,参数可以有多个氨基酸残基,而不是一个。没有参数,函数返回疏水性氨基酸残基(A, I, L, M, F, W, Y和V)的百分比。函数需要通过以下测试:
assert my_function("MSRSLLLRFLLFLLLLPPLP",["M"]) == 5
assert my_function("MSRSLLLRFLLFLLLLPPLP",["M","L"]) == 55
assert my_function("MSRSLLLRFLLFLLLLPPLP",["F","S","L"] == 70
assert my_function("MSRSLLLRFLLFLLLLPPLP") == 65
九、data.csv文件里面是一些基因的数据。每行是单个基因的信息,按如下顺序提供:物种名,序列,基因名和表达水平,且被逗号分隔。以下问题都将使用这个文件的数据。
输出所有基因名称:
1. 属于两种果蝇(Drosophila melanogaster或Drosophila simulans)的基因。
2. 基因长度为90-110碱基。
3. 基因AT含量小于0.5,而且表达水平高于200。
4. 基因名称以“k“或”h“开头,不包括果蝇Drosophila melanogaster的基因。
5. 打印出每个基因的信息,包括基因名,AT含量是否高(大于0.65),低(低于0.45),还是中等(介于0.45到0.65之间)。
附加题:
十、阅读框指将DNA序列分成连续的、不重叠的密码子。一条DNA序列有6种可能的阅读框:正链(5’-3’)和负链(3’-5’)各三个。
如序列AGGTGACACCGCAAGCCTTATATTAGC的三个可能的正向阅读框是:
AGG TGA CAC CGC AAG CCT TAT ATT AGC
A GGT GAC ACC GCA AGC CTT ATA TTA GC
AG GTG ACA CCG CAA GCC TTA TAT TAG C
分别为阅读框1,2,和3。
一个阅读框可以编码蛋白,包含起始密码子(ATG)和终止密码子(TAA,TAG或TGA)。如ATGAAATAG 是长度为9的一个阅读框。
读入序列文件dna.example.fasta,回答问题:
最长的阅读框多长?最长的阅读框位于哪条序列中?该阅读框的起始密码子的序列位置?
十一、重复序列指DNA序列的一部分以多拷贝形式出现。重复序列可以在正链、负链出现,我们只考虑正链。同样,重复序列可以重叠。如ACACA包含两个拷贝的ACA(第一个位置和第三个位置)。给定序列长度n,你的代码应能找到dna.example.fasta文件中所有长度为n的重复序列。另外,还需确定重复序列出现的次数,以及出现次数最多的给定长度的重复序列。