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

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
1234下一頁(yè)
最近訪問(wèn)板塊 發(fā)新帖
查看: 7017 | 回復(fù): 32
打印 上一主題 下一主題

跪求高手幫助解決perl問(wèn)題 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2014-12-08 21:51 |只看該作者 |倒序?yàn)g覽
本帖最后由 弦斷有誰(shuí)聽(tīng)1053476508 于 2014-12-15 16:53 編輯

任務(wù):步驟1,Orthologs-msu.txt是原始文件,讓其每一行行生成1個(gè)ID文件(如ORTHOMCL2.txt) ,文件名是每一行第一個(gè)元素。
        步驟2,然后以文件名為散列的key,文件內(nèi)容為元素構(gòu)造散列保存。
        步驟3,再用每個(gè)ID文件的每一行(如下面的APK_ORTHOMCL2),從同一個(gè)Allseq.fa(DNA文件)中找到對(duì)應(yīng)的APK_ORTHOMCL2提取DNA序列
如,APK_ORTHOMCL2
>AT1G51370.2 | Symbols:  | F-box/RNI-like/FBD-like domains-containing protein | chr1:19045615-19046825 FORWARD LENGTH=1118
ATGGTGGGTGGCAAGAAGAAAACCAAGATATGTGACAAAGTGTCACATGAGGAAGATAGGATAAGCCAGTTACCGGAACC
TTTGATATCTGAAATACTTTTTCATCTTTCTACCAAGGACTCTGTCAGAACAAGCGCTTTGTCTACCAAATGGAGATATC
TTTGGCAATCGGTTCCTGGATTGGACTTAGACCCCTACGCATCCTCAAATACCAATACAATTGTGAGTTTTGTTGAAAGT
TTTTTTGATTCCCACAGGGATTCATGGATACGCAAACTCCGTTTAGATTTGGGTTATCATCATGATAAGTATGATCTCAT
GTCATGGATTGATGCTGCGACTACGCGTAGGATTCAGCATCTTGATGTTCATTGTTTTCACGATAATAAGATACCCTTGA
GCATATATACATGCACGACGTTGGTACACTTACGACTCCGTTGGGCTGTCTTGACTAATCCCGAGTTTGTTTCCTTACCT

生成N個(gè)fa序列文件,找不到對(duì)應(yīng)ID的生產(chǎn)空文件。

原始文件就像下面的內(nèi)容:
orthologous_group_ID num_orthologs/in-paralogs num_species species orthologs/in-paralogs
APK_ORTHOMCL0 416 2 rice sorghum LOC_Os04g04140 LOC_Os05g29160 LOC_Os10g02640  
APK_ORTHOMCL2 212 3 brachy rice sorghum Bradi1g21530 Bradi2g26540 Bradi2g49480 Bradi2g61260

其中要求生成的ID文件如下:
APK_ORTHOMCL0
416
2
rice sorghum
LOC_Os04g04140
LOC_Os05g29160
LOC_Os10g02640

