2016-07-21 7 views
0

を作成するために、データフレームを記入私は、ファイルに書き込まれ、次のように配置されているデータフレームに読み込まれ、いくつかの計算があります:Pythonで(データは計算から来るR:対称アイデンティティプロット

sequence_1 sequence_2 identity 
CP010953 CP010953 100 
CP010953 CP012689 73.9 
CP010953 CP000025 73.86 
CP010953 CP012149 73.77 
CP010953 HE978252 73.72999999999999 
CP010953 CP009043 83.35000000000001 

を2つの文字列間の文字一致の数を文字列の1つの長さで割ったものを計算します(両方の文字列は同じ長さになります)。当時は良いアイデアのようでしたが、計算をしたときにitertools.combinations_with_replacementコマンドを使用して計算を高速化しました。だから、彼らがそれぞれになるので、私は3つの文字列(A、B、C)、それだけで& C、& bで& C B、& B、& Cを比較していないだろう、とC & Bを比較していた場合&b、&c、およびb &cと同じ値を持ちます。問題は、私はRにデータを読み込み、ヒートマップをプロットするとき、私はこれで終わるということです。

enter image description here

ギャップの束であることを(あなたは私が必要な値であることを見ることができるかもしれませんそこにあるすべての例 - AL111168とCP000538(どちらも左下にあります)はy軸上の値ですが、x軸ではありません!

これらのギャップにRの適切な値を記入する方法はありますか?私はこれをループで行うことができますが、それはあまりR-esqueではありません。以前これが尋ねられたことは確かですが、正しい検索条件を使用しているとは思われません。ここで

は、私のコードのビットは次のとおりです。

args = commandArgs(trailingOnly=TRUE) 

file_name <- args[1] 
gene_name <- args[2] 

image_name = paste(gene_name, '.png', sep='') 

myDF <- read.csv(file_name, header=T, sep='\t') 

my_palette <- colorRampPalette(c('red', 'yellow', 'green')) 

png(filename=image_name, width=3750,height=2750,res=300) 
par(mar=c(9.5,4.3,4,2)) 
print(corpus <- qplot(x=sequence_1, y=sequence_2, data=myDF, fill=identity, geom='tile') + 

        geom_text(aes(label=identity), color='black', size=3) + 
        scale_fill_gradient(limits=c(0, 100), low='gold', high='green4') + 
        labs(title='Campylobacter Pair-wise Sequence Identity Comparison', x=NULL, y=NULL) + 
        guides(fill = guide_legend(title = 'Sequence\nSimilarity %', title.theme = element_text(size=15, angle = 0))) + theme(legend.text=element_text(size=12)) + 
        theme(axis.text.x=element_text(angle=45, size=14, hjust=1, colour='black'), axis.text.y=element_text(size=14, hjust=1, colour='black'))) 
dev.off() 

は、事前にありがとうございます。

答えて

0

enter image description here私はそれを行う方法を考え出しました。

mDF <- myDF 
colnames(mDF)[1] <- 'sequence_2' 
colnames(mDF)[2] <- 'sequence_1' 
newDF <- rbind(mDF, myDF) 

次に、newDFをプロットします。