【シェルスクリプト】臨床研究に必要なデータ収集を自動化するスキル

この記事をシェアする

 

はじめに

以前に「臨床研究」についての記事を書きました。

www.medicalmed.press

 

「論文を書く経験がしたい!」と思ったら、まず先行研究がどうなっているかデータを集め比較吟味する必要があります。

いきなり新しいアイディアが浮かぶ人は稀だと思います。

  1. 先行研究では何について調べているのか
  2. 先行研究で分かっていることは何か
  3. 先行研究で分かっていないことは何か
  4. 自分の所属している医療施設でもできる類似した研究テーマはどれか

これらを事前に調べることで、臨床研究の論文作成に着手できると思っています。

データを毎回収集して、比較できるフォーマットに毎回落とし込んでいたらかなり面倒くさいですよね。

最速最短でデータ収集を行うには、やっぱり自動化できる部分を自動化することだと思います。

データ収集から取得まで自動化したいと思ったら「プログラミングスキル」が必要になってきます。

 

 「新しいLinux」の教科書を読み終えました。

かなり勉強になったのでオススメです。

新しいLinuxの教科書

新しいLinuxの教科書

 

 

シェルスクリプトとは何か?

シェルのコマンドラインをあらかじめ記述しておくファイルのことを指し、条件分岐や繰り返しを利用した複雑な制御構造も記述できることから、一種のプログラミング言語みたいなものです。

シェルスクリプトを書いておくと、定期実行などができ作業の自動化を行えます。

 

【スポンサーリンク】
 

シェルスクリプトを書いてみよう!

今回使用するのは前回記事にしたUMINからデータを抜き取ってくるプログラムです。

www.medicalmed.press

UMINの臨床試験登録情報から「接続皮下糖濃度測定器リブレプロの腹部装着に関する安全性の検討」についてのデータを抜き取ってくるものです。

f:id:Medicmed:20180430234726p:plain

 

 ターミナルを起動!

f:id:Medicmed:20180522074127p:plain

 前回の記事で作成した"clinical.py"というプログラムの出力結果を"umin.txt"にリダイレクトするというシェルスクリプトです。

最初に記述されている

#! /bin/bash

shebang行と言うもので、初学者向けのプログラミング授業では「おまじない」と称されることが多い気がする。

シェバン行についてですが、シェルから実行命令を受けたLinuxカーネルは対象ファイルの先頭を確認します。そして"#!"を見つけたら、その後ろに書かれたコマンドを実行するという意味です。

今回作成した"sample.sh"についてですが、

"./sample.sh" = "/bin/bash ./sample.sh"

となり、つまり「このシェルスクリプトは/bin/bashで行うよ」という意味になります。

 

作成したシェルスクリプトに実行権限を付与しよう!

作成した"sample.sh"には実行権限がありません。

lsコマンドで確認したいと思います。

f:id:Medicmed:20180522075507p:plain

Linuxでは1つ1つのファイルに「誰に、どのような操作を許可するか」という情報がありこれを「パーミッション」と呼びます。

見方ですが

-rw-rw-r-- = ファイルタイプ+ファイルモード

を示していいます。

  1. rは読み取り(read)
  2. wは書き込み(write)
  3. xは実行(execute)

の意味です。

実行権限を付与する=ファイルモードを変更するということなので、"chmod"コマンドを使用していきます。

"chmod"は”change mode"の略です。

f:id:Medicmed:20180522080124p:plain

"+x"とすると"sample.sh"に実行権限を付加することができます。

lsコマンドでもう一度確認してみると、ちゃんと"x"が新しく追加され実行権限が付与されたことが分かりますね。

【スポンサーリンク】
 

シェルスクリプトを実行してみよう!

f:id:Medicmed:20180522080342p:plain

"./sample.sh"と打ち込んで作成したシェルスクリプトを実行します。

無事プロンプトが返ってきているので、実行結果を確認してみます。

"umin.txt"ファイルがちゃんと作成されているかどうかの確認では、findコマンドを使用して調べていきます。

"find . -name umin.txt"と打ち込むとちゃんと、"./umin.txt"とカレントディレクトリ下に作成されていることが確認できました。

次に、作成された"umin.txt"ファイルの中身をcatコマンドを用いて出力してみます。

f:id:Medicmed:20180522080558p:plain

ちゃんとUMIN臨床試験登録サイトから必要なデータだけを取得できました。

あとはこれを応用させてUMIN臨床試験登録サイトのすべてのデータ取得を定期的に行ったりすることも可能です。

 

ぜひ参考にしてみてください。

終わり。