別人寫(xiě)的步驟一的一段代碼,錯(cuò)誤出在哪,怎么改?或者高手給重寫(xiě)一段。
open (IN,"<$ARGV[0]");
my ($i,@in,$linename,@id);
while (<IN>)
  {
@in = split("\s", $_);
$linename = shift (@in);
@id = join ("\n", @in);
print "$linename\n@id";
$i++;
open my $out, ">$i";
print $out sth

步驟二沒(méi)有參考腳本

步驟三的參考腳本如下:
#tempo 從fasta格式中用名稱(chēng)提取序列
#cd C:\strawberry\perl\bin
# perl ID-SEQok.pl ORTHOMCL2.txt zmossbat.fa >mcl2.fa
#!/usr/bin/perl -w
#use strict;
#use warnings;
($ARGV[0] && $ARGV[1]) or die "usage: $0 NameFile DataBase\nShortName to FullName\n";
my $nameFile=$ARGV[0];
my $dataFile=$ARGV[1];
open(my $nf,$nameFile) or die "cannot open $nameFile";
open(my $df,$dataFile) or die "cannot open $dataFile";
undef $/;
my $temp;
$temp=<$nf>;
my @names=sort split /\n/,$temp;
close($nf);
foreach my $name (@names)
{
    $name=~s/\|/\\|/g;
}
$/=">";
while($temp=<$df>)
{
    chomp($temp);
    $temp=~m/(.*)/;
    my $head=$1;
    foreach my $name(@names)
    {
        if($head=~m/$name/i)
        {
            print ">$temp";
        }
    }
}
close($df);

我是植物學(xué)碩士,但是對(duì)計(jì)算機(jī)語(yǔ)言沒(méi)什么造詣,高手幫幫忙吧,最好把三個(gè)步驟連在一起寫(xiě)一個(gè)程序。  
---------------------------------------------------------------------------------------------------------------------------------------------------------

12月15編輯:
  原始文件(Orthologs-msu.txt有約2000行)和要求生成約2000個(gè)fa序列文件,過(guò)程如


  Allseq.fa文件有200g,太大沒(méi)法上傳,只能發(fā)測(cè)試文件。測(cè)試文件在下面的附件中,具體測(cè)試就是使原始文件Orthologs-msu.txt每一行生成1個(gè)ID文件,文件名是每一行第一個(gè)元素,文件內(nèi)容為ID。ID文件的每一行為一個(gè)子ID(如ORTHOMCL2.txt),再用每個(gè)ID文件的每一行(如下面的LOC_Os04g04140),從同一個(gè)Allseq.fa(DNA文件)中找到對(duì)應(yīng)的(如LOC_Os04g04140)提取序列,生成N個(gè)fa序列文件。效果如APK_ORTHOMCL0.fa和APK_ORTHOMCL2.fa,提取不到對(duì)應(yīng)序列的如APK_ORTHOMCL1.fa為空! 測(cè)試文件(12月15).zip (17.53 KB, 下載次數(shù): 4)

測(cè)試文件和初步測(cè)試結(jié)果.zip

74.24 KB, 下載次數(shù): 7

Orthologs-msu.zip

813.47 KB, 下載次數(shù): 19

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2014-12-08 22:04 |只看該作者
大神進(jìn)來(lái)看看吧

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2014-12-08 22:05 |只看該作者
身邊的人都解決不了

論壇徽章:
7
巳蛇
日期:2013-11-28 09:22:59天秤座
日期:2014-10-25 15:40:452015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:53:172015亞冠之德黑蘭石油
日期:2015-07-15 08:46:452015亞冠之平陽(yáng)省
日期:2015-11-08 16:27:53白銀圣斗士
日期:2015-11-14 09:58:12
4 [報(bào)告]
發(fā)表于 2014-12-09 21:04 |只看該作者
后面一步用BioPerl模塊就好了

論壇徽章:
8
技術(shù)圖書(shū)徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
5 [報(bào)告]
發(fā)表于 2014-12-09 21:50 |只看該作者
回復(fù) 1# 弦斷有誰(shuí)聽(tīng)1053476508


    希望幫到你~
  1. #! /usr/bin/perl -w
  2. use File::Basename;
  3. die "\tperl $0 Orthologs-msu.txt Allseq.fa\n" unless scalar @ARGV eq 2;
  4. my($id_file, $fasta) = @ARGV;
  5. my %hash;

  6. open IN,"< $id_file" or die "$!";
  7. <IN>;
  8. open OUT,"> $id_file\.id" or die "$!";
  9. while(<IN>){
  10.         chomp;
  11.         my $key = (split)[0];
  12.         unless(exists $hash{$key}){
  13.                 print OUT $key.$/;
  14.                 open my $f, '>', "$id_file\.$key" ;
  15.                 $hash{$key} = basename($id_file);
  16.                 $file{$key} = $f;
  17.                 print { $file{$key} } ">".$key."\n";
  18.         }
  19. }
  20. close IN;
  21. close OUT;
  22. $/=">";
  23. open FASTA,"< $fasta" or die "$!";
  24. <FASTA>;
  25. while(<FASTA>){
  26.         chomp;
  27.         my($key,@value) = (split /\n/);
  28.         next unless exists $hash{$key};
  29.         print { $file{$key} } join("\n",@value);
  30. }
  31. close $hash{$_} for keys %hash;
  32. $/="\n";       
復(fù)制代碼

論壇徽章:
8
技術(shù)圖書(shū)徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
6 [報(bào)告]
發(fā)表于 2014-12-09 21:50 |只看該作者
本帖最后由 huang6894 于 2014-12-09 21:51 編輯

回復(fù) 1# 弦斷有誰(shuí)聽(tīng)1053476508


    希望幫到你~
  1. #! /usr/bin/perl -w
  2. use File::Basename;
  3. die "\tperl $0 Orthologs-msu.txt Allseq.fa\n" unless scalar @ARGV eq 2;
  4. my($id_file, $fasta) = @ARGV;
  5. my %hash;

  6. open IN,"< $id_file" or die "$!";
  7. <IN>;
  8. open OUT,"> $id_file\.id" or die "$!";
  9. while(<IN>){
  10.         chomp;
  11.         my $key = (split)[0];
  12.         unless(exists $hash{$key}){
  13.                 print OUT $key.$/;  #第一題
  14.                 open my $f, '>', "$id_file\.$key" ;
  15.                 $hash{$key} = basename($id_file); #第二題
  16.                 $file{$key} = $f;
  17.                 print { $file{$key} } ">".$key."\n";
  18.         }
  19. }
  20. close IN;
  21. close OUT;
  22. $/=">";
  23. open FASTA,"< $fasta" or die "$!";
  24. <FASTA>;
  25. while(<FASTA>){
  26.         chomp;
  27.         my($key,@value) = (split /\n/);
  28.         next unless exists $hash{$key};
  29.         print { $file{$key} } join("\n",@value);#第三題
  30. }
  31. close $hash{$_} for keys %hash;
  32. $/="\n";       
復(fù)制代碼
不好意思,重復(fù)發(fā)貼了

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2014-12-11 13:02 |只看該作者
謝謝你 我試下回復(fù) 5# huang6894


   

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2014-12-12 22:40 |只看該作者
回復(fù) 5# huang6894

測(cè)試用的附件和初步測(cè)試結(jié)果我已經(jīng)上傳,還要麻煩您看下,有幾個(gè)問(wèn)題

1 為何生成的.APK文件(應(yīng)該是最終的結(jié)果.fa)為空?
2 模塊file::basename如何用?
3  命令行輸入的有沒(méi)有問(wèn)題?

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2014-12-12 22:42 |只看該作者
回復(fù) 4# b114213903
那是什么,不懂。若是我生成散列后怎么操作,還請(qǐng)指導(dǎo)


   

論壇徽章:
8
技術(shù)圖書(shū)徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
10 [報(bào)告]
發(fā)表于 2014-12-13 10:56 |只看該作者
我很想幫你,但是

你就不能給點(diǎn)真實(shí)數(shù)據(jù)麼~程序我沒(méi)看出來(lái)有什么問(wèn)題,菜鳥(niǎo)寫(xiě)法,不追求技巧~
basename是一個(gè)模塊,用來(lái)獲取一個(gè)輸入的(如:c:\\hh\\tt)最后那個(gè)名稱(chēng),也就是文件名tt
您需要登錄后才可以回帖 登錄 | 注冊(cè)

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP