2017-06-27 5 views
0

BLAST出力のデータベースを処理して、与えられた遺伝子と与えられたサンプルの値を含むデータフレームを生成しようとしています。ある遺伝子内で遺伝子が同定されたら、その遺伝子が特定された足場を報告したいと思う。特定の遺伝子が特定のサンプル内で同定されない場合、私は細胞をN/Aで満たしたいと思います。私が持っている - 私はサンプル名と遺伝子のタイトルを連結し、この文字列は、VLOOKUPを使用して識別される行の足場数を報告しているExcelでデータ操作における課題

Sample  aadA1 aadA12 aadA24 blaTEM-163 ... 
P24_ST48  N/A  64  N/A  N/A 
401B_ST5223 N/A  N/A  N/A  381 
... 

sample_name   scaffold gene_title match_(%) 
P24_ST48    64  aadA12  94.56 
401B_ST5223    381  blaTEM-163 99.65 
P32_ST218    91  aadA24  90.41 
HOS66_ST73    9  blaACT-5 72.31 
HOS16_ST38    70  blaTEM-146 99.42 
HOS56_ST131    48  aadA21  91.39 
Ecoli_2009_1_ST131  41  sul1  99.88 
PH152_ST95    37  dfrA33  83.94 
Ecoli_2009_32_STNT  16  aac(3)-Ib 100.00 
PH231_ST38    59  mph(D)  89.83 
P44_STNT    135  blaTEM-105 99.88 
Ecoli_2011_89_ST127  29  blaTEM-158 99.65 
405C_ST1178    120  aadA1  99.75 
P3_STNT     15  blaTEM-68 99.19 
5A_ST34     174  blaTEM-127 99.88 
P27_ST10    211  aph(3')-Ia 100.00 
4D_ST767    393  blaTEM-152 98.95 
P10_STNT    23  blaTEM-17 99.07 
Ecoli_2014_27_ST131  49  sul2_15  99.88 
Ecoli_2013_10_ST73  23  blaTEM-2 99.19 

出力テーブルには、次のようになりますRでいろいろなやり方を試して、周りを回り回っています。

遺伝子サンプルの組み合わせのリストは、管理するのが面倒になってきています。私のサンプルコレクションがますます大きくなるにつれ、別の解決策を見つける必要があります。

ご協力いただければ幸いです。

乾杯、

マックス

+0

可能な重複[ワイドフォーマットに長いからデータを再構築するには?](https://stackoverflow.com/questions/5890584/how-to-reshape-data-from-long-to-wide -format) –

答えて

1

はここでspreadtidyr

library(tidyr) 
df1%>% 
    spread(key = gene_title,value = scaffold) 

     sample_name match_... aac(3)-Ib aadA1 aadA12 ... 
1  401B_ST5223  99.65  NA NA  NA 
2  405C_ST1178  99.75  NA 120  NA 
3   4D_ST767  98.95  NA NA  NA 
4   5A_ST34  99.88  NA NA  NA 
5 Ecoli_2009_1_ST131  99.88  NA NA  NA 
... 

からのデータ

df1 <- read.table(text="sample_name   scaffold gene_title match_(%) 
P24_ST48    64  aadA12  94.56 
        401B_ST5223    381  blaTEM-163 99.65 
        P32_ST218    91  aadA24  90.41 
        HOS66_ST73    9  blaACT-5 72.31 
        HOS16_ST38    70  blaTEM-146 99.42 
        HOS56_ST131    48  aadA21  91.39 
        Ecoli_2009_1_ST131  41  sul1  99.88 
        PH152_ST95    37  dfrA33  83.94 
        Ecoli_2009_32_STNT  16  aac(3)-Ib 100.00 
        PH231_ST38    59  mph(D)  89.83 
        P44_STNT    135  blaTEM-105 99.88 
        Ecoli_2011_89_ST127  29  blaTEM-158 99.65 
        405C_ST1178    120  aadA1  99.75 
        P3_STNT     15  blaTEM-68 99.19 
        5A_ST34     174  blaTEM-127 99.88 
        P27_ST10    211  aph(3')-Ia 100.00 
        4D_ST767    393  blaTEM-152 98.95 
        P10_STNT    23  blaTEM-17 99.07 
        Ecoli_2014_27_ST131  49  sul2_15  99.88 
        Ecoli_2013_10_ST73  23  blaTEM-2 99.19", 
         header=TRUE,stringsAsFactors=FALSE) 
+0

@MaxCumminsあなたはそれを後で要約して平均を得ることができます –

0

我々は012からdcastを使用することができることを行う方法です

library(data.table) 
dcast(setDT(df1), sample_name + match_... ~ gene_title, value.var = 'scaffold') 
#  sample_name match_... aac(3)-Ib aadA1 aadA12 ... 
#1:   401B_ST5223  99.65  NA NA 
#2:   405C_ST1178  99.75  NA 120 
#3:   4D_ST767  98.95  NA NA 
#4:    5A_ST34  99.88  NA NA 
関連する問題