美文网首页nature颜铎序列
如何根据染色体坐标批量提取对应的DNA序列(bedtools)

如何根据染色体坐标批量提取对应的DNA序列(bedtools)

作者: 生信start_site | 来源:发表于2020-05-23 04:18 被阅读0次

    这一篇小笔记是在我处理自己的数据的时候遇到的问题,经过查阅资料解决了,故记录下来。

    比如现在:你需查找一段序列,比如说小鼠的chr10:105280000-105280550,我相信学生物的童鞋应该都知道应该怎么获得DNA序列,但是如果当我有上千条序列需要获得并把它们放在同一个fasta文件里的时候,应该怎么做呢?

    方法如下:

    Step1 你需要先拿到差异peaks

    从ATAC-seq数据中分析得到的差异peaks,当然同样适用于chip-seq的数据:

    > head(Q_T_Q_V_psig)
    log2 fold change (MLE): condition Q_T vs Q_V 
    Wald test p-value: condition Q_T vs Q_V 
    DataFrame with 6 rows and 6 columns
                                      baseMean   log2FoldChange             lfcSE             stat               pvalue               padj
                                     <numeric>        <numeric>         <numeric>        <numeric>            <numeric>          <numeric>
    chr10:105280000-105280550 9.37332336803852 3.53597545377286  1.04368265396652 3.38797951689085 0.000704095222812605                 NA
    chr10:105469500-105469950 13.4771925765997 2.29247043028083  0.84387643836949  2.7165949018677  0.00659572827117144  0.353853732289383
    chr10:107658700-107659600 58.6902716992164 1.13822876920294 0.433762615192843 2.62408222685789  0.00868828070349121  0.389236862222314
    chr10:108153100-108153800 38.0887166659289 2.20816858694232 0.491153263586065 4.49588499284274 6.92811780142922e-06 0.0204186477574836
    chr10:108452300-108452850 15.8518595117141 3.34668830781992 0.888088721665981 3.76841663020088 0.000164286335774994 0.0816701024146028
    chr10:110183500-110184500 50.6887818370494 1.31842727975894 0.416836274255839 3.16293797153972  0.00156185605940921  0.204583310689789
    

    随后把这个差异peaks表存成了csv文件。

    Step2 在命令行里将一列分割成多列

    从csv文件里提取某一列并存到另一个文件里,例如提取第一列($1):

    $ awk -F"," '{print $1}' file.csv >> file1.csv
    

    在linux里,再把csv文件的一列按照冒号分隔成两列,并存到另一个文件里:

    $ sed 's/:/\t/' file.cvs > file1.csv
    

    同样的,把csv文件的一列按照“-”短横杠进行分割:

    $ sed 's/-/\t/' test1 > test2
    

    处理后的文件:

    $ head Q_T_Q_V_p01_chrlocation.csv
    chr10   105280000       105280550
    chr10   105469500       105469950
    chr10   107658700       107659600
    chr10   108153100       108153800
    chr10   108452300       108452850
    chr10   110183500       110184500
    chr10   111636750       111637550
    chr10   111684750       111685450
    chr10   111840100       111840700
    chr10   112000200       112000850
    

    Step3 把csv改成bed后缀

    直接鼠标右击“重命名”。
    然后看一下bed文件:

    $ head Q_T_Q_V_p01_chrlocation.bed 
    chr10   105280000   105280550
    chr10   105469500   105469950
    chr10   107658700   107659600
    chr10   108153100   108153800
    chr10   108452300   108452850
    chr10   110183500   110184500
    chr10   111636750   111637550
    chr10   111684750   111685450
    chr10   111840100   111840700
    chr10   112000200   112000850
    

    Step4 安装bedtools

    安装bedtools:

    $ wget https://github.com/arq5x/bedtools2/releases/download/v2.29.1/bedtools-2.29.1.tar.gz
    $ tar -zxvf bedtools-2.29.1.tar.gz
    $ cd bedtools2
    $ make
    

    也有其他安装方法,见:Installation

    Step5 根据染色体坐标位置批量提取相应序列

    参考官网:getfasta
    用bedtools根据已知的染色体坐标位置,获得fasta文件:

    #-fi后面是你想从哪个fasta文件里提取序列,我这里是从小鼠基因组里提取
    #-bed指的是你输入的文件类型是什么,这里我输入的是bed文件
    #-bed后面跟的是上面我们拿到的染色体坐标文件
    #-fo是输出结果储存的文件
    $ bedtools getfasta -fi /media/yanfang/FYWD/RNA_seq/ref_genome/mm10.fa -bed Q_T_Q_V_p01_chrlocation.bed -fo Q_T_Q_V_p01_peakseq.fa
    

    得到的fasta文件:

    相关文章

      网友评论

        本文标题:如何根据染色体坐标批量提取对应的DNA序列(bedtools)

        本文链接:https://www.haomeiwen.com/subject/krqhahtx.html