FXチャート実践帳

シグナルをわかりやすく解説

シグナルをわかりやすく解説

アカウントの方針やコンテンツに迷ったら他社の事例を参考にするのもおすすめです。業界別にInstagram企業アカウントの事例をまとめた無料eBookを公開していますので、ぜひ以下のフォームからダウンロードしてみてください。
(フォームが表示されない方はこちら)

Notchシグナル伝達

Notchシグナル伝達は、多細胞生物において進化的によく保存された経路で、発生過程において細胞の運命を決定し、成体組織の恒常性を維持します。Notch経路は細胞接触型のシグナル伝達を媒介します。この伝達経路内では、シグナルを送信する細胞と受信する細胞の両方が、リガンドと受容体のクロストークにより影響を受け、それによって神経系、心臓系、免疫系および内分泌系の発生における一連の細胞運命決定機構が制御されます。Notch受容体は、1回膜貫通型のタンパク質で、機能的な細胞外ドメイン (NECD)、膜貫通ドメイン (TM)、および細胞内ドメイン (NICD) からなります。Notch受容体は、シグナル受信細胞の小胞体やゴルジ体で、切断 (S1切断) や糖鎖修飾などのプロセシングを受け、Ca2+によって安定化されたヘテロ二量体を生じますが、これは膜内に挿入されたTM-NICDと非共有結合性に結合したNECDから構成されます。プロセシングを受けたNotch受容体は、エンドソームによって細胞膜へ輸送され、Deltexによる制御およびNUMBによる阻害を受けることで、リガンドへの結合が可能になります。哺乳類のシグナル送信細胞では、Delta-likeのメンバー (DLL1、DLL3、DLL4) やJagged (JAG1、JAG2) ファミリーが、Notchシグナル伝達受容体のリガンドとして機能します。リガンドが結合すると、NECDはTACE (TNF-α ADAM 金属プロテアーゼ変換酵素) によってTM-NICDドメインから切断されます (S2切断)。NECDはリガンドに結合したまま、シグナル送信細胞内で、Mibによるユビキチン化依存的なエンドサイトーシス/リサイクリングを受けます。シグナル受信細胞内では、γ-セクレターゼ (アルツハイマー病にも関与) がTMからNICDを放出します (S3切断)。これによってNICDは核内へ移行し、そこでCSL (CBF1/Su(H)/Lag-1) 転写因子複合体と結合し、Notchの標準的な標的遺伝子であるMyc、p21、HES-ファミリーの活性化を誘導します。Notchシグナル伝達経路はヒト疾患と関連することから、この経路を標的とした薬物利用に関心が高まっています。各種研究によって明らかになった重要なことは、Notch受容体の活性化変異でみられるようなNICDの核内への蓄積が、成人T細胞急性リンパ芽腫性白血病およびリンパ腫で共通してみられることです。さらに、Notch受容体の機能欠失およびリガンドの突然変異は、アラジール症候群や、常染色体優性脳動脈症 (CADASIL) など様々な疾患に関与しています。

  • Ables JL, Breunig JJ, Eisch AJ, Rakic P (2011) Not(ch) just development: Notch signalling in the adult brain. Nat. Rev. Neurosci. 12(5), 269–83.
  • Andersson ER, Lendahl U (2014) Therapeutic modulation of Notch signalling--are we there yet? Nat Rev Drug Discov 13(5), 357–78.
  • Aster JC, Blacklow SC, Pear WS (2011) Notch signalling in T-cell lymphoblastic leukaemia/lymphoma and other haematological malignancies. J. Pathol. 223(2), 262–73.
  • Bai G, Pfaff SL (2011) Protease regulation: the Yin and Yang of neural development and disease. Neuron シグナルをわかりやすく解説 72(1), 9–21.
  • de la Pompa JL, Epstein JA (2012) Coordinating tissue interactions: Notch signaling in cardiac development and disease. Dev. Cell 22(シグナルをわかりやすく解説 2), 244–54.
  • Ntziachristos P, Lim JS, Sage J, Aifantis I (2014) From fly wings to targeted cancer therapies: a centennial for notch signaling. Cancer Cell 25(3), 318–34.
  • Ranganathan P, Weaver KL, Capobianco AJ (2011) Notch signalling in solid tumours: a little bit of everything but not all the time. Nat. Rev. Cancer 11(5), 338–51.
  • Weinmaster G, Fischer JA (2011) Notch ligand ubiquitylation: what is it シグナルをわかりやすく解説 good for? Dev. Cell 21(1), 134–44.
  • Yuan JS, Kousis PC, Suliman S, Visan I, Guidos CJ (2010) Functions of notch signaling in the immune system: consensus and controversies. Annu. Rev. Immunol. 28, 343–65.

この図の作成にご貢献下さった、Brigham and Women’s Hospital、ハーバード大学医学大学院 (マサチューセッツ州、ボストン) のHans Widlund教授に感謝いたします。

Notch

図1.Notchシグナル伝達
Notchシグナルは隣接細胞間における膜タンパク質NotchとDeltaによる相互作用によって伝達されるシグナル伝達経路である。隣接細胞(神経発生過程においてはニューロン)が細胞膜上に発現するDeltaが、神経幹細胞の膜上に発現するNotchと相互作用することによってシグナルが伝達される。Deltaにより活性化されたNotchは膜から切り出され、細胞内ドメイン(NICD)が核内へと輸送され、標的遺伝子(ここではHes遺伝子)の発現を誘導する。

細胞表面上で起こるNotchリガンド(DeltaやJagged)とNotchとの相互作用によって、Notchタンパク質が細胞膜から切り出される。Notchの細胞内ドメイン(Notch intra-cellular domain; NICD)は、核内へと輸送され、RBPj/CSLなどのDNA結合タンパク質と複合体を作り下流の標的遺伝子の発現を誘導する。この一連のシグナル伝達経路を「カノニカル(canonical)」信号伝達と呼ぶ(図1) [1] [2] シグナルをわかりやすく解説 [3] 。

図2.哺乳動物Notch1タンパク分子の構造
Notch1は、細胞外領域から順番に、(1)EGFリピート、(2)LNR (Lin12-Notch repeat)、(3)NRR(negative regulatory region)、(4)膜貫通ドメイン、(5)RAMドメイン、(6)アンキリンリピート、(7)核移行ドメイン、(8)PESTドメインにより構成される大きな分子である。

  1. EGFリピート (epidermal growth factor (EGF)-like repeats) Notchレセプターの細胞外ドメインには、29〜36個のタンデムにつながったEGFリピートがあり、この領域でリガンドと相互作用する。隣接細胞間とのシグナル伝達(trans-interactions)は、11番目と12番目のEGFリピートによってなされる。また、同一細胞内におけるリガンド分子との相互作用(cis-inhibition)においては、24〜29番目のEGFリピートを介して起こる。EGFリピートの多くはカルシウムイオンと結合することが知られているが、これらのカルシウムイオンはNotchレセプターの構造やリガンド分子との親和性を制御することによって、シグナル伝達効率を制御していると考えられている [4][5] 。
  2. LNR(Lin12-Notch repeat) EGFリピートの後に続くリピート配列。NRRに含まれる。
  3. NRR (negative regulatory region) LNR(Lin12-Notch repeat)およびHDドメイン(heterodimerization domain)より成る。リガンドがない状態でレセプターが活性化するのを抑制している。
  4. 膜貫通ドメイン (transmembrane domain; TMD)
  5. RAMドメイン (RBPjκ association module domain) 核内へ運ばれた後、DNA結合タンパク質であるCSL(CBF1/RBPjκ/Su(H)/Lag-1)に強く結合する領域。
  6. アンキリンリピート (ankyrin repeats, ANK domain) 7つのアンキリン配列が連なった領域。CSLと結合しコアクチベーターであるMastermind/Lag-3をリクルートする。
  7. 核移行配列 (nuclear localization sequences, NLS)
  8. PEST配列 (proline/glutamic acid/serine/threonine-rich motives, PEST) 分解促進配列。NICDの安定性を制御する。

ファミリー

ショウジョウバエ(Drosophila melanogaster)では1種類のNotchレセプター(Notch)があるのに対し、線虫(Caenorhabditis elegans)では2種類のNotchレセプター(LIN12, GLP1)、哺乳類では4種類のNotchパラログ(Notch1-4)が報告されている。

図3 Notchタンパク質の発現とプロセシング過程
(A)Notchタンパク質は合成後、ゴルジ体や細胞膜上でさまざまな翻訳後修飾やプロセシングを受け、活性化する。
(B)Notchタンパク質はプロセシングを受けることで活性化する。(a)ゴルジ体ではFurinによるS1サイトの最初の切断を受ける。(b)細胞膜上において、ADAMタンパク質分解酵素によるS2サイトの切断。(シグナルをわかりやすく解説 c)続いてγセクレターゼによるS3/S4サイトの切断によりNotch細胞内ドメインは活性化され、核内へと運ばれる。

活性化とプロセシング

  1. S1 cleavage: Furin cleavage Notchレセプタータンパク質が翻訳され細胞膜へと輸送される間に、Notchタンパク質はゴルジ装置へと運ばれ、Furinによって最初の切断をうける。この過程によってNotchレセプターはS1(site1)部分で半分に切断される。切り出された二つの領域は、HDドメインにて非共有結合によって結合したヘテロ二量体を形成する。ヘテロ二量体となったNotchレセプターは細胞表面へと輸送され、細胞外ドメインを外に出してリガンド分子との相互作用に備える。
  2. S2 cleavage: ADAM cleavage Notchレセプターと隣接細胞上のリガンドとの相互作用は、ADAM(a disintegrin and metaloprotease)タンパク質分解酵素による切断を誘導する。ADAMタンパク質分解酵素による切断は、S2領域で起こる。この領域はNRRドメインによって普段は奥まった場所に位置しており保護されている。この切断のプロセスはNotchシグナル伝達において重要なステップである。
  3. S3/S4 cleavage: γ-secretase cleavage ADAMタンパク質分解酵素によるNotchレセプターの細胞外領域における切断は、次にγセクレターゼによる分解を誘導する。これによって生じた膜に繋がれたNotchの細胞内ドメインは、Notch extracellular truncation(NEXT)と呼ばれる。γセクレターゼは膜内タンパク質分解酵素であり [6] 、NEXTを膜貫通ドメイン(TMD)のS3およびS4の領域で切断する。γセクレターゼの切断が起こらないと、NICDの核内への輸送は起こらない。NICDは核内へと運ばれた後、RBPj/CSLと結合し、コアクチベーターと複合体を形成して、転写因子群の転写を活性化する。

標的遺伝子

哺乳動物の神経系におけるNotchシグナルの標的遺伝子は、bHLH型抑制性転写因子をコードするHesファミリー遺伝子(Hes1, Hes5) [7] およびHes-related遺伝子(Hey1, Hey2) [8] が報告されている。Hesファミリー遺伝子は神経分化を誘導するプロニューラル遺伝子(Ascl1やNeurogenin)の発現や機能を抑制することによって、幹細胞がニューロンへと分化しないように機能している。また、BLBP(brain lipid-binding protein)もNotchシグナルによって直接制御されていることが報告されている [9] 。

神経発生における役割

さらに中枢神経系において、zona limitans intrathalamica (Zli)、峡部 (中脳・菱脳境界背側部のくびれた部位; Isthmus)、底板、蓋板といった領域の境界を形成する構造の形成にも機能していることが報告されている [10] [11] 。

神経幹細胞維持

隣接細胞が発現するDeltaによって活性化されたNotchレセプターは、細胞膜上でレセプターのタンパク質が切り出され、細胞内ドメイン(NICD: Notch intracellular domain)が核内へと移行しNotchシグナルが活性化される。NICDの過剰発現により神経幹細胞からのニューロン分化は抑制される。また、Notchシグナルが活性化された細胞においては、bHLH型抑制性転写因子Hes1、Hes5が発現し、これらの因子がプロニューラル遺伝子の発現や機能を抑制することによって、幹細胞の未分化性を維持している [12] [13] [8] 。

ISH 法解説

in situ hybridization (ISH)法は、in situ(その場所)で核酸のハイブリダイゼーション(補足説明参照) をさせることにより、特定の核酸の分布状態を調べる方法のことです。ISH法には、mRNAの発現分布を調べたり、ウイルス感染を調べ たり、遺伝子の染色体上での位置決定(FISH)を調べるなども含まれますが、このウェブサイトでは、脳組織でmRNAの発現分布を調べる手法としての ISH法に焦点をあてて解説します。

differential distribution of mRNA and proteins


この図はニューロンを模式的に示しています。ほとんどすべての遺伝情報は核内のDNA分子の配列情報としてコードされています。遺伝情報はmRNAに「転 写」され、mRNAの塩基配列は、タンパクのアミノ酸配列に「翻訳」されます(セント ラルドグマ)。
細胞内で遺伝子DNAは核内に存在します。mRNA(ピンクの線)はほとんどの場合細胞体に存在します(樹状突起に輸送されるものもある)。一方タン パクはその性質に応じてさまざまな細胞内領域に存在します(緑のマル)。従ってmRNAの存在場所とタンパクの存在場所は必ずしも一致しません。長い軸索 を持つニューロンの場合、この不一致は重要な意味を持ちます(後述参照)。 ISH法はさまざまな遺伝子のmRNAが混在する中から特定のmRNAだけを検出する方法です。


schmeme of hybridization


mRNAは、遺伝子ごとに異なった塩基配列を持っています。そこで目的の遺伝子を検出するためには、その配列に相補的な配列を持つ「プローブ」と細胞体の mRNAを、その場で(シグナルをわかりやすく解説 シグナルをわかりやすく解説 in situ)ハイブリダイズさせます。適切な条件を選べばプローブは目的の遺伝子由来のmRNAとのみ結合します。このプローブに、DIG (digoxygenin)、FITC (fluorescein)、biotinなどの小分子(ハプテン)で標識を施しておき、それらに対する抗体を使って検出します。抗体を使う代わりに放射 性物質(RI: radioisotopic reagent)で標識しておく方法もあります。


difference between ISH and IHC


上述したように、mRNAは細胞体に局在するのに対し、タンパクはその性質によって局在する場所が異なります。多くの場合、タンパクも細胞体に存在するた め抗体染色とISHは一致しますが、軸索終末に局在するタンパクなどの場合は、神経細胞は遠く離れた場所に軸索をのばすため、両者の局在はまったく異なっ て しまいます。この場合、ISHは目的遺伝子を発現する細胞の細胞体を染めるのに対し、抗体染色はその細胞で発現したタンパクが実際に機能する場所を示すこ とになります。神経系の場合、抗体染色とISHで得られる情報が異なることは決して珍しいことではありません。

例:vesicular glutamate transporter 1 (VGluT1)遺伝子

かつては、ISHの蛍光検出の感度が低かったため、2重染色をするためには抗体が必要と考えられていましたが、私たちが開発した蛍光2重ISH法では、多 くの遺伝子の共発現を調べることができます。タンパクが必ずしも細胞体周辺に局在するとは限らないニューロンの種類の同定を行うためには、ISH法は抗体 染色以上に強力なツールとなることが期待できます。

2. 実験ステップの説明

1) 調べたい遺伝子に対する特異的プローブの作成
2) 脳サンプルの用意
3) 脳組織の染色

プロトコルへのリンク

2)プローブの作成手順

「プローブ」とここで呼んでいるのは、標的遺伝子にはりつくアンチセンスRNAプローブのことです。RNAプローブを合成する ためには、鋳型となるDNA が必要です(もっと詳しく)。鋳型DNAは、さまざ まなルートで入手可能ですが、自作の必要があるときは以下の手順で作成します。

  • (A) 標的遺伝子が発現している組織からRNAを抽出
  • (B) プローブに使いたい配列部分をPCR増幅するために必要なプライマーセットの設計と合成(合成は普通は業者委託)
  • (C) RT-PCRによる遺伝子断片の増幅
  • (D) 増幅した遺伝子断片をプラスミドベクターにクローニングする。
  • (シグナルをわかりやすく解説 E) 正しい配列がクローニングされていることの確認
  • (F) 遺伝子断片を含むプラスミドの大量精製
  • (G) プラスミドを制限酵素で切断し鋳型DNAを作る。
  • (H) Gの鋳型を使ってin vitro転写を行いRNAプローブを調製する。

3)ISH法による脳組織の染色

ISH法による脳組織の染色は、大きく分けて4つのステップから成り立ちます。
a) プローブが細胞内の核酸にアクセスできるようにする前処理
b) ハイブリダイゼーション
c) 非特異的結合除去のための洗い
d) プローブの可視化

a) プローブが細胞内のRNAにアクセスできるようにする前処理

mRNAは細胞体に存在しているので、細胞膜の内側にあります。またタンパク質に囲まれる形で存在しています。プローブに使われるDNA/RNAにはいろ んな種類がありますが、私たちが通常使う500~1000塩基程度のRNA分子は実はかなり巨大な分子であり、何も処理せずにハイブリしても普通は細胞内 のRNAにアクセスできません。そこで界面活性剤で膜を除去したり、Proteinase シグナルをわかりやすく解説 Kでタンパク質を分解する操作が必須となってきます(この操作をしないプロトコルもあります)。特にProteinase Kの条件は非常に重要なパラメーターでISHの結果を大きく左右します。
逆にRNAプローブの方を加水分解で小さい分子にすることを推奨するプロトコルもあります。私たちのプロトコル(浮遊法の場合)ではRNAプローブ が1000塩基を 超えるくらいだと加水分解による効果を確認できました。特に2000塩基を超えているとシグナル強度に大きな差が見られました。しかし、1000塩基以下 のプローブでは特に加水分解をする必要はなく、むしろ非特異的なシグナルを増やすのであまり勧められません。

b) ハイブリダイゼーション

ハイブリダイゼーションに関しては、いろんな分子生物学のテキストで解説されているので、ここでは実験条件を理解する最低限の解説にとどめます。ハイブリ ダイゼーションを理解する上で重要なキーワードは”stringency(厳密さ)”という言葉です。この言 葉を理解するには相補的な核酸同士の結合は必ずしも厳密なものではないという事実を把握する必要が有ります。つまり核酸同士の2重鎖の形成には何百塩基か が少しずつ貢献するので、すこしくらい違う配列でも、条件によっては相補鎖結合を行ってしまうのです。相補鎖結合が起こるためにどの程度配列が厳密に一致 する必要があるかを”stringency”と呼びます。一般に塩濃度が高ければstringencyは低くな り、温度が高ければstringencyは高くなります。
ISH法がうまく行くためには、細胞中のRNAと、プローブRNA(もしくはDNA)との間で配列特異的な結合が起こる必要がありますから、 stringencyは十分高くなくてはなりません。ところがstringencyを高くしすぎると結合そのものの効率が悪くなります。そこで通常は少し 低めのstringencyでハイブリダイゼーションを行い、ハイブリ後の洗いでより高いstringencyを確保しています。
ここで大事なのは配列によってハイブリダイゼーションの至適条件は異なるということです。GC間の結合は、AU間の結合より強いので、配列中にG, Cが多く含まれる配列はより高い温度でハイブリさせないとstringency が低くなって非特異的な結合が増えてしまうのです。上述したようにstringency の高さはハイブリ後の洗いによってある程度確保できるのですが、GC比率が高い配列を低い温度でハイブリさせてしまうと、洗いで除去できないほど高い非特 異的結合が生じてしまうことがあります。従ってハイブリの条件は用いるプローブごとに変える必要が有ります。
ハイブリのstringencyは、ハイブリ液の組成と温度で決まりますが、その調整は通常温度調節で行います。ただし、ハイブリの温度の設定には stringency以外の要因がからんできます。高温条件ではプローブの浸透性がよくなるため、一般にハイブリ効率はよくなります(ただし stringencyも高くなるので、一定温度以上になると逆にハイブリ効率は下がります)。一方、組織のダメージが大きいので、切片がぼろぼろになりや すくなります。そこでハイブリの温度はstringency、プローブの浸透性、切片へのダメージなどの条件の兼ね合いで決めることになります。私たちは 浮遊法(後述参照)ではハイブリの温度は通常60℃で行い、GC比率の高いプローブの場合に65℃、68℃、72℃など、より高い温度でのハイブリを試み ることにして います。なお、あまりにGC比率が高い場合には、72℃でも非特異的結合が見えることもあるので、GC比率の高いプローブはできるだけ避けた方が無難で す。

c) 非特異的結合除去のための洗い

ハイブリ後の洗いは、stringencyの低い条件からより高い条件へ順番に行います(できるだけムラをなくすため)。Stringencyは塩濃度と 温度で調整可能なのですが、それだけでは非特異的な結合を除去するのは難しいので、RNaseによって正確な相補結合をしていない部分を切断します。相補 的な結合を行っている部分はRNaseの分解から保護されます。プロトコルによっては、RNase処理を行わないこともありますが、多くのプロトコルでは 必須です。RNase処理後に洗いのstringencyを上げて、切片に対して非特異的結合をしているRNA断片をはがします。

d) プローブの可視化

プローブの可視化にはいろんな方法があります。かつては放射線同位元素でプローブを標識する方法(RI法)がよく用いられましたが、私たち は放射線同位元素を使わない方法(non-RI法)を使っています。
Non-RI法で、一番多用されている方法はDigoxygenin (DIG)を取り込んだアンチセンスRNAをプローブとして用い、アルカリンフォスファターゼ標識抗DIG抗体で認識、最終的にはNBT/BCIPなどの アルカリンフォスファターゼ基質の発色反応で検出する方法です。DIGのかわりにbiotin, fluorescein (シグナルをわかりやすく解説 FITC)を用いたり、NBT/BCIPの代わりに他の反応基質を用いることもあります。特にHNPP/Fast Redなどの蛍光基質は2重染色に有効です。この可視化の部分は商品的にはさまざまなオプションが有るのですが、現実的には感度があまりよくない場合が多 く、選択は限られてきます。私たちはTSA (tyramide signal amplification)法を活用することで、簡便で感度の高い蛍光2重ISH法を開発しました。

3. ISHの結果を左右するパラメータについて

1)プロトコルの選択

ISH法にはさまざまなプロトコルがあります。このホームページでは、基本プロトコルとして浮遊法とスライドガラス法の2種類の方法を紹介しています。以 下にまずこの2法について簡単に説明し、ISH法の選択を考える上で重要と思われるパラメーターについて、それ以外のプロトコルからも例を取りながら説明 します。

固定した脳ブロックをマイクロスライサーで15-50 µm厚の切片にします。浮遊状態の切片をproteinase K、アセチル化処理した後、50-70℃でDIG (もしくはFITC)で標識されたアンチセンスRNAとともにハイブリします。ハイブリ後、RNase処 理を含む洗いを行い、アルカリンフォスファ ターゼ標識抗DIG (FITC)抗体により認識、フォスファターゼ基質の発色、発光により検出します。そののち切片をスライドガラスに貼り付けエンテラン などに包埋します。なお、私はほとんどこちらの方法でISHを行っています。プロトコルはこ ちら。

サンプルは、固定せずに取り出した脳を急速凍結して使います。この脳ブロックをクライオスタットで10-20 µmの切片に薄切し、スライドガラス上に取ります。これ以降の操作はすべてスライドガラス上で行います。まずPFA(パラフォルムア ルデヒド)溶液で、潤水操作(rehydration)と後固定を同時に行います。Protainase K処理はせずアセチル化のみを行い、DIG (もしくはFITC)で標識されたアンチセンスRNAとともに72℃でハイブリします。ハイブリ後はRNase処理はせず、72℃での洗いのみを行いま す。アルカリンフォスファターゼ標識抗DIG(FITC)抗体により認識、フォスファターゼ基質の発色、発光により検出します。プロトコルはこ ちら。

シグナルをわかりやすく解説
浮遊法 スライドガラス法
原法 Liang ら(2000) Schaeren -Wiemersら(1993)
特徴 固定済みの脳切片を浮遊状態でISHをすることにより、試 薬の浸透効率をアップ。 スライドガラス上でISHを行う。高温でハイブリから洗い までを行うことにより、ステップが簡素化。
長所 固定済みサンプルをきれいに染める。組織学的に美しい標本 を作りやすい。 ほとんど条件設定しなくても、低バックグラウンドで高感度 の染色が可能。非常に簡単。
短所 スライドガラス法より操作はやや煩雑。胎生脳や、バラバラ になりやすいサンプルは難しい。 高温でハイブリするためサンプルを傷つけやすい。写真はや やとりにくい。
向いている
サンプル
固定済みの成熟脳など。 組織の柔らかい胎生児の脳や、未固定の脳を急速凍結したサ ンプル。
切片厚 15-50 µm 10-20 µm
ProK処理 必要。濃度条件は重要。 通常は不要。固定脳の場合は必要。
RNase処理 必要。 通常は不要。固定脳でバックグラウンドが高い時はした方が いい。
ハイブリ温度 60-72℃。プローブによって条件設定必要。 72℃
感度 良好 良好
バックグラウンド 低い。 低い。
試薬の浸透性 良い。 悪い。シグナルはほとんど表面のみ。
難しい点 染色後の切片張り クライオスタットによる切片作成

一般に「固い」サンプルの場合は、浮遊法の方が向いています。きれいな標本を作るのは、浮遊法の方がおそらく簡単で、写真も撮りやすいと思います。スライ ドガラス法は、切片が薄いためか、切片の形が分かりづらく、きれいな写真を撮るのは難しいように感じます。なお、このウェブサイトで紹介している写真のほ とんどすべては浮遊法で行っています。一方マウス胎児など浮遊法だとばらばらになってしまう場合は、スライドガラス法の方が向いているでしょう。

2) プローブについて

かつてはISH法の標準はRI標識したプローブを用いたRI法でした。今でもnon-RI法は感度が悪いと思っている人もいるかも知れません。確かにシグ ナル強度という意味ではRI法は感度が良いのですが、解像度を加味すると必ずしもそうとはいえません。例えばRI法で発現しないとされていた遺伝子でも、 我々がnon-RI法で調べると実はまばらな発現を見せていたことがありました。今まで数多くの遺伝子のISHを行いましたが、論文でRI法で検出されて いる遺伝子の大部分がnon-RI法で検出できました。さまざまな細胞種が混在する脳においては、大まかな解剖学的単位以上に細胞種が大事だと私は考えま す。従って細胞レベルの解像度を持たないRI法より、non-RI法を推奨します。

このサイトではアンチセンスRNAをプローブとした方法を前提として考えています。オリゴDNAをRIもしくは、DIGで標識してプローブに使う方 が、分子生物学をしていないラボには簡単かも知れませんが、論文を見る限り、はるかに感度は落ちます。重要な発現を見落とす可能性が大きいので、特殊な用 途以外には勧められません。RNAではなく、DNAをラベルしてプローブにする方法もあるようですが、RNAプローブを使った場合と比べてどちらが良いか シグナルをわかりやすく解説 シグナルをわかりやすく解説 は分かりません。ただし教科書的には、RNA-RNAの結合の方が、RNA-DNAの結合より強固なので、RNAプローブの方が感度が高いと思います。

アンチセンスRNAをDIG標識する場合、DIG標識したウラシル(U)をRNA転写の際に取り込ませるので、長ければ長いほど1RNA分子あたりの DIG分子の数が増え、一般的には感度が良くなります。ただし1000塩基を超えると浮遊法ではプローブが浸透しにくくなるので、あまり長すぎると逆にシ グナルは落ちてきます。私たちは500-1200塩基くらいのプローブを設計し、シグナルが弱い場合には、同じ遺伝子の別の領域から新しいプローブを作 り、混合して使っています。長いプローブ(例えば2000塩基くらい)でも、部分的加水分解によってプローブを断片化すると使えます。ただし配列によって はバックグラウンドも上がるので注意が必要です。なお長さの浸透性への影響はプロトコルによって左右されると思います。例えばスライドガラス法ではプロー ブが長くなることによるシグナル減弱はほとんど見られませんでした。これはスライドガラス法では、プローブがあまり深い部分まで浸透していないからかも知 れません。

3) 固定について

サンプルの固定状態はISHに大きく影響します。私たちの標準的な方法では、4%パラホルムアルデヒド/0.1M PBで灌流した脳は、室温数時間〜4℃一晩同じ固定液で固定を続け、そののち、4℃で30%スクロース/0.1M PBで数日〜2週間置きます。液が十分サンプルに浸透したら、スライディングスライサーで凍結切片を作成し、切片をさらに室温2時間〜4℃一晩固定液に漬 けた後、ISHに用います。

4. ISH法の応用

1) 2重ISH法

2種類の遺伝子産物が同一の細胞で発現しているのかどうかは、非常に重要な問題です。今までいくつかの2重ISH法が報告されています。もっとも初期から 行われているのは、RIとDIG標識の2重ISH法だと思います。しかしこの方法は細胞レベルでは感度が十分ではありません。 発生生物学などでは、2種類の違うアルカリンフォスファターゼ基質を使った2重ISH法もうまく使われています。最近私たちの研究室を含めていく つかのラボで使われているのはTSA (Tyramide Signal Amplification)法を使うやり方です。TSA法は非常に大きくシグナル増強できる反面、バックグラウンドも出やすいので、うまく条件 シグナルをわかりやすく解説 シグナルをわかりやすく解説 設定できていないと汚い染色になります。しかしうまく使えば美しい染色が可能です。またすぐれた蛍光発光基質の開発で、まだ感度は不足しているもののかな り自由に蛍光2重ISH法ができるようになっています。

2) ISH法のさらなる応用

蛍光ISH法がうまく行くようになったことで、他の手法との組み合わせもよりうまく行くようになっています。例えば抗体染色と2重蛍光ISH法を組み合わ せると多重染色が可能です。BrdUで標識するBirthdatingとの組み合わせ、レトログレードトレーサーとの組み 合わせなどは特に神経解剖学を研究する上で貴重なツールになるでしょう。

【2022年最新】Instagramのアルゴリズムを理解しよう

Instagramのアルゴリズムを理解しよう

Creators are so important to the future of Instagram, and we want to make sure that they are successful シグナルをわかりやすく解説 and get all the credit they deserve. pic.twitter.com/PP7Qa10oJr

— Adam Mosseri (@mosseri) April 20, 2022

フィードとストーリーズのランク付け

Instagramアルゴリズム

  • 関心度:ターゲット層の関心にあったコンテンツであるか
  • 親密度:アカウントと利用者がどのくらい親密であるか
  • 鮮度:最近の投稿であるか

インスタグラムのアルゴリズム

親密度とは、ユーザーとアカウントの繋がりの深さを指しています。これは、ユーザーが過去に取った行動をもとに計算されます。フィードで重要なインタラクションは、 滞在時間、コメント、「いいね!」、保存、プロフィールタップの5つ です。つまり、過去のコンテンツをよく見てくれている・よくリアクションしてくれているフォロワーには表示されやすいということです。

  1. 投稿に関する情報
    投稿の人気度と、投稿に関する一般的な情報は重要なシグナルのひとつです。人気度とは何人がその投稿に「いいね!」などのアクションを実行したかなどを含み、一般的な情報とは投稿日時、動画投稿の場合はその長さ、(スポット情報がある場合は)投稿が関連付けられた地域などを指します。
  2. 投稿者の情報
    閲覧者の投稿者に対する関心の度合いも重要です。直近の数週間で、閲覧者がその投稿者と何回やり取りをしたかなどが含まれます。
  3. 閲覧者のアクティビティ
    閲覧者が「いいね!」した投稿数なども優先されるシグナルです。これによって、どんな投稿に関心を持つ可能性があるのかが明らかになります。
  4. 閲覧者と特定の利用者のやり取りした履歴
    閲覧者が特定の利用者と相互にコメントのやりとりをしているかどうかなどから、その投稿にどれくらい興味を持っているかを判別します。

発見タブとリールタブのランク付け

  1. 投稿に関する情報
    発見タブでは、投稿の人気度が重要です。人気度は、他のユーザーが「いいね!」「コメント」「保存」した数と、そのリアクションの素早さをシグナルとして見ています。この反応数や反応の速さは、フィードやストーリーズよりも発見タブで重要なシグナルです。
  2. 投稿者とのやりとりの履歴
    過去にやりとりしたことのある、フォローしていないアカウントからのコンテンツは優先して表示されます。例えば過去に「いいね!」はしたけどフォローはしていないアカウントからの次のコンテンツなどです。
  3. 閲覧者のアクティビティ
    閲覧者が過去に「いいね!」したり、保存したり、コメントしたりした投稿や、発見タブでどのような行動を取っていたかがシグナルとなります。これらのアクティビティから、どんな投稿に関心を持っているかを判別します。
  4. 投稿者の情報
    過去数週間にインタラクションを集めたコンテンツを投稿しているユーザーの投稿が表示されます。これによって、幅広い人々の魅力的なコンテンツに接触する機会を作っています。
  1. 閲覧者のアクティビティ
    リールタブでは、閲覧者が過去にどんなリールにエンゲージしたかを重視しています。リールへの「いいね!」、コメント、音源ページへの遷移などがシグナルとなります。音源ページへの遷移は、同じ音源を使用したコンテンツを見てみたくなった、自分も同じ音源で投稿してみたくなったことを示す行動として評価され、同じ音源を使用したコンテンツがレコメンドされる可能性があります。
  2. 投稿者とのやり取りの履歴
    発見タブと同じく、過去にやりとりがあり、フォローしていないアカウントからのリールは関心が高いものとして表示されます。
  3. リールに関する情報
    動画の解像度や人気度、使っている音源なども重要なシグナルです。解像度の低い動画は、低品質のコンテンツとしてレコメンドされなくなるので注意しましょう。人気の音源は音源自体に関心を持っているユーザーが多いと想定されるため、リールタブに表示されやすくなる可能性があります。流行の音源は積極的に取り入れてみましょう。
  4. 投稿者の情報
    発見タブと同様に、人気の投稿者(クリエイター)からのリールは、魅力的なコンテンツを広めるため、表示されやすくなっています。

シグナルを貯めるためにやるべきこと

投稿は少なくとも2〜3日に1回程度

興味を惹く一貫した投稿

コメントに反応する

アクションを促す

滞在時間が長くなるコンテンツを配信する

ひとつの 投稿に複数枚の画像・動画を含めることで、 投稿の閲覧時間(=アカウントの滞在時間)を伸ばすことができます。イラストやストーリー、詳しい説明を加えるなど、投稿をじっくり見たくなるような工夫も有効です。IGTVを活用し、長尺の動画を配信しても良いでしょう。

定期的なインサイト分析

コムニコマーケティングスイート

Instagramライブを活用する

インタラクティブスタンプを利用する

カメラエフェクトを活用する

ユーザーの投稿をリポスト

人気の音源を使用したリールを作成する

Instagramの様々な機能を使いこなす

まとめ:アルゴリズムを理解して、運用効果を高めよう

Instagram事例集


アカウントの方針やコンテンツに迷ったら他社の事例を参考にするのもおすすめです。業界別にInstagram企業アカウントの事例をまとめた無料eBookを公開していますので、ぜひ以下のフォームからダウンロードしてみてください。
(フォームが表示されない方はこちら)

signal --- 非同期イベントにハンドラを設定する¶

The signal.signal() function allows defining custom handlers to シグナルをわかりやすく解説 be executed when a signal is received. A small number of default handlers are installed: SIGPIPE is ignored (so write errors on pipes and sockets can be reported as ordinary Python exceptions) and SIGINT is translated into a KeyboardInterrupt exception if the parent process has not changed シグナルをわかりやすく解説 it.

特定のシグナルに対するハンドラが一度設定されると、明示的にリセットしないかぎり設定されたままになります (Python は背後の実装系に関係なく BSD 形式のインターフェースをエミュレートします)。例外は SIGCHLD のハンドラで、この場合は背後の実装系の仕様に従います。

Python のシグナルハンドラの実行¶

Python のシグナルハンドラは、低水準 (C言語) のシグナルハンドラ内で実行されるわけではありません。代わりに、低水準のシグナルハンドラが virtual machine が対応する Python のシグナルハンドラを後から (例えば次の bytecode 命令時に) 実行するようにフラグを立てます:

It makes little sense to catch synchronous errors like SIGFPE or SIGSEGV that are caused by an invalid operation in C code. Python will return from the signal handler to the C code, which is likely to raise the same signal again, causing Python to apparently hang. From Python シグナルをわかりやすく解説 3.3 onwards, you can use the faulthandler module to report on synchronous errors.

完全にCで実装された長時間かかる計算 (大きいテキストに対する正規表現のマッチなど) は、どのシグナルを受信しても中断されないまま長時間実行され続ける可能性があります。Python のシグナルハンドラはその計算が終了してから呼び出されます。

If the handler raises an exception, it will be raised "out of thin air" in the main thread. See the note below for a discussion.

シグナルとスレッド¶

Python のシグナルハンドラは、もしシグナルを受け取ったのが別のスレッドだったとしても、常にメインインタープリターの Python のメインスレッドで実行されます。このためシグナルをスレッド間通信に使うことはできません。代わりに threading シグナルをわかりやすく解説 モジュールが提供している同期プリミティブを利用できます。

モジュールの内容¶

バージョン 3.5 で変更: signal (SIG*), handler ( SIG_DFL , SIG_IGN ) and sigmask ( SIG_BLOCK , SIG_UNBLOCK , SIG_SETMASK ) related constants listed below were turned into enums . getsignal() , pthread_sigmask() , シグナルをわかりやすく解説 sigpending() and sigwait() functions return human-readable enums .

二つある標準シグナル処理オプションのうちの一つです; 単純にシグナルに対する標準の関数を実行します。例えば、ほとんどのシステムでは、 SIGQUIT に対する標準の動作はコアダンプと終了で、 SIGCHLD に対する標準の動作は単にシグナルの無視です。

Interrupt from keyboard (CTRL + BREAK).

Bus error (bad memory access).シグナルをわかりやすく解説

Child process stopped or terminated.

Continue the process if it is currently stopped

Floating-point exception. For example, division by zero.

ZeroDivisionError is raised when シグナルをわかりやすく解説 シグナルをわかりやすく解説 the second argument of a division or modulo operation is zero.

Hangup detected on controlling terminal or death of controlling process.

Interrupt from シグナルをわかりやすく解説 keyboard (CTRL + C).

Default action is to raise KeyboardInterrupt .

It cannot be caught, blocked, or ignored.

Broken pipe: write to pipe with no シグナルをわかりやすく解説 readers.

Default action is to ignore the signal.

Segmentation fault: invalid memory reference.

User-defined signal 1.

User-defined signal 2.

Window resize signal.

全てのシグナル番号はシンボル定義されています。例えば、ハングアップシグナルは signal.SIGHUP で定義されています; 変数名は C 言語のプログラムで使われているのと同じ名前で、 にあります。 ' signal() ' に関する Unix マニュアルページでは、システムで定義されているシグナルを列挙しています (あるシステムではリストは signal(2) に、別のシステムでは signal(7) に列挙されています)。全てのシステムで同じシグナル名のセットを定義しているわけではないので注意してください; このモジュールでは、システムで定義されているシグナル名だけを定義しています。

CTRL + C キーストロークに該当するシグナル。このシグナルは os.kill() でだけ利用できます。

CTRL + BREAK キーストロークに該当するシグナル。このシグナルは os.kill() でだけ利用できます。

最も大きいシグナル番号に 1 を足した値です。

プロセスの実行時間だけデクリメントするインターバルタイマーです。タイマーが発火したときに SIGVTALRM を送ります。

プロセスの実行中と、システムがそのプロセスのために実行している時間だけデクリメントするインターバルタイマーです。ITIMER_VIRTUAL と組み合わせて、このタイマーはよくアプリケーションがユーザー空間とカーネル空間で消費した時間のプロファイリングに利用されます。タイマーが発火したときに SIGPROF を送ります。

pthread_sigmask() の how 引数に渡せる値で、シグナルがブロックされることを意味します。

pthread_sigmask() の how 引数に渡せる値で、シグナルがブロック解除されることを意味します。

exception signal. ItimerError ¶

背後の setitimer() または getitimer() 実装からエラーを通知するために送出されます。無効なインタバルタイマーや負の時間が setitimer() に渡された場合、このエラーを予期してください。このエラーは OSError を継承しています。

バージョン 3.3 で追加: このエラーは以前は IOError のサブタイプでしたが、 OSError のエイリアスになりました。

signal. alarm ( time ) シグナルをわかりやすく解説 シグナルをわかりやすく解説 シグナルをわかりやすく解説 ¶

time がゼロでない値の場合、この関数は time 秒後頃に SIGALRM をプロセスに送るように要求します。それ以前にスケジュールしたアラームはキャンセルされます (常に一つのアラームしかスケジュールできません)。この場合、戻り値は以前に設定されたアラームシグナルが通知されるまであと何秒だったかを示す値です。 time がゼロの場合、アラームは一切スケジュールされず、現在スケジュールされているアラームがキャンセルされます。戻り値がゼロの場合、現在アラームがスケジュールされていないことを示します。

signal. getsignal ( signalnum ) ¶

シグナル signalnum に対する現在のシグナルハンドラを返します。戻り値は呼び出し可能な Python オブジェクトか、 signal.SIG_IGN 、 signal.シグナルをわかりやすく解説 SIG_DFL 、および None といった特殊な値のいずれかです。ここで signal.SIG_IGN は以前そのシグナルが無視されていたことを示し、 signal.SIG_DFL は以前そのシグナルの標準の処理方法が使われていたことを示し、 None はシグナルハンドラがまだ Python によってインストールされていないことを示します。

signal. strsignal ( signalnum ) ¶

Return the system description of the signal シグナルをわかりやすく解説 signalnum, such as "Interrupt", "Segmentation fault", etc. Returns None if the signal is not recognized.

Return the set of valid signal numbers on this シグナルをわかりやすく解説 platform. This can be less than range(1, NSIG) if some signals are reserved by the system for internal use.

signal. raise_signal ( signum ) ¶

Sends a signal to the calling process. Returns nothing.

Send signal sig to the process referred to by file descriptor pidfd. Python does シグナルをわかりやすく解説 not currently support the siginfo parameter; it must be None . The flags argument is provided for future extensions; no flag values are currently シグナルをわかりやすく解説 defined.

Send the signal signalnum to the thread thread_id, another thread in the same process as the caller. The target thread can be executing any code (Python or not). However, if the target thread is executing the Python interpreter, the Python signal handlers will be executed by シグナルをわかりやすく解説 the main thread of the main interpreter . Therefore, the only point of sending a signal to a particular Python thread would be to force a running system call to fail with InterruptedError .

Use threading.get_ident() or the ident attribute of threading.Thread objects to get a suitable シグナルをわかりやすく解説 value for thread_id.

If signalnum is 0, then no signal is sent, but error checking is still performed; this can be used to check シグナルをわかりやすく解説 if the target thread is still running.

引数 thread_id , signalnum を指定して 監査イベント signal.pthread_kill を送出します。

これを呼び出すスレッドにセットされているシグナルマスクを取り出したり変更したりします。シグナルマスクは、呼び出し側のために現在どのシグナルの配送がブロックされているかを示す集合 (set) です。呼び出し前のもとのシグナルマスクを集合として返却します。

この関数の振る舞いは how に依存して以下のようになります。

呼び出しスレッドにセットされたシグナルマスクを問い合わせるには例えば signal.pthread_sigmask(signal.SIG_BLOCK, シグナルをわかりやすく解説 []) とします。

SIGKILL and SIGSTOP cannot be blocked.

Sets given interval timer (one of signal.ITIMER_REAL , signal.ITIMER_VIRTUAL or signal.ITIMER_PROF ) specified by which シグナルをわかりやすく解説 to fire after seconds (float is accepted, different from alarm() ) and after that every interval seconds (if interval is non-zero). The interval timer specified by which can be cleared by setting seconds to zero.

インターバルタイマーが起動したとき、シグナルがプロセスに送られます。送られるシグナルは利用されたタイマーの種類に依存します。 signal.ITIMER_REAL の場合は SIGALRM が、 signal.ITIMER_VIRTUAL の場合は SIGVTALRM が、 signal.ITIMER_PROF の場合は SIGPROF が送られます。

以前の値が (delay, interval) のタプルとして返されます。

signal. getitimer ( which ) ¶

signal. set_wakeup_fd ( fd , * , warn_on_full_buffer = True ) ¶

Set the wakeup file descriptor to fd. When a signal is received, the signal number is written as a single byte into the fd. This can be used by a シグナルをわかりやすく解説 library to wakeup a poll or select call, allowing the signal to be fully processed.

The old wakeup fd is returned (or -1 if file descriptor wakeup was not enabled). If fd is -1, file descriptor wakeup is disabled. If not -1, fd must be non-blocking. It シグナルをわかりやすく解説 is up to the library to remove any bytes from fd before calling poll or select again.

スレッドが有効な場合、この関数は メインインタープリターのメインスレッド からしか実行できません。それ以外のスレッドからこの関数を実行しようとすると ValueError 例外が発生します。

There are two シグナルをわかりやすく解説 common ways to use this function. In both approaches, you use the fd to wake up when a signal arrives, but then they シグナルをわかりやすく解説 シグナルをわかりやすく解説 differ in how they determine which signal or signals have arrived.

In the first approach, we read the data out of the fd's buffer, and the byte values give you the signal numbers. This is simple, but in rare cases it can run into a problem: generally the fd will have a limited amount of buffer space, and if too many signals arrive too quickly, then the buffer may become full, and some signals may be lost. If you use this approach, then you should set warn_on_full_buffer=True , which will at least cause a シグナルをわかりやすく解説 warning to be printed to stderr when signals are lost.

In the second approach, we use the wakeup fd only for wakeups, and ignore the actual byte values. In this case, all we care about is whether the fd's buffer is empty or non-empty; a full シグナルをわかりやすく解説 シグナルをわかりやすく解説 buffer doesn't indicate a problem at all. If you use this approach, then you should set warn_on_full_buffer=False , so that your users are not シグナルをわかりやすく解説 confused by spurious warning messages.

バージョン 3.5 で変更: Windowsで、この関数はソケットハンドルをサポートするようになりました。

バージョン 3.7 で変更: `` warn_on_full_buffer``引数が追加されました。

システムコールのリスタートの動作を変更します。 flag が False の場合、 signalnum シグナルに中断されたシステムコールは再実行されます。それ以外の場合、システムコールは中断されます。戻り値はありません。

signal() を使ってシグナルハンドラを設定したときに、暗黙のうちに flag に true を指定して siginterrupt() が実行されるため、中断に対するリスタートの動作がリセットされることに注意してください。

signal. signal ( signalnum , handler ) ¶

シグナル signalnum に対するハンドラを関数 handler にします。 handler は二つの引数 (下記参照) を取る呼び出し可能な Python オブジェクトか、 signal.SIG_IGN あるいは シグナルをわかりやすく解説 signal.SIG_DFL といった特殊な値にすることができます。以前に使われていたシグナルハンドラが返されます (上記の getsignal() の記述を参照してください)。 (さらに詳しい情報については Unix マニュアルページ signal(2) を参照してください。)

スレッドが有効な場合、この関数は メインインタープリターのメインスレッド からしか実行できません。それ以外のスレッドからこの関数を実行しようとすると ValueError 例外が発生します。

handler は二つの引数とともに呼び出されます: シグナル番号、および現在のスタックフレーム ( None またはフレームオブジェクト; フレームオブジェクトについての記述は シグナルをわかりやすく解説 シグナルをわかりやすく解説 標準型の階層における説明 か、 inspect モジュールの属性の説明を参照してください)。

On Windows, signal() can only be called with SIGABRT , SIGFPE , SIGILL , SIGINT , SIGSEGV , SIGTERM , or SIGBREAK . A ValueError will be raised in any other case. Note that not all systems define the same set of signal names; an AttributeError will be raised if a signal name is not defined as SIG* module level constant.

呼び出しスレッドで配送が保留されているシグナル (つまり配送がブロックされている間に発生したシグナル) の集合を調べます。保留中のシグナルの集合を返します。

sigset 集合で指定されたシグナルのうちどれか一つが届くまで呼び出しスレッドを一時停止します。この関数はそのシグナルを受け取ると (それを保留シグナルリストから取り除いて) そのシグナル番号を返します。

Suspend execution of the calling thread until the delivery of one of the signals specified in the signal set sigset. The function accepts the signal and removes it from the pending シグナルをわかりやすく解説 list of signals. If one of the signals in sigset is already pending for the calling thread, the function will return immediately with information about that signal. The signal handler is not called for the delivered signal. The function raises an InterruptedError if it is interrupted by シグナルをわかりやすく解説 a signal that is not in sigset.

The return value is an object representing the data contained in the siginfo_t structure, namely: si_signo , シグナルをわかりやすく解説 si_code , si_errno , si_pid , si_uid , si_status , si_band .

バージョン 3.5 で変更: The function is now retried if interrupted by a signal not in sigset and シグナルをわかりやすく解説 the signal handler does not raise an exception (see PEP 475 for the rationale).

Like sigwaitinfo() , but takes an additional timeout argument specifying a timeout. If timeout is specified as 0 , a poll is performed. Returns None if a timeout occurs.

バージョン 3.5 で変更: The function シグナルをわかりやすく解説 is now retried with the recomputed timeout if interrupted by a signal not in sigset and the signal handler does not raise an exception (シグナルをわかりやすく解説 シグナルをわかりやすく解説 see PEP 475 for the rationale).

以下は最小限のプログラム例です。この例では alarm() を使ってファイルを開く処理を待つのに費やす時間を制限します; 例えば、電源の入っていないシリアルデバイスを開こうとすると、通常 os.open() は未定義の期間ハングアップしてしまいますが、この方法はそうした場合に便利です。ここではファイルを開くまで 5 秒間のアラームを設定することで解決しています; ファイルを開く処理が長くかかりすぎると、アラームシグナルが送信され、ハンドラが例外を送出するようになっています。

Note on SIGPIPE¶

Piping output of your program to シグナルをわかりやすく解説 tools like head(1) will cause a SIGPIPE signal to be sent to your process when the receiver of its standard output closes early. This results in an exception like BrokenPipeError: [Errno 32] Broken pipe . To handle this case, wrap your entry point to catch this exception as follows:

Do not set SIGPIPE 's disposition to SIG_DFL in order to avoid BrokenPipeError . Doing that would cause your program to exit unexpectedly whenever any socket connection is interrupted while your program is still writing to it.

Note on Signal Handlers and Exceptions¶

If a signal シグナルをわかりやすく解説 handler raises an exception, the exception will be propagated to the main thread and may be raised after any bytecode instruction. Most notably, a シグナルをわかりやすく解説 KeyboardInterrupt may appear at any point during execution. Most Python code, including the standard library, cannot be made robust against this, and so シグナルをわかりやすく解説 シグナルをわかりやすく解説 シグナルをわかりやすく解説 a KeyboardInterrupt (or any other exception resulting from a signal handler) may on rare occasions put the program in an unexpected state.

To illustrate シグナルをわかりやすく解説 シグナルをわかりやすく解説 シグナルをわかりやすく解説 this issue, consider the following code:

For many programs, especially those that merely want to exit on KeyboardInterrupt , this is not a problem, シグナルをわかりやすく解説 but applications that are complex or require high reliability should avoid raising exceptions from signal handlers. They should also avoid catching KeyboardInterrupt as a means of gracefully shutting down. Instead, they should install their own SIGINT handler. Below is an example of an HTTP server that avoids KeyboardInterrupt :

関連記事

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次
閉じる