言語の選択

考える女性研究者

「プログラミングを勉強しようと思うんだけど、どの言語から始めればいいの?」

「プログラミング言語はいろいろあるみたいだけど、どれを知っておけばいいの?」

これからプログラミングを始めようと思う人たちは、こんな疑問を持っている人も多いと思います。

実際僕もいろいろな言語を勉強しましたが、製薬会社の仕事で生かせた言語と、仕事には必要なかった言語がありました。

そんな経験の中で、製薬業界の仕事で必要な言語が分かってきました。

この記事では、製薬企業研究者や薬学部生が知っておくべきプログラミング言語、および関連するデータベース言語マークアップ言語について解説します。

この記事を読めば、これから具体的に何を勉強すべきかが明確になり、効率的に勉強を進めることができるようになりますよ。

ゆきやゆきや

一言にプログラミング言語って言ってもいっぱいあるので、仕事で必要なのはどれかを知って勉強を始めることが大切です。

製薬会社でプログラミングを使う目的

どの言語を勉強するかを考える前に、まずはどんな仕事でプログラミングを使うのか、整理しておきましょう。

ここがきっちり理解できていないと、必要ないことまで勉強することになってしまうからです。

また、一言に製薬業界といっても、人によって仕事内容は変わってくるので、自分の今の仕事、もしくは今後やりたいと思っている仕事に当てはめたら何が必要か、という視点で読んでもらえたらと思います。

業務効率化

まずプログラミングで実現できることとして、これは製薬業界に限らずどんな仕事にも当てはまることですが、今まで手作業でやっていたことを自動化することによる業務効率アップです。

実際僕も、エクセル(Microsoft Excel)と目視確認ベースで行なっていたデータ解析をプログラミングを使うことで自動化し、業務時間を90%削減することに成功しました。

これによって、他の仕事に割ける時間が増えたことはもちろんですが、同僚からはとても感謝され、「プログラミングを勉強して本当に良かった」と感じました。

こうしたプログラミングによる自動化は、業務の属人化を防止することにもつながるので、誰かが急に会社を休んだり、休職、あるいは退職したりということが起こったとしても、スムーズに業務の引き継ぎができるようになるというメリットもあります。

最近は、働き方の多様化ということがよく言われたりしますが、そんな中において仕事の属人化が防げるというのは、会社側からしてもとても喜ばれることです。

なので、これから下に書く機械学習はちょっとハードルが高い・・・という人は、まずは今取り組んでいる仕事の自動化に挑戦してもらえればと思います。

機械学習(人工知能を使った創薬研究)

最近よく「AI創薬」という言葉を聞くようになりましたが、このAI創薬の基盤技術になっているのが機械学習です。

そして、この機械学習も、主にプログラミングの技術を使って進めていくことになります。

プログラミングを使わなくても、機械学習はできないことはないんですが、圧倒的に効率が悪くなりますし、プログラミングを使わない手はないと思います。

また、一言に機械学習といっても、データの収集、データの前処理、予測モデルの最適化、未知データの予測などいくつかのステップがあります。

それぞれのステップにおいて、いろいろなプログラミング技術が関わってくるので、それぞれしっかり理解しておく必要があります。

例えば、データ収集の段階では、社内のデータベースに保存されている情報を取り出すことがあります。

この時には、データベースを操作するためのデータベース言語の知識が必要です。

また、データの前処理でいうと、表形式のデータを処理する技術が必要です。

なので、表形式のデータ処理が適したプログラミング言語を覚える必要があります。

さらに、予測モデルの構築や、未知データの予測のステップでは、機械学習の理論に基づく計算が必要になります。

ここでは、機械学習向きのプログラミング言語を覚える必要があるわけです。

このように、機械学習では、いろいろなプログラミング技術を使うことになります。

製薬会社研究者や薬学部生が習得すべき言語

Python

まず1番最初に覚えたいプログラミング言語として、Python(パイソン)があります。

Pythonは上で書いた、表形式のデータ処理が簡単にできるだけでなく、機械学習のデータ収集や機械学習の計算そのものも、スムーズに行えるようになっています。

ここで「スムーズに行える」と書いたのは、「ライブラリ」というものがPython用に用意されているということです。

「ライブラリ」というのは、よく使う関数などをスクリプトとして書いてひとまとめにしたもので、僕たちはこのライブラリを呼び出すだけで、計算や処理を簡単に実行することができます。

エクセルで「=SUM()」と入力すると、わざわざ「+」の記号を打ち込まなくてもたし算ができるのと似たような感じですね。

「SUM」と入力するとたし算をするというのがエクセル内部で定義されているわけです。

以上のように、あらゆる処理を一つのプログラミング言語でできてしまうということで、製薬会社の仕事にぴったりのプログラミング言語と言えます。

Pythonについて、もっと詳しく知りたい人は、以下の記事を読んでみてください。

プログラミング言語Pythonとは?AIや機械学習に使える?

R

上で書いたPythonと一緒に覚えておいたほうが良いプログラミング言語として、R(アール)があります。

Rは文法や構文がPythonとよく似た言語ではありますが、統計解析に強い言語になります。

また、データ解析手法を論文などで公開する時に、スクリプトを公開することが多いんですが、Rのスクリプトを公開している文献も多いので、そうした解析手法を社内に導入しようと思うとR言語の知識が必須になります。

Pythonは最近の文献ではちょくちょく見ますが、3年以上前の文献だと、Rスクリプトが公開されていることが多いので、こうした情報を活用するという意味ではRの知識が不可欠というわけです。

Rについてもっと詳しく知りたい人は、以下の記事を読んでみてください。

プログラミング言語Rとは?統計分析に強い?

SQL

