あいまいまいんの生物学

あいまいまいんの生物学

生物学が好き。勉強したり遊んだり。

日頃感じたこと思ったこと、出来事など

勉強して面白かった話

授業で使えそうな生物学の知識・雑談・小ネタ

などなどを紹介していきたいと思います

コメント大歓迎!気軽にコメントして下さい

ゲームサイトはこちら

M5StackでMAX30100使って心拍を画面上に表示する

きっかけについて

はい
久しぶりのプログラミング系記事です!

ずーっと前にM5Stack買ったんですけど
i-my-mine.hatenablog.com

全然使えてなかったっていう…ハイ

そもそもM5Stack動かす時にはArduinoを使わなければいけないんですけど
Arduinoの記法がイマイチよくわかってないし
そもそもくっつけるものごとに記法があるんですけど
それを逐一調べるのも面倒だし

ということで
やりたいな~やりたいな~と思いながらちょっと触ってみても
ちょっと検索して心折れて「これは無理やで…」ってなって終わる
そんな日々を繰り返して半年近く放置してしまっていました。反省。

でもさすがと寝かしすぎたのでね?
熟成しちゃうからね?
そろそろ使いたいなと。

そんな時にRingFitAdventureを買ったんですけど
そしたらその心拍測定装置がどうも旦那さんにフィットしなくてうまく測れない。
「まいんさんが持ってたM5Stackで確か測れるようにできるよね?心不全とか怖いから測れるようにしてよ」と言われ
Oh... と思いながらもちょっと取り組んでみました。

ちなみにこの記事は発展途上であって完成品の話ではないので気をつけて欲しい。

目標:
MAX30100でとったデータを元にM5Stack画面上に心電図のような心拍推移グラフとBPMを表示させること

MAX30100は心拍を取得するためのセンサユニットですが、
これにはBPMを自動で計算するor取得するという機能がありません(他のタイプだとコードで一言かけばあっという間にとれるっぽい)。
ので、安価でいいじゃんってポチッたけど困る元になりました。BPMくらい計算してくれまじで。
更に心拍についても、サンプルコード(以下でリンクあり)使えばシリアルプロッタでパソコン画面上なら見れるようにはなるんですが、
このコードのままだとM5Stackの画面はまったくもって無意味です。ただの中継メカです。
かといってじゃあM5Stack画面上に出力しようというコードも公開されていないんだな。なんでだよ…
てなわけでここらへんで悪戦苦闘してます。

使用機材およびリファレンス

ではまず使ったものとか参考にしたページとか貼っときます。

使ったもの

M5Stackはこのタイプ
M5Stack Gray(9軸IMU搭載) - スイッチサイエンス
心拍取得はMAX30100
M5Stack用心拍センサユニット - スイッチサイエンス


Rawデータをとるサンプルコード
M5-ProductExampleCodes/MAX30100_RawData.ino at master · m5stack/M5-ProductExampleCodes · GitHub
商品ページのドキュメントのところに載っています。
先にも述べましたが、これを使うとシリアルプロッタでパソコン画面上で心拍の様子が見れるようにはなります。
あとはRawデータはとれるのでこれを元に画面に出そうとかBPM計算しようみたいなノリになるので大事。

参考にしたやつ

ambidata.io
違う心拍センサを用いて私が欲しい感じのやつを開発した人のブログ。めちゃ助かりました、ありがとうございました…
ただ心拍センサが違うので実装は地味に変えなければいけなかったけれど、ほとんど画面に表示するベースはここから移植している。
GPSのところは使ってないです。
ブログ内に以下のgithubに飛べるリンクがある↓
M5Stack_PulseSensor/M5Stack_PulseSensor.ino at master · AmbientDataInc/M5Stack_PulseSensor · GitHub


Arduino APIはここ
M5Stack - A series of modular stackable development devices

心拍センサーの記法はこれを見た
Arduino-MAX30100/MAX30100.h at master · oxullo/Arduino-MAX30100 · GitHub

実装していくぞ

取り敢えずRawデータとる

まずは単純に心拍センサユニットをM5Stackにつけ、上で紹介したMAX30100の商品ページにあるサンプルコード(Rawデータ取得用)を考え無で実装してみる。
すると普通にシリアルプロッタで線が出てくる。
第一段階はクリア?(何をしたんだ感)

M5Stack画面上にシリアルプロッタに出てくるやつみたいなのを描画する

ここからだぜ…
それをやるためにまず、なんにも手がでなかったので同じようなことしてる人いないの?って調べてみた。
そしたら上のリファレンスで紹介した人のブログが出てきたので、眺めながら必要そうなものだけ移植。
ありがたいことにほとんどセンサ特異的な書き方ではなかったので、Rawデータどりのサンプルコードと組み合わせるだけでそこそこの土台ができた。

ちなみに今回の描画実装のイメージとしては
・まずM5Stackの画面は縦240横320で左上が(0,0)
・maxSとminSは画面の上と下を指していて、横幅いっぱいにグラフ描画が終わったらその回の縦軸MAXと横軸MAXを参考に縦の幅が修正されるようになっている(綺麗に心拍の上下が見えるようになるように)
・心拍描画は前回の値との差でプロットされていく
こんな感じか?(どこまで書いておくべきかわかんない…)


一回ほとんど値いじらないまま実装したら死人になった。
f:id:I_my_mine:20191215165658j:plain
面白すぎ。


値いじくり倒して取り敢えず一回実装したのが下の感じ。
ただしこの段階ではBPMはずっと1になるようにしてある。
あとめっちゃ旦那さん頼ってる。ほぼ旦那さんの功績では?(私はリファレンス引っ張ってくっつけただけ感ある)

/*
    Install MAX30100lib Library first.

    MAX30100_RawData.ino
*/
  
#include <M5Stack.h>
#include <Wire.h>
#include "MAX30100.h"

#define SAMPLING_RATE   MAX30100_SAMPRATE_100HZ
#define IR_LED_CURRENT  MAX30100_LED_CURR_50MA
#define RED_LED_CURRENT MAX30100_LED_CURR_27_1MA
// set HIGHRES_MODE to true only
// when setting PULSE_WIDTH to MAX30100_SPC_PW_1600US_16BITS
#define PULSE_WIDTH MAX30100_SPC_PW_1600US_16BITS
#define HIGHRES_MODE    true

// new a object
MAX30100 sensor;

void setup() {
    M5.begin();
    Serial.begin(115200);
    Serial.print("Initializing MAX30100..");
    if (!sensor.begin()) {
        Serial.println("FAILED");
        for(;;);
    } else {
        Serial.println("SUCCESS");
    }
    sensor.setMode(MAX30100_MODE_SPO2_HR);
    sensor.setLedsCurrent(IR_LED_CURRENT, RED_LED_CURRENT);
    sensor.setLedsPulseWidth(PULSE_WIDTH);
    sensor.setSamplingRate(SAMPLING_RATE);
    sensor.setHighresModeEnabled(HIGHRES_MODE);
}


const int LCD_WIDTH = 320;
const int LCD_HEIGHT = 240;
const int DOTS_DIV = 30;
#define GREY 0x7BEF

void DrawGrid() {
    for (int x = 0; x <= LCD_WIDTH; x += 2) { // Horizontal Line
        for (int y = 0; y <= LCD_HEIGHT; y += DOTS_DIV) {
            M5.Lcd.drawPixel(x, y, GREY);
        }
        if (LCD_HEIGHT == 240) {
            M5.Lcd.drawPixel(x, LCD_HEIGHT - 1, GREY);
        }
    }
    for (int x = 0; x <= LCD_WIDTH; x += DOTS_DIV) { // Vertical Line
        for (int y = 0; y <= LCD_HEIGHT; y += 2) {
            M5.Lcd.drawPixel(x, y, GREY);
        }
    }
}

#define REDRAW 20 // msec

int lastMin = 65000, lastMax = 50000;
int minS= 65000, maxS = 50000;
int lastY = 65000;
int x = 0;




void loop()
{
    M5.update();
    delay(REDRAW);
    uint16_t ir, red;
    sensor.update();
    while(sensor.getRawValues(&ir, &red)){
      //Serial.println(ir);
      //Serial.print('\t');
      //Serial.println(red);
    };
    uint16_t y = red;
    if (y < minS) minS = y;
    if (maxS < y) maxS = y;
    if (x > 0) {
        y = (int)(LCD_HEIGHT - (float)(y - lastMin) / (lastMax - lastMin) * LCD_HEIGHT);
        M5.Lcd.drawLine(x - 1, lastY, x, y, WHITE);
        lastY = y;
    }
    Serial.print("minS: ");
    Serial.print(minS);
    Serial.print(" maxS: ");
    Serial.print(maxS);
    Serial.print(" y: ");
    Serial.println(y);
    if (++x > LCD_WIDTH) {
        x = 0;
        M5.Lcd.fillScreen(BLACK);
        DrawGrid();
        lastMin = minS - 20;
        lastMax = maxS + 20;
        minS = 65000;
        maxS = 50000;
        M5.Lcd.setCursor(0, 0);
        M5.Lcd.setTextSize(4);
        M5.Lcd.printf("BPM: %d", 1);
    }
}

