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

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
樓主: little_joe
打印 上一主題 下一主題

’求助。!求助。!文件匹配輸出特定的內(nèi)容‘ [復(fù)制鏈接]

論壇徽章:
6
丑牛
日期:2014-03-21 15:42:04子鼠
日期:2014-04-12 11:50:17處女座
日期:2014-09-01 09:25:1115-16賽季CBA聯(lián)賽之吉林
日期:2015-12-22 14:01:5215-16賽季CBA聯(lián)賽之廣東
日期:2016-03-08 18:49:422016科比退役紀(jì)念章
日期:2016-07-06 12:19:55
31 [報告]
發(fā)表于 2016-06-18 19:26 |只看該作者
聽你這么說,貌似我就是這么處理的。。。要不驗證一下結(jié)果
anyway我就是給個代碼思路,畢竟需求會變的 回復(fù) 30# little_joe


   

論壇徽章:
307
程序設(shè)計版塊每周發(fā)帖之星
日期:2016-04-08 00:41:33操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-09-02 06:20:00每日論壇發(fā)貼之星
日期:2015-09-02 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-04 06:20:00每日論壇發(fā)貼之星
日期:2015-09-04 06:20:00每周論壇發(fā)貼之星
日期:2015-09-06 22:22:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-09 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-19 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-20 06:20:00每日論壇發(fā)貼之星
日期:2015-09-20 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-22 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-24 06:20:00
32 [報告]
發(fā)表于 2016-06-18 19:41 |只看該作者
本帖最后由 sunzhiguolu 于 2016-06-18 19:51 編輯

回復(fù) 29# little_joe
之前那個, 在判斷邏輯上有點偏差, 再試下,
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;

  4. sub collect_data{
  5.     my (%ha, %hFilt, $id);
  6.     open (my $fhA, '<', shift);
  7.     while (defined (local $_ = <$fhA>)){
  8.         if (/\A(\D\S+)/){
  9.             %hFilt = () if (!exists $ha{$1});
  10.             $id = $1;
  11.             next;
  12.         }
  13.         s/\s+\z//;
  14.         push (@{$ha{$id}}, $_) if (!$hFilt{$_}++);
  15.     }
  16.     close ($fhA);
  17.     \%ha;
  18. }

  19. sub compare{
  20.     my ($id, $rh, @aData) = (@_);
  21.     my %hStat;
  22.     foreach my $v (@{$rh->{$id}}){
  23.         foreach my $V (grep {$v >= $_->[0] && $v <= $_->[2]} @aData){
  24.             my @aChars = split (//, $V->[4]);
  25.             next if ($aChars[$v - $V->[0]] eq '-');
  26.             $hStat{$aChars[$v - $V->[0]]}++;
  27.         }
  28.     }
  29.     if (%hStat){
  30.         print "$id\t";
  31.         print "$_:$hStat{$_}\t" for keys %hStat;
  32.         print "\n";
  33.     }
  34. }

  35. my $rha = collect_data (shift);

  36. open (my $fh, '<', shift);
  37. my ($Flag, $Offset, $ID, @aData) = 0;
  38. while (defined (local $_ = <$fh>)){
  39.     next if (/\A\s*\z/ or !/\A(?:Query|Sbjct)/);
  40.     if (/\AQuery=\h+(\S+)/){
  41.         compare ($ID, $rha, splice (@aData)) if (@aData);
  42.         exists ($rha->{$1}) ? do {($ID, $Flag, $Offset) = ($1, 1, -1)} : ($Flag = 0);
  43.         next;
  44.     }
  45.     next if (!$Flag);
  46.     if (/\A(Query|Sbjct)\h+(\d+)\h+(\H+)\h+(\d+)/){
  47.         push (@{$aData[$1 eq "Query" ? ++$Offset : $Offset]}, $2, $3, $4);
  48.     }
  49. }
  50. close ($fh);
  51. compare ($ID, $rha, splice (@aData)) if ($Flag);
復(fù)制代碼
perl abc.pl a b
-------------------------------
NP_415088.1-1   W:4
NP_415560.1-1   S:1
YP_025310.1-1   T:1     V:1
YP_588459.1-1   N:1     K:1
YP_002791252.1-1        S:1
NP_418697.1-1   E:7     W:7


   

論壇徽章:
0
33 [報告]
發(fā)表于 2016-06-18 20:16 |只看該作者
本帖最后由 little_joe 于 2016-06-18 20:24 編輯

再次感謝,試了您剛才的代碼,結(jié)果如圖 但是YP_025310.1-1   T:1     V:1結(jié)果不太對,原因可能是將Query中的“-”當(dāng)成字母讀取了,文件中當(dāng)Query行中出現(xiàn)“-”時不會影響序號區(qū)間例如:Query:1 ASDFGHJKL 9和Query:1  ASD-FGHJKL 9它們兩個都是包含9個元素,“-”不會影響字母的序號例如:Query:1 ASD-FGHJKL 9
                 Sbjct:1 ASDFGHHLKJ 9假設(shè)文件A數(shù)值為4,則找到了Query行的F此時Sbjct行對應(yīng)G的回復(fù) 32# sunzhiguolu


   

論壇徽章:
0
34 [報告]
發(fā)表于 2016-06-18 20:24 |只看該作者
試了您剛才的代碼,結(jié)果是這樣的 不知道什么原因。請教請教!回復(fù) 31# stanley_tam


   

論壇徽章:
6
丑牛
日期:2014-03-21 15:42:04子鼠
日期:2014-04-12 11:50:17處女座
日期:2014-09-01 09:25:1115-16賽季CBA聯(lián)賽之吉林
日期:2015-12-22 14:01:5215-16賽季CBA聯(lián)賽之廣東
日期:2016-03-08 18:49:422016科比退役紀(jì)念章
日期:2016-07-06 12:19:55
35 [報告]
發(fā)表于 2016-06-18 21:11 |只看該作者
我的代碼直接跑perl fii.pl(如果文件名字是fii.pl的話)
pl文件跟 A.word   B.word放在同一個目錄下。。。估計你得把文件名字重命名,或者修改main函數(shù)中的文件名字。
回復(fù) 34# little_joe


   

論壇徽章:
307
程序設(shè)計版塊每周發(fā)帖之星
日期:2016-04-08 00:41:33操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-09-02 06:20:00每日論壇發(fā)貼之星
日期:2015-09-02 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-04 06:20:00每日論壇發(fā)貼之星
日期:2015-09-04 06:20:00每周論壇發(fā)貼之星
日期:2015-09-06 22:22:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-09 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-19 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-20 06:20:00每日論壇發(fā)貼之星
日期:2015-09-20 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-22 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-24 06:20:00
36 [報告]
發(fā)表于 2016-06-18 21:19 |只看該作者
本帖最后由 sunzhiguolu 于 2016-06-18 21:30 編輯

回復(fù) 33# little_joe
對于 Query 行的 '-' 字符 在什么情況下 會對 Query 行產(chǎn)生影響? (針對 B 文件)
舉例如下:
A 文件:
YP_025310.1-1
73
78

B 文件:
Query= YP_025310.1-1
...
Query  59   FSGDMLPDGGINRRWLTPA-SKLRQPVVCLNRSGNMVGQSVLPMAG-LSGKKKATKNSLF  116
              G       IN R  T A S++ +P+          G+++    G    KK+  KNSL
Sbjct  61   APGWWDKPPLINARVETAATSRMFKPLW-------QHGRAICFADGWFEWKKEGDKNSLI  113
...

符合 A 文件中數(shù)值 73, 78 條件的只有這兩條記錄. (Query 59, Sbjct 61)

1.> 假設(shè) Query 59 這一行, 在 73 之前的位置出現(xiàn)了兩個 '-' 字符, 那么 Query 59 這行的 73 數(shù)值應(yīng)該落在那個字符上面?  (你在說明時, 請使用同一示例文件進(jìn)行說明)
2.> 還是只考慮 當(dāng) A 中 數(shù)值 (如: 78 ) 在 B Query 行正好處于 '-' 位置時才順延到下一個字符, 其他情形忽略.

   

論壇徽章:
0
37 [報告]
發(fā)表于 2016-06-18 21:22 |只看該作者
試了,是剛才運行的方式不對,謝謝!回復(fù) 35# stanley_tam


   

論壇徽章:
0
38 [報告]
發(fā)表于 2016-06-18 21:32 |只看該作者
本帖最后由 little_joe 于 2016-06-18 21:34 編輯

對于您的疑問
Query= YP_025310.1-1
...
Query  59   FSGDML--PDGGINRRWLTPA-SKLRQPVVCLNRSGNMVGQSVLPMAG-LSGKKKATKNSLF  116
              G       IN R  T A S++ +P+          G+++    G    KK+  KNSL
Sbjct  61   APGWWDKPPLINARVETAATSRMFKPLW-------QHGRAICFADGWFEWKKEGDKNSLI  113
...
如果Query行在73之前出現(xiàn)兩個“--”則73位還是W,但是對應(yīng)的Sbjct是不同的。因為-在Query行中出現(xiàn)其實是運行軟件加注的Gap,不是序列中的內(nèi)容,而Query和Sbjct前后的數(shù)字是指序列序號,也就是字母的序號,與“-”無關(guān)。
例如:
Query  58   VSKWVWKRGWPSSSSNRRKPAVTSRKLTCWDARLNGWRGSTATVRPATRQT-----LIRT  112
            V  W  + GW S +   R       +LT    +     G    +    RQ      + R
Sbjct  15   VQSWKQRDGWDSVAPISRVEMSLEARLTQLIIKPQKTGGDFKEIDLLGRQIERLARVNRY  74

Query  113  SLTATKAG----VANR--------KRIFSVTRPSKSWSRFSLSSLSTISCTGIAPGLSTA  160
            S T  +A     VANR        K+ FSVTRPSKSWSRFSLSSLS ISCTGIAPGLSTA
Sbjct  75   SQTGNEADLNPNVANRNKGGRRKPKKNFSVTRPSKSWSRFSLSSLSIISCTGIAPGLSTA  134

Query  161  SAIS  164
            SAIS
Sbjct  135  SAIS  138
雖然第一行Query和第3行Query均有“-”出現(xiàn),但其序列編號并未將其包含在內(nèi)。回復(fù) 36# sunzhiguolu


   

論壇徽章:
307
程序設(shè)計版塊每周發(fā)帖之星
日期:2016-04-08 00:41:33操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-09-02 06:20:00每日論壇發(fā)貼之星
日期:2015-09-02 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-04 06:20:00每日論壇發(fā)貼之星
日期:2015-09-04 06:20:00每周論壇發(fā)貼之星
日期:2015-09-06 22:22:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-09 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-19 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-20 06:20:00每日論壇發(fā)貼之星
日期:2015-09-20 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-22 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-24 06:20:00
39 [報告]
發(fā)表于 2016-06-19 11:47 |只看該作者
回復(fù) 38# little_joe
對于這種情況, B 文件 如何取值? (A 文件的數(shù)值:81)
Query= NP_418697.1-1
...
Query  34   NNICERAIRPVVMGRKAWLFAGSLVAGNRAAQIMSLLGT---------AVWSHMLGWRTS  84
            NNI E A+R V +GRK +LF GS   G R A + SL+GT         +   H+LG   
Sbjct  57   NNIAENALRAVSLGRKNFLFFGSDHGGERGALLYSLIGTCKLNDVDPESYLRHVLGVIAD  116

Query 34 行 應(yīng)該落在那個字符上面, Sbjct 57 行 應(yīng)該落在那個字符上面

   

論壇徽章:
0
40 [報告]
發(fā)表于 2016-06-19 12:02 |只看該作者
本帖最后由 little_joe 于 2016-06-19 12:07 編輯

Query= NP_418697.1-1
...
Query  34   NNICERAIRPVVMGRKAWLFAGSLVAGNRAAQIMSLLGT---------AVWSHMLGWRTS  84
            NNI E A+R V +GRK +LF GS   G R A + SL+GT         +   H+LG   
Sbjct  57   NNIAENALRAVSLGRKNFLFFGSDHGGERGALLYSLIGTCKLNDVDPESYLRHVLGVIAD  116
文件A是81的話,Query行取值應(yīng)該為W,Sbjct行則取對應(yīng)的V,謝謝您。
也就是說當(dāng)Query行出現(xiàn)“-”不會影響數(shù)值匹配,但是如果Sbjct行出現(xiàn)“-”則Query對應(yīng)的Sbjct則會發(fā)生變化回復(fù) 39# sunzhiguolu


   
您需要登錄后才可以回帖 登錄 | 注冊

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP