バイオインフォマティクス奮闘記

農学系大学院の博士課程に進学するも、様々な苦難に遭遇することとなった筆者。運命に逆らおうともがき続けるも、黒塗りの高級車に追突してしまう。フレッドと後輩をかばいすべての責任を負った三浦に対し、車の主、暴力団員谷岡が言い渡した示談の条件とは…。

gpasswdコマンド

概要

グループのパスワードやグループに所属するメンバーの変更を行うコマンド。

/etc/groupファイルを管理する。

 

使用方法

$ gpasswd [option] group

 

・-a (--add): グループにユーザーを追加する

・-d (--delete): グループからユーザーを削除する

・-r (--delete-password): グループのパスワードを削除する

 

 

 

図形作成あれこれ

できるだけ簡便かつ高画質でできる方法をいくつか見つけたので、備忘録として。

 全体的にSVG変換→パワポに持ち込むという流れが便利。

 

  • RNA二次構造

任意の方法でRNA高次構造を予測し、dot-bracket形式*で出力する。

*Position: 8 ... 34
UUCCGAAGCUCAACGGGAAAAUGAGCU
(((((.[[[[.)))))...]]]]←こういうやつ
Estimated free energy: -15.1 kcal/mol

RNA-fold

http://rna.tbi.univie.ac.at//cgi-bin/RNAWebSuite/RNAfold.cgi

SPOT-RNA 

https://sparks-lab.org/server/spot-rna/

DotKnot

https://dotknot.csse.uwa.edu.au/

 

VARNAというアプリで図形に変換する。

VARNA: Visualization Applet for RNA secondary structure

例)

インプット:

GGUGGCGGCCCCCCCCCCCCGUGAACCCCCAGCCAGCAGGGCCCGCGCAACAUGA

..((((..............[....[[[.))))...]....]]].......

アウトプット:

f:id:m-yukiyosi:20210123133244p:plain

図形を右クリック→Export→任意の形式で保存。

SVGにしてPowerPointに持ち込み、ツールバーの「グラフィック形式」から「図形に変換」を選択すると、編集可能な図形として扱える。

f:id:m-yukiyosi:20210123133952p:plain

画質を損なわずに編集できるのでお勧め。

 

ざっくり四項目からなる。

1. Genbank Accession number取得

2. アミノ酸/塩基配列取得

3. マルチプルアライメント

4. 系統樹作成

 

1. Genbank Accession number取得

ウイルスであればICTVに承認されているウイルスの配列を含めることが重要。

以下を参考に。

https://talk.ictvonline.org/taxonomy/

それぞれの分類群の代表的な種を含めることと、近縁であるが分類学的に確実に離れている分類群のウイルス配列も含める。

何が外群として適しているかは他の論文を参考にする。

 

まずはできるだけAccession numberをエクセル形式で保存している論文を探す。

無ければ他の論文を参考に手作業で集める。

*Accession numberはゲノム、塩基配列アミノ酸配列で三種類ある。アミノ酸でやるときはちゃんとアミノ酸配列のものを収集する(他のが混ざらないように)。

 

2. アミノ酸/塩基配列取得

 ここのツールを使うとAccessionから配列一括取得できるので、つかう。

https://sites.google.com/site/yusukekikuchiwebsite/memo/getncbifasta

*多分ここでつまずく人もいるかと思いますが、頑張ってください。

各データは

Accession→遺伝子の機能→生物名→改行→配列

の順になっているので、"["と"]"をタブに変換し、Excelに持ち込んで生物名と配列のみにする。

" "は"_"に変換しておくとよい。

 

3. マルチプルアライメント

基本的にはMAFFTで行う。

MAFFT alignment and NJ / UPGMA phylogeny

セッティングでアウトプットされる配列の順番とか向きとかをいじれるので、任意で。

 

4. 系統樹作成

SubmitしたらFASTA形式で出力し、MEGAに持ち込んでML法系統樹作成。

簡易的な確認として、MAFFTでそのままNJ法系統樹作成ができる。

いずれの方法でもSVGとして出力できる。

 

  • ゲノム構造

 

 

論文を書く時の注意事項

ONTのDRSを用いたウイルスデノボーシーケンスの論文を書く際にかなり手間取ったので、論文を書く前に確認しておくこと、各際に注意することなどについてをまとめる。

 

実験を始める前に

研究をする際には、それを発表するということを前提にしておかなければならない。

発表する際には、話の流れとそれをサポートする図を作る必要がある。これを捻出するために実験を行うと考えると、どのような図、どのようなデータ(精度・網羅性など)が必要であるかわかり、取りこぼしや再実験を行う危険性を回避できる。

 

今回の論文の問題点として、圧倒的にこの部分に対する理解が足りていなかったと感じる。

例)

・DRSを使う理由についてあいまいなまま実験を始めてしまった。→論文を書く際に話の流れを作れない、イントロで動機が書けない。

・どういう形式で論文にするかを全く考えておらず、データを取る際に抑えるべき点が抑えられていなかった。→シーケンスを何度もやることになり、時間と費用が浪費された。

 

自分で研究計画を立てる場合はそれほど危険性はないかもしれないが、人から提案された研究を人の予算で行う場合には、ここを抑えていないと精神的にかなり疲弊することになる。

 

 

 

 

Transcribing DNA into RNA

ROSALIDの二問目

 

DNA→RNAの変換を行う。

 

参考

文字列変換

https://note.nkmk.me/python-str-replace-translate-re-sub/

terminalのtrコマンドつかいかた

https://www.atmarkit.co.jp/ait/articles/1610/03/news017.html

 

 

 

自分の答え

file_name='./rosalind_rna.txt' #パス指定
with open(file_name) as file: #ファイルを'file'として開く
data=file.read() #データを文字列として読み込む
rna=data.replace('T','U') #.replace('','')で置換
print(rna)

 

 問題に正解すると、他の人の答えも見れるので参考にしてみる。

①inputで文字列を入力し、.replace()で変換

s = input()
print(s.replace("T", "U"))

②catでファイルを読み込み、trで変換(terminal)

cat rosalind_rna.txt | tr T U

③むずかしそうなやつ (今はとりあえず放置)

from Bio.Seq import Seq
from Bio.Alphabet import generic_dna
file = open("rosalind_RNA.txt", "r")
dna = Seq(file.read(), generic_dna)
rna = dna.transcribe()
print rna
from sys import argv
from Bio.Seq import Seq
from Bio.Alphabet import generic_dna

print Seq(open(argv[1]).read(), generic_dna).transcribe()

 

 

 プログラミングはカタカナの専門用語が多くわかりにくいので英語で勉強することに。わからなかった単語をリストアップしておき、単語力増強も行う。

 

英単語

omnipresent: 普遍的に存在する(=ubiquitous)

immutable: 不変の(⇔mutable: 可変の)

be composed of A: Aで構成される

alongside: (副)横に、並んで、並列して、(前)〜と平行に、〜と一緒に / 協力して

come to be: 〜ようになる(-known as RNARNAとして知られるようになる)

in place of A: Aの代わりに

dissipate: 散らす、消す

blueprint: 青写真、設計図、案

ramification: 分岐 / 分枝、(派生的な)結果

Counting DNA Nucleotid

バイオインフォマティクスの学習に必要な情報や、問題を提供するサイト

ROSALIND

rosalind.infoで、Pythonを用いたバイオインフォマティクス技能の学習を行う。

f:id:m-yukiyosi:20200522105640p:plain

5つコンテンツがあるが、問題形式で学習するスタイルが好きなので、上段真ん中の"Bioinformatics Stronghold"を選択。

f:id:m-yukiyosi:20200522110006p:plain

 

まずは一番上のCounting DNA Nucleotidesから。

回答はJupyter Notebook (python 3.7.6)で作成する。

 

Problem

A string is simply an ordered collection of symbols selected from some alphabet and formed into a word; the length of a string is the number of symbols that it contains.

An example of a length 21 DNA string (whose alphabet contains the symbols 'A', 'C', 'G', and 'T') is "ATGCTTCAGAAAGGTCTTACG."

Given: A DNA string s

of length at most 1000 nt.

Return: Four integers (separated by spaces) counting the respective number of times that the symbols 'A', 'C', 'G', and 'T' occur in s

.
Sample Dataset

AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC

Sample Output

20 12 17 21

 

与えられた1,000 nt以下の長さのDNA配列のうち、'A','C', 'G', 'T'の下図をそれぞれカウントし、出力せよ。という課題。

"Download dataset"をクリックするとデータのダウンロードが実行され、カウントダウン(5 min)が始まる。

file_name=('./rosalind_dna.txt') #ファイル名の読み込み
file=open(file_name) #データを開く
data=file.read() #読み込み
print(len(data)) #データの文字数
a=data.count('A') #各塩基の出現数を.count()メソッドでカウント
t=data.count('T')
g=data.count('G')
c=data.count('C')
print(a, c, g, t) #出力

 

 

992
233 256 261 241

 

参考

Python3入門 テキストファイル読み書きの基礎

【Python】 特定の文字や文字列の出現回数を数える(count) | Hbk project

 

メソッドとかもよくわかっておらず、参考にしたコードのほぼ丸パクリをしたが、使っているとメソッドとはなんぞやとか関数の使い方とかいろいろわかってきそう。

環境設定で問題が発生することもなかったし、1日目にしては上出来。