在线时间 0 小时 最后登录 2015-8-18 注册时间 2015-8-18 听众数 7 收听数 0 能力 0 分 体力 4 点 威望 0 点 阅读权限 10 积分 2 相册 0 日志 0 记录 0 帖子 2 主题 1 精华 0 分享 0 好友 2
升级 40%
该用户从未签到
DNA序列的k-mer index 问题6 N. m# ^' W7 X- a: A, Z5 s
给定一个DNA序列,这个系列只含有4个字母ATCG,如 S =“CTGTACTGTAT”。给定一个整数值k,从S的第一个位置开始,取一连续k个字母的短串,称之为k-mer(如k= 5,则此短串为CTGTA), 然后从S的第二个位置, 取另一k-mer(如k= 5,则此短串为TGTAC),这样直至S的末端,就得一个集合,包含全部k-mer 。 如对序列S来说,所有5-mer为* Y& l$ ]; R1 `9 m c
% b+ A5 i; f7 |, H+ j% M$ J {CTGTA,TGTAC,GTACT,TACTG,ACTGT,TGTAT}
' w, k, P- O! e& r 1 j8 m" r, K+ d+ R! [, W
通常这些k-mer需一种数据索引方法,可被后面的操作快速访问。例如,对5-mer来说,当查询CTGTA,通过这种数据索引方法,可返回其在DNA序列S中的位置为{1,6}。
/ x8 c( |* `% [: s
( N/ i9 i0 u6 i* a7 d 问题0 q4 V1 n$ [& M" c9 A) S, }
* f x4 c6 M- d" P) ] l( X1 \ 现在以文件形式给定 100万个 DNA序列,序列编号为1-1000000,每个基因序列长度为100 。* ]. {) ^1 U# {' W5 d: l
$ U) ]4 y6 r4 `
(1)要求对给定k, 给出并实现一种数据索引方法,可返回任意一个k-mer所在的DNA序列编号和相应序列中出现的位置。每次建立索引,只需支持一个k值即可,不需要支持全部k值。
' v5 X6 N8 v4 k' G9 b
3 I8 i/ s5 e1 ]! k$ I (2)要求索引一旦建立,查询速度尽量快,所用内存尽量小。: a3 M8 u. v9 w/ G$ K6 U
, i4 y% u4 J L# C% T/ G% D
(3)给出建立索引所用的计算复杂度,和空间复杂度分析。
1 ?; i* l4 j' ?- r, r! B! ]
' \8 k6 B1 @" Y5 k0 u2 w. y( n# X (4)给出使用索引查询的计算复杂度,和空间复杂度分析。9 E6 u5 f& G& s& s2 V
0 G$ r7 H0 Z- k* Y8 ?: w
(5)假设内存限制为8G,分析所设计索引方法所能支持的最大k值和相应数据查询效率。
/ q% Q/ \ k- k6 C8 \% S2 T$ E (6)按重要性由高到低排列,将依据以下几点,来评价索引方法性能
1 X2 d0 E i% Z' A; e / S7 ^) h! F$ Q4 v5 m8 n7 @" N) q: t
希望好心人帮忙
J5 f4 h% p, a- @
zan