SQLは、データベースを操作するための言語になります。

データを保存しているデータベースから特定の条件を満たすデータのみを取り出したり、新たにデータを登録したりという時にSQLが使われます。

そして、SQLは「プログラミング言語」ではなく、「データベース言語」になります。

Pythonのスクリプトの中にSQL文を書き込んで、Pythonを動かす中でSQLを使ってデータベースの操作をするという使い方になります。

もう少し具体的に言うと、Pythonスクリプトの中で、機械学習に使うデータをデータベースから抽出するSQL文を実行して、取り出してきたデータを用いてPythonの機械学習のライブラリで予測モデルを作成する、といった使い方をします。

最近はAI創薬のために社内データを一括管理するデータベースを作っているところも多いので、SQLを身につけることでこうしたデータベース関連の仕事もこなせるようになります。

SQLについてもっと詳しく知りたい人は、以下の記事を読んでみてください。

SQLとは?データベースと関係ある?

HTML

HTMLはウェブページの骨組みを作る言語になります。

そして、どんな種類の骨組みを配置するかを指定する方法として「タグ」というものがあります。

<div>とか<p>といった、カッコで囲まれた文字を見たことがある人もいるかもしれません。

これがHTMLのタグです。

カッコで囲まれた文字によって、タイトルを示すものだったり、リンク付きの文字を示すものだったり、いろいろあります。

さらに、同じ種類のタグを区別するためにclass属性id属性といったものを指定することもできます。

こうした属性をどういう時に使うかというと、下で書くCSSで、どのHTMLに対してスタイルを指定するかを選択するときに使います。

HTMLについて、もっと詳しく知りたい人は、以下の記事を読んでみてください。

HTMLとは?製薬会社の仕事でどう使う?

CSS

CSSはHTMLで作った骨格に飾りをつけていくための言語になります。

文字の色を変えたり、図形を好きな色で塗りつぶしたり、文字を中央揃えにしたり、図形の位置を指定したり、いろいろな装飾ができます。

上で書いたHTMLの特定のタグ、もしくは特定のclass属性やid属性が指定されたタグに対して、どんな装飾をするか指定することができます。

HTMLもCSSも、「プログラミング言語」ではなく、「マークアップ言語」と呼ばれるものになります。

ここで、なぜHTMLとCSSが製薬会社の仕事で必要になるのか、ということですが、これは機械学習用のデータ収集で外部で公開されているウェブページの情報を取り出すことがあるためです。

このようにウェブページから情報をダウンロードする操作のことを「スクレイピング」と呼びます。

スクレイピングをするときに、ウェブページの全部の情報を取り出すのではなく、特定の条件を満たすものだけを取り出すことが多いです。

特定の条件というのは、例えば、<p>タグがついている文字情報のみをダウンロードする、とか特定のclass属性が指定されている情報のみをダウンロードするとか、そういった感じです。

見ているウェブページの中で、自分の仕事に必要な情報はどれで、それはどういうタグや属性で指定されているかを見る力がスクレイピングをやる上では必要なので、HTMLやCSSの知識が必要になるというわけです。

CSSについてもっと詳しく知りたい人は、以下の記事を読んでみてください。

CSSとは?製薬会社の仕事でどう使う?

XML

XMLは、HTMLとよく似たマークアップ言語の一つです。

HTMLと同じように、文字列をタグで囲むことによって、ウェブページにおける文字列の役割を定義することができます。

HTMLと違うところとしては、タグの種類を自由に設定できるところですね。

XMLでデータが格納されているデータベースもあるので、このようなデータベースを対象にスクレイピングを行うときには、XMLのソースコードを見て、自分が欲しい情報がどこにあるかを読み取れる必要があるわけです。

XMLについて詳しく知りたい人は、以下の記事を読んでみてください。

XMLとは?製薬会社の仕事でどう使う?

まとめ

以上で紹介したプログラミング言語さえ身につければ、製薬会社で仕事をして幾分には充分といえます。

もう1度おさらいしてみましょう。

  • Python:データ解析の自動化、機械学習など幅広い仕事で使うことができる言語です。
  • R:Pythonと補完的に覚えておくと良い言語です。
  • SQL:データベースの操作をするための言語です。PythonやRのスクリプトの中にSQL文を組み込んで使います。
  • HTML:機械学習に使うデータを集めるスクレイピングで使います。タグの種類や属性の指定方法について知っておけば十分です。
  • CSS:HTMLのスタイルを指定するのに使います。HTMLの指定方法さえ知っていれば充分です。
  • XML:HTMLとよく似たタグを使うマークアップ言語です。ウェブページによってはXML形式のデータが公開されていることがあるので、ソースコードを読めるようにしておくと良いです。

「結構いろいろな言語を覚えないといけないんだな・・・」と思う人もいると思いますが、それぞれ似通っている言語もあるので、覚えるのはそれほど大変ではありません。

例えばPythonとRはよく似たプログラミング言語ですし、HTMLとCSSは互いに強く関わっているマークアップ言語で、XMLもHTMLによく似たマークアップ言語です。

そういう意味では、実質的に3種類ぐらいの言語を知っていれば十分というわけです。

上で書いた言語をどれも勉強したことがないという人は、とりあえずは、Pythonの勉強から始めれば良いと思います。

Pythonを知っているだけで、製薬会社でプログラミングを使う仕事の大部分はできてしまうからです。

他のデータベース言語やマークアップ言語は、Pythonで仕事をする中で覚えるというのでも全く問題ありませんし、むしろそれが一番理想的です。

Pythonの勉強を始めるときは、以下の記事を読んでみてください。

意外と少ない!?製薬会社でのプログラミングに必要な「最低限」の知識