- 在线时间
- 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 问题! e, g2 r4 L3 P k
给定一个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为% f6 h/ y6 ~' g
& g8 f4 x6 q `0 U% m# j$ R! {
{CTGTA,TGTAC,GTACT,TACTG,ACTGT,TGTAT}( K1 o. @. {3 d) w% x4 |8 \; Z6 r
! P) r! Q2 n. h+ s( p7 |
通常这些k-mer需一种数据索引方法,可被后面的操作快速访问。例如,对5-mer来说,当查询CTGTA,通过这种数据索引方法,可返回其在DNA序列S中的位置为{1,6}。% {# r6 I8 O8 _2 ^# M9 p2 G
) | k! R* S3 Y+ N& Q9 {! d/ E5 {
问题* y% c7 T; |/ F5 g0 }5 R
$ j% J4 U2 V, H& m2 A
现在以文件形式给定 100万个 DNA序列,序列编号为1-1000000,每个基因序列长度为100 。
9 M; b, q, O5 X( M/ P7 i5 b8 v8 i# ^$ q
(1)要求对给定k, 给出并实现一种数据索引方法,可返回任意一个k-mer所在的DNA序列编号和相应序列中出现的位置。每次建立索引,只需支持一个k值即可,不需要支持全部k值。
* n! ~0 ]6 B Y; G: V) g V% T4 v' T8 p: k/ b: G
(2)要求索引一旦建立,查询速度尽量快,所用内存尽量小。
- O, E; o$ w. d* a6 |& ^6 ]
5 |. Y2 A |; I+ e4 H/ u" c(3)给出建立索引所用的计算复杂度,和空间复杂度分析。, l. M- c+ d* Y
! f( J/ i: G2 h(4)给出使用索引查询的计算复杂度,和空间复杂度分析。
( [2 P7 |* f/ E+ @* }" j Z/ z5 f0 `, n3 N4 e/ B
(5)假设内存限制为8G,分析所设计索引方法所能支持的最大k值和相应数据查询效率。
7 M/ O. X5 E* K7 U& x( t(6)按重要性由高到低排列,将依据以下几点,来评价索引方法性能
6 D; {/ m5 u* @$ E5 ^) r
4 ~% U: \% w3 L8 u希望好心人帮忙
/ J: k- B& T6 I* c! B |
zan
|