1
0

なんちゃってバイオインフォマティクス

Last updated at Posted at 2023-12-28

バイオインフォマティクスっぽいことをしてみる

誰か、pythonを使って、バイオインフォマティクスを説明している人がいないかなと思って、いろいろ調べてみましたが、実際に分析などを載せておられる方はいないものの、オープンデータをダウンロードしてこういう準備をするといいでしょう、というようなごく入門的、入門以前の情報を載せておられる方はいます。

情報量が大きいので、扱いが難しいですが、研究者向けにデータを提供しているサイトがあるので記しておきます。

ensembl.org というヨーロッパのサイトです。
英語で書いてあるので、wikipedia を読んでもよくわかりませんでしたが、日本からアクセスすると、https://asia.ensembl.org に飛ばされるので、世界的に結構有名なサイトであるような気がします。

例示に示したファイルは、
gz で 840MBぐらいあり、
解凍すると、3.3GBくらいあるので、普通のテキストエディタでは開けません。
それなりのツール選びが必要になってくると思います。

gzで11MB程度の者もあります。
ヒトゲノムのある部分的な部分のものであると予想されます。

chatGPTに要約させると、

Ensemblゲノムデータベースプロジェクトは、生命科学研究者や遺伝学者向けの重要なリソースとして知られています。Ensemblは、遺伝子、ゲノム構造、およびその他の生物学的データを包括的に収集し、それを使いやすい形式で提供することを目的としています。

とのことです。

ftp://ftp.ensembl.org/pub/ の覗くと、いろいろデータが置いてあるので、いろいろ試すのにはいいと思います。

データのダウンロード
 curl -O ftp://ftp.ensembl.org/pub/current_fasta/homo_sapiens/dna/Homo_sapiens.GRCh38.dna.toplevel.fa.gz

pythonで、ある特定の行を読みだすスクリプトを書いてみました。

python3 loadLine.py 400000

などと、引数をつけて実行するとその該当の行が表示されるというものです。
実用的ではありませんが、ファイルサイズの大きいデータを見るのに、少しばかり使えるのではないかと思います。

loadLine.py
#!/usr/bin/python3

import sys


def main() -> None:

    args = sys.argv

    path = 'Homo_sapiens.txt'

    with open(path) as f:
        i = 0
        while i < int(args[1]):
            a = f.readline()
            i += 1

        b = f.readline()
        print(b)


if __name__ == '__main__':
    main()
実行
python3 loadLine.py 400000
1
0
1

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