Skip to content

Instantly share code, notes, and snippets.

View soh-i's full-sized avatar

Soh Ishiguro soh-i

View GitHub Profile
@soh-i
soh-i / gist:9dc27ccc2749935a31e2150aa5c93f9a
Last active May 21, 2020 02:00
Mac OS 15.3 (Catalina)でDropboxを同期
  • sudo rm -rf Desktopで空にしたDesktopを削除
  • ln -sf /Users/mathilda/Dropbox\ \(Personal\)/Desktop /Users/mathilda/Desktop でDropbox上のDesktopディレクトリにリンク。
Mathilda >> ls -tl Desktop
lrwxr-xr-x  1 mathilda  staff  42  5 21 10:56 Desktop@ -> /Users/mathilda/Dropbox (Personal)/Desktop

これでdesktopのファイルが全て異なるMac間で同期される

@soh-i
soh-i / thesis.md
Last active July 12, 2023 07:42
Writing a thesis with Tex+Texpad

なぜTexで書く?

150ページ以上の英語のドキュメント (PhD thesis)を作成するにあたり、Wordはファイルを分割したり図や表を別のファイルに置いて、コンパイル時にだけ読み出したりすることができない。このため、最終的に巨大な重いファイルを編集してとてもつらまる可能性が目に見えていた。したがって、テキストベースの段組処理ソフトウェアであるTexを使って書くことにした。当初は2020年にもなってTex書くのかーという気分であったが、この選択は正解であったと思う。

Texで生成されたPDFは見た目は非常に美しい。またただのテキストなので好きなエディタで執筆できる。難点としては、独自の記法を覚える必要があること、それからエラーメッセージが不親切でどの個所がエラーなのかときに非常に分かりにくいところである。筆者は数年ぶりにtexを書いたので、ほぼ書き方を忘れていた。

Texは段組ソフトウェアなので、見た目のあらゆるカスタマイズが可能であるが、歴史的に蓄積された様々なノウハウ(謎のバッドノウハウやworkaround)がインターネット上にあふれており、良い感じにするために時間を消費しがちなところ。沼なので、あまり細部に入り込まないほうがよい。時短のためには最初によくできたテンプレートを拝借して、それを使うのがよいと思う。

最近だとOverleaf (https://ja.overleaf.com/) というオンラインでTexがかける環境も整備されているようで、もしかするとこっちのほうが時流なのかもしれない。とくに複数人で書く場合などは。Thesis用のtemplateはインターネットにいろいろあるが、例えばOverleafでは https://ja.overleaf.com/gallery/tagged/thesis にギャラリーがある。ダウンロードしてローカルで使うことも可能だ。

どのTexのディストリビューションを使うか

@soh-i
soh-i / gist:e552f59ea05460da3eb411694773fa50
Last active April 30, 2020 09:00
Favorite Netflix titles

ドキュメンタリー/テレビ

<img src="https://latex.codecogs.com/svg.latex?\Large&space;x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}" title="\Large x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}" />
@soh-i
soh-i / plot.R
Created January 30, 2020 07:37
Plot gate and event data from fcs and gating_ml.xml files
library(CytoML)
library(flowWorkspace)
library(ggcyto)
fcsFiles <- list.files(pattern='.fcs', path='./FCS/data_path_dir', full.names=TRUE)
xmlfile <- 'Gate.xml'
gs <- cytobank2GatingSet(xmlfile, fcsFiles)
g <- ggcyto(gs, aes(x='FITC-A', y='FSC-A'), subset="P1") +
geom_hex(bins=128) +
@soh-i
soh-i / handmix.py
Created December 18, 2019 07:49
Generate IDT handmix nucleotide code
def get_others(nuc):
return list(x for x in ['A', 'T', 'G', 'C'] if nuc != x)
target_sites = {'GeneA': 'TGCAGAGTAGAGGCCGCAGGATAGTTTAGA'}
def gen_handmix_code(target):
five_const = 'ATGC'
three_const = 'CGTA'
# -> [5' const][handmix region][3' const]
import argparse
import requests
import os
import os.path
import yaml
import time
import logging
from BeautifulSoup import BeautifulSoup
BASE_PATH = "geldoc/images/" # save directry path
@soh-i
soh-i / guide.md
Last active July 10, 2019 07:24
Guide to post production

Audio files

GarageBandで録音をしたあと、プロジェクトファイルの中に生のWAVファイルがあるので、これをまず適当な場所にコピーしておく。

Softwares

Audacity

  • 該当する音声を開き、3-5秒程度の無音部分を選択する。無音以外の音声が入っている領域だとうまくいかない。選択ツールを使って以下のような感じで選択する。
@soh-i
soh-i / gist:9f0f41e8d89ed0826de2b97296ac1d5b
Last active July 5, 2019 06:07
Summary of DNA microscopy

Background

  • 蛍光標識オリゴやタンパク質を用いて分子の位置、局在などが古くから解析されてきたが、依然として細胞や組織で発現するDNAやRNA、タンパク質の位置を一斉にプロファイルすることは難しい。
  • 例えば、光学系を利用したsmFISHなどを巨大で厚みのある対象についてやるのはまだまだチャレンジング。
  • DNA microscopyは、これとは全くことなる”modality”であり、分子間の近接情報をシーケンシングにより取得し、その分子の位置を復元する新しい「顕微鏡」のコンセプト。

方法

  • 0.25% Triton X-100で培養細胞を固定、透過処理。
  • In situ cDNA合成反応でGAPDH mRNAのみを選択的にcDNAに変換し、これを’beacon’と呼ぶ。どの細胞にも満遍なく発現している遺伝子であれば何でもok。それ以外のmRNA分子は、’targets’と呼び別のプライマーでcDNA合成される。beaconとtargetはお互いにことなるアダプター配列で識別できる。
  • このbeaconとtargetsのcDNA合成プライマーには、29塩基の長いUMIがついている。UMI (Unique Molecular Identifier)は、cDNA合成用の一本鎖DNAの持つランダムな塩基配列で、cDNA合成時に各々のmRNAは一分子づつ異なるUMI配列を受け取る。
  • このステップでは、一分子ごとにUMIで標識されたbeaconとtarget分子をoverlap extension PCRによって連結する。一般的なPCRはtemplate分子が一つであるが、ここではお互いに共通の配列を持つ2つの分子がtemplateとなり、PCR反応によって連結される。この反応で重要なポイントは、2つの分子がconcatenate (連結)されるレートは、その分子の物理的な近接性を反映するものであるということである。当然、離れた分子同士はoverlap PCRによって連結される確率は距離に反比例?して低くなる。これがDNA microscopyの根幹のアイディアである。
@soh-i
soh-i / ggcyto.R
Last active September 19, 2022 17:19
FACS plot with user-defined gate
library(CytoML)
library(flowWorkspace)
library(ggcyto)
xmlfile <- 'gate.xml' # Gating-ML xml file generated by Cytobank
fcsFiles <- list.files(pattern='.fcs', path='./FCS/', full.names=TRUE)
gs <- cytobank2GatingSet(xmlfile, fcsFiles)
fs <- getData(gs, "P1") # FCS file object filtered by P1 gate (live cell)
P2 <- getGate(gs, "P2") # P2 gate object (EGFP gate)