2017-03-02 4 views
1

私は遺伝子データを扱います。私は遺伝子解析に役立つスーパーコンピューターを見つけましたが、スーパーコンピューターが望むフォーマット、つまり2つの列、つまり染色体情報とp値を持つデータに変換する必要があります。 p値の列には任意の文字を持っていなければなりませんが、私が持っているデータの一部はそうのように、科学的表記法である。その中に文字を持っていなければならないの列に複数のE年代を置くplink/Unixを使用して、科学記法のデータを10進数に変換するにはどうすればよいですか?

rs191895619 1.052e-05 
rs140779862 0.4406 
rs11127542 0.9771 
rs112183333 0.02569 
rs191067167 0.427 
rs111321342 1.042e-05 

、私はgrep "*e*" filename.txt > outputfilename.txtと同様にgrep "*e-05" filename.txt > outputfilename.txtを使用して、独自のファイルにそれらを移動するためにgrepを使用しようとしましたが、それは私の両方の時間を空白の出力ファイルを与え、科学的表記のすべてのデータ5000本のラインが自分のファイルに移動した場合でも、私は、各行を個別に編集することを除いて、データを10進表記に変更する方法を知らない。各ファイルは数日かかるだろう。

私に与えることができるデータがplinkに与えることができるので、最初に科学的な表記法になっていないのですか?または、私が10進表記にした科学記法をplinkまたはUnixで使用するコマンドを使用できますか?

答えて

0

あなたは10進数、科学的に変換するためにawkを使用することができます。

awk '{printf "%s %f\n", $1, $2}' file 

出力:

rs191895619 0.000011 
rs140779862 0.440600 
rs11127542 0.977100 
rs112183333 0.025690 
rs191067167 0.427000 
rs111321342 0.000010 

あなたはprintf%f一部を変更することにより、精度を調整することができます。


も参照してください:

関連する問題