Я пытаюсь провести поиск фильтра, но термины фильтра в поисковых терминах не дают мне правильного вывода. Как должна выглядеть переменная поискового термина? Только ввод и название вида в базу данных, и я хочу вывод номера GCA со следующими фильтрами. < /p>
Вот мой код. Я хочу получить номера GCA с фильтрами, которые GCA происходит от эталонного генома, и это аннотированный геном. Я также хотел бы, чтобы уровень сборки был от хромосомы до завершения. Это все фильтры на веб -сайте, но я хочу, чтобы мой код имел возможность доступа к ним напрямую. < /P>
from openpyxl import load_workbook
from Bio import Entrez
import time
def get_general_assembly_info(species_name, synonym = None, delay = 0.1):
# Provide your email address to Entrez
Entrez.email = "..."
# Set your NCBI API key
Entrez.api_key = "..."
# Add a delay before making the API request to comply with rate limits
time.sleep(delay)
# Query the NCBI assembly database for a broad search (example: reference genomes)
search_term = f"{species_name} AND {"reference genome"}"
# search_term = f"{species_name} AND {"annotated genome"}"
search_term = (
f"{species_name}[ORGN]AND{"Annotated by GenBank submitter"}"
# AND "
# f"chromosome[Assembly Level] OR complete genome[Assembly Level]"
)
handle = Entrez.esearch(db="assembly", term=search_term, retmax=10) # Adjust retmax for more results
record = Entrez.read(handle)
handle.close()
# Retrieve the assembly IDs (UIDs)
assembly_ids = record["IdList"]
if not assembly_ids:
return "No assemblies found with the specified criteria."
# Fetch the assembly summaries to get detailed information
handle = Entrez.esummary(db="assembly", id=",".join(assembly_ids))
summary_record = Entrez.read(handle)
handle.close()
# Extract and print detailed assembly information
for document_summary in summary_record['DocumentSummarySet']['DocumentSummary']:
# print(document_summary.items())
for key, value in document_summary.items():
if 'Genbank' in value:
for value2 in value.items():
GCA_value = value2[1]
return GCA_value
print(get_general_assembly_info('Aspergillus ustus'))
< /code>
Я пробовал все различные типы комбинаций, некоторые комментируются в моем коде. Более конкретно, я попробовал все следующее: < /p>
search_term = f "{vios_name} и {" Справочные геномы "} и {" аннотированные геномы "}"
search_term = f "{viods_name}+и+(ссылочный геном) [filt]+и+(аннотированный геном [filt]"
search_term = f "{vios_name}+и+ссылка+геномы" и (аннотированный [Filter]) и (хромосома [Уровень сборки] или полный геном [Уровень сборки]) "
search_term = f" {wits_name} и {"хромосомный"} или {"полное"} "и (аннотированный [Фильтр]) и (уровень сборки? Уровень сборки завершен) "
Подробнее здесь: https://stackoverflow.com/questions/793 ... -term-vari