構文と使用方法

選択は、解析のために原子/分子/残基を選択するために使用されます。従来のインデックスファイルとは異なり、選択は動的に変更できます。つまり、異なる軌道フレームで異なる原子を選択できます。GROMACSのマニュアルには、分析の章に選択に関する短い導入セクションが含まれており、選択の概念に新しい場合は、どのように学習を進めるかについての提案が含まれています。以下にリストされているサブトピックは、選択の技術的および構文的な側面に関する詳細情報を提供します。

各分析ツールは異なる数の選択肢を必要とし、選択肢の解釈も異なります。基本的な考え方は同じです。各選択肢は、原子の位置、質量中心、または複数の原子のジオメトリの中心など、複数の位置に評価されます。ツールはこれらの位置を使用して分析を実行し、非常に柔軟な処理を可能にします。一部の分析ツールでは、許可される選択肢の種類に制限がある場合があります。

コマンドラインから選択を指定する

もしコマンドラインで選択が指定されていない場合、インタラクティブに入力するように求められます(この場合、パイプを使用して選択を指定することも可能です。ただし、ほとんどのツールではこれを使用できます)。これはテストには適していますが、複雑な選択やスクリプトを使用する場合は、コマンドラインから選択を指定する方が簡単です。

各ツールには、選択を指定するための異なるコマンドライン引数が用意されています(個々のツールのヘルプを参照)。単一の文字列(セミコロンで区切られた選択内容を含む)を渡すか、複数の文字列をそれぞれ1つの選択内容として渡すことができます。選択内容をシェルから保護するために、引用符で囲む必要があります。

「選択コマンドライン引数を設定した場合、選択内容を指定しないと、その引数に対してインタラクティブに入力するように求められます。これは、その選択引数がオプションの場合に役立ちます。この場合、通常は入力が求められません。」

ファイルから選択肢を提供するには、選択肢の引数に -sf file.dat を使用します(例:-select -sf file.dat)。通常、-sf 引数は指定されたファイルから選択肢を読み取り、それらを、それまで指定されたが、まだ選択肢が提供されていない選択肢の引数に割り当てます。特別な場合として、-sf を、先行する選択肢の引数なしで使用すると、選択肢をすべての(まだ設定されていない)必要な選択肢に割り当てます(つまり、コマンドラインで選択肢が提供されていない場合に、インタラクティブにプロンプトが表示される選択肢)。

従来のインデックスファイルからグループを使用するには、引数 -n を使用してファイルを指定します。詳細については、「構文」のセクションを参照してください。このオプションを指定しない場合、デフォルトのグループが生成されます。デフォルトのグループは、選択ツールとは異なるロジックで生成されます。

ツールの種類によっては、動作を制御するための追加のコマンドライン引数が2つ利用できる場合があります。

  • -seltype を使用して、各選択に対して計算するデフォルトのポジションの種類を指定できます。

  • -selrpos を使用すると、座標に基づいて原子を選択する際に使用するデフォルトのポジションの種類を指定できます。

詳細については、「オプション」のセクションをご覧ください。

ツールは、選択された内容を構造/トポロジーファイルおよび/または軌跡ファイルに適用します。 ツールが両方を受け付ける場合(通常は、構造/トポロジーには -s、軌跡には -f)、軌跡ファイルは座標情報のみに使用され、原子名や残基情報などのその他の情報は、構造/トポロジーファイルから読み取られます。 ツールが構造ファイルのみを受け入れる場合、またはその入力パラメータのみが指定されている場合、座標もそのファイルから取得されます。 例えば、両方のオプションを提供するツールで、.pdb/.gro``ファイルから原子を選択する場合、-s``(のみ)として指定します。 軌跡ファイルが構造ファイルとは異なる原子名を示す場合、警告は表示されません。 座標の数がのみチェックされます。 多くの選択機能付きのツールには、軌跡に存在する原子インデックスを指定するための -fgroup オプションも用意されています。

構文

選択のセットは、セミコロンで区切られた1つ以上の選択で構成されます。各選択は、分析に使用する位置のセットを定義します。各選択には、グラフの凡例など、選択の名前として使用できる文字列を前置することもできます。名前が指定されていない場合、選択に使用される文字列が自動的に名前として使用されます。

インタラクティブな入力の場合、構文がわずかに変更されます。選択肢を区切るために、改行を使用することもできます。必要に応じて、`` に続いて改行を使用して行を継続できます。ただし、上記の規則は、パイプなどから選択肢を提供する場合ではなく、実際のインタラクティブな入力にのみ適用されます。

可能です。選択式を格納するために変数を使用できます。変数は次の構文で定義されます。

VARNAME = EXPR ;

EXPR は任意の有効なセレクション式です。その後、VARNAMEEXPR が有効な場所であればどこでも使用できます。

選択式は、主に以下の3つの種類の式で構成されます。 * 原子を定義する式(ATOM_EXPR) * 位置を定義する式(POS_EXPR) * 数値に評価される式(NUM_EXPR

  • 「NUM_EXPR1 < NUM_EXPR2」のような式は、比較が真の場合のすべての原子を選択する「ATOM_EXPR」に評価されます。

  • アトム式は、not ATOM_EXPRATOM_EXPR and ATOM_EXPR、または ATOM_EXPR or ATOM_EXPR などのブール演算と組み合わせて使用できます。括弧を使用して評価順序を変更できます。

  • ATOM_EXPR 式は、さまざまな方法で POS_EXPR 式に変換できます。詳細は、「位置」のセクションを参照してください。

  • POS_EXPRNUM_EXPR に変換するには、「x of POS_EXPR」のような構文を使用できます。 現在、これは「x of cog of ATOM_EXPR」のような単一のポジションでのみサポートされています。

一部のキーワードは、アトム名などの文字列値に基づいてアトムを選択します。これらのキーワードを使用する場合、ワイルドカード(例:name "C*")または正規表現(例:resname "R[AB]")を使用できます。マッチングの種類は、文字列から自動的に推測されます。文字列に文字、数字、*、または`?`以外の文字が含まれている場合、正規表現として解釈されます。文字通りの文字列マッチングを使用するには、name = "C*"`を使用して、文字通りのC*に一致させます。別の種類のマッチングを使用するには、`=`の代わりに?`または`~`を使用して、それぞれワイルドカードまたは正規表現のマッチングを強制します。

非英数字を含む文字列は、例に示すように、ダブルクォートで囲む必要があります。その他の文字列については、ダブルクォートは必須ではありませんが、値が予約語と競合する場合は、構文エラーが発生します。文字列に大文字が含まれている場合は、このエラーは発生しないはずです。

インデックスグループは、コマンドラインオプション -n で指定されたもの、またはデフォルトで生成されたものを、group NR または group NAME でアクセスできます。ここで、NR はグループのゼロベースのインデックスであり、NAME は目的のグループの名前の一部です。group キーワードは、インデックスグループ全体から選択が提供される場合はオプションです。インタラクティブモードで利用可能なグループのリストを表示するには、行の先頭で Enter キーを押してください。

選択肢における位置の指定

選択肢で位置を指定する方法として、以下のものが考えられます。

  1. 定位置は、[XX, YY, ZZ] の形式で定義できます。ここで、XXYY、および ZZ は実数です。

  2. com of ATOM_EXPR [pbc] または cog of ATOM_EXPR [pbc] は、ATOM_EXPR の中心/形状を計算します。 pbc が指定されている場合、中心は反復的に計算され、ATOM_EXPR が周期境界条件でラップされる場合に適切に対処できるようになります。

  3. POSTYPE of ATOM_EXPR は、ATOM_EXPR 内の原子の指定された位置を計算します。 POSTYPE は、オプションのプレフィックス whole_part_、または dyn_ 付き、atomres_comres_cogmol_com、または mol_cog のいずれかになります。 whole_ は、一部のみが選択されている場合でも、全体のリソデュ/分子の中心を計算します。 part_ プレフィックスは、選択された原子の中心を計算しますが、同じリソデュ/分子に対して常に同じ原子を使用します。 使用される原子は、選択によって許可される最大のグループから決定されます。 dyn_ は、選択された原子に対してのみ厳密に中心を計算します。 プレフィックスが指定されていない場合、whole_ 選択はデフォルトで part_ に、その他の場所はデフォルトで whole_ になります。 後者は、異なるツールで同じ分子を選択する場合に便利ですが、前者は、速度(dyn_ の位置を評価するのに part_ よりも時間がかかる可能性がある)と直感的な動作の間の妥協です。

  4. ATOM_EXPR を、選択全体に対して指定した場合、3. の方法と同様に、コマンドライン引数 -seltype から取得される位置タイプを使用します。

選択キーワードは、位置に基づいて原子を選択するもの(例:dist from)は、デフォルトではコマンドラインオプション -selrpos で定義された位置を使用します。これを上書きするには、キーワードの先頭に POSTYPE 指定子を追加します。たとえば、res_com dist from POS は、残りの中心質量間の距離を評価します。この例では、残りのすべての原子は、計算された単一の距離に基づいて、選択または非選択されます。

算術式を使用した選択

基本的な算術評価は、数値式に対してサポートされています。サポートされている演算は、加算、減算、否定、乗算、除算、および指数計算(^を使用)です。ゼロによる除算やその他の不正な演算の結果は定義されていません。

選択キーワード

次の選択キーワードは現在利用可能です。「+」でマークされたキーワードについては、関連するトピック KEYWORD を参照して、追加の情報をご利用ください。KEYWORD はキーワードの名前です。

  • キーワードで、整数プロパティに基づいて原子を選択:

    atomnr
    mol (synonym for molindex)
    molecule (synonym for molindex)
    molindex
    resid (synonym for resnr)
    residue (synonym for resindex)
    resindex
    resnr
    

    (使用例:「atomnr 1 to 5 7 9」のように、式や表現で使用)

  • キーワードを使用して、数値プロパティで原子を選択します:

    beta (synonym for betafactor)
    betafactor
    charge
    distance from POS [cutoff REAL]
    distance from POS [cutoff REAL]
    mass
    mindistance from POS_EXPR [cutoff REAL]
    mindistance from POS_EXPR [cutoff REAL]
    occupancy
    x
    y
    z
    

    (使用例:「0.5から1の範囲で」または「占有率0.5から1」)

  • キーワードを使用して、文字列プロパティで原子を選択します:

    altloc
    atomname
    atomtype
    chain
    insertcode
    name (synonym for atomname)
    pdbatomname
    pdbname (synonym for pdbatomname)
    resname
    type (synonym for atomtype)
    

    (例: "名前 パターン [パターン] ..." のように使用)

  • 追加のキーワードで、直接原子を選択:

    all
    insolidangle center POS span POS_EXPR [cutoff REAL]
    none
    same KEYWORD as ATOM_EXPR
    within REAL of POS_EXPR
    
  • 直接位置を評価するキーワード:

    cog of ATOM_EXPR [pbc]
    com of ATOM_EXPR [pbc]
    

    (「ポジション」のセクションも参照してください)

  • 追加キーワード:

    merge POSEXPR
    POSEXPR permute P1 ... PN
    plus POSEXPR
    

名前でアトムを選択する - atomname, name, pdbatomname, pdbname

name
pdbname
atomname
pdbatomname

これらのキーワードは、アトムの名前で選択します。「name」は、GROMACSのアトム命名規則に従ってアトムを選択します。PDB以外の入力形式の場合、アトムの名前は入力ファイルに記述されているとおりに正確に一致します。PDBファイルの場合、「name」は、入力ファイルに記述されている正確な名前に基づいてアトムを選択します。ただし、4文字のアトム名で、数字で始まるものを選択する場合は、数字を末尾に移動してから一致させる必要があります(例:PDBファイルから「3HG2」を選択する場合は、「name HG23」を使用します)。「pdbname」は、PDB入力ファイルでのみ使用でき、上記の説明に従わないで、入力ファイルに記述されている正確な名前に基づいてアトムを選択します。

atomnamepdbatomname は、上記のキーワードの同義語です。

距離に基づいて選択 - dist, distance, mindist, mindistance, within

distance from POS [cutoff REAL]
mindistance from POS_EXPR [cutoff REAL]
within REAL of POS_EXPR

distancemindistance は、指定された位置(または位置)からの距離を計算しますが、その違いは distance が単一の位置のみを受け入れるのに対し、mindistance は複数の位置を受け取り、最も近い位置までの距離を計算することです。 within は、POS_EXPR から REAL の範囲内の原子を直接選択します。

最初の2つのキーワードについては、評価を高速化するために、上限値を指定することが可能です。指定された上限値を超えるすべての距離は、上限値と同じとみなされます。

固体角内の原子を選択する - insolidangle

insolidangle center POS span POS_EXPR [cutoff REAL]

このキーワードは、``POS_EXPR``(単一の位置を評価する位置表現)から見た``POS``(位置)における任意の位置からの「REAL」度(デフォルト=5)内の原子を選択します。つまり、``POS_EXPR``内の位置によって定義される立体角の中央に位置する原子を選択します。

技術的には、固体角は、「POS」にある頂点を持つ小さな錐の集合として構成されます。これらの錐の軸は、「POS_EXPR」にある一点を通ります。「POS_EXPR」にある各位置に対して、このような錐が存在し、その点がある錐の中に含まれていれば、その点は固体角に含まれます。カットオフは、これらの錐の幅を決定します。

複数の選択肢の統合 - 統合、追加

POSEXPR merge POSEXPR [stride INT]
POSEXPR merge POSEXPR [merge POSEXPR ...]
POSEXPR plus POSEXPR [plus POSEXPR ...]

基本的な選択キーワードは、各原子が最大で1回だけ出現する選択のみを作成できます。「merge」と「plus」の選択キーワードを使用することで、この制限を回避できます。どちらも、指定された位置表現に含まれる重複を含む位置をすべて含む選択を作成します。ただし、「merge」は、同じ数の位置を持つ2つ以上の選択を必要とし、出力には、各表現から選択された入力位置が順番に表示されます。つまり、出力はA1 B1 A2 B2のように表示されます。また、最初の選択のサイズが2番目の選択の倍数である限り、異なるサイズの選択を結合することも可能です。「stride」パラメータを使用して、明示的にこの倍数を指定できます。「plus」は、単に位置を順番に連結するため、異なるサイズの選択にも対応できます。これらのキーワードは、選択レベルでのみ有効であり、サブ表現には適用されません。

選択の並び替え - 並び替え

permute P1 ... PN

デフォルトでは、すべての選択が評価され、原子インデックスが昇順で返されます。これは、式に permute P1 P2 ... PN を追加することで変更できます。 Pi は、1 から N までの数字の順列を表す必要があります。このキーワードは、選択内の各 N 個のブロックを、i 番目の位置が Pi 番の要素になるように再配置します。注意点として、配置されたのはブロック内の位置であり、個々の原子ではありません。選択のサイズが n の倍数でない場合、致命的なエラーが発生します。 permute キーワードは、選択全体に対してのみ使用でき、サブ式に対しては使用できません。つまり、permute キーワードは選択の最後に現れる必要があります。

アトムの選択 - 残存番号、resindex、resnr

resnr
resid
resindex
residue

resnr は、入力ファイル内の残基番号を使用して原子を選択します。 resid は、VMDとの互換性のために、このキーワードの別名です。

resindex N は、入力ファイルの先頭から N 番目の残基を選択します。これは、入力ファイルに重複した番号が存在する場合(たとえば、複数の鎖の場合)に、残基を一意に識別するために役立ちます。 resindex は、residue の別名です。これにより、「同じ残基である」という機能が期待どおりに動作します。

選択の拡張 - 同じ

same KEYWORD as ATOM_EXPR

キーワード「same」を使用すると、指定された「KEYWORD」と一致するすべての原子を選択できます。整数または文字列の値で評価されるキーワードがサポートされています。

選択の評価と最適化

ブール式の評価は左から右に進み、短絡評価を行います。つまり、ある原子が選択されるかどうかを判断した時点で、残りの式は評価されません。この機能を利用して、ブール式の評価を最適化できます。ブール式では、最も制約が強く、または最もコストのかからない式を最初に記述するようにしてください。動的式と静的式の相対的な順序は重要ではありません。すべての静的式は、最初のフレームの前に一度だけ評価され、その結果が左側の式となります。

もう一つの最適化のポイントは、共通のサブ表現にあります。それらは自動的に認識されませんが、変数を活用することで手動で最適化できます。これにより、特に複数のインデックスグループを定義した場合、複雑な選択のパフォーマンスに大きな影響を与える可能性があります。

rdist = distance from com of resnr 1 to 5;
resname RES and rdist < 2;
resname RES and rdist < 4;
resname RES and rdist < 6;

変数の代入がない場合、距離は同じように3回評価されますが、選択ごとに評価結果は同じです。変数に代入された値は、フレーム内で一度だけ評価される共通のサブ式となります。現在、変数の使用は、どの原子に対して式がすでに評価されているかを判断するために必要なチェックにより、わずかなパフォーマンス低下を引き起こす可能性がありますが、これは大きな問題ではありません。

選択の制限

  • 一部の分析プログラムでは、入力選択に対して特別な構造が必要となる場合があります(たとえば、gmx gangle の一部のオプションでは、インデックスグループが3つまたは4つの原子で構成されている必要がある)。そのようなプログラムの場合、ユーザーは常にそのような位置を返す適切な選択式を提供する必要があります。

  • すべての選択キーワードは、原子を昇順で選択します。つまり、これらは最終的に原子を数値的にソートされた順序で返す、集合演算として考えることができます。たとえば、次の選択は同じ原子を同じ順序で選択します。

    resname RA RB RC
    resname RB RC RA
    
    atomnr 10 11 12 13
    atomnr 12 13 10 11
    atomnr 10 to 13
    atomnr 13 to 10
    

    もし、異なる順序で原子/位置が必要な場合は、以下のいずれかの方法で指定できます。

    • 外部インデックスグループを使用する(一部の静的な選択の場合)

    • permute」キーワードを使用して、最終的な順序を変更します。

    • 複数の異なる選択肢から最終的な選択肢を構成するために、「merge」または「plus」キーワードを使用します。

  • 技術的な理由により、::のような式において、最初の値として負の値を指定することはできません。

    charge -1 to -0.7
    

    これにより構文エラーが発生します。回避策としては、次のように記述します:

    charge {-1 to -0.7}
    

    代わりに。

  • 「name」キーワードをPDB入力ファイルと組み合わせて使用する場合、動作が直感的でない可能性があります。GROMACSがPDBファイルを読み込む際、数字で始まる4文字の原子名は変換され、例えば1HG2がHG21に変換され、この後者が「name」キーワードによってマッチングされます。入力PDBファイルに表示されている原子名と一致させるには、「pdbname」を使用してください。

例:選択

以下に、さまざまな種類の選択肢の例を示します。

  • すべての水酸素の選択:

    resname SOL and name OW
    
  • 残基 1 から 5 と 10 の質心的位置:

    res_com of resnr 1 to 5 10
    
  • 固定された位置から1 nm以上の距離にあるすべての原子:

    not within 1 of [1.2, 3.1, 2.4]
    
  • リジン残基LIG内のすべての原子が、カスタム名を持つタンパク質から0.5 nm以内に位置する場合:

    "Close to protein" resname LIG and within 0.5 of group "Protein"
    
  • LIG:: に存在する少なくとも 1 つのアトムから 0.5 nm 以内の距離にあるすべてのタンパク質残基。

    group "Protein" and same residue as within 0.5 of resname LIG
    
  • すべての RES 残基のうち、COM が他のすべての RES 残基の COM から 2 ~ 4 nm の範囲にあるものすべて:

    rdist = res_com distance from com of resname RES
    resname RES and rdist >= 2 and rdist <= 4
    
  • 選択例:同じ原子を繰り返すようなもの、例えば C1 C2 C2 C3 C3 C4 ... C8 C9:

    name "C[1-8]" merge name "C[2-9]"
    

    これにより、gmx distance を使用して、C1-C2、C2-C3 などの距離を計算できます。

  • 選択: C2 C1 の順に原子を使用:

    name C1 C2 permute 2 1
    

    これにより、C1->C2 ではなく、C2->C1 のベクトルを取得できます。これは gmx gangle と組み合わせて使用できます。

  • 2つのインデックスグループのCOMを使用した選択:

    com of group 1 plus com of group 2
    

    これにより、これらの2つのCOM間の距離を計算できます。

  • 固定されたベクトルをx軸に沿って(``gmx gangle``で参照として使用可能):

    [0, 0, 0] plus [1, 0, 0]
    
  • 以下の例は、さまざまな位置タイプの違いを説明しています。この選択では、3つの原子C[123]のいずれかの「x < 2」という条件を満たす残基の各位置に位置が選択されます。位置は、3つの原子のCOM(質心)として計算されます。これは、「res_com of」とだけ記述した場合のデフォルト動作です。

    part_res_com of name C1 C2 C3 and x < 2
    

    この選択は同じ動作ですが、位置は全体のリジン残基のCOM位置として計算されます。

    whole_res_com of name C1 C2 C3 and x < 2
    

    最後に、この選択は同じ残基を選択しますが、位置は「x < 2」の基準に一致する正確な原子のみのCOM(中心質量)として計算されます。

    dyn_res_com of name C1 C2 C3 and x < 2
    
  • of キーワードがない場合、デフォルトの動作は上記とは異なりますが、それ以外のルールは同じです:

    name C1 C2 C3 and res_com x < 2
    

    のように動作し、「whole_res_com」が指定されているかのように動作し、COMが「x < 2」を満たす3つの残基を選択します。

    name C1 C2 C3 and part_res_com x < 2
    

    代わりに、C[123]原子から計算されたCOMに基づいて残基を選択します。