python скрипт для преобразования нуклеотидной последовательности в таблице в формат fasta - PullRequest
0 голосов
/ 28 мая 2020

Я выполнил реконструкцию предковой последовательности, чтобы определить нуклеотидную последовательность для каждого узла данного c дерева филогенетики. Выходной файл представляет собой таблицу с наиболее вероятными нуклеотидами в каждой позиции для каждого узла (см. Ниже):

#output file:
node_name, position, nucleotide
node1, 1, A
node1, 2, T
node1, 3, G
....
node2, 1, A
node2, 2, T
node2, 3, G
...

Я хотел бы преобразовать этот выходной файл в файл fasta, например:

>node1
ATG....
>node2
ATG....
.....

Как мне выполнить эту задачу с помощью функции python, R или сценария оболочки (с командами awk и sed)?

С уважением,

Габриэль

1 Ответ

0 голосов
/ 28 мая 2020

В Python 3:

import csv

def csv_to_fasta(csv_file, fasta_file):

    seq = {}

    with open(csv_file) as fin:
        reader = csv.DictReader(fin, skipinitialspace=True)
        for row in reader:
            node_name = row['node_name']
            if node_name not in seq:
                seq[node_name] = ''
            seq[node_name] += row['nucleotide']

    with open(fasta_file, 'w') as fout:
        for node_name, nucleotides in seq.items():
            fout.write(f'>{node_name}\n{nucleotides}\n')

...