3

生化学者/バイオインフォマティクスが使用するこのウェブサイト(http://dgpred.cbr.su.se/index.php?p=TMpred)があります。タンパク質配列を入力すると、次のようになります。

http://dgpred.cbr.su.se/analyze.php?with_length=on&seq=RGFTPLQWECVMASDFGHH

上部と下部、および中央のいくつかのデータは4列で、4番目は必要なデータです。これらの数値を4列目(多くのタンパク質配列用)から取得してExcelに入れたいと思います。

私の現在のワークフロー(Mac OS X)は、すべてをリッチテキストドキュメントのテキストエディットにコピーし、Altキーを押しながら数字をドラッグして(4列目の数字のみが選択されるように)、AppleScriptを実行します。

do shell script "pbpaste | sed 's/[^0-9.-]//g' | pbcopy"
do shell script "pbpaste | sed '/^$/d' | pbcopy"

私は正規表現の初心者ですが、これにより、改行で区切られた数字のリストが表示され、Excelに貼り付ける準備が整います。

本当に素晴らしいのは、TextEditステップを捨てて、正規表現にWebサイトから直接番号を取得させることです。しかし、これは私のレベルを超えています。誰かがこれで私を助けることができますか?つまり、4列目から数字のみを選択します

4

2 に答える 2

0

このデータをコピーすると、次の結果が得られます。

R   1   -9.00           
       +0.03
G   2   -8.00           
       +0.36
F   3   -7.00       
-0.26  

奇数行ごとに3列、。で始まり[A-Z]、次の行に必要なデータ。

必要な数値には2つの形式があります。

^\t {3}([-+][0-9]+\.[0-9]{2})$  //for the red numbers

と:

^([-+][0-9]+\.[0-9]{2}) {3}\t$   //the green numbers

次のように両方のタイプを抽出できます。

^(\t {3})?([-+][0-9]+\.[0-9]{2})( {3}\t)?$

2番目のキャプチャグループ([-+][0-9]+.[0-9]{2})は、あなたが求めているコンテンツです。

s/^(\t {3})?([-+][0-9]+\.[0-9]{2})( {3}\t)?$/$2/g

Applescriptの代わりに、BBEditまたはTextwranglerを検討してください。これらは使いやすいと思われるかもしれません。

これを検索フィールドに入力します。

\r[A-Z].*\r(\t {3})?([-+][0-9]+.[0-9]{2})( {3}\t)?$

そしてこれを置き換えます:

\ r \ 2

「すべて置換」を選択します


使い方

 \r        //  carriage return
 [A-Z]     //  any character from A to Z (the lines you DON't want all start with a letter)
 .         // any character
 *         // any number of times
 \r        // carriage return   
           // that deals with the lines you DON't want to keep
 (         // grouping
 \t        // tab character
  {3}      // space character repeated 3 times
 )         // close grouping
 ?         // zero or one occurences of the previous grouping
 (         // grouping (this is the bit you are after)
 [+-]      // character class - one of any of the [enclosed characters]
 [0-9]     // one of any of 0-9
 +         // repeated one or  more times
 \.        // full stop (escaped as it has special meaning in regext)
 [0-9]{2}  // exactly two occurences of any of 0-9
 )         // close capture parens (end of the group you are after)
 ( {3}\t)? // 3 spaces followed by a tab, occurring 0 or 1 time.
 $         // end of line  (in BBEdit/textwrangler you often use \r)

BBE / TWの重要な詳細として、キャプチャされたグループは\ 1、\ 2、\ 3と呼ばれ、$ 1、$ 2、$3ではありません…</p>

于 2013-01-12T21:43:23.083 に答える
0

ブラウザがテーブルを異なる方法でコピーすることに気づきました。Webページからテーブルデータをコピーする場合、IE / Chrome / Operaブラウザーを試す傾向があります。これは、少なくともWindowsでは、コピーしたテーブルをすべての列を保持したままExcelに直接貼り付けることができるためです。一方、Firefoxはテーブルを台無しにする傾向があります。

Operaを使用して問題のテーブルをコピーし、セルA1からExcelに貼り付けると、列Fにすべての緑色の数字、列Hに赤色の数字が表示されます。次に、行1の右側の列に次の数式を入力し、セルのをドラッグします。コーナーダウンして、後続の行に複製します。

=IF(AND(ISBLANK(F1), ISBLANK(H1)), "", IF(ISBLANK(F1), H1, F1))

この新しい列にデータが表示されます。元のデータの上に新しいテーブルを貼り付けると、右側の数式が再計算されます。(実際の列は他のブラウザでは異なる場合があります)。

完全に自動化されたソリューションではないことは認めますが、この方法は非常に多くの状況で高速で便利であるため、共有する価値があると思いました。そしてモットー:最初に選択したブラウザが正しく機能しない場合は、別のブラウザを試してください。

于 2013-01-12T23:22:01.727 に答える