1

すべてのアミノ酸の x、y、z 座標の行列があります。次の関数を使用して、タンパク質を 3D 空間にプロットします。

make.Plot <- function(position.matrix, center, radius){
  scatterplot3d(x = position.matrix[,4], y = position.matrix[,5], z = position.matrix[,6], type = 'o', color = 'blue')
}

position.matrix の各行は、異なるアミノ酸用です。私がしたいのは、関数を変更することです。そのため、位置マトリックス (アミノ酸の番号付けをリストする) の列 2 の数字に対応する「中心」と半径を渡すと、球が必要になります。そのアミノ酸を中心に。

たとえば、(position.matrix, 9, 3) を渡すと、アミノ酸 9 の周りに半径 3 の球をプロットする必要があります。位置データのコピーをここにアップロードしました: http://temp-share .com/show/YgFHv2J7y

一部の残基がスキップされるため、行数は常に正規の数ではないことに注意してください。私は常に「正規の」カウントを渡します...

ご協力いただきありがとうございます!

4

1 に答える 1

8

これは、コードのテスト済みの変更です。論理ベクトルに 1 を追加することによって選択される cex.symbols に長さ 2 のサイズのベクトルを追加します。

make.Plot <- function(position.matrix, center, radius){
    scatterplot3d(x = position.matrix[,4], y = position.matrix[,5], 
                  z = position.matrix[,6], type = 'o', 
          cex.symbols=c(1,radius)[1+(position.matrix[,2]==center)],  color = 'blue')
          }

ここに画像の説明を入力

あなたが本当に欲しいのはrglパッケージなのだろうか。形状とインタラクティブなプロット環境があります。scatterplot3d を使用すると、次のコードで選択した点を赤くすることができます。

myplot <- make.Plot(position.matrix, 3, 9)
myplot$points3d(position.matrix[3 , 4:6],  col="red", cex=10)

また、強調表示インジケーターの作成に適応できる「パラメトリック球体」を描画するコードもいくつか見つけました。

myplot <- make.Plot(position.matrix, 3, 9)
a=seq(-pi,pi, length=10);
myplot$points3d(x=2*c(rep(1, 10) %*% t(cos(a)))+position.matrix[3 , 4] , 
 y=2*c(cos(a) %*% t(sin(a)))+position.matrix[3 , 5],
 z=2*c(sin(a) %*% t(sin(a)))+position.matrix[3 , 6],
 col="red", cex=.2)

ここに画像の説明を入力

于 2013-04-16T00:50:18.210 に答える