1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

獣医師が必死にバイオインフォマティクスPythonによる実践レシピをwin10で動かす(その5)

Posted at

Biopythonで遊ぶ

使えるデータベースの確認
アクセスする際に自分の責任を明確にするためにもメールアドレスを書こう
一応Biopythonの仕様で1秒に4個以上のクエリーを投げ込むことはしないが、バグでどうなるかわからないので、要注意
過剰アクセスで1事業所が1週間アクセス禁止になった現場を見たことがある

from Bio import Entrez, Medline, SeqIO

Entrez.email = "put@your_email.here" 
handle = Entrez.einfo()
rec = Entrez.read(handle)
print(rec)

現状使えるDbListの一覧が見える
とりあえず犬のNGF(Nerve Growth Factor)のmRNA配列を取ってくる事を目標にする

#犬のNGFの遺伝子配列を取ってくる
handle = Entrez.esearch(db="nucleotide", term='NGF[Gene Name] AND "Canis Lupus"[Organism]')
rec_list = Entrez.read(handle)
id_list = rec_list['IdList']
hdl = Entrez.efetch(db='nucleotide', id=id_list, rettype='gb')

recs = list(SeqIO.parse(hdl, 'gb'))
print(recs)

これでNGFの情報が取得できた
設定はデフォルトのままなので20以上出てこない
けどどうせ3つしかないので良い
この後情報を抜くのにnameのカラムに記載があるものを選べば抜ける
なのでとりあえずXM_038690419の遺伝子情報を取得してみる

for rec in recs:
    if rec.name == 'XM_038690419':
        break
print(rec.name)
print(rec.description)
print(rec.seq)

目標は無事に達成
ついでにどんな情報があるのかも見てみる

for feature in rec.features:
    if feature.type == 'gene':
        print(feature.qualifiers['gene'])
    elif feature.type == 'exon':
        loc = feature.location
        print('Exon', loc.start, loc.end, loc.strand)
    else:
        print('not processed:\n%s' % feature)

for name, value in rec.annotations.items():
    print('%s=%s' % (name, value))

この配列ラブラドールレトリーバーから取られたものらしい
CDSの開始点は220番目から、終了は946番目の塩基
割と面白いこと書いてあるね

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?