美文网首页
指定窗口长度内变异位点的数目统计(带步长)

指定窗口长度内变异位点的数目统计(带步长)

作者: 风知秋 | 来源:发表于2023-02-20 10:12 被阅读0次

    为了统计处理之后数据集内,染色体上指定长度的窗口内 SV 的数目,一时没想到合适的计算方法。

    (vcftools 可以计算,但是尝试后发现无法指定步长,只好放弃)

    想着原理上也不麻烦,就自己写一下。如下图所示格式的数据集,当然,只要有下面两列信息,包含其它信息也没关系,稍微改动一下即可。统计一定长度窗口内的行数,带步长的滑窗进行统计。

    示例数据格式

    #! /bin/sh

    #  Calculate variant number of a window with steps.

    # usage:  sh script   

    chr = (chr01 chr02 chr03 chr04 chr05 chr06 chr07 chr08 chr09 chr10 chr11 chr12)

    length = (43270923 35937250 36413819 35502694 29958434 31248787 29697621 28443022 23012720 23207287 29021106 27531856)

    for i in {0..11}    

    do

            for ((j=1; j<=${length[$i]}; j+=100000))     

            do

                    cat pav | awk -v s=${chr[$i]} -v c=$j  '{if($1==s && $2 > c && $2 <= c+200000) print $0}' > pav.${chr[$i]}.$

                    wc -l  pav.${chr[$i]}.$j >> num_win

                    rm  pav.${chr[$i]}.$j

            done

    done

    # 两个数组分别指定染色体名称和染色体长度;

    # 数组内第一个元素为 0,用于遍历数组内的元素。

    # for 循环中的数值运算,指定初始值,限制值,和赋值运算;这里表示每一次循环增加100kb,即步长。

     # 将每个窗口范围内的行生成一个新文件,统计行数后删除;

     # awk 在引用外部变量时,需要用  -v  参数指定;


    就是,如果觉得有用的话,登录一下账号点个赞支持一下,欢迎评论交流!

    相关文章

      网友评论

          本文标题:指定窗口长度内变异位点的数目统计(带步长)

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