取最大且唯一intron

2020-09-19  本文已影响0人  byejya

先按4,4(start)sort -n -u,去除同开头的read

再按5,5(end)sort -n -u ,因为都是把小的排前面,但是留下最长的,因此不用反向排序。

去掉同开头结尾的,只剩完全在内和部分超出的。

需要先按start排序,因为start一定顺序增加,所以比对end即可。

if end2<end1:

    end2完全在内,将end2变成#####

if end1>start2:

    部分重叠,或者对i,将end1换成end2,或者对i+1将start2换成start1

1 2 3

这里同start没留下最长的,不知为何。

看来还需检查。

3

需要了解sort的规则,会不会根据旁边的排序。

2

可见,拼接是正确的

2 2

看来sort规则有问题,不如全用python脚本处理。

改全部用python脚本后:

1 3 4 2

保留最长和拼接重叠片段都能实现。由此,获取intron唯一位置。

所需的前期处理是:

1.按intron名字排序去重。【可选】,如果不处理也行,因为python中写了start=start end=end的处理

2.按start排序<必做!!>程序为了简便,只是用i i+1去处理,如果不排序,直接会出错

方法:

3

但目前只是将chr1单独取出,因为对sort使用理解不深,现在想一次性取出全部染色体的唯一intron

2

代码:sort -t '    ' -k1n -k4n look>look_sort_1,4

sort可以加多个-k,能和-n连写。但是Mt Pt按n有误,所以改Pt=6 Mt=7

参考:https://blog.csdn.net/z1164072826/article/details/81056872

3 4 3

代码:sed 's/^Mt/7/g' look>look_mt7

            sed 's/^Pt/6/g' look_mt7>look_mt7_pt6

4

解决。

主要是sort 能加两个-k,并将mt pt 变成数字。因为sort的步骤非常重要,所以一定要用到sort。后面的合并删除都一样

所用脚本:get_longest_intron.py

要改和合并的脚本:seq_in_intron.py

前期处理步骤:

sed 's/^Mt/7/g' look>look_mt7

sed 's/^Pt/6/g' look_mt7>look_mt7_pt6

sort -t '    ' -k1n -k4n look_mt7_pt6>llook_mt7_pt6_sort_1,4

上一篇下一篇

猜你喜欢

热点阅读