Biopython Genbank.Record: пытаемся понять исходный код - PullRequest
0 голосов
/ 21 февраля 2019

Я пишу csv-ридер для генерации файлов Genbank для записи аннотаций с последовательностью.

Сначала я использовал Bio.SeqRecord и получил правильно отформатированный вывод, но в классе SeqRecord отсутствуют поля, которые мне нужны.

Блок-цитата ОСОБЕННОСТИ Местоположение / Классификаторы
HCDR1 27..35
HCDR2 50..66
HCDR3 99..109

Я перешел на Bio.GenBank.Record и у меня есть необходимые поля, за исключением того, что теперь форматирование аннотации неверно.У него не должно быть лишнего текста «type:» «location:» и «qualifiers:», и информация должна быть в одной строке.

Блок-цитата ОСОБЕННОСТИ Location / Qualifiers
type:HCDR1
местоположение: [26:35]
квалификаторы:
тип: HCDR2
местоположение: [49:66]
квалификаторы:
тип: HCDR3
местоположение: [98: 109]
квалификаторы:

Код для извлечения аннотаций одинаков для обеих версий.Только класс изменился.

# Read csv entries and create a container with the data
        container = Record()
        container.locus = row['Sample']
        container.size = len(row['Seq'])
        container.residue_type="PROTEIN"
        container.data_file_division="PRI"
        container.date = (datetime.date.today().strftime("%d-%b-%Y")) # today's date 
        container.definition = row['FullCloneName']
        container.accession = [row['Vgene'],row['HCDR3']]
        container.version = getpass.getuser()
        container.keywords = [row['ProjectName']]
        container.source = "test"
        container.organism = "Homo Sapiens"
        container.sequence = row['Seq']

        annotations = []
        CDRS = ["HCDR1", "HCDR2", "HCDR3"]
        for CDR in CDRS:
            start = row['Seq'].find(row[CDR])
            end = start + len(row[CDR])
            feature = SeqFeature(FeatureLocation(start=start, end=end), type=CDR)
            container.features.append(feature)

Я просмотрел исходный код Bio.Genbank.Record, но не могу понять, почему класс SeqFeature имеет другой формат форматирования по сравнению с Bio.SeqRecord.

Есть ли элегантное исправление или я пишу отдельный инструмент для переформатирования аннотаций в файле Genbank?

1 Ответ

0 голосов
/ 21 февраля 2019

После прочтения исходного кода я обнаружил, что Bio.Genbank.Record имеет собственный метод Features, который принимает ключ и местоположение в виде строк.Они правильно отформатированы в выходном файле Genbank.

CDRS = ["HCDR1", "HCDR2", "HCDR3"]
        for CDR in CDRS:
            start = row['Seq'].find(row[CDR])
            end = start + len(row[CDR])
            feature = Feature()
            feature.key = "{}".format(CDR)
            feature.location = "{}..{}".format(start, end)
            container.features.append(feature)
...