gpasswdコマンド
概要
グループのパスワードやグループに所属するメンバーの変更を行うコマンド。
/etc/groupファイルを管理する。
使用方法
$ gpasswd [option] group
・-a (--add): グループにユーザーを追加する
・-d (--delete): グループからユーザーを削除する
・-r (--delete-password): グループのパスワードを削除する
図形作成あれこれ
できるだけ簡便かつ高画質でできる方法をいくつか見つけたので、備忘録として。
- 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
..((((..............[....[[[.))))...]....]]].......
アウトプット:
図形を右クリック→Export→任意の形式で保存。
SVGにしてPowerPointに持ち込み、ツールバーの「グラフィック形式」から「図形に変換」を選択すると、編集可能な図形として扱える。
画質を損なわずに編集できるのでお勧め。
ざっくり四項目からなる。
1. Genbank Accession number取得
3. マルチプルアライメント
4. 系統樹作成
1. Genbank Accession number取得
ウイルスであればICTVに承認されているウイルスの配列を含めることが重要。
以下を参考に。
https://talk.ictvonline.org/taxonomy/
それぞれの分類群の代表的な種を含めることと、近縁であるが分類学的に確実に離れている分類群のウイルス配列も含める。
何が外群として適しているかは他の論文を参考にする。
まずはできるだけAccession numberをエクセル形式で保存している論文を探す。
無ければ他の論文を参考に手作業で集める。
*Accession numberはゲノム、塩基配列、アミノ酸配列で三種類ある。アミノ酸でやるときはちゃんとアミノ酸配列のものを収集する(他のが混ざらないように)。
ここのツールを使うと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 RNA、RNAとして知られるようになる)
in place of A: Aの代わりに
dissipate: 散らす、消す
blueprint: 青写真、設計図、案
ramification: 分岐 / 分枝、(派生的な)結果
Counting DNA Nucleotid
バイオインフォマティクスの学習に必要な情報や、問題を提供するサイト
ROSALIND
rosalind.infoで、Pythonを用いたバイオインフォマティクス技能の学習を行う。
5つコンテンツがあるが、問題形式で学習するスタイルが好きなので、上段真ん中の"Bioinformatics Stronghold"を選択。
まずは一番上の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
参考
【Python】 特定の文字や文字列の出現回数を数える(count) | Hbk project
メソッドとかもよくわかっておらず、参考にしたコードのほぼ丸パクリをしたが、使っているとメソッドとはなんぞやとか関数の使い方とかいろいろわかってきそう。
環境設定で問題が発生することもなかったし、1日目にしては上出来。