www.youtube.com

これ、maxSとminSがうまくいくようになるまで2周期くらい待たないといけない。それまで心拍がなんかヤバいことになる。
でも取り敢えずたたき台はできたでしょといって一応満足する…。

BPMをとっていく

一番困ったのがBPMをとるアルゴリズムだった。
本当は移動平均とかとってスムーズにして、傾きや差を判定して「心拍の下がった瞬間」数をカウントしていくのがベストかなと個人的には思うのだけれど、さすがとちょっと気力がなかったので
一番アホみたいなアルゴリズムで「15回分のyの値を蓄積(p)して直前の15回分y総和(lastp)よりも低くなってたらカウントしていく」みたいななんともいえないやつで作ってみた。
でもこれだとなんかうまくでなかったのでよりちゃんと差があるときだけひっかかるようにpとlastpの差が3マス分になったときに変更してみた。
BPMは画面更新と同時に前回の画面のBPMが表示されるように、
「前回の画面中のpがlastpを下回った回数/6.5×60」にした。
ちなみに6.5というのは、データ取得が20msecごとで横幅320であることから、画面いっぱいにデータが集まるときに320*20/1000 = 6.5sec分のデータになるというところから出した値。

以下がコード。

/*
    Install MAX30100lib Library first.

    MAX30100_RawData.ino
*/
  
#include <M5Stack.h>
#include <Wire.h>
#include "MAX30100.h"

#define SAMPLING_RATE   MAX30100_SAMPRATE_100HZ
#define IR_LED_CURRENT  MAX30100_LED_CURR_50MA
#define RED_LED_CURRENT MAX30100_LED_CURR_27_1MA
// set HIGHRES_MODE to true only
// when setting PULSE_WIDTH to MAX30100_SPC_PW_1600US_16BITS
#define PULSE_WIDTH MAX30100_SPC_PW_1600US_16BITS
#define HIGHRES_MODE    true

// new a object
MAX30100 sensor;

void setup() {
    M5.begin();
    Serial.begin(115200);
    Serial.print("Initializing MAX30100..");
    if (!sensor.begin()) {
        Serial.println("FAILED");
        for(;;);
    } else {
        Serial.println("SUCCESS");
    }
    sensor.setMode(MAX30100_MODE_SPO2_HR);
    sensor.setLedsCurrent(IR_LED_CURRENT, RED_LED_CURRENT);
    sensor.setLedsPulseWidth(PULSE_WIDTH);
    sensor.setSamplingRate(SAMPLING_RATE);
    sensor.setHighresModeEnabled(HIGHRES_MODE);
}


const int LCD_WIDTH = 320;
const int LCD_HEIGHT = 240;
const int DOTS_DIV = 30;
#define GREY 0x7BEF

void DrawGrid() {
    for (int x = 0; x <= LCD_WIDTH; x += 2) { // Horizontal Line
        for (int y = 0; y <= LCD_HEIGHT; y += DOTS_DIV) {
            M5.Lcd.drawPixel(x, y, GREY);
        }
        if (LCD_HEIGHT == 240) {
            M5.Lcd.drawPixel(x, LCD_HEIGHT - 1, GREY);
        }
    }
    for (int x = 0; x <= LCD_WIDTH; x += DOTS_DIV) { // Vertical Line
        for (int y = 0; y <= LCD_HEIGHT; y += 2) {
            M5.Lcd.drawPixel(x, y, GREY);
        }
    }
}

#define REDRAW 20 // msec

int lastMin = 65000, lastMax = 50000;
int minS= 65000, maxS = 50000;
int lastY = 65000;
int x = 0;
int count1 = 0;
int count2 = 0;
int p = 0;
int lastp = 0;
int bpm;



void loop()
{
    M5.update();
    delay(REDRAW);
    uint16_t ir, red;
    sensor.update();
    while(sensor.getRawValues(&ir, &red)){
      //Serial.println(ir);
      //Serial.print('\t');
      //Serial.println(red);
    };
    uint16_t y = red;
    if (y < minS) minS = y;
    if (maxS < y) maxS = y;
    if (x > 0) {
        y = (int)(LCD_HEIGHT - (float)(y - lastMin) / (lastMax - lastMin) * LCD_HEIGHT);
        M5.Lcd.drawLine(x - 1, lastY, x, y, WHITE);
        lastY = y;
        p += y;
        count2++;
        if(count2 == 15){
          p/=15;
          if(lastp > p+(LCD_HEIGHT/8)) ++count1;
          lastp = p;
          p = 0;
          count2 = 0;  
        }
    }
    Serial.print("minS: ");
    Serial.print(minS);
    Serial.print(" maxS: ");
    Serial.print(maxS);
    Serial.print(" y: ");
    Serial.println(y);
    if (++x > LCD_WIDTH) {
        x = 0;
        M5.Lcd.fillScreen(BLACK);
        DrawGrid();
        lastMin = minS - 20;
        lastMax = maxS + 20;
        minS = 65000;
        maxS = 50000;
        bpm = (float)count1/6.5 * 60;
        M5.Lcd.setCursor(0, 0);
        M5.Lcd.setTextSize(4);
        M5.Lcd.printf("BPM: %d", bpm);
        count1 = 0;
    }
}

もはやごりごり系の実装になってしまっているが知らない。
で、実際やってみる。
www.youtube.com


うーん、良いときとヤバい時があるね。
安定しないね…

今後の展望

・まず心拍プロットの方法を改善する(すぐ安定して~~~~~たのむ~~~~~~~)
初期値とかminSとmaxS更新規則とかをいじればいい気がする。
またはいっそ値を縦軸に入り切るように圧縮するとか。
シリアルモニタで値を追いながらここは調整かな…
BPM取得方法を考え直す
移動平均実装するのいやや~やれば一瞬なんだろうけど…
上でも言ったけど15×20msec = 300msecごと平均とって比べていくのだと心拍数に絶対上限あるし取りこぼすんだよね。ピークの場所ずれたら終わるし。
そもそも心拍一回分を何から判別するかも考えなおした方がいいかもしれない。
どのみち今のBPM計算、心拍クソ早い時に絶対機能しないからね?これが問題だと個人的には思っている。

色んな人に協力してもらって挙動を確認して改善していくしか…という感じだ。
うまくいけば授業でも使えるんじゃん?と目論んだりしているんだけど…


余談

あともう一個開発したいのが一問一答アプリで、日本語が出てくる→英語に直す系のやつを作りたい。
生物専門用語だけの。
自分が英語で生物説明しようとすると出てこないから…
論文読んでると英語→日本語変換はできるようになるんだけど逆が全然身に着かなくてだめ。
これもやっていくぞ…

まいばいお20 アサガオの話

植物系の話が少ないことを反省したので、今日はアサガオの話をします。

専門でもないのであんまり細かい話ができないけれど…

 

 

✿違う植物に見えるけど…

取り敢えずまずは下リンク先の花の画像を見てください。

変化朝顔研究会ホームページ_indexページです

 

ここに写っている花は、どれも違う種類に見えますが…

実はこれ、全て「アサガオ」です。

ここに写っているアサガオは、アサガオの中でも「変化朝顔」と呼ばれるものたちです。

 

アサガオは、奈良時代末期にその種が薬として遣唐使により持ち込まれたことで日本にやってきたらしい。

その後、江戸時代にアサガオの栽培ブームが起き、花を愛でられるようになりました。

栽培過程でこれらの変わった形のアサガオが突然変異によって生まれ、大事にされ、今も残っているようです。

 

しかし、実はこれら突然変異によってできた変化朝顔の多くは「不稔」といい、種子を作ることができません。

種子を作ることができないアサガオが、一体どうやって現代まで残ってきたのでしょうか・・・?

 

✿種子のできない変化朝顔を維持する方法

変化朝顔の一種に、おしべやめしべが全て花弁になり花弁の数が増える「八重咲き」というものがあります(先ほどの写真の左下がそれです)。

普通の一重咲きアサガオと、この八重咲きを例にとり、維持の理論を説明したいと思います。

 

生物の形質は遺伝子により決まっています。

一重咲きアサガオを作る遺伝子をA、八重咲きアサガオを作る遺伝子をaで表すとしましょう。

親個体の細胞は、ひとつの形質に対して2つの遺伝子をもち、その組み合わせで形質が決まります。

一重咲きの遺伝子を持っていると、八重咲きの遺伝子の効果を隠してしまうことが分かっていますから、親の形質と持つ遺伝子の組み合わせは以下のようになります。

一重咲き : AA または Aa

八重咲き : aaのみ

 

一重咲きであれば、種子を作ることができます。

種子を作る際、植物は卵細胞(動物でいう卵)と精細胞(動物でいう精子)という細胞を作り、それらを受精させます。

卵細胞と精細胞には、親がもつ遺伝子の半分が入るようになっているので、一重咲きであるAaの親が作るaをもつ卵細胞とaをもつ精細胞が受精すれば、aaの種子・・・つまり八重咲きの種子が得られます。

つまり、一重咲きのアサガオから八重咲きの種子がとれるのです!

 

つまり八重咲きのアサガオを維持したい場合は、八重咲きの遺伝子を持つ一重咲きのアサガオを維持することで実現できるということになります。
言われてみればできるなと思うけど、中々発想しないよ…と個人的には思う。

 

アサガオのつる、つぼみのねじれ、寿命 

他にも面白い話がいくつか。

まず、アサガオの蔓って、どっち向きに巻いているか皆さんご存知ですか?

 

アサガオの蔓は、実は必ず左向きに巻き込むように伸びていきます。

アサガオの茎は支柱に巻き付いていないとき、左回りに首を振り回す「回旋運動」を行い、結果支柱に触れると巻き付いていきます。

巻き付くときは蔓の中でも接触刺激がある側の伸長が抑制され、逆に接触刺激がない側の伸長が促進されるため、結果として巻くような形になります。

この分子的メカニズムはまだ未解明な部分が多く、実は謎深き領域です。

 

ではつぼみはどうでしょう?つぼみもねじれていますよね。

つぼみのねじれは右巻きです。

ねじれているのは、アサガオの花弁の部分が折りたたまれているからです。

アサガオの花には、白く分厚い星形の部分が存在しています。

この部分は「曜」といって、まるで傘の骨のような役割をしています。

曜は開花する時一番に、かつ急激に成長します。

曜の内側の成長速度が外側の成長速度よりも速いため、曜は外側に反り返りながら成長します。

そのとき花弁を構成する細胞には水が入り込み、細胞容積が急激に増加するため花弁が広がることができるようになります。

一説によると、花弁の細胞内ではデンプン粒が急激に分解され糖になり、細胞内の濃度が濃くなる結果水の移動が生じるようです。

閉じる時には逆に細胞から水分が抜けることで、一個一個の細胞が小さくなり萎れます。

 

あと、アサガオの寿命について。

アサガオって一日しか咲かない…って言われて、そうだなぁって思う人どれくらいいるんだろう…

とにかく一日しか咲かないんですよ。

 

でも

 

アサガオの寿命を延ばした実験がある」んです!

これは2014年に発表された研究で、花の寿命を調節する遺伝子EPHEMERAL1の話です。

ephemeralとは英語で「儚い」という意味で、この遺伝子の働きを抑えるとアサガオの寿命は2日間に延びるんです・・・!

 

 

 

私はあんまり生物個体そのものに興味がない(生物の普遍性の方に興味がある気がする)ので、こういう知識は中々持っておらず

知ると驚くことが多くあります。

皆にとっては当たり前なのかもしれませんが…

こういう感じの情報(ゆるめなやつ)も今後は発信していきたいですね~

まいばいお19 ウイルスという物質

自分の生物学の連載「まいばいお」、

ジャンル分けせずに更新していくと何か特定ジャンルのネタを探している人にとっては面倒だよなーと思って、新たにカテゴリーを作ってみたんですよね。

で、過去のやつを振ってみました。

 

やってびっくり。植物のこと全然書いてないんだもの。

遺伝子の話ばっかりじゃん!!!!!!!!!!!!

いやー反省しました。

元々自分が遺伝子と神経の界隈の話が好きだということがあからさまですね。

反省したんだけど、今日も植物の話ではなくウイルスの話です。

 

 

✿ウイルスは何者か

私が今いる学校では、生物の最初の授業は「生物の定義」をやります。

生物の定義は以下の条件で説明されます。

  • 細胞構造を持つ
  • 遺伝子としてDNAをもつ
  • 代謝を行う
  • 生殖を行う
  • 恒常性をもつ(刺激に対して反応する)
  • 進化する

この生物の定義を踏まえた時、「ウイルスは生物か無生物か」という設問が教科書にありまして。

で、答えから言っちゃうとウイルスは「無生物」とか「生物と無生物の間」なんていう風に言われるんですね。

すると大体その授業のあと何人かの生徒から質問を受けるんです。「ウイルスって本当は何者なんですか。」と。

本当は何者なんでしょうね。

 

✿ウイルスは「借り物の生命」である

ウイルス(virus)は、タンパク質の外被(キャプシドと呼ぶ)に詰め込まれた少数の遺伝子となる核酸とで構成される感染性の粒子、すなわち化学物質です。

ウイルスは最小直径20nm、最も大きな既知のウイルスでも直径数百nmほどであり、規則正しいタンパク質の外被構造を持つことから結晶化することができます(細胞は規則的に集まらないので結晶化できません)。

一部のウイルスはタンパク質外被の外にエンベロープという細胞膜構造を持ちます。

f:id:I_my_mine:20220222142744p:plain

こういう感じで色々ある。画像はパブリックドメイン


ウイルスは代謝酵素リボソームなどのタンパク質合成装置も持ちません。

栄養分のある培地に置いても一切増えません。

つまりウイルスは「絶対細胞内寄生体」です。他者の細胞に自身の遺伝情報を入れ、細胞内の全ての仕組みを自身の複製のために活用します。

ウイルスの遺伝子からキャプシドを作らせ、ウイルスの遺伝子の複製を行わせ…そうして増えたウイルスの遺伝情報とキャプシドは、分子の自発的な自己集合が起こって勝手に新たなウイルスが組み立てられるようになっています(凄い!)。

 

ウイルスの遺伝情報は2本鎖DNA、1本鎖DNA、2本鎖RNA、1本鎖RNAのいずれかにより構成されます。

これまでに知られている最小のウイルスは、なんと遺伝情報の中にわずか4個の遺伝子しか持ちません。

最大のウイルスは数百個から1000個の遺伝子を持ちます。

比較のために細菌を取り上げると、細菌は200個から数千個の遺伝子を持ちます。

ウイルスは少ない遺伝子で構成されていることがわかるでしょうか。

 

例えばウイルスの一種バクテリオファージは、大腸菌に感染します。

ファージの遺伝子で最初にタンパク質化されるのは宿主細胞のDNAを分解する酵素です。

大腸菌DNAを分解したら、細胞を活用しファージのキャプシドとDNAを作らせ、子ファージを増やします。

最後子ファージは細胞を突き破りますが、感染から子ファージ放出まで20~30分(37℃)です。

 

 

でも、もしファージがこんなにも早いペースで大腸菌への感染と破壊を繰り返していったら…大腸菌はあっという間に絶滅してしまいますよね?大丈夫なんでしょうか?

 

実はファージは、「溶菌サイクル」と「溶原サイクル」という2つの手段をとれることが知られています。

上で話したのは溶菌サイクルです。

溶原サイクルでは、ファージは自身のDNAを大腸菌に入れたら、なんとそのDNAを大腸菌のDNAの特定部位に組み込んでしまうのです。

つまり、大腸菌のDNAと一体化してしまいます。

この状態のファージDNAをプロファージといいます。プロファージは、大腸菌が元気に細胞分裂をする度に、大腸菌DNAと一体になって複製され、増えていきます。

ひっそりと隠れて増えていくんですね。

そして大腸菌が危険そうな環境にあることを感知すると、急にプロファージは大腸菌DNAを抜け出して溶菌サイクル(上で述べたもの)を始めます。なんだか、とっても賢い仕組みですよね…。

f:id:I_my_mine:20220222142940p:plain

パブリックドメイン

 

この溶原サイクルの話、ヒトに関係のない話ではありません。

食中毒を引き起こす腸管出血性大腸菌O157:H2株を知っていますか?

ヒトの消化管には常在性大腸菌がいますが、O157:H2株は実は常在性大腸菌がプロファージを持った姿なのです。

このプロファージ部分にベロ毒素(リボソームのタンパク質合成を阻害する毒素タンパク質)の遺伝子が含まれるので、プロファージを持つO157:H2株の大腸菌は食中毒を引き起こします。  

 

 

✿ウイルスはどうやって見つかったのか

ウイルスが見つかったきっかけは、タバコモザイク病でした。

タバコモザイク病は、タバコの葉が斑状またはモザイク状に変色して生育が停止する植物の病気です。

 

1883年、発病した葉から擦り取った汁液を健全なタバコの葉になすりつけると、病気が伝染することが確認されました。

ここから、汁液中に非常に小さな細菌がいて、感染を引き起こしたと考えられました。

しかし、その後の実験で、感染したタバコの汁液を細菌除去フィルターで濾過してからの汁液も、感染させる能力があることがわかりました。

これはすなわち、細菌が原因ではないということですよね。

 

実験者は、感染を引き起こす細菌がフィルターを通り抜けるほど小さいか、細菌が産生する毒素がフィルターを通過し病気を引き起こしていると考えました。

これを検証するために実際に行われた検証実験は以下の通りです。

なぜこういう実験をするのか、どういう考察ができるのかを考えてみると楽しい。

 

【実験手順】

① タバコモザイク病にかかったタバコから汁液を採取する

② 細菌除去フィルターを用いて汁液を濾過する

③ 濾過した汁液を正常なタバコの葉に塗りつける

④ 正常だったタバコがタバコモザイク病を発病する

⑤ ④のタバコモザイク病にかかったタバコから汁液を採取する

⑥ ②、③を行う

【結果】

・⑤の汁液も他のタバコを発病させる感染源としてはたらき、その感染力は初代タバコと同程度であった。

・実験を何周分行っても、感染力は維持された。

 

まず、細菌除去フィルターを濾過したことから、この感染は細菌によるものではないと考えられます。

また、タバコの株から株へと何世代も継代しても病原性が薄まらないということは、この感染を引き起こす病原体はタバコの中で「複製」すると考えられます

この時点で毒素という単純な化学物質は候補から外れます。

 

ということで、「細菌でも毒素でもなく、しかし増殖できる非常に小さな病原体」がタバコモザイク病を引き起こすことがわかりました。

更にその後、この病原体は栄養培地や試験管、ペトリ皿では増えないこと-つまり細胞構造がなければ増殖しないことも判明し、最終的には1935年タバコモザイクウイルス結晶化に成功したことでウイルスは正式に「発見」されました。

エレガントな実験でしたね!

 

✿ウイルスはどこから来たのか

ウイルスは、地球上のすべての形態の生物に対して、それぞれに感染するウイルスが見出されています。

細菌や動物・植物だけでなく、古細菌、菌類、藻類などにも感染するウイルスが見つかっています。

ウイルスの増殖は細胞に依存することから、細胞出現以前の生命体の子孫がウイルスであるとは考えられません。

ウイルスは、ある細胞から別の細胞へと、傷ついた細胞表層から移動する裸のDNAまたはRNAの断片から発生したという仮説が現在最も有力です。

他のウイルス祖先候補として、「プラスミド」や「トランスポゾン」も挙げられています。

「プラスミド」は細菌などが持つ本体DNAとは別の小さい環状DNAで、勝手に増殖をし、細胞同士でやり取りも行われます。

「トランスポゾン」はある生物において、DNA内のある場所から別の場所へ勝手に移動するDNA断片です。私たちのDNAにもトランスポゾンが存在します。

 

✿ウイルスよりも単純な感染病原体「ウイロイド」と「プリオン

ウイルスより単純で、驚くべき病原体が存在します。ウイロイドとプリオンです。

ウイロイドはわずか数百塩基の長さの環状RNAのみからなる物質です(キャプシドすらありません)。

ウイロイドはタンパク質の設計図すら持っていないのですが、植物に感染し、植物細胞の中で宿主の酵素を流用して自身の複製を行います。

 

プリオンは感染性のタンパク質です。

ヒツジのスクレイビー、牛の狂牛病、ヒトのクロイツフェルト・ヤコブ病とクールーは、全てプリオンが原因です。

プリオンは食品を通じて感染するので、狂牛病に感染した牛を食べた人々は感染する可能性があります。

プリオンは通常の加熱では破壊することも不活性化することもできず、ほとんど壊れないタンパク質です。

 

プリオンはタンパク質ですから、タンパク質は複製など不可能なはずです。

どうやって病気を引き起こすのでしょう?

元々プリオンは、脳細胞に存在するあるタンパク質が異常な折りたたみ構造を持ったものらしく、

プリオンが正常型タンパク質を含む細胞に侵入すると、正常型タンパク質をプリオンへと変換してしまうのだそうです。

プリオンになった分子は集合して凝集体を形成し、他の正常タンパク質もどんどんプリオンに変換します。

大きくなると正常な細胞機能を妨げ、発病、という流れです。脳がスポンジ状になって死んでしまいます。

プリオンへの対抗策はまだ見つかっておらず、事実上治療不可能な病気です。

 

✿ウイルスは進化の原動力?

ヒトのDNA上の約半分は、ウイルスに関係のある配列であると言われ、

私たち生物はウイルスの遺伝子を組み込まれたり、それに対抗したりを繰り返した痕跡をこのDNA上に残しています。

加えてウイルスはある生物から別種生物へ感染する際、移動元の生物の遺伝子を運んで別種生物にその遺伝子をもたせる媒介役としても機能することが知られています。  

そのように別の生物の遺伝子を誰かに分け与えたり(まるでまだ銃を知らなかった日本に銃がもたらされたかのように・・・(?))

ウイルスの遺伝子が入り込んだせいで元々あった遺伝子の配列が崩されて新たな遺伝子の獲得または消去が行われたりとしたことが

今までの生物の進化(勿論今も)を推進してきた力なのではないかという説があるんですよ。

(もっと知りたい人は「破壊する想像者」を読んでください。これ割と面白かった。

破壊する創造者――ウイルスがヒトを進化させた (ハヤカワ・ノンフィクション文庫)
 

 

 

ウイルスは今では、生物学にもよく用いられていますね。

歴史的に有名なハーシーとチェイスの実験でも使われましたし、

最近は遺伝子を輸送するベクター(運び屋)として用いられることも多いです。

 

個人的に高校で初めて学んだときからウイルスはめっちゃ好き。面白くないですか?

ということで、ちょっと長くなりましたがこれくらいで~

まいばいお18 合成生物学その2

ストックはあるのに使おうとせず、新しく書く方ばっかりに傾いてしまう結果、生物の話題の更新が遅れるのはなんでなんでしょうね。(ただの愚か者だと思う)

  

今回もまたストックは使わずに、

前回下のリンクの記事で宣言したものを書きます!

i-my-mine.hatenablog.com

 

何を言っていたかというと、「合成生物学の実装具体例を紹介するよ!」という宣言ですね。

具体例は

Programming gene and engineered-cell therapies with synthetic biology | Science

というreviewから引っ張ってきています。

なるべくゆるふわな、ざっくりな感じでやっていこうと思います!

 

 

✿CAR T細胞の活性を制御しよう

引用元:Remote control of therapeutic T cells through a small molecule–gated chimeric receptor | Science

一つ目に紹介するのはCAR T細胞療法に関する実装例です!

そもそもCAR T細胞って何?ってなるといけないので説明します。

私たちの身体ではT細胞というものがいて、これが結合したものを異物だと判定することによって免疫は発生しています。

特に細胞を殺傷する能力を持つものはキラーT細胞といいます。キラーT細胞は細胞対象に機能するため、例えばがん細胞も攻撃対象としています。

 

キラーT細胞が活性化して細胞攻撃を行うには、抗原提示細胞(APC)によって2つのシグナル伝達が発生することが必要です。(分かりにくいので下図を参照しつつ読んでください)

1つは、主要組織適合抗原(MHC)が提示した抗原ペプチド(がん細胞の目印となる欠片)を認識したT細胞受容体(TCR)からのシグナルです。

これによって、がん細胞を攻撃すべき異物と認識します。

もう1つは、共刺激シグナルと呼ばれ、抗原提示細胞上のある分子とT細胞上のCD28やCD137(4-1BB)といった分子の結合により発生する別経路のシグナルです。

2つのシグナルが入った段階でT細胞は十分に活性化され、増殖し、がん細胞を攻撃します。

 

 

しかし、がん細胞は抗原となる物質の発現を低下させたり、共刺激シグナルを抑えたりしてくることによって攻撃を回避しようとします。

 

ここで考案・開発されたのがCAR T細胞療法です。

まず、患者のT細胞を取り出し、遺伝子を操作することでCAR(キメラ抗原受容体)を発現するT細胞にします。

CARは、がん細胞などの表面に発現する特定の抗原を認識する抗体の認識部位(scFv)+共刺激分子+TCRの細胞内ドメイン(ζ鎖)からなっています。色んなタンパク質の部分を集めてくっつけてるから「キメラ」なんですね。

 

 

CARを持っているT細胞は、CARが結合できる特定のがん細胞抗原に結合すると、

それだけで共刺激シグナルもTCRからのシグナルも入るようになっているので、

抗原提示を受けなくても、かつ2つのシグナル経路を別々の仕組みで働かせなくても、一つの入力のみで活性化しがん細胞を殺すことができます。

しかもCARの先端である抗体から持ってきた結合部位の形は自由に設計できるので、普通の体内の免疫系では認識できないような抗原でも認識することが可能です。

そんなわけで、CAR T療法はがん治療に用いられてきました。

 

しかし、何人かの患者において、このCAR T細胞治療が致命的な症状を引き起こしました。

今まで報告されたものには、まずオフターゲットの問題があります。

ターゲットにした結合抗原ががん細胞以外にもあって、攻撃してしまうというものです。

他にも、神経毒性が出た例や、サイトカイン放出症候群(CRS)の例などがあります。

特に後者のCRSは発熱、低血圧、低酸素症、神経変性などに伴い血清中のサイトカインレベルが著増する状態ですが、これはターゲットになるがん細胞が多すぎるせいでサイトカインを放出しすぎるせいだと言われています。

 

そこでこのような併発する問題を、合成生物学の発想で解決できないかと考えられました。

具体的には、CARが特定抗原でのみ活性化されるのではなく、人工的に投与した薬剤依存的に活性が制御されるように設計をしたのです。

これを実現するために、以下の2つのタンパク質が設計・実装されました。

  1.  抗体を認識するscFvの細胞外ドメイン+共刺激分子ドメイン(今回は4-1BB)+FKBPドメイン
  2. CD3ζT細胞アクチベーター+共刺激分子ドメイン(4-1BB)+FRBドメイン

1は今まで通り抗原を認識してT細胞が活性化されるためにあるのですが、この状態では共刺激シグナルのみしか入らずTCR経由のシグナルが入らないようになっています。

一方2は抗原を認識する部位はないもののTCR経由のシグナルを入れるための部位を持っています。

ここで1にはFKBP、2にはFRBという新たな登場人物が含まれていますが、この二つは人工的に投与したラパマイシン類似体(ラパログ)があるときだけ結合できるようになっているのです!

ということは、抗原がある&ラパログがあるという時のみT細胞の活性化が起こるようになっているのですね。

 

人工遺伝子回路や人工細胞は体内にずっと存在していて制御が困難に見えますが、小分子であれば生体内でも一過性の存在なので正確な制御が可能になります。

ラパログ依存的に人工細胞の活性を制御するというこの二つの特性を組み合わせて活用する感じ、美しいと思いませんか?

 

✿投与する物質濃度依存で3段階応答変化する細胞を作ろう

引用元:A programmable synthetic lineage-control network that differentiates human IPSCs into glucose-sensitive insulin-secreting beta-like cells | Nature Communications

前述したように、外部から投与する薬剤で人工遺伝子回路や人工細胞の活性を制御するという考えは非常に有用です。

ここで、大抵我々が考えるのは「小分子があればON、なければOFF」という二値の制御だと思います。

しかし合成生物学で「低濃度ならX、中濃度ならY、高濃度ならZ」というように濃度によって三段階の応答変化を実装した例が存在します!

 

その例では、iPS細胞から作った膵前駆細胞バニリン酸(VA)の濃度に依存的にインスリン産生B様細胞に分化させる人工遺伝子ネットワークの作製が試みられました。

そもそも膵前駆細胞インスリン産生B様細胞に分化するには3つの遺伝子Ngn3, Pdx1, MafAが3つの発現状態に変化していくことが必要です。

Pdx1のみの発現で膵前駆細胞の維持、

Ngn3の発現で内分泌前駆細胞への分化、

そしてPdx1+MafAの発現でB様細胞への分化が誘導されます。

この3つの遺伝子発現状態を、VAが濃度ゼロ、中濃度、高濃度の3パターンで実現しようとしたのです。

ターゲットになったのはNgn3, Pdx1, MafAの3つの遺伝子、

加えて二つのVA受容体であるMOR9-1とVanA1です。

この中でMOR9-1のみが外部から導入された遺伝子であり、これはVAを受容し活性化することができるようになっています。

VanA1はVA受容体ですが高濃度VAでは阻害されるような受容体です。

それぞれのVA濃度で何が起こるか見ていきましょう。

 

VA濃度ゼロのとき

Ngn3はOFF, Pdx1はON, MafAはOFFという状態です。

この時細胞の分化は発生しません。

 

VA中濃度のとき

VAの濃度が中濃度になると、MOR9-1がVAを受容し活性化が起こります。

すると、活性化因子CREB1が発現するようになっています。

VanA1のプロモーターはCREB1に対して高感受性であるため、CREB1が発現するとVanA1の転写も促され発現します。

VanA1の発現がNgn3の転写を促すと同時に、細胞内に存在するPdx1 mRNAに対するmiRNAの合成を促進します。

miRNAはmRNAを破壊するため、結果としてPdx1の発現量は減少します。

このような変化を経て、Ngn3はON, Pdx1はOFF, MafAはOFFという状態になり、

この状態が膵前駆細胞を内分泌前駆細胞へと分化させます。

 

VA高濃度のとき

VAが高濃度になると、CREB1は過剰に活性化します。

その結果、CREB1低感受性のプロモーターまで活性化されてくるようになります。

CREB1低感受性プロモーターはPdx1とMaf1のプロモーターであるため、両者の発現が促進されてきます。

一方VanA1は高濃度VAに阻害される性質があるため、VanA1の活性は低くなり、Ngn3の発現促進効果が失われ、同時にPdx1 mRNAに対するmiRNA産生もなくなってきます。

そうしてNgn3はOFF, Pdx1はON, MafAはONという状態ができあがります。

この状態が内分泌前駆細胞をB様細胞に分化させます。

 

すべての結果をざっくり整理するとこんな感じです。

f:id:I_my_mine:20191127090336p:plain

 

なんやかんや論文のFigureの方がわかりやすいけどね…

 
 
なんにせよ、3段階の応答が作れるってすごくないですか?
このように、生体内で適切なタイミングに目的の細胞へ分化させられる仕組みは、患者への生着率を高めるらしい。
しかもこれの素晴らしいところは、元々生体内にあったしくみをほとんど使っているところですよね。もともとあった仕組みとMOR9-1という外部から導入されたものとのリンクが非常に緊密であるおかげで、このようなことが可能になるのです。
すごい!
 

  

✿CAR T細胞をより特異的にしよう

引用:Precision Tumor Recognition by T Cells With Combinatorial Antigen-Sensing Circuits

上でも述べたCAR T細胞治療について、オフターゲットを防ぐために

より厳密にがん細胞のみを選別できる仕組みを実装しよう、という考えがあります。

抗原1つだけで活性化するのではなく、複数の抗原認識でやっと活性化するような仕組みにすれば、特異性が高まります。

そこで、synNotch経路を活用した2つの独立抗原で活性化するCAR T細胞の実装が合成生物学の知見を用いて行われました。

普通のNotch受容体はリガンドを受容すると、細胞内遺伝子を活性化する能力がある細胞内ドメインを放つようになっています。

このsynNotch経路の要となるNotch受容体について、細胞外ドメイン(リガンドと結合する場所)と細胞内ドメイン(遺伝子を活性化する場所)に分け、それぞれ人工的に細工したsynNotch受容体を作製し、以下の3つを実装しました。

① 癌の抗原に結合するsynNotch受容体(結合すると人工合成トランス活性化因子を放出する)を置く

② synNotch受容体からのトランス活性化因子で発現するCARをコードしたDNAを置く

③ CARは2つ目の癌抗原に結合するとT細胞を活性化するようにしてある

すると、synNotch受容体に結合する1つ目の癌抗原があったときしかCARが発現しないようになるため、

CARが発現して(=1つ目の癌抗原はある状態)かつ2つ目の癌抗原があったときしかT細胞が活性化しないという形になります。


実際の実験では、GFPとCD19(CD19は癌抗原)があるときだけ活性化するT細胞を同様の原理で設計し、うまくいくことが確認されています。

 

 

✿フィードバック経路を人工的に作ろう

引用元:A closed-loop synthetic gene circuit for the treatment of diet-induced obesity in mice | Nature Communications

人工細胞の活性を変えようと思った場合、今まで挙げた例では外部から投入した小分子の量に応答して活性制御が行われるようになっていました。 

しかし刻々と体内の状況が変わっていく場合には、その微細な変化まで考えて人が外部から投入する分子の量を調節するのは面倒です。

勝手に体内の状況に合わせて活性制御されてくれたら…すなわちフィードバックの仕組みが備わっていれば便利ですよね。

そこで、食生活によって誘発される肥満の治療のための人工遺伝子回路が作られました。

 

現在、肥満治療のためにはアミリンに似ているプラムリンチドという物質が用いられています。 

アミリンは摂食抑制ペプチドであるため、似ているプラムリンチドを投与すると満腹感が促進され食欲が抑えられるのです。

プラムリンチドはペプチドなので、導入遺伝子によって合成させることが可能であり、人工的な遺伝子回路によって肥満解消するのに使えると考えられました。勝手にフィードバック制御されて分泌されるようにすればいいですよね!


これを実現するために、ペルオキシソーム増殖因子活性化受容体アルファ(PPARα)のリガンド結合ドメインを

フロレチン応答性リプレッサーTtgR(TtgRオペレーター部位を含む人工合成的プロモーターに結合することができる)に融合することにより、

脂質センシング受容体(LSR)が人工的に構築されました。

同時にTtgRオペレーターを含む人工合成的プロモーターの下流に、プラムリンチドの遺伝子がつながった導入遺伝子も構築されました。

 

LSRはTtgRの領域を介してTtgRオペレーター配列に結合することで目的遺伝子のところまで誘導されます。 

その場所において、PPARαサブユニットが脂肪酸存在下で転写共活性化因子を誘導し、脂肪酸がないときには共抑制因子を誘導することで、

脂肪酸存在下では導入遺伝子の発現を強く、無い時には発現抑制を起こすことができます。

よって、脂肪があるほどPPARαによって転写共活性化因子が誘導され、プラムリンチドの発現が促され、摂食抑制が起こります。

逆にプラムリンチドが効いて脂肪が減れば、転写共抑制因子が誘導されることで、プラムリンチドの発現は抑えられるのです。

きれいなフィードバックが実装できています。

 

加えてTtgRは、フロレチン(リンゴ由来の多くの化粧品に見られる小分子)があるときにはTtgRオペレーター配列から外れることでLSRによる遺伝子発現制御を強制的に遮断します。

よって、フロレチンがあれば遺伝子発現なし、なければありという風に外部からのフロレチン投与で制御できるようになっています(フロレチン投入で止めることができる)。

 

✿乾癬が起こらないような遺伝子回路を実装しよう

引用元:Implantable synthetic cytokine converter cells with AND-gate logic treat experimental psoriasis | Science Translational Medicine

上で述べたようなフィードバック制御は慢性疾患にも適しています。

なぜなら慢性疾患は通常予防治療が難しいくせに、何度も再発するものであるためです。

事後対応しかできないので、フィードバック制御によって勝手に治療されるのは非常に望ましいという。


こういう厄介な疾患の一つが乾癬です。

乾癬とは、自己免疫疾患(自分の免疫が自分を攻撃するやつ)の一つ。

典型的な症状は、皮膚から少し盛り上がった赤い発疹の上に、銀白色のフケのようなものがくっついてポロポロとはがれ落ちるというものです。

乾癬の主原因は、免疫を司る細胞からサイトカイン(TNFαやIL-22)が異常に分泌されることで、毛細血管の膨張と細胞分裂の過剰な促進が起こること。

よって既存の治療法には、TNF-aなどの関連するサイトカインに対する抗体を用いるものや、さまざまな経口または局所治療などがあります。

しかし、そもそもサイトカインは通常の免疫反応でも用いられるものであるため、長期に抑制してしまうと今度は病気に感染しやすくなるなどの副作用が出てしまいます。これは厄介ですね・・・

IL-4やIL-10といった抗炎症サイトカインという物質があるため、これらが使えないかとテストされていますが、これらは半減期が非常に短くずっと投与し続けるなどの継続管理が必要なので難しいです。


そこで、乾癬を治療するために考えられたのが、「TNF-αやIL-22を感知してIL-4とIL-10の発現を促進する遺伝子回路を設計する」という方法です。

これなら、乾癬の症状が出そうになったときに、IL-4やIL-10が作られて勝手に収まりますし、

逆に異常がない平和なときには免疫抑制が発生せずに済むようになります。

現状がフィードバックされながら治療効果を変化させられるのです。

 

これを実現するために、以下の仕組みが実装されました。

・TNF-αの受容体が活性化すると細胞内のNF-κBシグナルカスケードによって導入されたIL-22受容体の遺伝子からIL-22受容体が発現する

・IL-22受容体がIL-22を感知すると内因性JAK-STATカスケードを用いて核にシグナルが伝達される

・人工合成されたSTAT3応答性プロモーターが活性化するとIL-4とIL-10が発現する

この回路では、TNF-αとIL-22が共存するときだけIL-4とIL-10が発現するようになっています。

2つのシグナルを用いることでより応答タイミングを限局しているのですね。

加えて、IL-4とIL-10が出てTNF-αやIL-22がなくなれば、またIL-4とIL-10は作られなくなるようになっています。

素晴らしい設計ですね・・・

 


 

✿色々紹介しましたが・・・

どれも前提知識が割と必要だったせいでなんかごちゃついてしまいました。

わかりにくい部分もたくさんあったろうなと思います(特に最後とか・・・)

あと間違ってるところもあると思う。各自「ほんまか?」ってなったら論文を見て・・・そしてコメントで教えて・・・

 

でも、ちょっとでも私が感じた合成生物学のすごさというか、美しさというか、そういうものが伝わってくれれば幸いです!

実装例は勿論すごいんですけど、これらを実装する根底には正確なゲノム編集を行える技術というのが存在していなければならないわけで、

そういう「道具」についての研究や成果もめちゃくちゃおもしろいので、また時間があったらまとめようと思います!!

まいばいお17 アイスクリーム頭痛

今回はほのぼの雑学系生物知識回です!

合成生物学の具体例はしばしお待ちを…(今頑張って作ってます!)

 

身体の不思議を取り上げて紹介したいと思います!

 

 

✿「アイスクリーム頭痛」について

アイスクリーム頭痛ってなんだ?

アイスクリーム、冬に暖かい部屋で食べると余計おいしく感じます。

最近めちゃくちゃ食べてます。

しかし、アイスクリームやかき氷などの冷たいものを一口かじった瞬間、「キーン」と激しい頭痛に襲われる・・・なんて経験ありませんか?

これ、実は専門用語があって、「アイスクリーム頭痛」って言います!

 

アイスクリーム頭痛は、極端に冷たいものを食べた直後に数分程度発生する頭痛です。

刺すような、きつい痛みが鋭く襲ってきます。

3~5分ほどで収まりますが、この頭痛は片頭痛の痛みに近いと言われています。

 

アイスクリーム頭痛の原因

アイスクリーム頭痛はなぜ起こるのかは、実ははっきりと解明されていません。

ここでは、現在提唱されている説を紹介します。


① 関連痛説

まずそもそも私たちの顔には三叉神経というものが分布しています。

 

冷たい物が突然喉を通過して上顎に付着すると、喉の三叉神経が刺激されます。

この時に発生する伝達信号があまりにも唐突なので、本来三叉神経第2枝が「冷たい」という情報を伝えるはずが、

第1枝によって送られた「前頭部が痛い」という信号であると脳が勘違いし、

その結果頭痛が発生するというのが関連通説です。

 

② 血管膨張説

冷たいものを食べると口腔内の温度が急激に低下しますが、身体は恒常性を保つために反射で体温を上昇させようとします。

体温上昇のために頭に通じる血管を膨張させて血流を一時的に増大させようとするんですが、それによって頭の血管には一時的に炎症が発生してしまいます。

この炎症が頭痛を引き起こすというものです。

 

これらが代表的な説がありますが、どちらも本当か、はたまた両方が噛み合っているのか、どちらも嘘か…なにも分かりません。

 

ただ、アイスクリーム頭痛はどちらの説でも「急に冷たくする」ということが引き金になっています。

ですから、冷たいものを少しずつ食べるとか、冷たいものと同時に温かいものを食べるとか、そんな対策法があります。

実際頭痛が起こった場合には、「おでこやこめかみを冷やす」と実は治ります。

頭にアイスを当てる、なんて、もっと冷えそうな気もしますが、①の説がもし正しいとするならば、「頭からの刺激は『痛い』じゃなくて『冷たい』だよ!」って脳に教えることができるのかもしれないですね。

 

DMM英会話を始めた

生物学の記事も発信しなきゃと思いつつ

(なぜ手元には130近い記事のストックがあるのにブログにできていないんだ…???なぜ…)

今日は普段の話をします~

 

 

最近、DMM英会話を始めました!

eikaiwa.dmm.com

 

なんでやって思われると思うんですが

理由は「あれ?英語全然普通に喋れてなくない?やばくない??」と思ったからです。

この前学校にイギリスからの留学生が来て、実験に参加してったんですが

全然コミュニケーションできないのね。

説明したいことも、単語が出てこない、文構造がおかしくなる、どう表現したらいいか分かんない、etc...

普通の話してても、リアクションむずかしいetc...

ということで、あからさまに自分の英語力の無さを痛感したので、やばいなと思って。

でも、中々仕事しながら英会話教室に決まった時間に通うのも難しいし

あんまりにも重たい授業だとやっていけるか不安だし

講師との相性もあるから自分がこうしたいというのが叶うか不安だし…

と、いろんな事情を鑑みてよいサービスを探していたのですが、遂にDMM英会話を取り敢えずやってみるかという決断をしました。

 

DMM英会話は、ネイティブじゃない人相手なら月6000円ちょいでできるサービスで

一日一レッスン30分を好きなタイミングでやれる。

講師も選べる。

毎日受けなくてもよくて(勝手に6000円が無駄になっていくだけだから)、心理的負荷も少ない。

 

何よりDMMの「なんてuKnow?」というサービスがめちゃいいんですよね。

eikaiwa.dmm.com

これをすごく気に入って使ってて…

こう、日本語でこう言いたいときに英語だとどう表現するんだろって思った時に、割とぴったりのものを探し出せるし

何より表現がしっくりくるものが多くて良いんですよね…

「あーなるほど、こう言えばいいのね!」とか

「へーそうやって言うんだ」とか

凄く驚きがあって、それが私は嬉しくて

だからよく使ってました。

 

だからDMMには信頼を寄せていた面がある。

で、使ってみようと思いました。

ネイティブじゃないという点はあるけれども、それも別にマイナスじゃないだろうと個人的には思う。

ネイティブは何も苦労せず分かってしまうことや身についてしまうことがあるけれど、非ネイティブなら分かる苦労がある。

でもそれを克服する術も多分知っている。

勉強とかでもそうですよね、何の苦労もなく分かった人に質問しても、「なんでわからないの?」ってなっちゃって理解してもらえないし、聞いた方も悲しい…

でも過去に苦労した人は「それはこうするといいんだよ」と教えられるものを持っている確率が高いし、聞いて価値がある場合が多い…

そして何よりこの世にはネイティブじゃない人と英語で会話しなきゃいけない場面はとっても多い、ネイティブとしか話さないなんてことはない…

だからよい!

ネイティブにしか分からないことも勿論あるんだけど、それは自分の能力がもうちょっと高くなったらでいいかな、と思ったり。

 

 

で、実際やってみた感想。

良いよ。良いけど、使いようだな、という結論。

 

まず最初、何の要望も入れずに教材を使ったレッスンを申し込んだ。

教材は役に立つんだけども(決まった使い文句が学べるから)、

それ以外の「自分で表現する」っていう所に関しては難ありだった。

例えばある議題を挙げられて、これについてdiscussionしましょうと言われる。

がんばって喋る。

文法や表現がやり切れずに一生懸命だけでしゃべり切る。

すると講師はそれを汲んでくれてしまって、会話が成り立ってしまう…

これ、喋るのに慣れる効果はあるんだけども

自分の喋る能力が果たして向上しているのか?感がありました。

だって結局自分が喋りたかったことは、相手の譲歩で伝わったものの自分の力だけでは伝えられてないし

それを問題視されないまま流れていっちゃうんだもの…

本当はどう表現すればよかったのか、どういう単語を使ってどういう文章を構成できたら良かったのか、という振り返りがない。ので向上がない。

自分は適当英語でその場を乗り切る癖がつくだけだなこれと思いました。

発音に関しても同様で、自分は自信がないんだけど、よっぽどひどくない限り指摘されない。「喋れてればOK」みたいなイメージ。

これはよくないぞ、とやっと自分が求めるものが数回やって見えてきました。

自分が欲しいのはこれ。

  1. 自分が言いたいことを正しい英語で表現できる能力(今自分が作った文よりも良い文で伝わるならrephraseしてほしい)
  2. 正しい発音ができる能力(レッスン進行が滞ってもいいから発音を正確化したい、自分だけでは難しいので他者の耳で判断してほしい)
  3. 決まった状況の決まったフレーズを練習するのも足りない分についてはしたいが、基本的には自由な発言や表現をするとき(例えば自分の考えを述べる、とか)に使える英語を磨きたい

ということで、問題が明確化したので、それが見えた次の回から講師への依頼欄に

「もし気づいたら私の発言をより良いものにrephraseしてほしい、表現を教えてほしい、発音を正してほしい」と書くようにしました。

するとこれが講師によっては功を奏し、求める授業をしてもらえるようになってきました!

ただ、本当に講師によりけりです。

素晴らしい人は、レッスンの固定文のところをさっさっと最低限だけやって、discussionのところを磨いてくれるけど、

ゆっくり優しく、みたいなタイプもいる。後者は求めてない…もっと刺激が欲しい…(Mっぽい…)

厳しくやってほしいのですよ私は…

ちなみに、私の場合、今のところ男性講師は全部後者になる。

多分私が女性だから、厳しくいけないのだろうか…???

女性でも優しくタイプの人もいるので、ウマが合う人をどんどん見つけていきたいと思います。

 

どれだけ喋れるようになるんだか謎だけど、頑張ります。

 

 

P.S. How toを買っちゃいました。もりもり英語を読んでいきたい。

まいばいお16 合成生物学

 

✿合成生物学の世界へ!

日本ではまだほとんど馴染みがなく、研究室もほとんどない「合成生物学」。

これは非常に新しい分野なのですが、MITなど最先端の場所では研究が盛んに行われており、現実世界において着実に進歩を生んでいる分野です。

ではそもそも合成生物学とはいったいどんな分野でしょう?

文字通り「生物を作る」…よりもすごい!夢広がる分野です!!

ちょっと勉強したので、勉強したことをまとめがてら、記事にしてみたいと思います!!(間違ってたら指摘して欲しい)

 

✿合成生物学とは

そもそも「生命体」とはいったい何か?を考えてみます。

生命体は、DNAによってコードされた、プログラム化された存在です。

生命活動は全てDNAに塩基配列によって記されたコードで記述されたものであり、DNAの塩基配列を基に作られるタンパク質が、決まった動きを果たすものでしかありません。

そのタンパク質の動きや、元々の塩基配列が変われば、勿論生命現象を変えることは可能です。

 

合成生物学では、このDNAのコードを「ゲノム編集技術」を用いて変えることで、私たちが望むように細胞の動きを変えることを一つの目標にしています。

その活用先の例が医療です。

医療でのゲノム編集というと、単に「変異している有害遺伝子を正常な塩基配列に戻す」というのが大体想像されますが、合成生物学が目指すのはそれ以上の、高度で計算高い医療行為です。

 

現在私たちはおかしい細胞の反応や働きを変えるために、外科的手術や薬という方法を用います。

しかし薬は望まない反応を付随させて引き起こしたり、

逆に動きを変えたい細胞に届かなかったり、

加えて薬が消えるまで薬効が続いてしまうので細胞の動きをこれ以上変えたくなくても薬による変更が行われ続けてしまう…なんていう可能性があります。

そういう意味で薬は、細胞の動きを制御するには、ちょっと不安定で、不確実な存在だと言えます。

 

そこで合成生物学では、例えばある病気の時にだけ現れるシグナル分子を受容できる受容体タンパク質を設計し、

その受容体がシグナルを受容すると病状改善するために必要な遺伝子の発現がONにできるような仕組みを実装しようと考えます。

下の図は完全な自作の例ですが、見てみてください。

遺伝子Yという治療に役に立つタンパク質があるとして…

 

もしこういう細胞の系になっていたら、こう考えるはずです。

「物質Xが出てきたら遺伝子YがONになるようにならないかなぁ」と。

そこでゲノム編集を2か所に施します。

一か所目は受容体Wの遺伝子Wです。この受容体の受容部の形状を決める塩基配列をいじって、物質Xと結合できるようにし、さらに結合後は本来の受容体Wの動きのように活性化因子bが放たれるようにしておきます。

二か所目は遺伝子Yの上流です。ここに塩基配列Qを入れれば、活性化因子bがくるようになります。

すると…

f:id:I_my_mine:20191114145245p:plain

 

できました!

今回は絵の範囲の関係で、遺伝子Wを完全に変えてしまいましたが、例えば本来の遺伝子Wを失わないようにするために遺伝子Wの塩基配列を別の場所にコピーしていじってもいいですよね。

今回の例は雑なので、物質aの受容はどうするんだとか、遺伝子Zの発現はどうするんだとか、ツッコみどころ満載なんですが、そういうのも解決できるように緻密に考えて本当は設計されます。

あくまで例なので、ご了承ください…

 

とにかく上に挙げたような感じで、合成生物学で何かを実装するときは、勿論ほかの生物の遺伝子を入れることもありますが、元から細胞にある仕組みを活用して行うこともあります。

もし上で述べたような能力を持つ細胞が体内にあれば、薬を投与せずとも、なんなら診断すらなされていない状況でも、病気になった瞬間勝手に治癒が始まり知らないうちに治りますし、

病気が終われば細胞も本来の動きに戻っていくよううまく設計すれば行き過ぎた治療にはなりません。

 

他にも色々な実装例があります。

 

外部から身体に無害な低分子を投与すると治療効果がONになる細胞を作る。

私たちの制御下でタイミングも量も自在な治療が可能になります。勿論変えたい細胞の動きは設計次第で自在に変えられます。

 

本来の身体では作られないTCRを設計しT細胞に持たせ、癌特有物質を認識させる。

癌細胞だけが作る物質を認識できるTCRを設計してT細胞に持たせてやれば、癌細胞に対し異物と認識して免疫効果を上げることができます。

 

周囲情報を受け取ってある細胞に分化する仕組みを実装した細胞を作る。

例えばインスリン分泌細胞が体内で消失した時、それを感知してインスリン分泌細胞に分化するという機能を持つ細胞を入れておけば、インスリン分泌細胞の枯渇が防げます。

しかも必要な時だけ、必要量のみ分化細胞を供給することが可能です。

 

フィードバック制御を新たに構築する。

例えば、インスリン受容体が壊れただけでインスリン分泌の仕組みは正常なものを持つ細胞があるとして、

この細胞が血液中グルコース量を感知してインスリン分泌ができるようになれば糖尿病を免れることができます。

このように本来ないフィードバック経路を、ほかの物質について作り出すことによって、生体内で損なわれてしまったフィードバックを実装することが可能です。

 

免疫の過剰活性をサイトカイン量で感知し免疫緩和タンパク質を放出する細胞を作る。

アレルギー、特に乾癬などの病気は免疫の過剰活性化によって生じますが、上記のネットワークが実装できればアレルギー症状からも解放されることができます。

 

✿合成生物学の活かし方は様々

医療での活用について話してきましたが、合成生物学の技術が活かせる領域はまだまだたくさんあります。

 

まずは生物学です。

「もともとDNAは記録媒体なのだから、DNAを細胞内や生体内での現象の記録媒体として活用できるのでは」と考え、DNAを基にした新しい観測方法が合成生物学によって確立されようとしています。

具体例として、「何かが起こるとDNAの塩基配列が編集されて傷跡が残る」という仕組みを実装した細胞は、様々な生命現象の記録・観測や有無の判定に用いることができます。

例えばあるシグナル分子を受容すればDNAに決まった傷が入る仕組みを実装した細菌を、ヒト体内に入れて一定時間後取り出せば、ヒト体内でそのシグナル分子があったか否かをDNAで判別できます。

これは医療でも活用可能で、外からでは見えない病気の兆候を読み取ることができます。

この方法の利点は今まで見えなかったものが見えるだけでなく、一過性の過去に起こった事象でも観測できる(現在ある顕微鏡観察や薬剤検査では『検査・観測した瞬間に物事が起こっている』場合しか観測ができない)こと、

そしてDNAの傷が量依存的や曝露回数依存的につくようにしておけば、定量的な観測が可能であるということです。

 

ほかにも、どの細胞からどの細胞が個体発生中に生まれてくるか、そしてどのタイミングで分化しているのかという「細胞系譜」については、今まで明確に追う方法はあまり開発されていませんでしたが、DNAを記録媒体として追う仕組みを作ることができると考えられています。

そもそも体細胞分裂を行った細胞は、同じDNAを共有するという原則があるので、ある細胞においてDNAに傷がついた場合、この細胞から分裂した細胞たちは同じDNAの傷を共有するようになります。

よって後からたくさんの細胞を見た時に、同じDNAの傷を持つものは同じ細胞由来であるという風に追うことができるのです。

細胞分裂をするたびに新たな傷が細胞別で追加されるようになっていると、細胞系譜は一層深い段階まで追うことができるようになります。

 

 

そもそも私たちは今まで、化学物質や機械などを外部から投入して行う観察や追跡を行ってきましたが…

これらの物質や機械は、生体システムとの相互作用に最適化されているとはお世辞にも言えません。

一方で合成生物学が目指すのは生体内の物質を活用した観測や追跡であり、元々備わっている生体システムで生体内の出来事を見ようとしているわけで、

この観測対象物と観測方法との間の相互作用は長い進化の歴史の上で最適化されてきているに違いありません。

ですから、従来の方法に比べ鋭敏に生体内の反応を捉えることが可能であると考えられています。

 

ほかに合成生物学が活かせる場面として、工業や産業が挙げられます。

私たちの生活では生体物質であるタンパク質や酵素を活用している場面が幾つかあります。

発酵食品なんかはその最たるものですし、洗剤にも酵素が入っています。

しかしこれらの酵素は私たちの目的に完全に最適化された、最も望ましい能力をもつものたちではなく、今あるもので使えそうなものを活用しただけに過ぎません。

もっと良い能力のタンパク質や細胞があれば、それを使いたいものです。

そこで、ゲノム編集技術を活用し人為的な進化を起こさせることができます。

そもそも本来の自然においては、進化は①突然変異が生じて新たな配列の遺伝子ができる→②自然選択によってよりよく適応するものがうまく残る ということを繰り返して起こっています。

ですから狙った遺伝子だけにゲノム編集技術によって突然変異を起こさせ、様々な配列の遺伝子を持つ細胞群を作り、

それらを人為的な選抜過程(例えば酵素活性をテストしてより良いものだけが残るようにするなど)を行うことで進化を人為的に再現できるのです。

自然の中の突然変異は必ず決まった遺伝子に起こるわけではなく、起きる頻度も非常に少ないものなので、それを期待するよりも圧倒的に速く狙った酵素や性質だけを進化させることができます。

 

このように、合成生物学は非常に緻密で計画立てられたゲノム編集によって、不可能を可能にしようと試みる分野なのです。

 

✿合成生物学は進んでいる

現在の合成生物学では、「狙った通りに確実にゲノムを編集できる技術」を確立することを目標として多くの研究が行われ、リアルタイムに研究結果が更新されてきています。

ゲノム編集そのものにもそもそも歴史と変遷がちゃんとありまして。

本当に初期のゲノム編集技術は、ただ放射線や薬剤で外部から突然変異を引き起こすというものだったのですが、

そこから相同組み換え法、制限酵素の発見と使用、人工制限酵素としてジンクフィンガーヌクレアーゼ、TALEN、そしてCRISPR-Cas9と…どんどん新たな革新的なゲノム編集技術が考案されてきました。

現存するゲノム編集技術の一覧で、Precise writerすなわち狙った通りの確実な編集を起こす技術と、Pseudorandom writerすなわち予測できないランダムな編集を起こす技術の二つが大きく分けて開発されてきています。

 

それぞれ異なる使い道があり、そのどちらでも改良が目指されているのです。

特にPrecise writerについてはprime editingという新技術が2019年10月24日に発表され、自然界では起こり得ないプリン(A,G)⇔ピリミジン(T,C)の変換をはじめとし多くの不可能が可能になりました。

これについてはResearchat.fmが詳しく解説してくれてるのでおすすめです!

researchat.fm

 

この分野は確実に、そして急速に歩みを進めているのです。

すごい世界ですね…!!!!

 

ちょっと長くなってしまったので、次回あたりに、合成生物学分野で過去に実装された医療活用の例の中でも私が好きだったやつを具体的に紹介しようかなと思います~