12
answers
472views


未解决

chr1
atctaaaggggccccccccc........(文件大小是160M)

现在想取其中一段序列,比如123456bp-12345678bp的序列

由于是一般的电脑,只有2G内存,因此bioperl的模块用不了,内存存不了那么大的序列,这种情况下怎么才能把序列取出来呢?
谢谢大家帮帮忙!




    1

    用perl的substr函数不可以吗?

    Current score: 0
    [Link] | [回复Ta]
    2

    要内存溢出

    Current score: 0
    [Link] | [回复Ta]
    3

    可以用Biopython的 SeqIO.index()函数,这个函数不把序列存到内存里,只是存序列在文件中的起始位置

    Current score: 0
    [Link] | [回复Ta]
    4

    参考 http://www.biopython.org/DIST/docs/tutorial/Tutorial.html#htoc56

    Current score: 0
    [Link] | [回复Ta]
    5

    嗯嗯,谢谢,去学习下

    Current score: 0
    [Link] | [回复Ta]
    6

    用linux下cut命令是最方便的了。

    先把序列变成一行。

    再用cut,

    cut -c 123456-12345678 file_name

    Current score: 0
    [Link] | [回复Ta]
    7

    对一条序列是cut掉了,但是,对需要多条序列,有没有批量的方法?

    Current score: 0
    [Link] | [回复Ta]
    8

    @rebeccajiejie:
    自己写个脚本批量cut就是咯

    Current score: 0
    [Link] | [回复Ta]
    9

    思路呢?
    谢谢柳同学

    Current score: 0
    [Link] | [回复Ta]
    10

    @rebeccajiejie:

    #!/usr/bin/perl

    while(<>){
    chomp;
    $result = `cut -c$_`;
    chomp($result);
    print $result,"\n";
    }

    Current score: 0
    [Link] | [回复Ta]
    11

    好了,谢谢万能的柳同学啦

    Current score: 0
    [Link] | [回复Ta]
    12

    @rebeccajiejie: 嘿~

    Current score: 0
    [Link] | [回复Ta]

Your Answer

You must be logged in to post a comment.

登陆后可评论。