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

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

Chinaunix

  平臺(tái) 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 5847 | 回復(fù): 11
打印 上一主題 下一主題

求替換snp位點(diǎn)的腳本 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2015-01-22 22:06 |只看該作者 |倒序?yàn)g覽
本帖最后由 yang7473453 于 2015-01-23 12:19 編輯

現(xiàn)有兩個(gè)文件,一個(gè)是fasta文件,一個(gè)snp位點(diǎn)信息文件,如下
文件一:
>gh2222
TTTTTTAAAAAAAAAAGGGGGGCCCCCCCCCAAAAAA
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
>gh2242
TTTTTTTTTTTTTTTTTAAAAAAAAAAAAAAGGGGGGG
CCCCCCCCCCCCCTT

文件二:
基因號(hào)       位置      snp堿基
gh2222         5              A
gh2222         22            A
gh2222         9              G
gh2242         15            C

需要根據(jù)文件二中的信息將文件中相應(yīng)的snp位點(diǎn)替換掉,生成新的替換后的文件,求perl腳本!

論壇徽章:
8
技術(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
2 [報(bào)告]
發(fā)表于 2015-01-22 23:01 |只看該作者
substr......

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2015-01-23 09:24 |只看該作者
大神,可以具體一點(diǎn)嗎?回復(fù) 2# huang6894


   

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
4 [報(bào)告]
發(fā)表于 2015-01-23 14:47 |只看該作者
位置是從1開始算還是從0開始算, 文件中:
TTTTTTAAAAAAAAAAGGGGGGCCCCCCCCCAAAAAA
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
只要替換第一行的還是兩行都要?文件的具體格式是不是都是兩行組成的?

問題描述不清,則無法回答.
你要給個(gè)簡(jiǎn)單的例子說明你要想的結(jié)果.

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2015-01-23 15:21 |只看該作者
位置從0開始算,序列不管有幾行都把它當(dāng)連續(xù)的一段來看回復(fù) 4# ntwarren


   

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2015-01-23 17:46 |只看該作者
給你一個(gè)具體一點(diǎn)的,文件一:
>gg22
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
>gg23
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
>gg25
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG

文件二:      位置信息是按同一個(gè)序列的所有堿基計(jì)算的
序列名       位置       堿基
gg22             5             T
gg22             15           T
gg25             8             A

需要生成的文件:   文件三
>gg22
AAAATAAAAAAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
>gg23
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
>gg25
GGGGGGGAGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
            
文件一中每個(gè)序列的行數(shù)不一樣,根據(jù)文件二中的信息將文件一中相應(yīng)的位置替換堿基,
沒有替換過的序列就按文件一中的再次輸出一遍,得到替換堿基后的文件三。不知道腳本要怎么寫?

回復(fù) 4# ntwarren


   

論壇徽章:
30
申猴
日期:2014-04-10 09:43:532015年亞洲杯紀(jì)念徽章
日期:2015-03-20 14:40:232015亞冠之阿爾納斯?fàn)?日期:2015-06-02 18:59:042015亞冠之阿爾希拉爾
日期:2015-06-30 15:22:572015亞冠之大阪鋼巴
日期:2015-07-20 10:44:332015亞冠之阿爾納斯?fàn)?日期:2015-10-28 14:57:5215-16賽季CBA聯(lián)賽之新疆
日期:2015-12-25 10:18:45黑曼巴
日期:2016-06-26 21:39:5315-16賽季CBA聯(lián)賽之山西
日期:2016-07-25 21:54:2715-16賽季CBA聯(lián)賽之北京
日期:2016-10-27 12:07:2315-16賽季CBA聯(lián)賽之八一
日期:2017-07-07 16:39:0915-16賽季CBA聯(lián)賽之吉林
日期:2017-09-04 12:14:43
7 [報(bào)告]
發(fā)表于 2015-01-23 18:52 |只看該作者
  1. awk -v RS=">" -v OFS="\n"  'FNR==NR{for (i=4;i<=NF;i+=3) if($i~/[0-9a-Z]/)a[$i]=$(i+1)"#"$(i+2)"#"a[$i];next}NR>FNR&&FNR>1{
  2. > if(a[$1]){split(a[$1],b,"#");split($2,c,"");for(j=1;j<=length(c);j++){for(s=1;s<=length(b);s+=2) if(j==b[s]) c[j]=b[s+1]}
  3. > for (k=1;k<=length(c);k++){t=t c[k];$2=t}t=""}}{if($0!~/^$/) print ">"$0}' file2 file1
  4. >gg22
  5. AAAATAAAAAAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
  6. AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
  7. >gg23
  8. TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
  9. TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
  10. TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT

  11. >gg25
  12. GGGGGGGAGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
復(fù)制代碼
回復(fù) 1# yang7473453 perl不會(huì),上個(gè)awk的吧!


   

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2015-01-23 20:38 |只看該作者
很感謝您的幫助,只是不懂a(chǎn)wk,很抱歉回復(fù) 7# zxy877298415


   

論壇徽章:
8
技術(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
9 [報(bào)告]
發(fā)表于 2015-01-23 22:28 |只看該作者
  1. #!/usr/bin/perl -w
  2. my($fa, $snp) = @ARGV;
  3. my %hash;
  4. open SNP,"< $snp" or die "$!";
  5. while(<SNP>){
  6.         chomp;
  7.         my($chr, $pos, $mut) = split;
  8.         push @{ $hash{$chr} },{ P => $pos, M => $mut };
  9. }
  10. close SNP;

  11. $/ = '>';
  12. open FA,"< $fa" or die "$!";
  13. <FA>;
  14. while(<FA>){
  15.         chomp;
  16.         my ( $CHR, @SEQ ) = split;
  17.         unless(exists $hash{$CHR}){
  18.                 print ">".$_;
  19.                 next;
  20.         }
  21.         my $SEQ = join '', @SEQ;
  22.         for my $C ( @{ $hash{$CHR} } ) {
  23.                 substr( $SEQ, $C->{P}, 1 ) = $C->{M};
  24.         }
  25.         print ">$CHR\n$SEQ\n";
  26. }
  27. close FA;
  28. $/ = '\n';

復(fù)制代碼

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
10 [報(bào)告]
發(fā)表于 2015-01-24 14:44 |只看該作者
用這個(gè)吧, 能保留你每一小段的換行風(fēng)格不變.

use strict;
use warnings;

open FILE1, "<", "file1.txt";
open FILE2, "<", "file2.txt";
open FILE3, ">", "file3.txt";

my @file2 = map {chomp; [split /\s+/] } <FILE2>;

our $name;
our $content;

while(<FILE1>){
    if(/^>(\w+)/){
        if(defined($name)){
            for my $a (@file2){
                if($a->[0] eq $name){
                    my @totalLineFeed = substr($content,0,$a->[1]) =~ /\n/g;
                    substr($content,$a->[1]-1 + @totalLineFeed,1)=$a->[2];
                }
            }
            print FILE3 ">".$name."\n".$content;
            
        }
        $name = $1;
        $content = "";
    } else {
        $content .= $_;
    }
}


您需要登錄后才可以回帖 登錄 | 注冊(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)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP