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?

NCBIデータベースからのミトコンドリアデータ取得

Last updated at Posted at 2025-01-14

はじめに

研究に用いるデータとして、NCBIのデータベースにあるミトコンドリアのデータを用いて行ってきた。しかし、2024年6月からデータベースにアップデートがあり、従来の方法で行っていたオルガネラデータベースからの取得では難しいため、NCBIのFTPから直接ダウンロードする。

データの取得

FTPにあるミトコンドリアのgzファイルをダウンロードする。

まずNCBIのホームにあるDownloadへ移動し、FTPをクリック。
Screenshot from 2025-01-14 13-09-41.png

Screenshot from 2025-01-14 16-09-58.png

FTPに移動した後、genomes/refseq/mitochondrionに移動。
mitochondrion.1.genomic.gbff.gz をインストール。

Screenshot from 2025-01-14 16-30-49.png

データの処理

インストールしたgzファイルを解凍した後、データを整形しcsvに変換を行う。解凍後のgbffファイルから以下のpythonのコードでcsvに変換する。

make_csv.py
import csv, re
from typing import AnyStr
from os import PathLike
from Bio import SeqIO, Seq, SeqRecord


def is_complete_genome(definition: str) -> bool:
    """完全なミトコンドリアゲノムかどうかを返す.

    Args:
        definition (str): definition

    Returns:
        bool:
    """
    return "mitochondrion, complete genome" in definition


def is_mongrel(name: str) -> bool:
    """'~ x ~'で書かれる雑種かどうかを返す.

    Args:
        name (str): 生物種

    Returns:
        bool:
    """
    return " x " in name


def has_contig(record: SeqRecord) -> bool:
    """Does the record has contig?

    Args:
        record (SeqRecord): record 

    Returns:
        bool: have contig or not have.
    """
    return "contig" in record.annotations


# GBFFファイルからTaxon情報を取得し、CSVファイルに書き込む関数
def extract_taxonomy_to_csv(input_file, output_file):
    tmp = []
    # GBFFファイルを解析する
    with open(input_file, 'r') as f:
        gbff_records = SeqIO.parse(f, 'genbank')
        
        # CSVファイルに書き込む
        with open(output_file, 'w', newline='') as f:
            writer = csv.writer(f)
            
            # ヘッダー行を書き込む
            writer.writerow(['Replicons', 
                             'name', 
                             'Taxon',  
                             'is_mongrel',
                             'has contig', 
                             'complete',
                             'shotgun', 
                             'chromosome'
                             ])
            
            # 各エントリのTaxon情報を書き込む
            for gbff_record in gbff_records:
                name = gbff_record.description
                taxonomy = gbff_record.annotations['taxonomy']
                # 動物以外はskip
                if "Metazoa" not in taxonomy:
                    continue

                taxon = taxonomy
    
                acc = gbff_record.name
                writer.writerow([acc, 
                                name, 
                                taxon, 
                                is_mongrel(name), 
                                has_contig(gbff_record),
                                is_complete_genome(name),
                                "shotgun" in name,
                                "chromosome" in name,
                                ])


if __name__ == "__main__":    
    input_file = 'mitochondrion.1.genomic.gbff'
    output_file = 'output.csv'
    extract_taxonomy_to_csv(input_file, output_file)

このプログラムでは表のようなカラムのデータになる。

列名 情報
Replicons アクセッション番号
name 生物名
Taxon 分類情報
is_mongrel 雑種(True or False)
has contig contigのデータ(True or False)
complete 完全なゲノム(True or False)
shotgun ショットガン配列(True or False)
chromosome 染色体(True or False)

まとめ

NCBIのデータベースのアプデにより、FTPから直接データを持ってくる方法にした。ミトコンドリア以外のデータでもとりあえず迷ったならここからダウンロードできると思う。

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?