Я пытаюсь выполнить поиск по фильтру, но условия фильтра в условиях поиска не дают правильного результата. Как должна выглядеть моя переменная поискового запроса?
Я ссылаюсь на эту ссылку: https://www.ncbi.nlm.nih.gov/datasets/genome/
Я ввожу только название вида в базу данных и хочу получить номер GCA со следующими фильтрами.
Вот мой код. Я хочу получить номера GCA с фильтрами, из которых поступает GCA, эталонный геном И является ли аннотированный геном. Еще хотелось бы, чтобы уровень сборки был от хромосомы до полной. Это все фильтры на веб-сайте, но я хочу, чтобы мой код имел прямой доступ к ним.
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'))
Я пробовал все разные типы комбинаций, некоторые из них прокомментированы в моем коде. Точнее, я попробовал все следующее:
search_term = f"{species_name} AND {"Reference genomes"} AND {"Annotated genomes"}"
search_term = f"{species_name}+AND+(reference genome)\[FILT\]+AND+(annotated genome \[FILT\]"
search_term = f"{species_name}+AND+reference+genomes" AND (annotated\[Filter\]) AND (chromosome\[Assembly Level\] OR complete genome\[Assembly Level\])"
search_term = f"{species_name} AND {"chromosomal"} OR {"complete"}" AND (annotated\[Filter\]) AND (assembly level chromosomal OR assembly level complete)"
Как должна выглядеть переменная моего поискового запроса при использовании Biopython и доступе к базам данных NCBI? [зак ⇐ Python
Программы на Python
1774719181
Anonymous
Я пытаюсь выполнить поиск по фильтру, но условия фильтра в условиях поиска не дают правильного результата. Как должна выглядеть моя переменная поискового запроса?
Я ссылаюсь на эту ссылку: https://www.ncbi.nlm.nih.gov/datasets/genome/
Я ввожу только название вида в базу данных и хочу получить номер GCA со следующими фильтрами.
Вот мой код. Я хочу получить номера GCA с фильтрами, из которых поступает GCA, эталонный геном И является ли аннотированный геном. Еще хотелось бы, чтобы уровень сборки был от хромосомы до полной. Это все фильтры на веб-сайте, но я хочу, чтобы мой код имел прямой доступ к ним.
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'))
Я пробовал все разные типы комбинаций, некоторые из них прокомментированы в моем коде. Точнее, я попробовал все следующее:
search_term = f"{species_name} AND {"Reference genomes"} AND {"Annotated genomes"}"
search_term = f"{species_name}+AND+(reference genome)\[FILT\]+AND+(annotated genome \[FILT\]"
search_term = f"{species_name}+AND+reference+genomes" AND (annotated\[Filter\]) AND (chromosome\[Assembly Level\] OR complete genome\[Assembly Level\])"
search_term = f"{species_name} AND {"chromosomal"} OR {"complete"}" AND (annotated\[Filter\]) AND (assembly level chromosomal OR assembly level complete)"
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия