生物信息编程训练题目
编程语言要求:C/C++, perl, python, java.
共十个题目。前五道,属较低难度等级,新手;后五道,属较高难度等级,高手。
1. 编写一个模拟基因DNA序列或者protein序列的程序。要求能够产生指定长度和条数的随机序列,输出到fasta格式文件中。无论DNA还是protein序列,均需尽可能符合真实的基因序列特征。
2.编写一个测序数据统计程序,读取测序原始reads文件(fq格式),统计数据量、碱基比例以及质量值分布。要求尽可能全面的反应数量和质量信息。
3.编写一个翻译程序,将coding sequence (cds)翻译成amino acid (aa)序列。输入输出文件分别为fasta格式。采用真核物种最通用密码子表,可在NCBI网站上查得。
4.编写一个画图程序,绘制基因的结构。Exon用方块表示,intron用直线表示。数据可从gff格式坐标位置文件中读取。
5. 编写一个统计基因组覆盖程度的程序。读取reads比对到基因组后得到的sam/bam文件,统计每一个基因组碱基位置的覆盖深度情况。快速排序python实现
6.编写一个快速排序法函数,用以实现大数据量的高效排序。要求给出测试结果,包含内存占用和耗时情况。
7.编写一个overlap的程序,到两种块座标系列之间的交集。材料为由两种不同的方法所得到的同一物种的两个基因集,请到它们之间的重叠区域,并计算出这两种预测方法之间的相似程度。
8.编写一个动态规划比对程序,实现两条DNA序列之间的全局比对和局部比对。要求阐明所用算法的时间和空间好用与数据量之间的关系。
9.编写一个画图程序,绘制物种或者基因的进化树(phylogeny tree)。树枝用蓝线表示,节点用绿方块表示,同时在叶子结点末端显出出物种名或者基因的ID。
10.编写一个kmer频率统计的程序。K-mer就是指定长度的一段序列,在生物信息领域具有广泛的用途。要求读取测序的reads文件(fq格式),统计其中全部k-mer种类的出现频率,
最后画一张k-mer频率的分布图。
附. 编程的规范与要求:
1. 注释文档:
每个程序头部要有简略的说明文档,程序段落和关键语句要有必要的注释,在命令行运行时能显示帮助信息;大型软件应按功能模块将代码划分到不同的文件中,还要同时有独立的INSTALL、Makefile和readme等说明文件,侧重于算法的程序则一定要把算法阐述清楚。
2. 测试数据:
提供与该程序配套的测试数据,并说明运行方法和参数搭配情况。注意测试数据应具有代表性,为节省存储空间,测试数据不能过大,否则只提供大型机地址即可。
3. 程序质量:
要求功能明确,算法优化,结构合理,代码简洁清晰,具有良好的运行效率。好的结构
设计要求模块化或者对象化,要着重从算法上改进。
4. 维护更新:
要注明作者、版本、日期以及维护更新的信息,作者对使用该程序产生的后果不负直接责任,但是有义务根据用户的合理反馈意见不断地完善程序,以及对使用者提供帮助。
附. 测试数据
1.在biopic计算机集上准备好了一些数据:
/gpfsdata/Analysis/fanwei/Testing_data_for_training/
2.自己获得,可从公共数据库如Genbank等下载,或向搞生物信息的同事/学索取。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论