Скрытие идентичных последовательностей в веб-интерфейсе NCBI

Иногда в Генбанке/Генпепте встречаются идентичные последовательности, чаще всего происходящие от одного и того же вида, но разных штаммов. Т.е. если я поищу "бактериальная хитинсинтаза", то 624-аа белок из Dickeya didantii появится трижды. Есть даже ссылка "идентичные белки".

Есть ли какой-нибудь фильтр, который я могу использовать, чтобы получить только одну последовательность из каждой группы идентичных? Я имею в виду, кроме разбора загруженного файла на моем собственном компьютере.

Используйте базу данных NR и ограничьтесь интересующими видами
@WYSIWYG, вы имеете в виду «частично» неизбыточную базу данных? :П
Какова ваша конечная цель? Тривиально загрузить последовательности и сохранить только одну, но подойдет ли вам это или вам нужно, чтобы это происходило на самом веб-сайте? Использование RefSeq уменьшит количество дубликатов до 2 для вашего примера, но, поскольку существует несколько последовательностей для разных штаммов, будет сложно полностью исключить их из баз данных NCBI. Какова ваша конечная цель здесь? Могут быть лучшие способы.
@terdon .. LOL .. да, частично не избыточно ..

Ответы (2)

Я не уверен, есть ли способ в GenBank, но UniProt предлагает UniRef , где вы можете кластеризовать избыточные последовательности или указать более низкое отсечение (например, 90% идентичности ).

Мне не нужны кластеры, мне нужен неизбыточный набор последовательностей, желательно с правильным доступом (т.е. чтение всего номера, чтобы найти то, что мне нужно, слишком много). Но все равно спасибо за ответ.
ну, просто возьмите по одной последовательности из каждого кластера! если вы загружаете базы данных UniRef, вы фактически получаете неизбыточный набор.

Я написал небольшой скрипт для удаления одинаковых последовательностей из фаста, чтобы получить то, что мне нужно. Чтобы распечатать список удаленных последовательностей, раскомментируйте строку 22.

#! /usr/bin/python3
# Removes identical sequences from fasta file

import sys
from Bio import SeqIO
sequences={}
#This is where sequences will be stored
#likely calling str(seq.seq) on every test will be slower
with open(sys.argv[1], 'r') as fasta:
    parser=SeqIO.parse(fasta,'fasta')
    for seq in parser:
        sequences[seq.id]=str(seq.seq)
l=list(sequences.keys())
for j in range(0,len(l)-1,1):
    try:
        s=sequences[l[j]]
        for k in range(j+1,len(l)-1,1):
            if sequences[l[k]]==sequences[l[j]]:
                del sequences[l[k]]
    except KeyError:
        pass
        #print(l[j],file=sys.stderr)
for j in sequences.keys():
    print('>',j,'\n',sequences[j])
Это для автономного выполнения, для которого также могут использоваться многие другие инструменты — EMBOSS или даже awk. Это был не ваш вопрос об онлайн-поиске.