亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 10077 | 回復: 54
打印 上一主題 下一主題

20積分懸賞,求個perl程序,新手,寫了好幾個都無果。 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2013-03-27 19:13 |只看該作者 |倒序瀏覽
20可用積分
本帖最后由 yanglc2013 于 2013-04-03 15:52 編輯




其中ref圖中的數(shù)據(jù)為庫,在同一條染色體上(兩個圖片中藍色區(qū)域必須先相同),如果lnc圖中紅色矩形內(nèi)的區(qū)域包含在ref圖中紅色區(qū)域內(nèi)輸出文件1(contain),

兩個紅色矩形框內(nèi)的數(shù)據(jù)有交集輸出文件2(overlap),無交集輸出文件3(gapped).如果lnc區(qū)間比ref大,就是ref圖中紅色區(qū)域包含在lnc圖中紅色區(qū)域輸出文件4(reserve).

希望輸出的格式:(比如下面是overlap,不僅要輸出lnc的數(shù)據(jù),還有在同一行加上ref對應的數(shù)據(jù)。)

lnc-C1orf227-1:2        chr1        213028819        213031452        -    NM_014053        chr1        213031596        213072705        +        2210

后面的高手只是輸出了lnc的數(shù)據(jù)。





數(shù)據(jù)文件.rar

920.59 KB, 下載次數(shù): 38

論壇徽章:
0
2 [報告]
發(fā)表于 2013-03-27 19:13 |只看該作者
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;

  4. my (%ref, %data);

  5. open my $in , '<', 'refGene.txt'
  6.     or die "Can't open 'refGene.txt' for reading. $!\n";
  7. while (<$in>) {
  8.     chomp;
  9.     my @t = split;
  10.     push @{$ref{$t[1]}}, [@t];
  11. }
  12. close $in;

  13. open $in , '<', 'lncipedia_location.txt'
  14.     or die "Can't open 'lncipedia_location.txt' for reading. $!\n";
  15. while (<$in>) {
  16.     chomp;
  17.     my @t = split;
  18.     push @{$data{$t[1]}}, [@t];
  19. }
  20. close $in;

  21. open my $include , '>', 'include.txt'
  22.     or die "Can't create 'include.txt' for writing. $!\n";
  23. open my $non_include , '>', 'non_include.txt'
  24.     or die "Can't create 'non_include.txt' for writing. $!\n";
  25. open my $overlap , '>', 'overlap.txt'
  26.     or die "Can't create 'overlap.txt' for writing. $!\n";


  27. while (my ($chr, $v) = each %ref) {
  28.     my @ref_data = sort {$a->[2] <=> $b->[2]} @$v;
  29.     next unless exists $data{$chr};
  30.     my @inc_data = sort {$a->[2] <=> $b->[2]} @{$data{$chr}};
  31.     for (@ref_data) {
  32.         my @rd = @$_;
  33.         last unless @inc_data;
  34.         while (1) {
  35.             last unless @inc_data;
  36.             my @id = @{+shift @inc_data};
  37.             if ($id[3] < $rd[2]) {
  38.                 print {$non_include} join("\t", @id), "\n";
  39.                 next;
  40.             }
  41.             if ($id[2] > $rd[3]) {
  42.                 unshift @inc_data, [@id];
  43.                 last;
  44.             }
  45.             if ($id[2] >= $rd[2] && $id[3] <= $rd[3]) {
  46.                 print {$include} join("\t", @id), "\n";
  47.             }
  48.             else {
  49.                 print {$overlap} join("\t", @id), "\n";
  50.             }
  51.         }
  52.     }
  53.     delete $data{$chr};
  54. }

  55. while (my ($chr, $v) = each %data) {
  56.     my @inc_data = @$v;
  57.     for (@inc_data) {
  58.         print {$non_include} join("\t", @$_), "\n";
  59.     }
  60. }

  61. close $include;
  62. close $non_include;
  63. close $overlap;
復制代碼

論壇徽章:
0
3 [報告]
發(fā)表于 2013-03-27 20:44 |只看該作者
本帖最后由 Perlvim 于 2013-03-27 20:48 編輯

是測試DNA相似度嗎?

1. refGene 文件中的
NR_026818        chr1        34610        36081        -        585
NR_033908        chr1        700244        714068        -        590
6個字段,是否只使用第2個到第4個,其他沒有用?

2. refGene 文件中 第二個字段相同的,是否要合并范圍?計算并集?

3. lnc 中的數(shù)據(jù),計算在哪個范圍,是否有交集,是在 ref 那個對應字段全部范圍內(nèi)計算嗎?

論壇徽章:
3
CU十二周年紀念徽章
日期:2013-10-24 15:41:34子鼠
日期:2013-12-14 14:57:19射手座
日期:2014-04-25 21:23:23
4 [報告]
發(fā)表于 2013-03-27 20:50 |只看該作者
不懂生物 真苦逼{:3_186:}

論壇徽章:
0
5 [報告]
發(fā)表于 2013-03-27 22:02 |只看該作者
回復 2# Perlvim
一個染色體可以分好幾段,雖然你說的有重復,但是其起始位置和終止位置不一樣,所以不要合并啊。這是求gene的location信息。判斷l(xiāng)nc中的染色體(chr)其起始位置和終止位置是不是包含在ref中的起始位置和終止位置中。就是你指的第三列(起始位置)和第四列(終止位置)。

論壇徽章:
0
6 [報告]
發(fā)表于 2013-03-27 22:41 |只看該作者
回復 5# yanglc2013


    意思是一個染色體中一個位置有很多片段,要每個片段都查找,是否有交集嗎?

論壇徽章:
0
7 [報告]
發(fā)表于 2013-03-27 23:12 |只看該作者
回復 6# Perlvim
對啊。就是比對染色體,如果lnc中的那一段染色體在ref中就輸出,不在輸出待另一個文件,有一部分在又輸出一個文件。

論壇徽章:
0
8 [報告]
發(fā)表于 2013-03-27 23:20 |只看該作者
數(shù)據(jù)好大,機器都快跑死了,你這個夠牛的,不好做啊。

論壇徽章:
0
9 [報告]
發(fā)表于 2013-03-28 00:53 |只看該作者
回復 1# yanglc2013


    神馬叫‘落在’,是兩個數(shù)值相同的意思嗎,生物不大懂,建議樓主先掃盲

論壇徽章:
0
10 [報告]
發(fā)表于 2013-03-28 08:32 |只看該作者
blackfur 發(fā)表于 2013-03-28 00:53
回復 1# yanglc2013


落在就是包含唄。 比如 4..6 落在 1..10中
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP