()

参考資料と備忘録

【電子状態計算/量子化学計算について】

【GRRM関連のテキスト】

【遷移状態理論について】

【グラフ理論ほか】

【化学に関する勉強用論文・テキスト】

【動画など】

【化合物・構造データベース+その他】

【その他のプログラム関係のツール類】

【プログラミング】

GitHubアカウントを持っている人は、GitHubの資料はブックマーク機能で整理しておくと便利です。

プログラミング自体はオンラインアプリを使えば環境構築(=プログラミング言語を使えるようにする作業)をせずに 誰でもすぐに始めることができます。例えば以下のようなものがあります。

これらのオンラインアプリでコードを動かすことができます。プログラムを使って何をしたいかによって、 実装の難度が変わってきます。化学科の化学実験II(旧「計算機実習」)の課題はプログラミングスキルとしては いずれも初級レベルの内容です。研究にプログラムを利用する場合はより高度な実装が求められますが、 インターネットを通じてうまく情報収集すれば大抵のことは実現できます。以下に、今後役立つかもしれない プログラミング用の教材を挙げておきます。

【プログラミング全般】

【(主に)Python】

【JavaScript】

【Julia言語】

【その他】

【Markdown記法】

(1. は辞書のように充実しているのでサクッと調べたいときは 2. を参照のこと)

    1. Markdown記法 チートシート - Qiita
    2. Markdown記法 サンプル集 - Qiita

【LaTeX文書関連】

LaTeX形式で卒論修論博論を書きたい方向けの情報をまとめておきます。 「LaTeX 卒論 テンプレート」などで検索すれば大量の情報がヒットします。 レポート課題なんかも数式を多用するのであればLaTeX形式で作成するのがオススメです。 TeXの数式レンダリングは非常に美しいためです。(最初は慣れが必要ですが…)

個人的にはOverleafというオンラインアプリでの作成を推奨しています。こちらも検索すれば大量の情報がヒットします。 中でも東大工学部が公開しているテンプレートは実用的であり貴重です。以下にツールセットを紹介します。

    1. Gallery — University of Tokyo - Overleaf(LaTeX形式の卒論修論博論テンプレート)
    2. mathpix (数式の画像をキャプチャしてLaTeXコマンドを生成する「数式起こし」アプリ; 手打ちだと大変な数式でもラクに&高精度で起こせるので非常に重宝する)
    3. TeXer - AoPS(数式のLaTeXコマンドをリアルタイムレンダリングしてくれるオンラインアプリ; "RENDER MATHJAX" のボタンを押すとMathjax(Javascriptのライブラリ)による リアルタイムレンダリングが実行されます;因みに AoPS は競技数学専門の掲示板です)
    4. 【Python】png,jpeg,gif画像をeps形式に変換する - Qiita (LaTeX文書への画像挿入はeps形式に変換して行うとサイズ指定などがラクです;pdf形式の画像でもOK)

【スパコン関連(マニュアル、scpでのファイル移動など)】

    1. 京都大学  https://web.kudpc.kyoto-u.ac.jp/manual/ja
    2. 一週間でなれる!スパコンプログラマ - kaityo256氏 (github)
[hoge@bserver ~]$ scp -i /home/hoge/.ssh/(aserverの秘密鍵) -r hoge@aserver.ac.jp:(移動したいファイルのパス) (移動先のパス)
Enter passphrase for key '/home/nabata/.ssh/(aserverの秘密鍵)':

※上手くいかない場合は秘密鍵の規格が悪い可能性があるので、鍵を別のフォーマットで再作成してみる (MobaXtermの場合は既存の鍵を用いて再作成可能)。
※MobaXtermのバージョンが古いという原因も考えられるので、最新のバージョンにアップグレードして再試行してみること。

【コマンド】

[user@ccfep7 ~]$ hostname -I
10.20.32.7 10.10.32.7 133.48.230.17

[user@ccfep7 ~]$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
(中略)
7: bond1: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 0c:c4:7a:ea:9f:08 brd ff:ff:ff:ff:ff:ff
    inet 133.48.230.17/24 brd 133.48.230.255 scope global noprefixroute bond1
       valid_lft forever preferred_lft forever
    inet6 fe80::8689:732e:69a:2ca0/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

[user@ccfep7 ~]$ ifconfig
bond1: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST>  mtu 1500
        inet 133.48.230.17  netmask 255.255.255.0  broadcast 133.48.230.255
        inet6 fe80::8689:732e:69a:2ca0  prefixlen 64  scopeid 0x20<link>
(以下略)

【参考】 インターネット初期に日本に割り振られたIPアドレス一覧 - ぺんたん.info

[user@gr24 ~]$ cat /proc/version
Linux version 3.10.0-693.21.1.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) ) #1 SMP Wed Mar 7 19:03:37 UTC 2018
[user@gr24 ~]$ cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 85
model name      : Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz
stepping        : 4
microcode       : 0x2000050
cpu MHz         : 2401.000
cache size      : 28160 KB
physical id     : 0
siblings        : 20
core id         : 0
cpu cores       : 20
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 22
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb cat_l3 cdp_l3 invpcid_single intel_pt spec_ctrl ibpb_support tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cqm mpx rdt_a avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts
bogomips        : 4800.00
clflush size    : 64
cache_alignment : 64
address sizes   : 46 bits physical, 48 bits virtual
power management:
(以下、省略)

[user@ae01 ~]$ cat /proc/meminfo
MemTotal:       196482788 kB
MemFree:        32517940 kB
MemAvailable:   115701312 kB
Buffers:              140 kB
Cached:         82267400 kB
SwapCached:           24 kB
Active:         96958068 kB
Inactive:       62862400 kB
Active(anon):   77498200 kB
Inactive(anon):   153464 kB
Active(file):   19459868 kB
Inactive(file): 62708936 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       8388604 kB
SwapFree:        8383692 kB
Dirty:                16 kB
Writeback:             0 kB
AnonPages:      77553372 kB
Mapped:            53460 kB
Shmem:            98732 kB
Slab:           2029896 kB
SReclaimable:   1765568 kB
SUnreclaim:      264328 kB
KernelStack:      15376 kB
PageTables:      159356 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:   106629996 kB
Committed_AS:   85141900 kB
VmallocTotal:  34359738367 kB
VmallocUsed:     845700 kB
VmallocChunk:  34258257916 kB
HardwareCorrupted:     0 kB
AnonHugePages:    567296 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:      304140 kB
DirectMap2M:     7735296 kB
DirectMap1G:   193986560 kB
[user@ae01 ~]$ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                40
On-line CPU(s) list:   0-39
Thread(s) per core:    1
Core(s) per socket:    20
Socket(s):             2
NUMA node(s):          2
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 85
Model name:            Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz
Stepping:              4
CPU MHz:               2401.000
CPU max MHz:           2401.0000
CPU min MHz:           1000.0000
BogoMIPS:              4800.00
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              1024K
L3 cache:              28160K
NUMA node0 CPU(s):     0-19
NUMA node1 CPU(s):     20-39
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb cat_l3 cdp_l3 invpcid_single intel_pt spec_ctrl ibpb_support tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cqm mpx rdt_a avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts

【ショートカット&Tips】

【情報共有・情報収集アプリケーション】

【発表資料作成の基本】

【学会発表・論文執筆の際に役立つかもしれない項目】

引用著者名の表記法と“et al.”の使い方

謝辞の書き方の例:
The calculations in this study were performed by the Computational Science Research Center, Okazaki Common Research Facilities.
This research was supported by the Institute of Quantum Chemistry and Chemical Exploration (IQCE) Scholarship "IQCE Fellowship" and the Ambitious Doctoral Fellowship (Information and AI) of Hokkaido University.

よりよい英語論文の書き方(英文校正.netが提供するドキュメント)

(再掲)「伝わるデザイン」(千葉大の高橋佑磨先生によるウェブサイト;高校生向けの「高校生のための研究発表の手引き」も参考に)

(再掲)ICReDDスキルアップ講演会「きれいに見えるプレゼンファイルの作り方」(北海道大の伊藤肇先生のプレゼン指南書;研究室内での共有を推奨)

connected papers(論文間のリンク関係をグラフ化するオンラインアプリ)
論文の引用・被引用のリンクを辿る際に非常に重宝する。検索はDOIを入れるだけで可能。ただし引用・被引用の件数には限りがある(リンクのある全論文を含むネットワーク化はされない模様)。

論文執筆にあたっては参考文献として多くの論文を蓄積することになるが、その管理・把握は一苦労である。そこで便利なのがmendeley(メンデレー)というオンラインアプリである。論文をPDF形式でアップロード・登録し、文献情報を整理することができる。ユーザーが独自にタグ付けしたりメモを残したりする機能もあり、電子データとして論文を管理する際には第1選択となるアプリと言える。詳細な使用方法については公式ドキュメントや関連ウェブサイト等を当たって頂きたい。

Booking.com(滞在先予約サイト)

ホテル等の宿泊施設の予約はこのサイトを通じて行うのが簡単。勿論、他のサイトを経由して予約しても良い。国や自治体のキャンペーンや株主優待、社員の家族割引などで安くなる場合もあるので、適宜利用する(当然だが研究機関から補填されるのは実費のみ)。

学会発表することが決定した際は最低限、ホテル・航空機(行き/帰り)を予約しておけばOK。海外で発表する場合は前もって(遅くとも1か月以上前には)パスポートの発行を済ませておくこと。

海外出張の場合、現地通貨との両替は空港だとレートが悪いことが多い。着いた矢先に空港で全額換金してしまうのではなく、交通費などの必要分以外は市中の両替所で適宜両替すると良い。最近はクレジットカード決済が多くの店舗で利用できるため、用心のために多めに換金したとしても余らせてしまうことが多い。

(国内学会でも共通)紙ポスターは筒状にしてポスターホルダーに入れて現地まで運ぶ。荷物のサイズ(長さ)が大きくなるため、空港での受取場所が手荷物と異なり受け渡しに時間が掛かることがある。乗り継ぎの所要時間は多めに確保しておくのが吉(特にアメリカ経由の場合)。
布ポスターは折り畳んで運べるので便利(折り目は付いてしまうが)。紙ポスターでも折り畳めないことはないが、布ポスターよりも傷みが目立つので気になる人は布でするのが良いだろう。あるいは見た目は簡素だが、A4×16枚でスライド風の形式で発表する人もいる(ただし学会の属性や審査員の趣味によっては悪印象を与えるかもしれない)。
個人的にはポスターは布で持っていくのがラクで良いと思う。

航空券やホテル予約完了画面など、支出の確認できる書類や領収書は、PDFあるいは印刷体で保管しておくこと。基本的に交通費は既定の額(バス・JR乗車券代などを合算した上での考えられる限り最低の金額)しか支払われないが、公共交通機関の領収書なども一応保管しておくと良い。研究室が旅費を支給してくれる場合や、自分の予算を持っている場合に経費として支出できる根拠になる。

基本的に航空券とホテルの予約は早めに済ませるのが良いが、学会の日程が確定する前に予約する場合は少し注意。例えば「余裕を持たせて後泊を含めて予約したが、後日公開された学会日程を確認すると学会終了後でも帰りの便の飛行機に間に合うことが分かった」などというケースが発生することがある。このような場合はあらかじめ、航空券をスーパーバリューで手配する(あるいは格安航空会社でチケットを取る)、ホテル代を(朝食を抜くなどして)5000~6000円程度と比較的安く抑える、といった工夫をしておき、出張費を安く収めるための合理的な理由を用意しておく。秘書さんとのコミュニケーションも重要。
※北海道大学の場合、東京圏の宿泊費(日当)の目安は9000~10000円、それ以外の都市では8000円程度の上限が設定されているようです。

口頭発表の場合は念のため、自分のPCに合ったディスプレイ出力用のケーブルor変換器を用意しておくと良い。多くの場合VGAかHDMIかDVIのいずれかが接続できれば問題は無いので、特殊なノートPCでもない限り本番で特に困ることは無いだろう。
(自分はMini DisplayPortをHDMI(メス)に変換するケーブルを持参してsurface pro4で口頭発表したことがある)

宿泊施設でのデスクワークが必要になりそうなら、備え付けのモニタでデュアルディスプレイにできるようHDMIケーブルを持参すると良い(PCを持参する場合)。

学会プログラムに "TBA" とあるのは "To be announced"(後日発表;決定次第追って通知する)の略。

【博士課程への進学を検討している方へ】

大学院への進学について - ​信州大学 農学部/大学院農学専攻 ​創薬標的科学研究室(信州大の喜井勲先生のメッセージです)

進学希望の場合はM2の5月にDC1の申請書を提出します(DC1は一般に学振と呼ばれている科研費の一つ)。これに採択されれば月20万円の給与と年間100万円程度の研究費が支給されます。DC1やDC2は研究者のステータスとも言える研究費で、全国の博士課程進学(予定)者が応募しているものです。しかし、採択率は20%程度と決して門戸が広いとは言えません。目を瞠るような輝ける業績を持っている人でもない限り、採択の成否には運の要素も多分に含まれます。学振の申請書の書き方などは研究室内で受け継がれているものを参考にしつつ、時間に余裕を持って作成を進めるのが良いでしょう(半年以上前から書き始める人もいます)。

その他、博士課程教育リーディングプログラム(北大のものは物質科学フロンティアを開拓するAmbitiousリーダー育成プログラム)などのカリキュラム(経済支援付き)がありました(文科省からの予算は2020年で終了)。最近の北大では新たな博士課程進学者向けの経済支援パッケージ(アンビシャス博士人材フェローシップ、DX博士人材フェローシップなど)が豊富なので、かつてに比べると博士進学のハードルは下がっているように思います。

もちろん、日本学生支援機構の奨学金などもあるので、支援の必要な方はチェックしておきましょう。第1種奨学金の場合は無利子で借りることができるので、特に事情が無いのであれば第1種の方をお勧めします。
(2023/03/08追記)財務省の方針により、博士課程の生活支援の重複受給が禁止されることになるようです。科学研究費は税金が元手の限られたリソースなので妥当と言えるでしょうが、民間の奨学金とは併給可能なのか、金額によるのか、・・・など未定の部分も多く、今後の発表が注目されています。

アカデミアノートというウェブサイトは博士課程やその後の進路を考える上でとても有用です。博士課程で受けられる助成や研究費の支援についてはこちら→ https://www.academianote.site/scholarship/ のページが詳しいです。既に博士課程へ進学された方にも参考になると思います。

【デスクトップPCの自作について】

予算でパーツを購入してデスクトップPCを組む際のメモ。

必要となるPC部品

CPU

マザーボード

グラフィックボード

メモリ

ストレージ(最近は専らSSD)

電源ユニット(それなりにハイパワーなものを用意したい)

ケース

取り敢えず以上のものを購入しておけばよい。実際に使用する際はモニターや電源ケーブル、HDMIケーブルなどは当然必要。また、組み立て時に ±ドライバーが必要になるので、先端が磁石になっているものを用意する(こういうところでケチらないで良いものを買うこと)。
※各パーツに関する詳しい説明はGoogleに聞いて下さい。

以下、個人的な雑感。

CPU
PCの頭脳。どのスペック(スレッド数やクロック数)が必要かはマシンの用途による。用途の割に高性能なものを用意しても無駄に発熱するだけの機械になる。自作PCの場合は、Intel社のCore iシリーズか、AMD社のRyzenシリーズのいずれかを選択することになる。

マザーボード
PCのパーツ一式を乗せる板。CPUに対応するチップセットをもつマザーボードでないとCPUが機能しないので規格に注意。あとは各パーツのスロットの数や配置、WiFiやBluetoothの受信機能、光り方(?)で選ぶ(光らないものはあまり無い)。マザーボードの交換は非常に面倒なので、上に載せるものがハイエンドであるほど、良いものを用意しておきたい(マザーボード側のコネクタの規格が古いとパーツの本来の性能を引き出せなくなる可能性があるので、取り敢えず最新のものを買っておくというのはアリ)。

グラフィックボード
GPUが乗った板。CPUやマザーボードによってはGPUが内蔵されているものもあるが、マルチディスプレイにするならグラフィックボードは必須。これもやたらと性能にこだわっても仕方がない。ゲーム専用機とかであれば高いものを用意したら良いだろうが少々値が張る。RTX3000番台などの立派なグラフィックボードだとPCIe端子からの給電では不足で、6ピン(最大75W)もしくは8ピン(最大150W)もしくはその両方で、さらに電力を供給する必要がある。

メモリ
データを一時的に記憶させるためのパーツ。基本的にはクロック数が大きいものほど高性能。規格(DDR4とかDDR5など)によってはマザーボードが対応していなかったりするので確認しておく。16 GB * 2枚 で十分動くが、本格的に3DCGなどをいじる場合は少なくとも倍は欲しい。必要分だけ用意すればよく、マザーボードのすべてのメモリスロットを埋める必要は無い。メモリを増設する場合、必ずしもすべて同じメーカーの同じ型のメモリにする必要は無いが、マザーボードのメモリスロットによって仕様が異なることがあるので注意。一般的には、同じメーカーのメモリ2枚を2組用意して使うというのが多い(自分が組んだPCでは4スロットすべてに同じ製品を刺している)。

ストレージ
データの収納スペース。それなりの容量(~ 1 TB)のSSDを買っておけば基本的には困らない。足りなければ後からドライブを付け足すこともできる。なお、マザーボードがSSDの規格に対応していないと本来の読み書き性能が発揮できないので注意。SSDとマザーボードのスロットの規格はよく確認しておこう。

電源ユニット
PCの命。パフォーマンスを安定させる要なのでケチらないこと(ショボい電源を使っていると部品の寿命にも影響しかねない)。800 W~くらいのもの("80 PLUS GOLD" 以上の認証を受けた製品)を用意しておけば将来的な拡張にも十分対応できる。付属ケーブルは後々必要になる場合があるのでしっかり保管しておく。
要求される電源容量を簡易的に見積もる式(単位:w) → (CPUのTDP + GPUのTDP) * 1.5 + 100   または   (CPUのTDP + GPUのTDP + 100) * 1.5
例えば AMD Ryzen™ 5 5600X と GeForce GTX 1650 の組み合わせの場合は、大体 360 W 程度の電源容量が要求される。AMD Ryzen™ 7 5800X3D と GeForce RTX 3060Ti の組み合わせの場合は、大体 560 W 程度となる。私個人はCorsairのRMシリーズの850W PC電源ユニットを使用している。

ケース
各部品を入れる箱。メンテナンス作業のことを考えると、できるだけシンプルなものが良いだろう。ミニタワー/ミドルタワー/フルタワーの順に大きくなるが、ミドルタワー型で十分なサイズ感。大抵のマザーボードは取り付け可能なので、趣味に応じて色や形で決めればよい。PCの置き場所によっては冷却ファンの位置や室内のエアフローも気にした方が良いかもしれない。

組み立て作業は説明書を読みながら進める。ネジを紛失しないようにケース(空き箱の蓋などで良い)に逐一入れるなどして作業する。広い机の上や、埃の無い綺麗な床の上などで行うのがよい。冬場は特に静電気に注意(心配であれば静電気対策用の手袋を用意する(個人的にはあまり要らない気がする))。部品の温度はCPUID HWMonitorなどのソフトウェアで取得すればよい。

【LANケーブルを差しているのにイーサネットに接続できない場合】

マザーボードがLANケーブル(有線接続)に対応しているのであれば、大抵の場合はマザーボードのドライバがインストールされていないことが原因。

各マザーボードのドライバダウンロードページ(例えばこんなページ)から、LANに関するものをインストールすればよい。

【遠隔でPCを起動するWake-on-LAN(WOL)の設定手順】

遠隔からデスクトップPCを起動できるようにするにはWake-on-LAN(WOL)を設定するのが最も低コストである。ただし、以下の点に注意:

ルーターがWOLに対応している必要があるので事前に確認しておくのが望ましい。

WAN側IPアドレスが「10.x.yy.zz」のようにプライベートIPアドレス帯(10.0.0.0/8)になっている場合は、プロバイダ(ISP)のルーターやONUの下にぶら下がっている状態(二重ルーター / CGNAT)を意味する。この場合、ルーター設定でポートフォワードしても外部から直接アクセスできず、DDNSを設定しても直接WOLが届かない可能性が高い。
このような場合はWOLを実行したいPCのあるネットワーク内に常時稼働しているVPNサーバーなどを設置して対処できる。この際、余っている古いノートPCなどをLAN内でのWOLリレー機として利用できるため、眠っているPCがある場合は導入コストは不要である。ただし、ノートPCは常時給電していると排熱などの問題が生じるため、Raspberry Piなど省電力なマシンで中継用のサーバーを立てるのが理想的ではある。

※他にも例えばSwitchBot(スマートプラグ)などでPCの電源を遠隔でON/OFFできるが、導入費用が1万円近くするため、費用を抑えたいのであればあまりおすすめできない。Amazonなどで安いものであれば2000円以下で購入できるため、以下の手順が面倒だったりVPNサーバーを設定する必要がある場合には、タイムパフォーマンス的に良いかもしれない。

例えばWindows11、MSIのマザーボード(MSI CLICK BIOS)の場合、以下のようにする。トラブル原因の切り分けやすさの観点から、上から順に実施するのが好ましい。

【BIOS(UEFI)の設定】

PC起動時、deleteキー(連打)でbiosを開く

Settings → Advanced → Wake Up Event Setup
Resume By PCI-E Device:Enabled
(LANコントローラはPCI-Eデバイス扱いのため、この設定でWOLが有効になる)

ErP Ready の確認
場所:Settings → Advanced → Power Management Setup
ErP Ready を Disabled にする
(有効のままだと電源OFF時にLANポートへの給電が止まり、WOLが効かなくなる)

必要に応じて電源復帰設定もしておく
Restore after AC Power Loss:Power On または Last State

[F10] Save & Exit を選び、再起動する。

最後に一度シャットダウンし、電源OFFにしてもLANポートLEDが点灯していることを確認する(この状態になっていればNICに給電されている)。
LANケーブルの差込口が点灯・点滅していないようなら、そのシステムはS5(シャットダウン状態)からの復帰に対応していない。S3(スリープ状態)、S4(休止状態)からの復帰が可能かを追加でチェックする。

【Windowsの設定】

コントロールパネルなどからLANケーブルの差さっているネットワークを開く

「イーサネット」をクリックして「イーサネットの状態」を表示して「プロパティ」> 「構成」を選択

「電源の管理」タブで、

「このデバイスで・・・スタンバイ状態を解除できるようにする」に✔

「Magic Packetでのみ解除できるようにする」に✔
※S3(スリープ)、S4(休止)からの復帰にしか対応していない場合は「電力の節約のためにコンピューターとこのデバイスの電源をオフにできるようにする」のチェックを外すこと。

このときついでに「イーサネットの状態」で「詳細」を選び、物理アドレス(MACアドレス)などを保存しておくとよい。

【ルーターの設定】

ここではBuffaloのルーター(WSR-300HP)の場合の WOL設定について記す。

管理画面へのログイン(参考:https://www.buffalo.jp/support/faq/detail/15257.html)

PCをルーターに有線接続(またはWi-Fiでも可)。

ブラウザで http://192.168.11.1 を入力

ログイン画面が出たら ユーザー名:admin パスワード:password を入力(初期値のままの場合)

DHCPリース(固定IP割り当て)

メニューの 「LAN」→「DHCPリース」 を開く。

WakeしたいPCの MACアドレスを登録し、固定のIP(例:192.168.11.50 など)を割り当てる。既に登録されているPCであれば、エントリを編集して上書きすればよい。末尾の数字が小さすぎると、ネットワークに接続された別の機器に同じIPが配られて衝突してしまうことがある。50程度の小さすぎない値で固定IPを割り当てるのが良いだろう。

ポート転送の設定(ポートフォワーディング)

「セキュリティ」→「ポート変換」 を開き、以下のように設定して「新規追加」を選択:

プロトコル:任意のUDPポート

ポート番号:9(または任意の大きな番号、例 40000 など)

宛先IP:先ほど固定したPCのIP(例:192.168.11.50)

宛先ポート:「ポート番号」と同じ番号

ルーターの「Internet DDNS」機能を利用する

メニューから「DDNS」を設定して、例えば myrouter.ddo.jp のようなアドレスを取得

【WOLアプリの設定】

スマホやノートPCのWOLアプリに以下を設定し、外部のネットワークから起動テストを行う。

宛先アドレス:myrouter.ddo.jp

ポート:9(設定した番号)

MACアドレス:対象PCの物理アドレス(例:AA-BB-CC-DD-EE-FF)ここではBuffaloのルーター(WSR-300HP)の場合の WOL設定について記す。

【ストレージを追加してOS別にデュアルブートする】

Windowsインストール済みのデスクトップPCに、Linux mint をインストールしたSSDを追加してデュアルブートできるようにした際のメモ(Ubuntu環境の場合も同様)。SATAケーブルはマザーボードの箱に余分に入っているものを使い、電源ケーブルは電源ユニットの付属品を使う(無ければ新たに調達する)。

SSDをPC本体に追加した後、以下の手順を実行する。

F2キーでbiosを開く

アドバンスド(Advanced)のタブへ移動 → SATAコントローラを「AHCI」にする

起動(Boot)のタブへ移動 → 起動優先順位について、ブートドライブ #1 を Linux mint にする(#2 は自動的にWindowsになる)

Linux mint 環境を立ち上げ、ターミナルを起動して sudo update-grub というコマンドを実行して grub(Linuxのブートローダー)を更新する
(これでgrubが既存のWindows環境を認識する)

Linux mint 環境をシャットダウンしてからPCを起動してブート画面が表示されれば成功

ブート画面では十字キーで起動するOSを選択できる。未設定のシステムを選択してしまった場合、エラーと警告が表示されるが Ctrl + Alt + Del で抜けられる。

【グラフィックボード換装後にdriverを更新してログインループに陥った場合】

GPU(NVIDIA製)をGTX1650からRTX3060Tiに換装してバージョンを上げた際にGUIでログインできなくなった時のメモ。

Linux OSの場合、ディスプレイのデバイスドライバのバージョンの関係でデュアルモニターにできなくなる場合がある(Windowsでは換装直後でも問題なくマルチディスプレイ出力できた)。具体的な不具合としては、不用意にnvidia-driverをアップデートするとログインループにハマる可能性がある、というものである。

ログインループに陥っている画面において Ctrl + Alt + F1 でGUIからCUIへ切り替えることができる。以下、やること。

GPUの型番を調べて、その型番のGPUに推奨されるnvidia-driverの番号を特定する。dpkg -l | grep nvidia などで調べられる。あるいは、以下。

sudo update-pciids
update-pciids
dpkg -l | grep nvidia

xserverを停止する。ディスプレイマネージャとしてLightDMが入っている場合は、sudo service lightdm stop としてGUIを停止(nvidiaのドライバをGUI制御から切り離す)。

nvidiaとcudaの現在のバージョンを削除する。

sudo apt-get -- remove nvidia-*

sudo apt-get -- remove cuda-*

nvidia-driverをインストールする。下記コマンドの xxx の部分には 手順1. で調べたnvidia-driverの番号が入る。

sudo apt-get update && sudo apt-get install nvidia-driver-xxx

E: Unable to locate package update とエラーが出る場合もある。このときは apt-get の代わりに apt を使ってみると通過する...?かもしれない(apt-get より apt の方が新しいパッケージマネージャであるため)。

sudo service lightdm start として、停止していたxserverを起動。

PCを再起動するとログインループから解放されている(はず)。

上記手順は、自身の Linux mint 20.3 MATE 環境でワークした。ただし導入したドライバが古いとゲームエンジンなどでのレンダリングができなくなる場合があるので注意。

【VPN接続まわり】

Softetherというソフトウェアを使って仮想VPNサーバーを建て、トンネルを掘ることができる。これにより自宅から仮想VPNサーバーを経由して大学のネットワークに接続することが(理論上)可能。

例えば、大学のネットワークからでしかインストールできないソフトウェアを自宅PCに入れたいという場合、大学PCを経由して自宅PCから学内ネットワークに繋ぐ必要がある。大まかな作業手順は以下の通り。
※SoftEtherのソフトウェア(「SoftEther VPN サーバー管理」と「SoftEtherVPN クライアント接続」)はインストール済みであるものとする。

【大学PCでの作業】

「SoftEther VPN サーバー管理」を起動し「新しい接続設定」を作成。このときホスト名、ポート番号、仮想HUB名を控えておくこと(後で必要になる)。

「接続」→「仮想HUBの作成」で適当な仮想HUBを設置(ユーザー名やパスワード、接続を許可するIPアドレスを設定したりする)。大学や企業のネットワークに穴を開ける場合はセキュリティレベルに気を付けること(必要に応じてネットワーク管理者に連絡する)。このときユーザー名やパスワードを控えておくこと(後で必要になる)。

仮想HUBのウィンドウにある「ローカルブリッジ設定」にてローカルブリッジを設定する。以下のような警告が出る場合はVPNサーバーとして利用するのは難しいので、別のPCを使う(VPNサーバーはノートPCでも建てられる)。

ローカルブリッジを作成することができる物理的なLANカードがVPNサーパーのコンピュータに1枚も見つかりませんでした。

ローカルブリッジを作成するには、物理的なLANカードを1枚以上コンピュータにインストールする必要があります。

...

仮想HUBには先ほど作成した仮想HUBを指定。物理LANは基本的にデフォルトのものが自動で設定されている(はず)。

以上で大学PCでの作業は終了。大学PC(VPNサーバー)がスリーブになると接続が切れるので、スリープまでの時間を作業可能な時間まで伸ばしておくのを忘れずに。自宅PCでの作業が終わるまで大学PC(VPNサーバー)は起動しっぱなしにする。

【自宅PCでの作業】

「SoftEtherVPN クライアント接続」を起動して「新しい接続設定の作成」から接続したいVPNサーバーを指定する。ホスト名、ポート番号、仮想HUB名は手順1.で控えておいたものを入力する。ユーザー認証の部分には手順2.で控えておいたユーザー名とパスワードを入力する。以上で接続設定が可能。

作成した接続設定からVPNサーバーに接続。PCのネットワークがVPN接続になったことを確認する。切り替わっていない場合は「設定」の「ネットワークの状態」から手動で切り替える。

大学のネットワークに接続できたのでソフトウェアをダウンロードする。

セキュリティ上の懸念が大いにあるので、接続設定には注意する(不特定多数のクライアントからのアクセスを不可能にするなど最低限の対策を施す)。使用後は速やかに接続を切り、VPNサーバーを停止すること。不明点がある場合はVPNを使用しないのがよい。

【参考】「【まとめ】無料できるVPN環境の作り方(SoftEther VPN)」

【Pythonの環境構築について】

※慎重に導入したいという場合はmakeの後に make test を挟む(通例)。ただし、理論研の古いサーバーに導入する場合、比較的新しいバージョンのPythonではライブラリの関係でtestに失敗することがある。そのため以下では省略している。

【2系の場合】

基本的な導入手順①(2.7系の例)

Python-2.7.18.tgzなどをダウンロードし、$HOME/usr/local などの場所に置く。( $HOME/usr/local に相当するディレクトリを事前に作成しておく。)

cd $HOME/usr/local

tar -xf Python-2.7.18.tgz

cd Python-2.7.18/

./configure --prefix=$HOME/usr/local/Python2(パスは適当に改変すること)

make -j4(並列数は任意)

make install

Python2.xではpipのサポートが終了しており手作業で導入するしかない。pipは get-pip.py を使ってインストールするのがよい。古いバージョンなので https://bootstrap.pypa.io/pip/2.7/get-pip.py からダウンロードする。手順としては以下。

https://bootstrap.pypa.io/pip/2.7/ に get-pip.py が置いてあるので、これをpy形式のファイルとしてダウンロードする。

ダウンロードした get-pip.py を $HOME/usr/local/Python2/bin に置く。

$HOME/usr/local/Python2/bin に移動し、 ./python2.7 get-pip2.py を実行。pip2.7 などがカレントディレクトリに生成する。
※このとき、 get-pip2.py がその起動に使用した “python2.7” の環境を自動で認識して、パッケージを適切なパスのディレクトリ(私の場合は $HOME/usr/local/Python2/lib/python2.7/site-packages )にインストールするように設定される。

get-pip.pyが TLS/SSL が存在していないことにより動作しない場合、whlファイルでソースコードをダウンロードしてインストールする。$HOME/usr/local/Python2/bin に2系pipのwhlファイルをアップロード、ここに移動して下記を実行。

curl -O https://files.pythonhosted.org/packages/27/79/8a850fe3496446ff0d584327ae44e7500daf6764ca1a382d2d02789accf7/pip-20.3.4-py2.py3-none-any.whl

./python2.7 pip-20.3.4-py2.py3-none-any.whl/pip install --no-index pip-20.3.4-py2.py3-none-any.whl

カレントディレクトリにpip2.7が生成している。

一通りの作業を終えたら以下の行を .cshrc に追記してsourceする。

set path = ( $HOME/usr/local/Python2/bin $path )

alias py2 $HOME/usr/local/Python2/bin/python2.7

alias pip2 $HOME/usr/local/Python2/bin/pip2.7
alias python $HOME/usr/local/Python2/bin/python2.7

※既存のpython2系との衝突を避けるため、最後の行(太字)も足しておくと良い。
※これで py2 というコマンドでPython2系が呼び出せる。Python2系でpyスクリプトを実行したいときは以下のようにすればよい。

py2 hogehoge.py

【3系の場合】

基本的な導入手順(以下は3.10系を導入する場合の例;理論研内部の古いサーバーではOpenSSLのバージョン(CentOSのバージョン)が古いため、 Python-3.6.8 など少し前のバージョンを導入すること)

Python-3.10.10.tgzなどをダウンロードし、$HOME/usr/local などの場所に置く。( $HOME/usr/local に相当するディレクトリを事前に作成しておく。)
※LINUX版をダウンロードすること。Active Python Releasesのソースは https://www.python.org/downloads/source/ からダウンロードできる。

cd $HOME/usr/local

tar -xf Python-3.10.10.tgz

cd Python-3.10.10/

./configure --prefix=$HOME/usr/local/Python3(パスは適当に改変すること;$HOME/usr/local/ の中に Python3 というディレクトリを予め作っておくこと)
※ ここで 「./configure --enable-optimizations を実行するとビルドが最適化される」というような説明が表示されるが、無視すること。

make -j4(並列数は任意;cpuinfoコマンドなどで確認できる)

make install

一通りの作業を終えたら以下の行を .cshrc に追記し、source ~/.cshrc でsourceする。

set path = ( $HOME/usr/local/Python3/bin $path )

alias py $HOME/usr/local/Python3/bin/python3.10

alias pip $HOME/usr/local/Python3/bin/pip3.10

※ .bashrcの場合は下記のようにする。

export PATH="$HOME/usr/local/Python3/bin:$PATH"

alias py="$HOME/usr/local/Python3/bin/python3.10"

alias pip="$HOME/usr/local/Python3/bin/pip3.10"

※これで py というコマンドでPython3系が呼び出せる。Python3系でpyスクリプトを実行したいときは以下のようにすればよい。

py hogehoge.py

※また、この環境にパッケージをインストールしたいときは以下のようにすればよい(以下は numpy を入れる場合)。Python3.6.8 の場合、 pip3 は $HOME/usr/local/Python3/bin/pip3 にある。

pip3 install numpy

【3系のPython環境をAnacondaで導入する場合】

ソースコードからビルドして各種ライブラリを揃えるのが手間、という場合はAnacondaの利用も考慮したい。https://www.anaconda.com/download#downloads からLinux向けのAnacondaセットアップ用シェルスクリプトをダウンロードし、実行権限を付与して実行すると $HOME に anaconda3 という名前のディレクトリが生成する。あとは $HOME/anaconda3/bin にパスを通せば3系のPyhotn環境が一通り揃う。

$ bash ./Anaconda3-2023.03-1-Linux-x86_64.sh

以下の行を .cshrc に追記してsourceする。

# my Python3 (conda)

set path = ( $HOME/anaconda3/bin $path )

alias py $HOME/anaconda3/bin/python3.10

alias pip $HOME/anaconda3/bin/pip3

Anaconda公式がサポートしているパッケージは conda install [package] で基本的にはインストール可能だが、公式にサポートされていないものについては conda-forge (コミュニティ主導のインストール可能なパッケージの conda チャネル)を利用してインストールする。例えば、三角グラフを生成する際に重宝する python-ternary パッケージをconda環境に導入するには以下のようにすればよい。

$ conda config --add channels conda-forge
$ conda install python-ternary

pipによるライブラリとcondaによるライブラリが混在することになるため、バージョン管理が煩雑になる&再現性が損なわれることを嫌気するユーザーも多い。実用上の問題点もあるので、AnacondaでPythonを導入する場合は個人利用に留めるのが良いかもしれない。

【所望のパッケージのwhlファイルがプラットフォームのC標準ライブラリのバージョンに対応していない場合の応急処置(※実行は自己責任※)】

古いマシンによってはGNU C Library (glibc)のバージョンがあまりにも古く、そのままではPythonのパッケージがインストールできないことがある。例えば、https://pypi.org/project/numpy/#files では numpy-2.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl というwhl(ホイールファイル)が配布されているが、GLIBC 2.12の古いマシンでは対応していないため、そのままではpip installが不可能である。

そのような場合、whlファイルを一度展開してラベルをリネームして再度圧縮したものをインストールに使う、という荒業が使える。コマンドは以下の通り(whlファイルの存在するディレクトリで実行する)。

$ unzip numpy-2.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -d numpy_tmp_whl

$ cd numpy_tmp_whl

$ zip -r ../numpy-2.2.6-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl .

$ cd ..

これにより、元のディレクトリに「GLIBC 2.12対応」のラベルに変更されたwhlファイルが生成する。これを

$ pip install --no-index --find-links=. numpy-2.2.6-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl

などとしてインストールする。

GNU C Library (glibc)のバージョンは ldd --version で確認できる。GLIBC 2.12のマシンでは以下のように表示される。

$ ldd --version

ldd (GNU libc) 2.12

Copyright (C) 2010 Free Software Foundation, Inc.

This is free software; see the source for copying conditions.  There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Written by Roland McGrath and Ulrich Drepper.

因みに、アーキテクチャ(x86_64など)は uname -m で確認できる。

【Juliaの環境構築について】

基本的な導入手順(2023年8月現在の安定版はv1.9.2なので、以下ではこれをインストールしている)

公式サイトから julia-1.9.2-linux-x86_64.tar.gz などをダウンロードし、$HOME/usr/ などの場所に置く。( $HOME/usr/ に相当するディレクトリを事前に作成しておく。)

cd $HOME/usr

tar -xf julia-1.9.2-linux-x86_64.tar.gz

.cshrc などに $HOME/usr/julia-1.9.2/bin のパスを追加
※ csh系の場合は .cshrc に以下のような行を追加して source する。

set path = ( $HOME/usr/julia-1.9.2/bin $path )

基本的にはこれだけの手順で済む。 julia のコマンドで呼べば動作する。スクリプトを実行する場合は julia xxx.jl を叩けばよい。

【Google Colaboratory関連】

「Google Colaboratory」はGoogle社が提供するノートブック形式のREPL(対話型実行環境)である。ネット上のノートブック形式のコードはPythonのものも多く見かける。Jupyter Notebookを使っても同じことが可能だがGoogle Colaboratoryは環境構築の手間が省けるので手っ取り早く計算を始められる。

◎ Google Colaboratoryでは、ライブラリやモジュールは !pip install ase のようにして先頭に書いておけばpip経由でインストール可能。

Google Colaboratoryを使って無料で第一原理計算(Quantum ESPRESSOをビルドして結晶の電子状態計算にトライする記事)

Modeling materials using density functional theory(DFT(密度汎関数理論)を用いた材料研究スキル習得のためのテキスト)

【GitHub関連】

GitHubは、ソフトウェア開発プロジェクトのバージョン管理とコラボレーションを支援するウェブベースのプラットフォームである。Gitという分散バージョン管理システムが使用されている。

SSH接続により所望のリポジトリを一括ダウンロードする
LinuxサーバーからGitHubにSSH接続する手順を示す。まず、以下のようにssh-keygenコマンドを用いて秘密鍵と公開鍵のペアを作成する。暗号方式は rsa 4096 でよい。

[nabata@karura ~/.ssh]$ ssh-keygen -t rsa -b 4096 -C "nabata.tcl@gmail.com"

Generating public/private rsa key pair.

Enter file in which to save the key (/home/nabata/.ssh/id_rsa): /home/nabata/.ssh/githubkey23719

Enter passphrase (empty for no passphrase): (パスフレーズを記入)

Enter same passphrase again: (パスフレーズを再度記入)

Your identification has been saved in /home/nabata/.ssh/githubkey23719.

Your public key has been saved in /home/nabata/.ssh/githubkey23719.pub.

The key fingerprint is:

a5:89:08:2a:ba:3f:fc:99:43:2d:80:0d:1f:ea:91:e7 nabata.tcl@gmail.com

The key's randomart image is:

+--[ RSA 4096]----+

|                 |

|. .              |

| *o.      .      |

|o++o . . +       |

|+ +.... S        |

|o. Eo .          |

|.. . .           |

| .o .o           |

|...o+.           |

+-----------------+

ここでは秘密鍵の名前を githubkey23719、公開鍵を githubkey23719.pub としている。このとき公開鍵 githubkey23719.pub の中身(ssh-rsa から始まる文字列)を丸ごと https://github.com/settings/ssh の [New SSH key] をクリックしてテキストボックス経由でGitHubにアップロードする。終えたら以下の行をLinuxサーバーの /home/${USER}/.ssh/config に追記する。User のIDは適宜書き換えること。

Host github github.com

    HostName github.com

    IdentityFile ~/.ssh/githubkey23719

    User h-nabata

ここまでで鍵の設定は終了。以下のコマンドで接続テストができる。このとき秘密鍵のパーミッションを 600 (-rw------- の状態)にするのを忘れないこと。

ssh -T h-nabata@github.com

※ 接続が上手くいかない場合は ~/.ssh/known_hosts に以下を追加する。

github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl

github.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg=

github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk=

SSH接続ができるようになったので、リポジトリのダウンロードが可能となる。例えば、以下のようにしてリポジトリをダウンロードする。Privateのリポジトリでも自分のアカウントにパーミッションがあればダウンロードできる。

[nabata@hoge ~/.ssh]$ git clone git@github.com:h-nabata/PES.git

Cloning into 'PES'...

Enter passphrase for key '/home/nabata/.ssh/githubkey23719': (パスフレーズを記入)

remote: Enumerating objects: 148, done.

remote: Counting objects: 100% (148/148), done.

remote: Compressing objects: 100% (109/109), done.

remote: Total 148 (delta 46), reused 0 (delta 0), pack-reused 0

Receiving objects: 100% (148/148), 75.69 KiB | 280.00 KiB/s, done.

Resolving deltas: 100% (46/46), done.

※ SSH用のリンクはリポジトリのページで、下の図のようにして取得できる。

【Database関連】

How To Programmatically Obtain Chemical Data From PubChem

Using the Materials Project Website - The Materials Project Workshop(Materials Projectの使い方の解説;pymatgenの解説ページも参考に)

【ウェブサイト関連】

このサイトはGoogleの提供する Google Site というアプリケーションで作成しているが、カスタマイズ性はよろしくない。本格的なウェブサイトを作成する場合は専用のレンタルサーバー(おすすめはXserver;私も実際に契約して趣味でウェブサイトを運営している)を契約するのがよい。

シンプルなブログ記事程度で良ければ、はてなブログやFC2ブログ、Amebaブログなどで適当に作成可能。あるいは、執筆の敷居はNoteの方が低いかもしれない(ただしNoteはサブスクリプションに特化していて検索流入が伸びにくい印象がある;読者層のtargetingやリピーターを増やすためのmarketingが重要)。

WordPressを用いたウェブサイト作成方法を指南するブログ記事や書籍は世の中に溢れているので、適宜参考にすべし。

【ChatGPT関連】

ChatGPTはOpenAI社が提供する大規模言語モデル(LLM:Large Language Model)をチャット形式で利用者に提供するサービス。月額20ドルからGPT-4モデルが利用できる。ただし3時間あたり25クエリという制約がある。

有料版はGPT-3.5のレスポンス速度も速くなる。

【Cifファイル関連】

結晶構造データベースと結晶学共通データ・フォーマット CIF について

xyz2cif.py  - xyz座標をcif形式に変換する自作プログラム(複数ファイルをまとめて変換可能)

【表面モデル関連】

結晶構造から特定の指数面を切り出す - Qiita

In computational chemistry, slab models are commonly used to study surface reactions and interactions with molecules and other species. The slab model notation describes the dimensions and orientation of the slab with respect to the crystal lattice, and typically takes the form of "p(nx × ny)", where "n" is the number of primitive cells in each direction. The "p" in the notation stands for "primitive", indicating that the slab is constructed from repeating units of the primitive cell of the crystal lattice. The primitive cell is the smallest unit of the crystal that can be repeated to form the full lattice. The "nx" and "ny" values indicate the number of primitive cells that are stacked in the x and y directions, respectively, to form the slab. For example, "p(2x4)" indicates that two primitive cells are stacked in the x direction and four in the y direction, resulting in a rectangular slab with dimensions that are twice as long in the x direction as they are in the y direction. The slab model notation is important in computational chemistry because it determines the size and shape of the simulation cell used to study surface reactions and interactions. This in turn affects the accuracy and relevance of the results obtained from the simulation, as well as the computational resources required to perform the simulation.

【VESTA関連】

VESTA;結晶構造の可視化プログラムで、表面モデル構造を作成する際に重宝する(無償のソフトウェア);K. Momma and F. Izumi, "VESTA 3 for three-dimensional visualization of crystal, volumetric and morphology data," J. Appl. Crystallogr. 2011, 44, 1272–1276.

GPUの性能が低いと構造の描画に要する時間が膨大となるので、大きな結晶構造を読み込んだりスーパーセルを表示したりする場合は注意。

VESTAには回転行列によって座標変換を施す機能が実装されている。ある結晶相の(111)面がab平面となるセルに変換する行列は、例えば [[2, 0, 1], [-1, 1, 1], [-1, -1, 1]] である(立方晶の場合は立方晶に変換される;ただしこの行列は最小単位格子を与えるとは限らないので注意)。これらの要素の値は新たな並進ベクトルの係数に整数だけでなく小数も指定することができる。

【座標変換の手順】
Edit > Unit cell > Transform... > 回転行列 P を指定 > "Normalize the range of fractional coordinates" のチェックを外して [OK]("セルの体積が変化する..." という警告は無視して「はい」) > "How to convert..." の選択肢は "Add new equivalent positions to ..." を選択して [OK] > Apply > 新しく生成したセルからはみ出している原子があれば消去する
座標変換後はウィンドウ下部のSummaryのタブを開きセルの軸情報をメモ帳などに保存し、構造はxyz形式でエクスポートする("hidden atoms ..." は [no] を選択)。保存したセルの軸情報を基にプログラム等を用いて並進ベクトルをカーテシアン座標系に変換する。

参考記事:

結晶構造から特定の指数面を切り出す

xyz座標の結晶構造をcif形式に変換する

簡単なスラブモデルの作り方

例として、Materials Projectから入手できるCu2O結晶(赤銅鉱 - キュプライト;cifはprimitive cellを選択)について、上記の手順に則って(111)面がab平面に平行となるように座標変換することで得られるカーテシアン座標を以下に示す。(12単位のスーパーセルに拡大している)

Cu    9.627708000000      4.547912000000      3.094462000000

Cu    4.376231000000      1.515971000000      3.094462000000

Cu    2.625739000000      4.547912000000      5.570033000000

Cu    0.875246000000      1.515971000000      0.618892000000

Cu    7.877216000000      1.515971000000      5.570033000000

Cu    6.126723000000      4.547912000000      0.618892000000

Cu    1.750492000000      0.000000000000      3.094462000000

Cu    7.001970000000      3.031942000000      3.094462000000

Cu    5.251477000000      0.000000000000      5.570033000000

Cu    3.500985000000      3.031942000000      0.618892000000

Cu    0.000000000000      3.031942000000      5.570033000000

Cu    8.752462000000      0.000000000000      0.618892000000

Cu    9.627708000000      1.515971000000      3.094462000000

Cu    4.376231000000      4.547912000000      3.094462000000

Cu    2.625739000000      1.515971000000      5.570033000000

Cu    0.875246000000      4.547912000000      0.618892000000

Cu    7.877216000000      4.547912000000      5.570033000000

Cu    6.126723000000      1.515971000000      0.618892000000

Cu    0.000000000000      0.000000000000      5.570033000000

Cu    5.251477000000      3.031942000000      5.570033000000

Cu    3.500985000000      0.000000000000      0.618893000000

Cu    1.750492000000      3.031942000000      3.094463000000

Cu    8.752462000000      3.031942000000      0.618893000000

Cu    7.001970000000      0.000000000000      3.094463000000

O     0.000000000000      0.000000000000      3.713355000000

O     5.251477000000      3.031942000000      3.713355000000

O     3.500985000000      0.000000000000      6.188925000000

O     1.750492000000      3.031942000000      1.237785000000

O     8.752462000000      3.031942000000      6.188925000000

O     7.001970000000      0.000000000000      1.237785000000

O     0.000000000000      0.000000000000      0.000000000000

O     5.251477000000      3.031942000000      0.000000000000

O     3.500985000000      0.000000000000      2.475570000000

O     1.750492000000      3.031942000000      4.951140000000

O     8.752462000000      3.031942000000      2.475570000000

O     7.001970000000      0.000000000000      4.951140000000

TV   10.502950000000      0.000000000000      0.000000000000

TV    0.000000000000      6.063880000000      0.000000000000

TV    0.000000000000      0.000000000000      7.426710000000

オリジナルのcifの座標系におけるCu2O結晶のカーテシアン座標は次の通り。

Cu    1.071953000000      1.071953000000      3.215860000000

Cu    3.215860000000      1.071953000000      1.071953000000

Cu    1.071953000000      3.215860000000      1.071953000000

Cu    3.215860000000      3.215860000000      3.215860000000

O     2.143907000000      2.143907000000      2.143907000000

O     0.000000000000      0.000000000000      0.000000000000

TV    4.287810000000      0.000000000000      0.000000000000

TV    0.000000000000      4.287810000000      0.000000000000

TV    0.000000000000      0.000000000000      4.287810000000

同様に、CuO結晶(黒銅鉱 - テノライト)について、(111)面がab平面に平行となるように座標変換することで得られるカーテシアン座標を以下に示す。(24単位のスーパーセルに拡大している)

O     3.137503000000      2.373369000000      6.788310000000

O     9.132084000000      2.373369000000      6.788310000000

O     3.115548000000      5.484317000000      6.788310000000

O     9.110129000000      5.484317000000      6.788310000000

Cu    4.233028000000      0.822183000000      6.137341000000

Cu   10.227609000000      0.822183000000      6.137341000000

Cu    4.211073000000      3.933130000000      6.137341000000

Cu   10.205654000000      3.933130000000      6.137341000000

Cu    1.226521000000      2.380998000000      6.132182000000

Cu    7.221101000000      2.380998000000      6.132182000000

Cu    1.204565000000      5.491946000000      6.132182000000

Cu    7.199146000000      5.491946000000      6.132182000000

O    -0.684380000000      2.375577000000      5.491948000000

O     5.310201000000      2.375577000000      5.491948000000

O    -0.706335000000      5.486524000000      5.491948000000

O     5.288246000000      5.486524000000      5.491948000000

O     1.644398000000      2.150584000000      4.168984000000

O     7.638978000000      2.150584000000      4.168984000000

O     1.622443000000      5.261532000000      4.168984000000

O     7.617023000000      5.261532000000      4.168984000000

Cu   -0.266336000000      2.142870000000      3.530172000000

Cu    5.728245000000      2.142870000000      3.530172000000

Cu   -0.288291000000      5.253817000000      3.530172000000

Cu    5.706290000000      5.253817000000      3.530172000000

Cu    2.744767000000      0.593027000000      3.526147000000

Cu    8.739348000000      0.593027000000      3.526147000000

Cu    2.722812000000      3.703975000000      3.526147000000

Cu    8.717393000000      3.703975000000      3.526147000000

O     3.817943000000      2.152300000000      2.875642000000

O     9.812523000000      2.152300000000      2.875642000000

O     3.795988000000      5.263248000000      2.875642000000

O     9.790568000000      5.263248000000      2.875642000000

O     0.134414000000      1.903131000000      1.565887000000

O     6.128995000000      1.903131000000      1.565887000000

O     0.112459000000      5.014079000000      1.565887000000

O     6.107040000000      5.014079000000      1.565887000000

Cu    1.231886000000      0.348663000000      0.912715000000

Cu    7.226466000000      0.348663000000      0.912715000000

Cu    1.209930000000      3.459611000000      0.912715000000

Cu    7.204511000000      3.459611000000      0.912715000000

Cu    4.217383000000      1.902843000000      0.912227000000

Cu   10.211963000000      1.902843000000      0.912227000000

Cu    4.195428000000      5.013791000000      0.912227000000

Cu   10.190008000000      5.013791000000      0.912227000000

O     2.305887000000      1.904815000000      0.257639000000

O     8.300468000000      1.904815000000      0.257639000000

O     2.283932000000      5.015763000000      0.257639000000

O     8.278513000000      5.015763000000      0.257639000000

TV   11.989161000000      0.000000000000      0.000000000000

TV   -0.043910000000      6.221896000000      0.000000000000

TV   -1.482259000000      0.718084000000      7.838641000000

オリジナルのcifの座標系におけるCu2O結晶のカーテシアン座標は次の通り。cifファイルによって結晶構造が異なる場合があるので注意(先行研究のモデル構造の形と比較して確認する)。

Cu    1.170925000000      0.855650000000      0.000000000000

Cu    3.512775000000      2.566950000000      0.000000000000

Cu    3.087761000000      0.855650000000      2.528935000000

Cu    0.745911000000      2.566950000000      2.528935000000

O    -0.212507000000      1.432016000000      1.264467000000

O    -0.637521000000      1.990584000000      3.793402000000

O     2.129343000000      3.143316000000      1.264467000000

O     1.704329000000      0.279284000000      3.793402000000

TV    4.683700000000      0.000000000000      0.000000000000

TV    0.000000000000      3.422600000000      0.000000000000

TV   -0.850027426800      0.000000000000      5.126864753000

【Gaussianプログラムの計算をstand-aloneで実行する手順】

Gaussianプログラムのinputファイルを用意する
ここではホルムアルデヒドの1点計算を実行してみる。以下の中身のinputファイルを test.gjf という名前で保存する。最後に複数の空行を入れておくこと。

%chk=test.chk

%nprocshared=1

%mem=200mw

#p RB3LYP/6-31G

test

0 1

H    -1.203810959148     -0.933475808504      0.000045988732

O     0.614591450598     -0.000000145647      0.000002761289

C    -0.616991246338     -0.000001892618     -0.000011405189

H    -1.203792290384      0.933500655100      0.000045987240

submit用のシェルスクリプトを用意する
次に、JOBをsubmitするためのシェルスクリプトを用意する。以下の中身のinputファイルを g16.csh という名前で保存する。ここではcsh形式で書いている。こちらも最後に複数の空行を入れるのを忘れずに。パスは適宜変更すること。

#!/bin/csh -f

setenv g16root /usr/local/gaussian16c01

#setenv GAUSS_SCRDIR /scr

setenv GAUSS_SCRDIR /scr/$LOGNAME/gtmp.$$

if ( ! -d $GAUSS_SCRDIR ) mkdir -p $GAUSS_SCRDIR

source $g16root/g16/bsd/g16.login

set input = $1

g16 $1

if ( -d $GAUSS_SCRDIR ) \rm -rf $GAUSS_SCRDIR

exit 0

chmod u+x g16.csh などとしてシェルスクリプトのパーミッション(実行権限)を付与する。 

bsubコマンドで計算機にJOBを投入する
以下のようにbsubコマンドでJOBを投入する。ホスト名は適宜変更すること。

 bsub -n 4 -q "normal" -m "host1 host2 host3 host4 host5 host6 host7 host8 host9 host10" -R "span[hosts=1]" "./g16.csh test.gjf"

このようにしてGaussianプログラムの計算を実行できる。上記の例では test.log に計算のログが出力される。

opt などのキーワードを指定すれば同様の手順で構造最適化なども実行できる。

参考 ☞ https://www5.hp-ez.com/hp/calculations/page318

【SIESTAのJOBを分子研計算機に投入するシェルスクリプトの例】

#!/bin/tcsh -f

###### setting section (begin)

#PBS -l select=1:ncpus=16:mpiprocs=16:ompthreads=1

#PBS -l walltime=144:0:0

set input=initMIN

set DATA=/lustre/home/users/${USER}/testMIN

set pnum=1

set JOBTIME=140 # (/hour)

set infiles=(  )  ## < set the names of all infiles

###### setting section (end)

set GRRM=/lustre/home/users/${USER}/GRRM

set WORK=/gwork/users/${USER}/${input}.$$

# # # # # Gaussian16 at IMS from 2023/02/01 # # # # # 

set g16=16c01 

setenv g16root /apl/gaussian/${g16} 

source ${g16root}/g16/bsd/g16.login 

setenv GAUSS_SCRDIR ${WORK} 

setenv subgau g16 

setenv subchk formchk 

# # # # # SIESTA VER.4.1.5 at IMS from 2023/02/01 # # # # #

setenv siestascr ${WORK}

setenv subsiesta /apl/siesta/4.1.5-mpi/bin/siesta

setenv submpi mpirun

# export I_MPI_HYDRA_BOOTSTRAP=pdsh

# setenv I_MPI_HYDRA_BOOTSTRAP ssh  # added by nabata (2023/02/01)

source /etc/profile.d/modules.csh

module -s purge

module -s load siesta/4.1.5-mpi

module -s load openmpi/4.1.5-hpcx/intel2023.0.0

module -s load mkl/2023.2.0

setenv LANG C

setenv subgrr ./GRRM.out

setenv TMPDIR ${WORK}

setenv TMPDIR2 ${WORK}

if ( -d ${WORK} ) rm -rf ${WORK}

mkdir  ${WORK} 

cp     ${DATA}/${input}.* ${WORK} 

mv     ${DATA}/${input}_* ${WORK}

cp     ${DATA}/*.psf ${WORK}

@ i=1

while( $i <= $#infiles )

  cp -r ${DATA}/$infiles[$i] ${WORK} 

  @ i++

end

cp     ${GRRM}/GRRMp    ${WORK} 

cp     ${GRRM}/GRRM.out ${WORK} 

cd     ${WORK}

./GRRMp ${input} -p${pnum} -h${JOBTIME}

cp -f  ${WORK}/${input}.* ${DATA} 

cp -f  ${WORK}/${input}_* ${DATA} 

cd     ${DATA}

rm -rf ${WORK}

上記は16coreを要求するMIN計算(GRRM側の並列数は1)のJOBを投入するシェルスクリプトの例。

siesta/4.1.5-mpi をloadする必要がある。他のmoduleは必要に応じて読み込むこと。

.psf(擬ポテンシャル)ファイルをDATAディレクトリに置くのを忘れずに。

【GrimmeのDFT-D(D2)パラメータ】

VdW radii, C6 parameters

H    1.001     0.14

He   1.012     0.08

Li   0.825     1.61

Be   1.408     1.61

B    1.485     3.13

C    1.452     1.75

N    1.397     1.23

O    1.342     0.70

F    1.287     0.75

Ne   1.243     0.63

Na   1.144     5.71

Mg   1.364     5.71

Al   1.639    10.79

Si   1.716     9.23

P    1.705     7.84

S    1.683     5.57

Cl   1.639     5.07

Ar   1.595     4.61

K    1.485    10.80

Ca   1.474    10.80

Sc   1.562    10.80

Ti   1.562    10.80

V    1.562    10.80

Cr   1.562    10.80

Mn   1.562    10.80

Fe   1.562    10.80

Co   1.562    10.80

Ni   1.562    10.80

Cu   1.562    10.80

Zn   1.562    10.80

Ga   1.650    16.99

Ge   1.727    17.10

As   1.760    16.37

Se   1.771    12.64

Br   1.749    12.47

Kr   1.727    12.01

Rb   1.628    24.67

Sr   1.606    24.67

Y    1.639    24.67

Zr   1.639    24.67

Nb   1.639    24.67

Mo   1.639    24.67

Tc   1.639    24.67

Ru   1.639    24.67

Rh   1.639    24.67

Pd   1.639    24.67

Ag   1.639    24.67

Cd   1.639    24.67

In   1.672    37.32

Sn   1.804    38.71

Sb   1.881    38.44

Te   1.892    31.74

I    1.892    31.50

Xe   1.881    29.99

Cs   1.802   315.27

Ba   1.762   226.99

La   1.720   176.25

Ce   1.753   140.68

Pr   1.753   140.68

Nd   1.753   140.68

Pm   1.753   140.68

Sm   1.753   140.68

Eu   1.753   140.68

Gd   1.753   140.68

Tb   1.753   140.68

Dy   1.753   140.68

Ho   1.753   140.68

Er   1.753   140.68

Tm   1.753   140.68

Yb   1.753   140.68

Lu   1.753   140.68

Hf   1.788   105.11

Ta   1.772    81.24

W    1.772    81.24

Re   1.772    81.24

Os   1.772    81.24

Ir   1.772    81.24

Pt   1.772    81.24

Au   1.772    81.24

Hg   1.758    57.36

Tl   1.989    57.25

Pb   1.944    63.16

Bi   1.898    63.54

Po   2.005    55.28

At   1.991    57.17

Rn   1.924    56.64

【確定申告・納税周りについて】

納税は日本国民の義務であり、無申告者は懲罰的課税(無申告加算税、延滞税)の対象となる。意図的な脱税など特に悪質な場合は罰金や懲役刑が科されることもある。

フェローシップ(FS)制度の助成金は80%近くが雑所得扱いなので確定申告が必要となる。また、FSに採用された時点で扶養家族から外れることが確定するため、扶養者の勤務先への連絡・世帯分離の手続き・国民健康保険への加入手続き...などは早めに済ませておくこと(遅れると税務署から扶養者に追徴課税の請求書が来る)。

因みに、学振の給料は(一応)給与所得区分なので基本的には年末調整のみで完結するが、生命保険料控除や医療費控除(年間10万円以上の医療費を要した場合)、配偶者控除(配偶者がいる場合)、扶養控除(子供などの扶養家族がいる場合)などの適用要件に該当する者は、節税の観点から各自が確定申告すべきである。その際は証明書の添付が必要になるので適宜用意する。(2023年時点での情報)

「所得」の計算期間:1月1日~12月31日の1年間の収入と費用を計算する。

確定申告書の提出・納税期間:(通例)2月16日~3月15日の1カ月以内(この期間内であれば何度でも申告書の提出が可能)

給与所得と雑所得のみ発生している場合は「確定申告書A」の様式で提出する。事業を営んでいる場合は「確定申告書B」の様式で提出する。
※ 令和5年1月以降は様式が確定申告書Bのタイプに統一されることになっている(2023年現在)。

納税額の計算は基本的には以下の4つのステップで考える。
① 収入金額の計算(総ての収入の算出)
② 必要経費の計算(総ての所得の算出)
③ 所得控除の計算(課税所得の算出)
④ 税率の計算(納税額の算出)
税金は最終的に計算された課税所得に課されるものである。

大学からの源泉徴収票は年明けに送付されるので保管しておくこと。自分で確定申告する場合は源泉徴収額の入力が必要となるため。

e-TAXで確定申告する場合はマイナンバーカードを作成しておくとラクに済む。できれば早いうちに作っておく。確定申告しない場合でもマイナンバーカードを作成しておくと何かと便利な場合がある(マイナポータルのUI・UXには改善の余地がかなりあるが我慢する)。
※マイナンバーカードの交付申請、個人情報の提出から、手元に届くまでには1ヶ月程度掛かるので、1月中には交付申請していないとその年の確定申告に間に合わない。

【参考】確定申告に関する手引き等 - 国税庁

【経費について】

【重要】DX博士人材FSなどの「科学技術イノベーション創出に向けた大学フェローシップ創設事業」(以下、FSと表記)や「JST次世代研究者挑戦的研究プログラム」を財源とするプロジェクトから研究支援費を受け取っている者は授業料や入学金、研究費用を雑所得から必要経費として差し引くことができる(税理事務所の問い合わせに対するJSTの公式回答とされる)。
※例えば2022年現在、国立大学の授業料は一般の理系学生の場合535,800円/年なので、これを必要経費として所得から差し引くことができる。ただし、開始年と終了年は学費納入期間に応じて按分する必要があり、助成金の受給期間に対応する期間の学費のみを費用計上するのが税制上適切である(例えば、DX博士人材FSは2021年10月から開始されているため、必要経費として計上できるのは2021年10月以降の学費のみと考えるのが妥当であろう)。
※授業料を経費として計上する場合、証拠として支払い時の領収書を用意しておくこと。または、振込額が分かる資料(通帳の支払い記録など)を保管しておく。

例えば「アンビシャス博士人材FS」では、年間で144万円(80%)が雑所得区分の収入、36万円(20%)が給与所得区分の収入となっている。雑所得がFS以外に無い場合は授業料を差し引いて 1,440,000 - 535,800 = 904,200 が雑所得の合計金額となる(その他の研究費用があればさらに差し引く)。なお、アンビシャス博士人材FS採用初年は4月~12月の学費9ヵ月分(月割り)に相当する401,850円を、採用最終年は1月~3月の学費3ヵ月分(月割り)に相当する133,950円を、それぞれ必要経費として差し引くのが妥当であろう。
※(2022/03/17追記)「北海道大学アンビシャス博士人材フェローシップ」の受給者は2022年度前期から授業料が全額免除となることが通知された。(2023/04/13追記)DX対象者についても2023年度前期から授業料が全額免除となることが通知された。

研究に関連する書籍代や学会などの参加費・旅費(食費は除く)は当然、研究遂行上の必要経費として計上可能である。

例えば、研究用にノートPCを購入した場合、そのPCを全く私生活で使用していなければ基本的には全額を必要経費に計上できる。一方で、ノートPCを私生活でも使っている場合(趣味にも使用する場合など)は合理的な根拠に基づいて適宜按分しなければならない。家賃や電気代なども同様で、使用面積や消費電力などの客観的な基準に基づいて按分しなければならない。

FSから支給される研究費(「研究専念費」(=生活費)とは別)は年度内使い切りの予算であるが、制度上これは収入扱いになっていると考えられる。(使い切れない場合は(繰越せないにもかかわらず)課税対象となるという話も耳にする。年度内使い切りなのはそのため?)

FSから支給される研究費で10万円以上の物品(耐用年数1年以上)を購入した場合、その物品は大学の「少額備品」や「固定資産」として扱われ、資産登録の必要が生じる。例えばPCであれば耐用年数が4年なので、導入後4年間は外部への持ち出しが不可能となる(損壊するなどの例外を除いて処分も不可能となる)。なお、減価償却の手続きや計算は基本的に大学側で行うので、受給者が特別に何かする必要は無い。

10万円未満(※「以下」ではないことに注意)の物品は「消耗品」に分類される。パソコンやタブレット端末は区分上「高換金性消耗品」として取り扱われるが、事務手続きはその他の消耗品と基本的には変わらない。
※(2023/04/13追記)1円以上のパソコンやタブレット端末などを購入する場合は大学への届け出が義務付けられているらしい(北海道大学の場合)

FSからの助成金を事業所得とした上で、何らかの形で無理やり経費計上して作った赤字と相殺すれば給与所得などとも損益通算可能となる…が、やりすぎる(?)と税務調査の対象となる可能性がある(小規模の事業主がよくやるグレーな節税の手口だそうだが、最近は税務署も厳しくチェックしているらしい)。何でもかんでも経費計上すれば良いというものではない。
※受給者が開業して個人事業主となりFSからの研究専念費(ただし給与所得分を除く)を事業所得として扱うこと自体には何ら違法性は無い。

学会開催に伴う宴席(意見交換会)などに参加した場合、その参加費用が研究を遂行する上で必要な経費であると客観的に認められるのであれば問題無く経費計上できる(意見交換によって研究遂行に寄与する重要な示唆を得る、新しいポスト・共同研究などの誘いを受ける、など)。しかし実態が、週に何度も研究室のメンバーで飲み歩いていただけ、といった場合は不正な経費計上と見なされて当然であり、追徴課税は免れない。

【参考動画】北海道大学DX博士人材フェローシップ生向け確定申告セミナー - 北海道大学DX博士人材フェローシップ(2022/02/21閲覧)

【参考資料】研究活動に関するハンドブック/Research Handbook - 北海道大学

【開業について】

弁護士顧問料事件最高裁昭和56年4月24日判決によると、「事業所得とは、自己の計算と危険において独立して営まれ、営利性、有償性を有し、かつ反復継続して遂行する意思と社会的地位とが客観的に認められる業務から生ずる所得」とされている。「事業」といえる程度の規模・態様においてなされている活動か否かは以下の観点に基づいて判断される。

営利性(利益目的である)

有償性(対価を得ている)

反復継続性(継続している)

平成26年9月1日の裁決事例によると、これらの要件を満たすか否かは以下の点を「総合的に勘案して」判断すべきだとされている。

自己の計算と危険においてする企画遂行性の有無

本人の精神的肉体的労務の投入の有無

人的・物的設備の有無

本人の職業・経験及び社会的地位等

これらの観点を考慮すると、FS等からの所得を事業所得と見なすことの妥当性は否定し去れないだろう。
※ 参考:フェローシップや次世代研究者挑戦的研究プログラムに採択された博士課程の学生は開業届を出して個人事業主になろう - たぐれおん氏(2022/02/21閲覧)

FSからの雑所得を事業所得として申告するためには、納税地を管轄する税務署(事業所の所在地ではない)に開業届を提出しておく必要がある。開業届を出さなくても事業所得として申告可能だが、事前に個人事業主として登録しておかないと税務署から「この所得は雑所得に該当するのではないか」と問い合わせが来る恐れがある。

例えば「研究員」などとして開業(個人事業主になるということ)して賃貸物件を事業所とすれば、家賃を必要経費と主張することも可能である。ただし家事関連費には明確な按分基準が求められるので、生活空間と仕事場の境界や時間的区分はよく考えること。特に、遠方の実家を離れて大学付近の賃貸物件に一人暮らししている場合は事業所兼住居としての性格が強まるため、家賃全額を経費と見なすのは社会通念上難しいと考えられる。

税制面で優遇される青色申告を行う場合は「青色申告承認申請書」を「青色申告の対象年の3月15日まで」に納税地を管轄する税務署に提出しなければならない。例えば、2022年の3月15日までに青色申告承認申請書を提出した場合は、2023年に青色申告で(2022年の分を)確定申告できる。

青色申告では最大65万円の青色申告特別控除が受けられるほか、30万円未満の減価償却資産を「少額減価償却資産」として経費に一括計上できる(少額減価償却資産の特例)。例えば、白色申告者は10万円未満のPCを消耗品として経費で購入できるが、青色申告者は30万円未満のPCを消耗品と同じように購入して一事業年度内の必要経費に計上できる。ただし、この特例の適用を受けられる減価償却資産の総額は一事業年度あたり300万円が上限。

ただし青色申告の場合は確定申告時に提出すべき書類が一気に増えるので、それらを準備する時間や労力など費用対効果を考慮した方がよい。ただ、既に複数の事業を副業的に営んでいるのであれば十分検討に値する。青色申告に関連する経理は信頼できる税理士に依頼するのが最も安全で確実だが、提出書類一式は市販の会計ソフトで揃えることも可能。とにかく、申告期間内に納税することが何よりも重要である。

FSの助成期間が終了するなどして研究員としての事業を継続できなくなったら廃業届を提出すればよい。なお、別の事業で生計を立てられていればその限りではない。

因みに、税務調査の遡及期間は原則5年なので、事業を畳んでから少なくとも5年間は領収書などの支払証明書類を保存しておくことが望ましい(脱税が疑われるような悪質な場合は最長7年まで遡及して調査される)。

【その他】

単発バイトやブログ収入(各種アフィリエイト含む)、電子データや物品の(通信)販売、競取り・転売、フードデリバリー、YouTuberなどの配信業、その他の接待業等で(事業とは言えない規模で)収入を得ている場合は、それらすべての所得を合算して雑所得とする。(助成金受給者が研究員として開業していて自身の研究に関わるウェブサイトやYouTubeチャンネルを運営して一定額の広告収入を得ている場合、それらの運営をアウトリーチ活動の一環と見なして広告収入を事業所得に含めることは可能...かもしれない;税務署に要確認)

雑所得区分の赤字は雑所得区分の黒字のみと損益通算可能である。雑所得の赤字は事業所得や給与所得と損益通算できないことに注意。

不動産所得や事業所得、総合課税の譲渡所得、山林所得の赤字は経常所得(=事業所得 + 不動産所得 + 利子所得 + 配当所得 + 給与所得 + 雑所得)との損益通算が可能。所得区分が多岐に亘る大学生や大学院生はそう多くはないと思われるが、これらの所得が発生していて、なおかつ赤字が発生する見込みがあれば「損益通算の順序」も確認して損益通算する。あるいは税理士に一任する。
※ 参考:損益通算を行う場合の申告書の記載要領 - 国税庁(2022/02/21閲覧)

上場株式等の売買益(キャピタルゲイン)や配当益(インカムゲイン)には現物/先物のいずれにも20.315%の税率が一律で課される。これらは分離課税の対象となるため損益通算は上場株式等の運用損益の間でのみ可能(ただし配当金は源泉分離課税)。FXも分離課税の対象なので同様。特定口座を開設して取引している場合、自動的に源泉徴収されるという点では確定申告が不要だが、給与と上場株式等の譲渡益以外の収入がある場合は確定申告が必要となる場合がある。

NISA預り/積み立てNISA預りの株式や各種ETF類の売買益は非課税というメリットがある一方、NISA/積み立てNISA枠内の実現損・実現益はともに翌年には繰り越せないので注意。未実現損益(特に損失の場合)はロールオーバーしなければ繰り越し可能と思われそうだが、課税口座へ移管後は買い付け時の価格ではなく、非課税期間最終年の年末時点(非課税期間満了時)の時価を基準として課税対象の差額が計算される。そのため、年末時点の時価によっては当初買付時からは値下がりしていたとしても、その後の利益確定時に利益が出ていれば課税されてしまうことに注意。(最近、NISAなどに関する法改正の議論が行われており上記の内容が変更される可能性があるので、予期しておきたい)なお、NISA預りの場合は損益通算できないため、損失を他の所得と相殺することはできないという点に注意(一般論として、例えばレバレッジ型ETFなどの手数料が高く減価しやすい商品は長期的には損失が発生しやすく積み立てには向かない。これは投資助言などではなく、単なる自明な事実である)。

iDeCo(個人型確定拠出年金)は掛金を全額所得控除に回せるので有力な節税の選択肢としてよく知られているが、これは年金という性格上、積み立てた金額は早くとも60歳(2023年現在)を超えなければ受け取ることができない(掛金が数十年単位で拘束される)ことに留意すべきであり、インフレ等による日本円そのものの価値毀損などのリスクも考慮した上で投資すべき商品と言える(投資額程度であれば十分にpayできるだろう(ただしインフレ率を加味しない))。NISAには無いiDeCoのメリットとしては、積み立てた金額の全額が所得控除の対象となるため、所得税や住民税が軽減できる点が挙げられる。最低5000円/月から積み立てでき、会社員の場合は月額2~3万円程度の上限がある。大学(院)卒業後に検討するとよい。

仮想通貨(暗号資産;crypto currency)の売買損益は雑所得内でのみ損益通算可能である。たとえ雑所得区分の収入が赤字でも給与所得などとは通算できないので注意。2023年現在、日本において仮想通貨は分離課税の対象でないので、実現した損失の翌年繰り越しが不可能であり、いわゆる損出し(タックスロス・セリング;節税のために実現利益を含み損で相殺すること)は年内に行わなければならない。個人口座ではなく法人口座で運用している場合は期末時の市場価格で評価しなければならないが、この辺りは税理士に頼るのが良いだろう(2024年現在、税制改正により法人の暗号資産保有が税制面で優遇される(他社発行の暗号資産保有時の期末時価評価課税が撤廃される)ことが決定している)。また、日本の税制において利益確定ないし所得発生と見なされるタイミングや、トークン類の運用上の様々なリスクについては当然ながら個々人が事前によく勉強しておくべきであり、特に金融庁の告示(加えて、SEC(米国証券取引委員会)の告示も)はよくウォッチしておくべきである。投資は自己の責任の下で行われるべきものであるが、意図せぬ脱税行為を犯してしまわないように細心の注意を払うこと。税金の支払いは自己破産手続きをしても免除されない(「租税等の請求権」は非免責債権である)ため、極めて悲惨な状況となる例もある。間接的に暗号資産に投資する方法としては、①暗号資産を保有or採掘している企業の株式を保有する、②暗号資産の現物ETFを購入する、などが挙げられる。

寄付型クラウドファンディングによって(法人ではなく)研究者個人が資金調達を行う場合、提供された資金は収入として扱われるため課税対象となる。個人からの資金調達は贈与とみなされ「贈与税」が課される。贈与税には年間110万円の基礎控除があり、調達額が110万円超の場合にのみ贈与税の申告と納税が必要となる。一方、法人からの資金調達は一時所得とみなされ「所得税」が課される。一時所得には50万円の特別控除があり、出資額が50万円を超える場合にのみ確定申告と納税が必要となる。
※ 研究者個人が個人の資金提供者から資金調達を行う場合、年間110万円以内の金額であれば実質無税で資産の譲渡が可能である(ただしこの場合は資金提供者が寄付控除を受けられるケースに該当しない)。
※ 但し、大学における学術研究の実施・教育研究の奨励などを支援する目的で寄附される現金や有価証券は原則として大学への寄附金として取り扱われる。この取り決め(財団等からの研究助成金に係る個人経理の禁止)が存在するため、上述のケースは個人もしくは自身が設立するなどした法人として研究を実施している場合に限られる点に注意。
※ 参考:クラウドファンディングにかかる税金は?確定申告が必要?種類ごとに解説! - Money Forward(2022/02/21閲覧)

税務署への個別相談は確定申告期間である2月16日~3月15日以外の期間に行うことが望ましい。これは確定申告期間は税務署員が忙殺されていて対応が遅くなるためである。

【資産形成について】

資産形成の基本は「①入る量を増やす」と「②出る量を減らす」の2つである。②は節約・節税して生活していればよい。一方、①には様々な方法がある。最もポピュラーな蓄財方法は貯金であるが、金利の極めて低い現代ではインフレ率に全く太刀打ちできない。そうなると自ずと証券(株式や債券)への投資による蓄財が視野に入ってくる。

元手となる資金額の限られる若年層にとって唯一の武器は「時間」である。例えば、利回りが2%(一定とする)の商品を保有している場合、30年で1.8倍になる。一般論として投資を始めるタイミングが早いほど有利であるという根拠は、複利の効果に基づく。急いで金持ちになろうとすると、多くの場合で過剰なリスクを負うことになる。あくまでも時間を味方に付けるべし。

口座を開設するなら手数料の安いネット銀行・ネット証券が良い。それ以外の選択肢は基本的に無い。

住信SBIネット銀行

SBI証券

投資は自己の責任の下で行われるべき(相場に王道なし)であるが、いくつかの幾つかの留意事項を共有しておく。

余剰資金のみを元手にすること(命金には手を出すな)

急いで金持ちになろうとしないこと(休むも相場なり)

自分の判断を過信したり他人の言うことを鵜呑みにしたりしないこと(相場は相場に聞け)
ただし、日本や海外(主に米国)の金融政策や金利の動向はよくウォッチしておくべきである(ここでいう金利とは、長期国債・短期国債の金利のことである)。アメリカには「FEDには逆らうな」という相場の金言があるが、これは「連邦準備制度(Federal Reserve System)の方針に逆らった投資は慎め」という意味で、日本で言うと「日銀の金融政策には逆らうな」といった意味になる。通貨発行権を有する国家の中央銀行はその通貨の流通量をコントロールできるため、金融市場に与える影響が極めて大きい。具体的に中央銀行が何をすると市場がどういう反応を見せるのか、という点は各自がよく勉強する必要がある。

欲をかかず、予め決めたMyルールを遵守し、衆人の動向に惑わされず淡々と投資を続けること(人の行く裏に道あり花の山)

【北海道内の研究室旅行の行先候補一覧】

「北海道地区国立大学大滝セミナーハウス」や、「国立日高青少年自然の家」は研究室名義・教育目的なら(大学生・大学院生なら?)格安で借りられるので、低予算旅行を企画しているのであればオススメです。本物の低予算旅行の場合はオール車中泊(or ゼロ泊弾丸)となります。

札幌近郊であれば例えば、以下のような場所があります。

ボールパークに野球観戦行く(日帰り)

増毛の国稀酒造に行く(日帰り)

余市のニッカウヰスキー蒸留所に行く(日帰り)

旭川方面の観光(動物園とか;日帰り)

旭川周りの美瑛富良野方面(日帰り)

積丹半島方面(積丹ブルーは夏がおすすめ)

苫小牧周りの登別方面(温泉アリ・日帰り)

支笏湖・洞爺湖方面(温泉アリ・日帰り)

羊蹄山周辺の観光(京極留寿都とか)

札幌ダム豊平峡ダム(紅葉シーズンおすすめだけど激激混み)

泊りがけなら...

函館観光

トマムで雲海見る(早朝限定)

帯広で豚丼を食べたり池田のワイン城に行くなどする

屈斜路湖畔でゆっくりする(1泊2日ではゆっくりできないかも?)

摩周湖で霧に包まれる

北見のキツネ牧場&山の水族館

網走で金カム聖地巡礼

知床観光(1泊2日でも遠い)

釧路湿原観光(1泊2日でも遠い)

取り敢えず根室に行く

取り敢えず稚内に行く

大雪の山奥の秘湯に行く(上級者向け) 

【研究の「さしすせそ」】

さ:再現性🔁(再現可能で普遍的な信頼できる成果)

し:新規性👀(surveyに基づく新規性や独創性の主張)

す:数量性📊(定性的な議論に終始せず数値で有効性を示す)

せ:整合性📐(論理的な破綻のない首尾一貫した議論)

そ:速報性🚀(さっさと書いて出す)

出典:https://twitter.com/naemura/status/895084214101716992 - 苗村健 先生

(オマケ)学会の「さしすせそ」🥶

さ:😇先ほどの質問に関連して.../🤨再現性は確認されているのでしょうか?

し:😏素人質問で恐縮ですが.../😅初歩的な質問かもしれませんが...

す:😓すみません、よくフォローできなかったのですが.../🧐素晴らしい発表でした。しかし...

せ:🤔先行研究との違いを訊きたいのですが.../🤓専門的な内容に踏み込んでしまうのですが...

そ:🥱その研究(手法)って意味あるんですか?/😊その理論を考えたのは私なのですが...

(諸説あり)

このホームページはGoogle siteを利用して作成されています。

(以下、工事中)