合并run-featurecounts.R產(chǎn)生的count文件

I have several files, each file has four cloumns: gene_id, counts, fpkm and tpm Can you write a perl script to merge the tpm coulms of these files basing on the gene_id? The script should be able to calculate the file number from the commandlines.


#!/usr/bin/perl
use strict;
use warnings;

# Get file names from command line arguments
my @files = @ARGV;

# Initialize hash to store gene ID TPM values
my %tpm_values;

# Process each file
foreach my $file (@files) {
    open my $fh, '<', $file or die "Can't open $file: $!";
    # Get column name from file name
    my ($column_name) = $file =~ /(\S+)\.count$/;
    # Skip header line
    my $header = <$fh>;
    while (my $line = <$fh>) {
        chomp $line;
        # Split line into columns
        my ($gene_id, $counts, $fpkm, $tpm) = split /\t/, $line;
        # Add TPM value to hash for this gene ID and column name
        $tpm_values{$gene_id}{$column_name} = $tpm;
    }
    close $fh;
}

# Print merged TPM values
# Print header row with column names
print "Gene_ID\t";
for my $file (@files) {
    my ($column_name) = $file =~ /(\S+)\.count$/;
    print "$column_name\t";
}
print "\n";

foreach my $gene_id (sort keys %tpm_values) {
    print "$gene_id\t";
    # Print TPM value from each file for this gene ID
    for my $file (@files) {
        my ($column_name) = $file =~ /(\S+)\.count$/;
        print exists $tpm_values{$gene_id}{$column_name} ? "$tpm_values{$gene_id}{$column_name}\t" : "NA\t";
    }
    print "\n";
}

合并前文件內(nèi)容:
gene_id                  counts          fpkm         tpm
LOC_Os01g01010  248     10.6260353400409        17.4281762622683
LOC_Os01g01019  1       0.115196235653905       0.18893785268724
LOC_Os01g01030  31      1.63336480724046        2.67894551921027
LOC_Os01g01040  275     13.4319764240168        22.0303100053021
LOC_Os01g01050  362     23.0490775108712        37.8036937284081
LOC_Os01g01060  179     25.2596545730101        41.4293476479946
LOC_Os01g01070  200     13.7092035461406        22.4850010536979
LOC_Os01g01080  713     44.8696317769905        73.5924384220478
LOC_Os01g01090  1       0.0538921368127652      0.0883906019005892
LOC_Os01g01100  0       0       0
LOC_Os01g01110  1       0.14570836990118        0.238981997731223
LOC_Os01g01115  10      0.53360525105611        0.875186847425071
LOC_Os01g01120  232     24.9748495514202        40.9622277902293
LOC_Os01g01130  53      3.43695621970201        5.63708635307769
運(yùn)行:
perl Merge_files_FPKM.pl   BPT_0d_RNA_TPM.count   BPT_1d_RNA_TPM.count   BPT_2d_RNA_TPM.count BPT_5d_RNA_TPM.count >ALL_FPKM
合并后:
Gene_ID         BPT_0d_RNA_TPM   BPT_1d_RNA_TPM  BPT_2d_RNA_TPM    BPT_5d_RNA_TPM  
ChrSy.fgenesh.gene.1    0       0       0       0       
ChrSy.fgenesh.gene.10   0       0       0       0       
ChrSy.fgenesh.gene.11   0       0       0       0       
ChrSy.fgenesh.gene.12   0.0312652903977292      0       0.066672911473648       0.0229874436731277      
ChrSy.fgenesh.gene.13   0.181866321164529       0       0       0       
ChrSy.fgenesh.gene.14   0.433521572989911       0.405008007567322       0.462240156579073       1.27496691870357        
ChrSy.fgenesh.gene.15   0       0       0       0       
ChrSy.fgenesh.gene.16   0       0       0.177648218071233       0       
ChrSy.fgenesh.gene.17   0       0       0       0.022022270106722       
ChrSy.fgenesh.gene.18   0.255806921435966       0       0       0       
ChrSy.fgenesh.gene.19   0.139531048055982       0.195530725416455       0.223161397907665       0.102588591599082       
ChrSy.fgenesh.gene.2    0       0       0       0       
ChrSy.fgenesh.gene.20   0       0       0       0       
ChrSy.fgenesh.gene.21   0       0       0.0705026870674347      0       
ChrSy.fgenesh.gene.22   0       0       0       0       
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末炒瘸,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蝙泼,更是在濱河造成了極大的恐慌顽聂,老刑警劉巖抚芦,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異小压,居然都是意外死亡壤靶,警方通過(guò)查閱死者的電腦和手機(jī)缚俏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)贮乳,“玉大人忧换,你說(shuō)我怎么就攤上這事∠虿穑” “怎么了亚茬?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)亲铡。 經(jīng)常有香客問(wèn)我才写,道長(zhǎng),這世上最難降的妖魔是什么奖蔓? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任赞草,我火速辦了婚禮,結(jié)果婚禮上吆鹤,老公的妹妹穿的比我還像新娘厨疙。我一直安慰自己,他們只是感情好疑务,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布沾凄。 她就那樣靜靜地躺著,像睡著了一般知允。 火紅的嫁衣襯著肌膚如雪撒蟀。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 48,970評(píng)論 1 284
  • 那天温鸽,我揣著相機(jī)與錄音保屯,去河邊找鬼手负。 笑死,一個(gè)胖子當(dāng)著我的面吹牛姑尺,可吹牛的內(nèi)容都是我干的竟终。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼切蟋,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼统捶!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起柄粹,我...
    開(kāi)封第一講書(shū)人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤喘鸟,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后镰惦,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體迷守,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年旺入,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片凯力。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡茵瘾,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出咐鹤,到底是詐尸還是另有隱情拗秘,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布祈惶,位于F島的核電站雕旨,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏捧请。R本人自食惡果不足惜凡涩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望疹蛉。 院中可真熱鬧活箕,春花似錦、人聲如沸可款。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)闺鲸。三九已至筋讨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間摸恍,已是汗流浹背悉罕。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蛮粮。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓益缎,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親然想。 傳聞我的和親對(duì)象是個(gè)殘疾皇子莺奔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容