免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: junlingpang
打印 上一主题 下一主题

计算投影总长度 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2011-06-09 22:58 |只看该作者
回复 10# zhlong8


    大侠,能具体讲一下数端点的方法吗?我刚学编程,急需指点,谢了

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
12 [报告]
发表于 2011-06-09 23:08 |只看该作者
回复  zhlong8


    大侠,能具体讲一下数端点的方法吗?我刚学编程,急需指点,谢了
junlingpang 发表于 2011-06-09 22:58



    将这些点排好序,如果开始端点和结束端点数相等即为一段连续区间(当然是最短优先)所以只需要数一次就可以知道总长度了

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
13 [报告]
发表于 2011-06-09 23:15 |只看该作者
本帖最后由 zhlong8 于 2011-06-09 23:17 编辑

用 scheme 写个递归的代码
; 只需要定义两个基本元素的交 inter
; 单个元素的值 value
; 用到两个公式
; A ∪ B = A + B - A ∩ B
; A ∩ (B1 ∪ B2 ... Bn) = (A ∩ B1) ∪ (A ∩ B2) ... ∪ (A ∩ Bn)
(define (unions items)
  (if (null? (cdr iems))
    (value (car items))
    (let ((a (car items))
          (b (cdr items)))
      (+ (value a) (unions b)
         (- (unions (map (lambda (x) (inter a x)) b)))))))

论坛徽章:
0
14 [报告]
发表于 2011-06-09 23:26 |只看该作者
回复 13# zhlong8


    啊,谢谢了,我得好好消化一下,多谢多谢^_^

论坛徽章:
1
程序设计版块每日发帖之星
日期:2015-10-07 06:20:00
15 [报告]
发表于 2011-06-10 02:27 |只看该作者
不知道楼主是想做什么,生物信息里面有merge gene reads的工具(C binary),你可以假装是ABC三个染色体,这些片段是gene的位置,直接拿到结果,如有兴趣,可回复此帖联系我

论坛徽章:
0
16 [报告]
发表于 2011-06-10 08:11 |只看该作者
  1. use List::Util qw(sum);
  2. my $hash;
  3. while(<DATA>){
  4.     my @t = split /\s+/;
  5.     $hash->{ $t[0] }->[ $_ ] = 1 for $t[1] + 1 .. $t[2];
  6. }

  7. foreach my $k ( keys %$hash ){
  8.     print "$k => ", sum( @{ $hash->{ $k } } ), "\n";
  9. }

  10. __DATA__
  11. A    5     10
  12. A    15   18
  13. A    2    7
  14. A    4    6
  15. B    1    10
  16. B    3    5
  17. C    1    3
  18. C    4    5
  19. C    11    13
复制代码

论坛徽章:
0
17 [报告]
发表于 2011-06-10 09:01 |只看该作者
回复 15# chenhao392


    啊~太好啦,呵呵,我也是学生物信息的,研一,刚入门~
  最近在做关于基因中重复序列的一个小的实验,拿到的基因组中有标注基因的位置和重复序列的位置信息,我想统计一下基因中重复序列的百分比。因为一个基因中往往不止一个重复序列,就像上面举的例子那样,所以一开始想编个程序解决一下。
  您说的那个软件可以解决类似的问题吗?谢谢指点^_^

论坛徽章:
0
18 [报告]
发表于 2011-06-10 09:07 |只看该作者
回复 16# guap514


    和4楼的思路类似,但是您的代码更简洁,谢谢大侠帮忙^_^

论坛徽章:
1
程序设计版块每日发帖之星
日期:2015-10-07 06:20:00
19 [报告]
发表于 2011-06-10 09:26 |只看该作者
回复 17# junlingpang


    呵呵,确实可以利用这个工具,不可避免的要用到Bed格式,不过既然都做序列了,这个格式也是经常用的吧
    请google Bedtools manual, 找到里面关于mergeBed/coverageBed 的章节阅读。


    如果只想算百分比,就直接用coverageBed,如果还想 继续这个topic,即 merge这些location再算除法,就看mergeBed.

    咱们干这行的,能利用别人工具是效率最高的了,什么Samtools啊,Bedtools啊,都可以瞅瞅..

论坛徽章:
0
20 [报告]
发表于 2011-06-10 09:32 |只看该作者
回复 19# chenhao392


    嗯,太好了,多谢多谢,刚起步要学习的还有好多哇~谢喽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP