레이블이 Blast인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Blast인 게시물을 표시합니다. 모든 게시물 표시

수요일, 11월 12, 2025

발빠른 식품매개질병 탐지를 위한 첫걸음

간만에 PCR 디자인 하는 tool을 가져와봤습니다. 이전에도 이런 류의 프로그램들이 있었고 아마 covid19의 효과로도 계속 필요할 텐데 qPCR 프라이머 디자인하는게 생각보다 쉽지가 않더라구요. 그래도 지속적으로 이렇게 개선하는 tool들이 나오고 있어서 한번 가져와봤습니다. 제목은 FBPP: software to design PCR primers and probes for nucleic acid base detection of foodborne pathogens 식품매개 병원균으로 제한을 두고 있는데 모든 병원균에 대해서 다 할 수 있다 보단 이게 현실적으로 보입니다. 

DOI: 10.1038/s41598-024-51372-5


코드도 공개되어 있으니 한번 경험해보는것도 좋아 보입니다. 다만 이 코드로 인해서 각자가 봉착했던 문제가 알아서 해결할 수 있겠다라는 기대를 품는건 각자의 자유입니다. :)

github: FBPP


clova-x

FBPP는 식품 매개 병원균의 핵산 염기 검출을 위한 프라이머 및 프로브 설계 도구로, 기존 소프트웨어의 한계를 극복하고 자동화된 설계와 시뮬레이션 기능을 제공합니다.

1. **FBPP의 목적**

   - FBPP는 식품 매개 병원균의 핵산 염기 검출을 위한 프라이머 및 프로브를 설계하는 데 사용됩니다.

   - 이 도구는 안전한 식품 공급을 보장하고 식품 매개 질병을 예방하기 위해 필수적입니다.

2. **설계 과정**

   - FBPP는 타겟 시퀀스를 식별하고, Primer3 모듈을 통해 다수의 프라이머 쌍을 생성합니다.

   - 생성된 프라이머 쌍은 PCR 및 겔 전기영동 시뮬레이션을 통해 유효성을 검증합니다.

3. **주요 기능**

   - FBPP는 프라이머 및 프로브의 특이성을 체크하고, 잘못된 음성 결과를 피하기 위한 시뮬레이션 기능을 제공합니다.

   - 사용자는 프라이머의 속성을 조정할 수 있으며, 다양한 옵션을 통해 설계 과정을 맞춤화할 수 있습니다.

4. **기존 도구와의 차별점**

   - FBPP는 식품 매개 병원균의 virulence 유전자 데이터베이스를 포함하고 있으며, 사용자 친화적인 그래픽 인터페이스를 제공합니다.

   - 다른 소프트웨어 도구와는 달리, FBPP는 검출 애플리케이션에 특화된 기능을 제공합니다.


gemini

## 식중독균 검출을 위한 새로운 도구: FBPP 소프트웨어 개발

**연구 배경**

[cite_start]식품을 통해 전파되는 식중독균은 전 세계적으로 질병 및 사망의 중요한 원인이 되며, 사회 경제적 발전에 큰 장애물로 작용합니다[cite: 6, 12]. [cite_start]안전한 식품 공급과 식중독 예방을 위해 식중독균을 신속하게 검출하는 것이 매우 중요합니다[cite: 6, 13]. [cite_start]핵산 염기 검출 방법은 식중독균 검출에 가장 빠르고 널리 사용되는 방법 중 하나입니다[cite: 7, 14]. [cite_start]이 방법은 표적 핵산 서열에 상보적인 합성 올리고뉴클레오타이드(프라이머 또는 프로브)를 결합시키는 원리에 기반합니다[cite: 8, 15]. [cite_start]이 방법의 핵심적이고 초기 단계는 프라이머와 프로브를 설계하는 것입니다[cite: 9, 16].

[cite_start]기존에도 프라이머 설계를 위한 다양한 소프트웨어 도구들이 있었지만 [cite: 19][cite_start], 핵산 기반 검출 방법을 위해 자동화된 프라이머-프로브 세트를 설계하는 데 특화된 도구는 없었습니다[cite: 20]. [cite_start]또한, 기존 소프트웨어는 표적 분석 능력에 한계가 있어 [cite: 21][cite_start], 사용자들이 프라이머 특이성을 검사하기 위해 추가적인 도구를 사용해야 하는 경우가 많았습니다[cite: 22].

**연구 목적**

[cite_start]본 연구는 이러한 문제점을 극복하고, 식중독균 검출 목적에 적합한 프라이머 및 프로브를 자동화하여 설계하고 검증하는 새로운 생물정보학 도구인 **FBPP (Foodborne Pathogen Primer Probe Design)**를 개발하는 것을 목표로 했습니다[cite: 10, 25].

**연구 방법 (FBPP 소프트웨어의 구성 및 작동 방식)**

[cite_start]FBPP는 사용자 친화적인 그래픽 인터페이스를 갖춘 오픈 소스 Python 기반 애플리케이션이며, 식중독균 독성 인자(virulence factors)에 대한 SQL 데이터베이스를 지원합니다[cite: 11, 25].

[cite_start]FBPP 프로그램은 크게 네 가지 모듈로 구성됩니다[cite: 34]:

1.  [cite_start]**sqlite3 모듈**: 식중독균 독성 유전자 데이터베이스를 생성하고 접근하는 데 사용됩니다[cite: 34].

2.  [cite_start]**수정된 Primer3 모듈**: 검출 목적에 맞게 일부 수정되었으며, 주어진 주형 서열에 대한 후보 프라이머 쌍을 생성하는 데 사용됩니다[cite: 34, 39].

3.  [cite_start]**Pydna 모듈 기반의 PCR 및 젤 전기영동 사진 시뮬레이션 모듈**: PCR 및 젤 전기영동 결과를 시뮬레이션하여 거짓 음성(false negative) 결과를 피하도록 돕습니다[cite: 35, 40, 67].

4.  [cite_start]**Bio.Blast 모듈 기반의 특이성 검사 모듈**: 프라이머와 표적 간의 일치 여부를 확인하고 비표적 영역과 일치하지 않도록 하여, 거짓 양성(false positive)을 방지합니다[cite: 35, 36, 41].

[cite_start]**프라이머 및 프로브 설계 과정은 네 단계로 이루어집니다[cite: 37]:**

1.  [cite_start]**표적 서열 식별**: 대부분 프로그램 데이터베이스나 사용자 입력 섹션에서 선택됩니다[cite: 37, 38].

2.  [cite_start]**후보 프라이머 쌍 생성**: 수정된 Primer3 모듈이 사용자가 지정하거나 기본 설정된 프라이머 속성에 따라 다수의 후보 프라이머 쌍을 생성합니다[cite: 39].

3.  [cite_start]**PCR 및 젤 전기영동 시뮬레이션**: 생성된 후보 프라이머 쌍을 시뮬레이션하여 모든 증폭 산물(amplicons)을 계산하고 밴드가 거짓 음성 결과가 아닌지 확인합니다[cite: 40].

4.  **특이성 검사**: 앞 단계에서 성공한 프라이머들에 대해 BLAST 모듈을 사용하여 특이성을 확인합니다. [cite_start]이는 프라이머 서열과 최대 35%의 불일치를 포함하는 표적까지 감지할 수 있는 높은 민감도를 보장하여 비특이적인 프라이머를 제외하고 거짓 양성 결과를 피하게 합니다[cite: 41].

**연구 결과 및 고찰**

[cite_start]FBPP는 사용자 선택에 따라 세 가지 결과 보고서를 제공합니다[cite: 60]:

1.  [cite_start]**프라이머 특이성 보고서**: 생성된 프라이머의 서열, 길이, 위치, 융해 온도($T_m$), GC 함량, 자가 상보성(self-complementarity), 자가 3' 상보성(self-3' complementarity) 등의 기본 속성을 보여줍니다[cite: 61].

2.  [cite_start]**PCR 및 젤 전기영동 시뮬레이션 보고서**: 첫 번째 보고서의 정보에 더해 PCR 과정 시뮬레이션과 예상 밴드의 그림을 보여줍니다[cite: 62].

3.  [cite_start]**특이성 검사 보고서**: 특이성 검사 결과에 대한 추가적인 진술을 보고합니다[cite: 63].

[cite_start]FBPP는 다른 소프트웨어 도구에는 없는 여러 기능을 제공합니다[cite: 64, 307]:

* [cite_start]식중독균 핵산 검출 기반 방법을 위한 프라이머/프로브 예측에 특화된 유일한 도구입니다[cite: 65].

* [cite_start]대부분의 식중독균 독성 유전자에 대한 데이터베이스를 포함하고 있습니다[cite: 66].

* [cite_start]검출 도구에서 거짓 음성 결과를 피하기 위해 결과 시뮬레이션을 제공합니다[cite: 67].

* [cite_start]프라이머/프로브의 특이성 확인과 비의도적 표적에 대한 불일치(mismatches) 수, 그리고 특정 수의 불일치가 있어야 하는 맞춤형 3' 말단 영역을 확인할 수 있는 능력이 있습니다[cite: 68].

[cite_start]예를 들어, 널리 알려진 Primer-BLAST는 Primer3의 한계를 물려받아 [cite: 299][cite_start], 검출 애플리케이션 용도로 특화되지 않았고, 시험관 내(in silico) PCR, 젤 시뮬레이션을 포함하지 않으며, 식중독균에 대한 데이터베이스도 포함하고 있지 않습니다[cite: 299]. [cite_start]반면, FBPP는 프라이머/프로브 설계, PCR/젤 전기영동 시뮬레이션 및 특이성 검사를 모두 제공합니다[cite: 302, 308].

**의의와 시사점**

[cite_start]FBPP는 특정 목적의 표적 특이적 PCR 프라이머/프로브 설계 도구로서, 사용자 친화적인 그래픽 인터페이스와 함께 독성 유전자 데이터베이스, 그리고 사전 테스트된 매개변수 기본값을 제공하여 생물정보학 지식이 없는 사용자나 분자생물학 비전문가도 쉽게 사용할 수 있습니다[cite: 303, 309].

[cite_start]핵산 기반 검출 방법이 일상적인 미생물학 실험실에서 전통적인 검출 방법을 점차 대체하거나 보완하고 있는 상황에서 [cite: 304, 310][cite_start], FBPP는 이러한 방법론의 적용을 위한 가치 있는 분석 설계 도구가 될 것으로 예상됩니다[cite: 305, 311]. [cite_start]이 도구는 특히 높은 변동성을 가진 서열을 다루고 PCR을 통한 DNA 품질 관리 작업에서 유용할 것입니다[cite: 305, 311].

**이 연구가 왜 중요한가요?**

[cite_start]이 연구는 **식중독균 검출이라는 특정 목적에 맞추어 프라이머와 프로브 설계를 자동화하고 그 결과를 검증하는 통합된 도구(FBPP)를 제공**했다는 점에서 중요합니다[cite: 65, 307]. [cite_start]기존 도구들이 제공하지 못했던 **PCR 및 젤 전기영동 시뮬레이션 기능**을 포함하여, 거짓 음성(False Negative) 오류 가능성을 줄이고 [cite: 67][cite_start], **높은 민감도로 특이성을 확인**하여 거짓 양성(False Positive) 오류를 방지할 수 있습니다[cite: 41]. [cite_start]궁극적으로 이는 **식중독균 검출의 정확성과 효율성을 높여** 식품 안전을 확보하고 식중독 발생률을 낮추는 데 기여할 수 있는 실용적인 도구를 현장 연구자들에게 제공한다는 점에서 큰 의미를 가집니다[cite: 13, 26, 305].


chatGPT

다음은 업로드하신 논문 **「FBPP: 식중독균 핵산 기반 검출을 위한 PCR 프라이머·프로브 설계 소프트웨어」(Scientific Reports, 2024)**의 내용을 바탕으로,

비전공자도 이해하기 쉽게 정리한 블로그용 요약입니다. (A4 두 장 분량)

---

## 🧫 식중독균을 빠르게 잡는 디지털 도구, **FBPP**

### 🔍 연구 배경

식중독은 전 세계적으로 여전히 큰 보건 문제입니다. 식품에 섞인 병원성 미생물은 감염과 사망을 일으킬 뿐 아니라, 경제적 손실도 초래합니다.

이 때문에 **식중독균을 신속하고 정확하게 검출하는 기술**이 식품 안전의 핵심으로 떠올랐습니다.

최근에는 눈으로 세균을 직접 확인하는 대신, **핵산(유전자) 기반 검출법**이 널리 사용되고 있습니다.

이 방법은 세균의 유전자 일부를 인식하는 “프라이머(primer)”나 “프로브(probe)”를 이용해, 특정 유전자가 존재하는지 확인하는 방식입니다.

하지만 이 과정의 출발점인 **프라이머 설계**는 매우 까다롭습니다.

* 표적 세균의 고유한 염기서열을 찾아야 하고,

* 비슷한 균과 착각하지 않도록 높은 특이성을 확보해야 하며,

* 실험 조건에 맞는 물리화학적 특성도 고려해야 합니다.

기존에 사용되던 프로그램(예: Primer3, Primer-BLAST)은 유용하지만,

식중독균 검출 목적에 최적화되어 있지 않거나, 사용이 복잡하다는 한계가 있었습니다.

---

### 🎯 연구 목적

이 연구팀은 이러한 문제를 해결하기 위해 **FBPP(Foodborne Pathogen Primer Probe Design)**라는

**새로운 오픈소스 소프트웨어**를 개발했습니다.

이 프로그램은 식중독균의 유전자 데이터를 기반으로,

PCR(유전자 증폭) 실험에 필요한 **프라이머와 프로브를 자동 설계**하고,

그 결과를 **시뮬레이션 형태로 시각화**해줍니다.

---

### ⚙️ 연구 방법 및 프로그램 구조

FBPP는 파이썬(Python) 언어로 만들어졌으며, 다음 네 가지 핵심 모듈로 구성되어 있습니다.

1. **SQLite 데이터베이스** – 식중독균의 병원성 유전자(독소, 감염인자 등)를 저장

2. **Primer3 모듈(개선판)** – 프라이머 후보군을 생성

3. **PyDNA 모듈** – PCR 및 전기영동(겔 이미지) 시뮬레이션

4. **Biopython의 BLAST 모듈** – 프라이머가 다른 균의 DNA와 겹치지 않는지 특이성 검사

프라이머 설계 과정은 다음과 같이 단계적으로 진행됩니다.

① 표적 유전자 선택 → ② 프라이머 후보 생성 → ③ PCR 시뮬레이션으로 가짜 음성 검출 방지 → ④ BLAST를 이용해 특이성 검증

또한 프로그램은 주기적으로 온라인 BLAST 데이터를 새로 갱신해 최신 유전자 정보에 대응합니다.

---

### 💻 주요 기능과 결과

FBPP의 화면은 직관적인 두 개의 탭으로 구성됩니다.

* **“Add New Gene” 탭**: 새 유전자 정보를 추가 (직접 업로드하거나 NCBI에서 자동 불러오기)

* **“Select Primer” 탭**: 선택한 유전자에 대해 프라이머/프로브 설계 및 시뮬레이션 수행

결과 보고서에는 프라이머의 염기서열, GC 함량, 융해온도(Tm), 자기결합 가능성 등이 포함되며,

시뮬레이션된 PCR 밴드 이미지를 통해 **실험 전 결과 예측**도 가능합니다.

또한, 사용자는 특정 유전자(예: *Salmonella*의 invA 유전자)를 선택해

그에 맞는 프라이머를 즉시 설계하고, 다른 균과의 교차 반응 여부까지 확인할 수 있습니다.

---

### 💬 고찰

연구진은 FBPP가 기존 도구들의 한계를 다음과 같이 보완한다고 설명합니다.

* **Primer3**: 설계는 가능하지만 특이성 검사 기능이 없음

* **Primer-BLAST**: 특이성 검사는 가능하지만 식중독균용 데이터베이스나 PCR 시뮬레이션 기능은 없음

* **기타 툴들(QuantPrime, FastPCR 등)**: 특정 응용 분야(예: 메틸화 분석, 마이크로어레이 등)에만 적합

반면, FBPP는

✅ 식중독균 검출에 특화된 유전자 데이터베이스 내장

✅ PCR 결과 시뮬레이션 및 겔 이미지 출력

✅ 사용자 친화적 인터페이스

✅ 생물정보학 비전공자도 쉽게 사용 가능

즉, 생명과학 전문지식이 없어도 **“유전자를 입력하면 곧바로 검출용 프라이머 세트를 얻을 수 있는”** 수준의 접근성을 제공합니다.

---

### 🧩 연구 의의와 시사점

FBPP는 단순히 프라이머 설계 도구가 아니라,

**식품 안전 분야의 디지털 혁신을 상징하는 플랫폼**으로 평가됩니다.

* 실험자가 복잡한 계산 없이 신뢰도 높은 검출 세트를 만들 수 있어,

  식중독균 검출의 효율과 정확도가 향상됩니다.

* 데이터베이스 기반이기 때문에, 새로운 병원체나 변이균이 등장해도

  빠르게 대응할 수 있습니다.

* 오픈소스로 배포되어 있어, 학계나 산업계 연구자 누구나 개선과 확장이 가능합니다.

---

### 🌍 이 연구가 중요한 이유

식중독균은 매년 전 세계 수억 명에게 영향을 미칩니다.

정확한 검출이 하루라도 늦어지면 식품 유통 과정 전체가 위험해질 수 있습니다.

FBPP는 이러한 문제를 해결할 **과학적 도구**로서,

“누구나 손쉽게 사용할 수 있는 식품안전 연구 플랫폼”을 제시했습니다.

즉, **기술을 통해 식품의 안전을 더 빠르고 공정하게 보장하는 길**을 연 것입니다.

---

**참고:** FBPP 프로그램은 [GitHub 공개 저장소](https://github.com/mohamedmoez1983/FBPP)에서 무료로 다운로드할 수 있습니다.


chatGPT(스토리텔링)

아래는 논문 내용을 기반으로, **일반 독자용 스토리텔링형 블로그 글**로 구성한 버전입니다.

전문용어는 쉽게 풀어 쓰고, 내용은 원 논문에 충실하게 담았습니다.

제목은 예시 형식에 맞춰 제안했습니다.

---

# 🧬 AI가 만든 가상의 실험실, 식중독균을 미리 잡는 프로그램 ‘FBPP’

우리가 먹는 음식은 매일 우리의 몸속으로 들어가는 가장 직접적인 외부 환경입니다.

그런데 그 음식 속에 **눈에 보이지 않는 세균이 숨어 있다면?**

식중독은 한 끼의 불운으로 끝나지 않습니다. 심하면 목숨을 잃는 일도 있고,

국가 경제 전체에 손실을 입히기도 합니다.

이 거대한 문제를 해결하기 위해 과학자들은 매일같이

‘식중독균을 얼마나 빨리, 정확하게 찾아낼 수 있을까’를 고민합니다.

그리고 2024년, 이집트의 한 연구팀이 그 답 중 하나를 제시했습니다.

바로 **‘FBPP’(Foodborne Pathogen Primer Probe Design)**라는 이름의

프라이머 설계 소프트웨어입니다.

---

## 🧫 눈에 보이지 않는 적을 찾아내는 유전자 기술

식중독균을 찾는 방법은 여러 가지가 있지만,

가장 빠르고 정확한 방식 중 하나는 **핵산(유전자) 기반 검출법**입니다.

이 기술은 세균의 DNA 속 특정 염기서열을 겨냥하는 ‘프라이머’라는 분자 가위를 사용합니다.

프라이머가 목표 유전자를 정확히 찾아붙으면,

PCR(유전자 증폭) 기술을 이용해 그 존재를 눈에 띄게 ‘증폭’시킬 수 있습니다.

그런데 이 과정에는 큰 어려움이 하나 있습니다.

바로 **프라이머를 설계하는 일**입니다.

프라이머는 너무 민감해서, 조금만 엇나가도

엉뚱한 균을 감지하거나 전혀 반응하지 않을 수도 있습니다.

과학자들이 수십, 수백 번의 시도를 반복하는 이유가 여기에 있죠.

---

## 💡 연구자들의 발상 — “이걸 자동으로 만들어주면 어떨까?”

논문의 주저자인 모하메드 솔리만(Mohamed A. Soliman) 교수와 동료 연구진은

이 문제를 해결하기 위해 **‘디지털 실험실’을 만들기로** 했습니다.

이들은 파이썬(Python) 언어를 이용해

**FBPP라는 새로운 오픈소스 프로그램**을 개발했습니다.

이 프로그램은 식중독을 일으키는 세균들의 유전정보를 담은

**병원성 유전자 데이터베이스(SQL 기반)**를 바탕으로 작동합니다.

연구자가 유전자 정보를 입력하면,

FBPP는 몇 초 만에 적합한 프라이머와 프로브 후보를 생성합니다.

이뿐만 아니라,

* PCR 실험을 **가상으로 시뮬레이션**해 결과 밴드를 예측하고,

* **특이성 검사(BLAST)**를 통해 비슷한 유전자를 가진 다른 균과 혼동하지 않도록 확인하며,

* 모든 과정을 **그래픽 인터페이스로 시각화**해 보여줍니다.

즉, 컴퓨터 속에서 **‘가상의 PCR 실험’**이 이루어지는 셈입니다.

---

## 🧩 FBPP가 기존 프로그램과 다른 점

사실, 프라이머를 설계하는 프로그램은 이미 여럿 존재합니다.

가장 유명한 것은 **Primer3**나 **Primer-BLAST** 같은 도구들이죠.

하지만 이들은 대체로 **식중독균 검출에 특화되어 있지 않거나**,

**전문가가 아니면 다루기 어려운 구조**를 가지고 있습니다.

FBPP는 이 한계를 정확히 짚고 들어갔습니다.

✅ **식중독균 전용 데이터베이스 내장**

✅ **PCR·전기영동 시뮬레이션 제공**

✅ **누구나 클릭 몇 번으로 결과 확인 가능**

✅ **프라이머 특이성까지 자동 점검**

즉, “유전자를 입력하면 바로 검출용 프라이머 세트가 완성되는”

**원스톱 식품안전 솔루션**인 셈입니다.

---

## 🧪 실제로 써보면 이런 모습

FBPP의 인터페이스는 단순하고 직관적입니다.

‘Add New Gene’ 탭에서는 원하는 식중독균의 유전자를 추가할 수 있고,

‘Select Primer’ 탭에서는 그 정보를 불러와

바로 프라이머 설계와 PCR 시뮬레이션을 진행할 수 있습니다.

예를 들어, *Salmonella*(살모넬라)균의 **invA 유전자**를 선택하면

프로그램이 자동으로 가능한 프라이머 세트를 제안하고,

PCR을 가상으로 실행한 후 밴드 이미지를 보여줍니다.

마치 실험실에서 전기영동 결과를 보는 것처럼요.

---

## 🧭 실험실 밖으로 나온 과학

연구팀은 FBPP를 **무료로 오픈소스 공개**했습니다.

누구나 [GitHub 페이지](https://github.com/mohamedmoez1983/FBPP)에서 프로그램을 내려받아 사용할 수 있습니다.

이는 “누구나 사용할 수 있는 과학 도구”라는 점에서 큰 의미가 있습니다.

식품검사기관, 학교 연구실, 심지어 개인 연구자도

전문 장비 없이 간단히 유전자 검출 실험을 설계할 수 있게 된 것이죠.

---

## 🌍 이 연구가 중요한 이유

식중독균은 ‘눈에 보이지 않는 전염병’입니다.

그 확산 속도는 빠르고, 피해는 막대하지만,

대부분의 검출 과정은 여전히 느리고 인력 의존적이었습니다.

FBPP는 이러한 상황을 바꾸는 **디지털 전환의 신호탄**입니다.

생물정보학의 복잡한 계산을 자동화해

누구나, 어디서든, 빠르고 정확하게 세균을 찾아낼 수 있도록 만든 것입니다.

식품 안전을 위한 싸움에서,

이제 과학자들은 시험관이 아닌 **컴퓨터 속 가상 실험실**에서 전투를 벌이고 있습니다.

FBPP는 그 싸움의 효율을 몇 배로 끌어올릴 수 있는 **스마트한 무기**가 될 것입니다.

---

🧠 **한 문장으로 요약하자면**

> “FBPP는 식중독균 검출을 위한 유전자 실험을 자동으로 설계해주는

> 연구자 친화형 오픈소스 도구이자, 식품 안전의 새로운 표준을 제시한 기술입니다.”


grok3

### FBPP: 식중독 병원체 검출을 위한 소프트웨어 개발

#### 연구 배경

식중독은 전 세계적으로 사망과 질병의 주요 원인으로, 사회경제적 발전을 저해합니다. 안전한 식품 공급을 위해 병원체를 빠르게 검출하는 것이 중요하죠. 핵산 기반 검출 방법(예: PCR)은 가장 빠른 방법 중 하나로, 병원체의 DNA나 RNA를 타겟으로 삼아 합성된 짧은 DNA 조각(프라이머나 프로브)을 사용해 결합합니다. 하지만 이 프라이머/프로브를 디자인하는 과정은 복잡합니다. 기존 도구들은 특이성 검사나 시뮬레이션이 부족하거나, 식중독 병원체에 특화되지 않아 사용자가 여러 프로그램을 번갈아 써야 했어요.

#### 연구 목적

연구팀은 이러한 문제를 해결하기 위해 'FBPP(Foodborne Pathogen Primer Probe Design)'라는 오픈소스 소프트웨어를 개발했습니다. 이 프로그램은 식중독 병원체(예: 살모넬라 등)의 독성 유전자 검출을 위한 프라이머/프로브를 자동으로 디자인하고, PCR 과정과 젤 전기영동 결과를 시뮬레이션하며, 특이성을 검사하는 기능을 제공합니다. 목표는 초보자도 쉽게 사용할 수 있는 사용자 친화적 도구를 만드는 거예요.

#### 연구 방법

FBPP는 Python으로 작성되었고, SQLite 데이터베이스를 사용해 식중독 병원체의 독성 유전자를 저장합니다. 주요 모듈은 다음과 같아요:

- Primer3 모듈을 수정해 검출 목적에 맞는 프라이머 후보를 생성(길이, 녹는 온도, GC 함량 등 사용자 설정 가능).

- Pydna 모듈로 PCR과 젤 전기영동을 시뮬레이션해 가짜 음성 결과를 방지.

- Biopython의 BLAST 모듈로 프라이머의 특이성을 검사(타겟 외 시퀀스와 35% 미스매치까지 감지).

프로세스는 4단계: 타겟 시퀀스 선택 → 후보 생성 → 시뮬레이션 → 특이성 검사. BLAST 결과는 데이터베이스에 저장해 반복 검색을 피하고, 3개월마다 업데이트합니다. Windows에서 테스트되었고, EXE 파일로 배포되어 Python 설치 없이 실행 가능해요.

#### 연구 결과

프로그램 인터페이스는 두 탭으로 구성: '신규 유전자 추가' 탭에서 NCBI 접근 번호나 GenBank 파일로 독성 유전자를 입력, '프라이머 선택' 탭에서 유전자 선택 후 속성 설정. 결과 보고서는 프라이머 시퀀스, 길이, 위치, 녹는 온도, GC 함량, 자가 결합 등을 보여줍니다. 예를 들어, 살모넬라의 invA 유전자에 대해 프라이머 쌍을 디자인하면 PCR 시뮬레이션(밴드 이미지 포함)과 특이성(미스매치 수) 결과를 출력해요. 세 옵션(단순 디자인, 시뮬레이션 포함, BLAST 검사)으로 유연하게 사용할 수 있습니다.

#### 연구 고찰

기존 도구처럼 Primer3는 특이성 검사나 시뮬레이션이 없고, Primer-BLAST는 검출 특화가 아니에요. 다른 프로그램(BatchPrimer3, Primaclade 등)은 미스매치 많은 시퀀스에 약하거나, 식중독 병원체 데이터베이스가 없죠. FBPP는 이러한 한계를 극복: 특화 데이터베이스, 시뮬레이션으로 거짓 결과 방지, 미스매치 허용 범위 설정 가능. 비전문가도 기본 설정으로 사용 가능하며, 전문가는 고급 옵션을 조정할 수 있어요.

#### 의의와 시사점

FBPP는 핵산 기반 검출 방법을 더 효율적으로 만들어, 변이 많은 병원체 시퀀스나 DNA 품질 제어에 적합합니다. 미생물학 실험실에서 기존 방법을 대체하거나 보완할 수 있어요. 오픈소스로 무료 배포(GitHub)되어 연구자들이 쉽게 접근하고 개선할 수 있죠.

이 연구는 식중독 예방에 핵심적인 검출 기술을 민주화합니다. 빠르고 정확한 병원체 검출로 식품 안전이 강화되면, 전 세계 건강과 경제가 보호될 수 있어요. 특히 개발도상국에서 저비용 도구로 큰 역할을 할 거예요!


NotebookLM

## FBPP: 식품 안전을 지키는 혁신적인 도구, 식인성 병원균 탐지용 맞춤형 프라이머 설계 소프트웨어 (연구 요약)

**대상 독자:** 전문 지식이 없는 일반 성인 독자

---

### I. 연구 배경: 식품 안전과 핵산 탐지의 중요성

식인성 질병(식품 매개 질병)은 전 세계적으로 사망률과 이환율(병에 걸리는 비율)의 중요한 원인이며, 사회경제적 발전을 저해하는 심각한 장애물로 간주됩니다. 따라서 안전한 식품 공급을 보장하고 이러한 질병을 예방하기 위해 식품 내 병원균을 신속하고 정확하게 탐지하는 것이 매우 중요합니다.

현재 가장 빠르고 널리 사용되는 방법 중 하나는 **핵산 기반 탐지법(Nucleic Acid Base Detection)**입니다. 이 방법은 표적 핵산 서열(예: 병원균의 유전자)에 상보적인 합성 핵산 조각인 **프라이머(primer) 또는 프로브(probe)**를 결합(Hybridization)하여 병원균의 존재 여부를 확인합니다.

문제는 이 프라이머와 프로브를 설계하는 과정이 **예비 단계이면서도 매우 중요하고 까다로운 작업**이라는 점입니다. 프라이머는 다음과 같은 조건을 충족해야 합니다:

1.  **높은 특이성:** 다른 비표적(nontarget) 서열을 증폭시키지 않아야 합니다.

2.  **높은 민감도:** 의도된 표적만을 효율적으로 증폭할 수 있어야 합니다.

3.  **생물학적 매개변수:** GC 함량, 녹는 온도(Tm), 그리고 자기 이합체(self-dimer)나 헤어핀 구조와 같은 이차 구조의 형성이 효율적인 증폭에 적합해야 합니다.

기존의 프라이머 설계 소프트웨어들은 종종 이러한 특이성 확인이나 시뮬레이션 기능이 부족하여 사용자가 추가적인 도구를 사용해야 하거나, 핵산 탐지 기반 방법(detection base method)에 특화되어 있지 않다는 한계가 있었습니다.

### II. 연구 목적 및 접근 방법: FBPP의 개발

이러한 문제들을 극복하기 위해, 연구진은 식인성 병원균 탐지 목적에 특화된 새로운 오픈 소스 애플리케이션인 **FBPP (Foodborne Pathogen Primer Probe Design)**를 개발했습니다.

**FBPP의 주요 목적은 다음과 같습니다:**

1.  탐지 목적에 적합한 프라이머/프로브 설계.

2.  PCR 및 젤 전기영동(Gel Electrophoresis) 사진 시뮬레이션 수행.

3.  설계된 프라이머/프로브의 특이성 검사 자동화.

FBPP는 **사용자 친화적인 그래픽 인터페이스**를 갖춘 파이썬(Python) 기반의 오픈 소스 프로그램입니다. 특히, 식인성 병원균의 독성 인자(virulence factors) 유전자 정보를 담고 있는 **SQL 데이터베이스**를 지원한다는 것이 특징입니다.

#### FBPP의 4단계 설계 과정

FBPP에서 프라이머 및 프로브를 설계하는 과정은 네 단계로 이루어집니다:

1.  **표적 서열 식별:** 프로그램 데이터베이스에서 선택하거나 사용자가 직접 입력합니다.

2.  **후보 쌍 생성:** 수정된 Primer3 모듈을 사용하여 사용자가 지정하거나 기본 설정된 프라이머 속성에 따라 많은 후보 프라이머 쌍을 생성합니다.

3.  **PCR 및 젤 전기영동 시뮬레이션:** 생성된 후보 쌍을 시뮬레이션에 적용하여 모든 증폭 산물(amplicons)을 계산하고, **위음성(false negative) 결과를 피할 수 있도록** 밴드를 확인합니다.

4.  **특이성 검사:** 시뮬레이션을 통과한 프라이머의 특이성을 검사합니다. 기본적으로 BLAST 모듈을 사용하며, **프라이머 서열에 최대 35%의 불일치(mismatches)를 포함하는 표적까지도 탐지**할 수 있도록 높은 민감도를 보장합니다. 이 검사를 통해 **위양성(false positive)을 유발할 수 있는 비특이적 프라이머**를 제외합니다.

### III. 연구 결과: FBPP의 독특한 특징

FBPP는 기존 소프트웨어에는 없는 여러 중요한 기능을 제공합니다:

1.  **특화된 데이터베이스 포함:** 대부분의 식인성 병원균 독성 유전자(virulence genes)에 대한 데이터베이스를 내장하고 있습니다.

2.  **시뮬레이션을 통한 오류 방지:** **PCR 및 젤 전기영동 시뮬레이션** 기능을 제공하여 탐지 도구에서 발생할 수 있는 위음성 결과를 피할 수 있도록 결과 시뮬레이션을 보여줍니다. 이는 Primer3나 Primer-BLAST와 같은 유명한 기존 도구들이 제공하지 않는 기능입니다.

3.  **고급 특이성 검사:** 프라이머/프로브의 특이성을 확인하는 것은 물론, 의도하지 않은 표적에 대해 특정 프라이머 쌍이 가져야 할 불일치(mismatches)의 개수와 3' 말단 영역의 맞춤형 불일치 수를 확인할 수 있습니다.

FBPP는 **EXE 파일** 형태로도 제공되어, 사용자가 파이썬 인터프리터나 패키지 없이도 애플리케이션을 실행할 수 있습니다. 사용자는 그래픽 인터페이스를 통해 유전자 템플릿 입력, 프라이머 속성(길이, Tm, GC 함량 등) 설정, 그리고 시뮬레이션 옵션 선택 등 다양한 작업을 수행할 수 있습니다.

### IV. 고찰 및 의의와 시사점

**고찰:**

프라이머 설계를 위한 다양한 도구가 존재하지만, 많은 도구가 특이성 검사나 시뮬레이션 기능을 제공하지 못하는 한계가 있었습니다. 예를 들어, NCBI에서 제공하는 유명한 웹 브라우저인 Primer-BLAST 역시 Primer3의 한계를 물려받아 탐지 애플리케이션에 특화되지 않았고, *in silico* PCR 및 젤 시뮬레이션 기능이 부족합니다.

FBPP는 이러한 기존 도구의 한계를 극복하고, **특정 목적(식인성 병원균 핵산 탐지)**에 특화된 프라이머/프로브 설계 도구를 제공합니다.

**의의 및 시사점:**

1.  **접근성 향상:** FBPP는 사용자 친화적인 그래픽 인터페이스와 미리 테스트된 기본 매개변수 선택을 제공하므로, **생물정보학 기술이 없거나 분자 지식이 부족한 사용자**도 쉽게 사용할 수 있습니다. 반면, 분자생물학자나 생물정보학자는 고급 옵션을 통해 매개변수를 맞춤 설정할 수 있습니다.

2.  **효율적인 실험 설계:** FBPP는 프라이머 설계, 시뮬레이션, 특이성 검사를 하나의 도구로 통합하여 시간과 노력을 절약하고, 실험실에서 높은 신뢰도를 가진 분석을 설계할 수 있도록 돕습니다.

### V. 이 연구가 중요한 이유

이 연구는 루틴 미생물학 실험실에서 핵산 기반 탐지 방법이 전통적인 탐지 방법을 점진적으로 대체하거나 보완하고 있는 상황에서, 이러한 새로운 방법론을 위한 **가치 있는 분석 설계 도구**를 제공한다는 점에서 중요합니다.

FBPP의 개발은 식품 공급의 안전성을 확보하고 식인성 질병의 발생률과 비용을 낮추려는 전략을 지원하는 **기술적 기반**을 마련합니다. 특히, 독성 유전자 데이터베이스와 시뮬레이션 기능을 통합하고 비전문가도 쉽게 사용할 수 있도록 설계됨으로써, 현장에서의 **병원균 탐지 및 DNA 품질 관리** 작업을 더욱 신속하고 정확하게 수행할 수 있게 하는 중요한 진전을 의미합니다.


Perplexity.ai

이 논문은 식중독을 일으키는 세균(식중독 병원균)을 빠르고 정확하게 검출하기 위한 새로운 소프트웨어 **FBPP(Foodborne Pathogen Primer Probe)**를 개발한 연구입니다. 복잡한 생명정보학 지식 없이도 PCR을 위한 프라이머(primer)와 프로브(probe)를 손쉽게 설계할 수 있도록 도와주는 프로그램을 만드는 것이 목표입니다.[1]

***

### 연구 배경

식중독은 세계적으로 매년 수많은 사망과 질병을 일으키며, 사회·경제적 부담이 큰 공중보건 문제입니다. 오염된 음식 속의 병원균을 조기에 검출하는 것이 예방의 핵심이지만, 전통적인 배양법은 시간이 오래 걸립니다. 이에 따라 최근에는 병원균의 **유전물질(DNA, RNA)을 직접 검출하는 핵산 기반 진단법**이 주목받고 있습니다. 이 방법은 빠르고 정확하지만, 핵심 단계인 ‘프라이머(유전물질을 증폭하는 짧은 DNA 조각)’ 설계가 어렵고 고도의 전문성이 필요합니다.[1]

***

### 연구 목적

이번 연구의 목적은 **사용자 친화적이고 자동화된 프라이머·프로브 설계 도구**를 개발해, 식중독 원인균의 유전자 검출을 쉽게 수행할 수 있도록 하는 것입니다. 연구진은 특히, 기존 도구들의 한계를 극복하고 비전문가도 사용할 수 있는 그래픽 기반의 오픈소스 프로그램을 만드는 데 초점을 두었습니다.[1]

***

### 연구 방법

연구진은 **Python 언어**로 FBPP 프로그램을 개발했습니다. FBPP는 다음의 4개 모듈로 구성됩니다 :[1]

1. **SQLite 데이터베이스 모듈**: 식중독 병원균의 독성 유전자를 저장하고 관리.

2. **Primer3 모듈 수정 버전**: 프라이머 후보군을 자동 생성.

3. **PCR 및 전기영동 시뮬레이션 모듈(Pydna 기반)**: 실험 과정의 결과를 화면에서 미리 확인.

4. **특이성 검사 모듈(BLAST 기반)**: 프라이머가 목표 유전자에만 정확히 반응하도록 확인.

FBPP는 Windows 운영체제에서 실행되며, 별도의 프로그래밍 환경 설치 없이 바로 사용할 수 있습니다. 사용자는 단순히 유전자 서열을 입력하거나 내장 데이터베이스에서 선택해 ‘검출용 프라이머’를 자동 생성할 수 있습니다.[1]

***

### 주요 결과

FBPP는 3가지 기능을 제공합니다:

1. **프라이머 생성 결과 보고서**: 각 프라이머의 길이, 위치, GC 함량, 녹는 온도(Tm), 자기 결합 여부 등이 표시됩니다.

2. **PCR 및 전기영동 시뮬레이션**: 실제 실험 결과처럼 증폭된 DNA 밴드를 그래픽으로 제공합니다.

3. **특이성 검증 리포트**: BLAST를 이용하여 비표적 유전자의 교차 반응 가능성을 평가합니다.[1]

이 프로그램은 특히 **식중독 병원균 전용 데이터베이스와 가상 PCR 실험 기능**을 동시에 제공하는 최초의 도구로, 기존 소프트웨어보다 현저히 높은 정확도와 편의성을 제공합니다.

***

### 논의와 의의

기존의 대표적 프라이머 설계 툴인 **Primer3**나 **Primer-BLAST**는 특정 병원균 검출용으로 설계되어 있지 않고, 전기영동 시뮬레이션이나 교차 반응 검증이 불가능했습니다. 반면 FBPP는 **설계–시뮬레이션–특이도 검증**의 전 과정을 한 번에 수행할 수 있습니다. 또한, 분자생물학 지식이 부족한 연구자나 식품 안전 관련 실무자도 쉽게 사용할 수 있어 실용적 가치가 높습니다.[1]

핵산 기반 진단법이 점점 더 보편화되는 가운데, FBPP는 새로 등장하는 다양한 식중독 병원균에 즉시 대응할 수 있는 **유연하고 신뢰성 있는 검출 도구 개발 플랫폼**의 역할을 합니다.[1]

***

### 시사점 및 중요성

이 연구의 중요성은 단순히 “새로운 프로그램 개발”에 있지 않습니다.  

FBPP는  

- **식품 안전 검사 자동화의 기반**을 마련하고,  

- **분석 속도와 정확도 모두를 향상**시키며,  

- **비전문가도 이용 가능한 오픈소스 도구**라는 점에서 사회적 가치가 큽니다.[1]

즉, FBPP는 식중독 예방은 물론, 향후 신종 병원균이나 바이러스의 빠른 대응에도 활용될 수 있는 **차세대 식품 안전 진단 기술의 핵심 기반**이라 할 수 있습니다.[1]

***

이 논문은 “프라이머 설계”라는 복잡한 전문 영역을 자동화해, 더 많은 사람과 기관이 식품 안전과 공중보건 향상에 기여할 수 있도록 길을 연 연구로 평가받고 있습니다.



출처: @ye._.vely618


화요일, 8월 01, 2023

ncbi 횽아들은 어디까지 만들어 낼 것인가

이것저것 작업하면서

ncbi tool들을 다시 사용하고 있는데..

훗.. 역시 우리 ncbi 훃아들의 위대함을 다시 한번 느꼈다는...


NCBI BLAST에서 taxonomy로 제한 거는 기능을 당연히 stand-alone에서도 사용할 수 있는데 NCBI의 -taxid의 숨은 함정이 종 수준의 taxid만 제한 걸 수 있다는..

(근데 써보면 종 수준의 taxid만 제한이 걸리는지 갸우뚱 거리긴 함.. )


여튼 종 수준의 taxid만 제한할 수 있다는 것이 무엇이냐면..

종보다 상위 class의 taxid인 Enterobacterales의 taxid를 사용하면 정상적으로 작동을 안하게 된다는 말씀.

그러므로 NCBI BLAST 프로그램을 다운 받았을 때 함께 있는 get_species_taxids.sh를 활용하면 이 문제를 피해갈 수 있다고 합니다.

사실 최근까지 get_species_taxid.sh가 왜 있는지 관심은 없을 뿐더러
왜 쓰잘떼기 없는 shell script는 왜 넣어놨는지 했다는 ㅎㅎ 


여튼 언제나 NCBI 훃님들께 감사인사를... :)


참고 URL: https://www.ncbi.nlm.nih.gov/books/NBK569846/



출처: @ye._.vely618


토요일, 6월 18, 2022

mummer4, 미처 알아보지 못했다

mummer는 서열 정열프로그램으로 꽤나 오래부터 사용되었던...
NGS시대에 접어들면서 일반적으로 사용되지는 않고...
Reference 제작할때 종종 쓰이는...

MUMmer이라고 보통 쓰는데... MUM의 의미가 "Maximal Unique Matches"라고.. 여기에 나와있었네요..

그리고 이번에 알았는데.. MUMmer는 당연히 target와 query는 fasta형식만 입력될줄 알았는데 input으로 fastq도 사용할 수 있다는..
당연히 fasta 형식으로 변경해서 사용하려고 했는데... 작동해서 잠깐 화장실좀 다녀왔다능..

input으로 fastq형식을 받을 수 있는 버전의 tools이 2018년도에 논문으로 출판되어 한번 들추어 보았습니다.

이름하여 MUMmer4: A fast and versatile genome alignment system

이전 MUMmer3 이후 데이터구조를 32bit에서 48bit로 증가시켜 이론적으로 비교가능한 크기가 141Tbp (다시 한번 화장실을 다녀오게 만드는.....)로 늘렸다는.. 근데 이거 141Tbp이 입력 파일이면 입력 파일 로딩하는데만 한세월 아닌가...

여튼..

MUMmer4 논문 작성 할때 언급해준 정렬 프로그램으로
그냥 생명정보학 분석한다고 할때 기본 옵션인 BWA/Bowtie,
PacBio 데이터 할때 사용하는 BLASR 들을 언급해 주셨는데
이제 fastq형식의 파일을 지원해서
reference vs reference 비교 프로그램이 NGS용 정렬 프로그램들에게 어깨를 나란히 할 수 있는 기회를...

mummer라고 하면 갱장한 legacy 프로그램이라고 생각할 수 있지만...
다방면으로 개선 시킨 mummer4를 하나하나 뜯어보면 갱장히 힙해졌다고 볼 수 있습니다.

NGS 시대에 다양하게 쏟아져 나오는 reference크기에 대응할 수 있도록 비교 사이즈의 증가(141Tb)되었고, 또한 긴 서열 작업시 메모리 문제가 발생할 것을 대비해서 긴 서열들을 자동으로 분할해서 작업해주는 --batch라는 옵션기능까지...

mummer4의 새로운 기능들이 갱장히 많아졌습니다.

reference 서열을 제작하는 de-novo assembly하시는 분들 외에도 다양한 작업시 사용할 수 있을것으로 생각되니 한번 기능들 구경해보시고 활용해보시기 바랍니다.


그런데... 사실 NGS 서열 정렬은 역시 여기가 맛집이긴 합니다.


ps. BLAST에서도 query파일을 fastq 형식을 받을 수 있다고 합니다. 이름하여 Magic-BLAST를 사용하시면되겠습니다. 속도는 잘 모르겠습니다. ㅎㅎ 


@ye._.vely618



 

금요일, 7월 13, 2012

BLAT and BLAST Output Format Fields

BLAST (-m 8)과 BLAT 결과를 보면 table 형식으로 되어 있는데 head들이 친절하게 설명되어 있는 것도있지만 대량분석할 때에는 귀찮아서 Header 정보를 제거하고 결과를 뽑아서 가끔씩 헷갈릴때가 있다. 본인은 그렇다.. :)

그래서 다시 정리를... 쿨럭.. ㅎㅎ


NCBI Blast Tabular output format fields

(Blast Head의 경우 부연 설명이 필요 없을 정도로 simple하다. :))
QueryIdSubjectId
Identity percent
AlnLength
mismatchCount
gapOpenCount
QueryStart
QueryEnd
SubjectStart
SubjectEnd
Evalue
bitScore

위의 링크된 사용자가 심플하게 parsing하는 예제를 함께 보여주고 있는데 
참고하면 좋을듯 :)


-Python 

for line in open(“myfile.blast”):
(queryId, subjectId, percIdentity, alnLength, mismatchCount, gapOpenCount, queryStart, queryEnd, subjectStart, subjectEnd, eVal, bitScore) = line.split(“\t”)


-Perl 

while (<>) {
($queryId, $subjectId, $percIdentity, $alnLength, $mismatchCount, $gapOpenCount, $queryStart, $queryEnd, $subjectStart, $subjectEnd, $eVal, $bitScore) = split(/\t/)
}





BLAT Spec

matches int unsigned , # Number of bases that match that aren't repeats
misMatches int unsigned ,  # Number of bases that don't match
repMatches int unsigned ,  # Number of bases that match but are part of repeats
nCount int unsigned ,      # Number of 'N' bases
qNumInsert int unsigned ,  # Number of inserts in query
qBaseInsert int unsigned , # Number of bases inserted in query
tNumInsert int unsigned ,  # Number of inserts in target
tBaseInsert int unsigned , # Number of bases inserted in target
strand char(2) ,           # + or - for query strand, optionally followed by + or – for target strand
qName varchar(255) ,       # Query sequence name
qSize int unsigned ,       # Query sequence size
qStart int unsigned ,      # Alignment start position in query
qEnd int unsigned ,        # Alignment end position in query
tName varchar(255) ,       # Target sequence name
tSize int unsigned ,       # Target sequence size
tStart int unsigned ,      # Alignment start position in target
tEnd int unsigned ,        # Alignment end position in target
blockCount int unsigned ,  # Number of blocks in alignment. A block contains no gaps.
blockSizes longblob ,      # Size of each block in a comma separated list
qStarts longblob ,         # Start of each block in query in a comma separated list
tStarts longblob ,         # Start of each block in target in a comma separated list


-Python

for line in open(“myfile.blat”): 
(matches, misMatches, repMatches, nCount, qNumInsert, qBaseInsert, tNumInsert, tBaseInsert, strand, qName, qSize, qStart, qEnd, tName, tSize, tStart, tEnd, blockCount, blockSizes, qStarts, tStarts) = lines.split("\t")



금요일, 3월 23, 2012

Fasta 형식의 파일에서 빈서열 제거


가끔씩 Blast를 수행하고자 formatdb를 수행 할 때,
다음과 같은 에러를 접한 적이 있으리라 본다.


[formatdb] WARNING: Cannot add sequence number XXXXX XX.XXX.XXX.
 because it has zero-length.
[formatdb] FATAL ERROR: Fatal error when adding sequence to BLAST database.


formatdb를 수행하려는 fasta 서열에
빈 서열을 가지고 있기 때문에 나오는 에러로
빈 서열을 제거하면 OK!

vi check.py


import glob,sys
from Bio import SeqIO


file = sys.argv[1]


ow = open(file.split('.')[0]+'.check','w')
seqs = SeqIO.parse(open(file), format='fasta')
 for rec in seqs:
        name = rec.description
        seq = rec.seq.tostring()


        if len(seq.strip()) != 0:
                ow.write('>'+name+'\n')
                ow.write(seq+'\n')


ow.close()



[test]$python check.py test.fasta

Blastall Manual


NCBI에서 제공되는 Blastall에 대한 메뉴얼
blast-2.2.18을 기준으로 작성합니다. 현재 2.2.20이 나와있죠??
아마 옵션은 거의 동일할것입니다.
제가 많이 사용하는 것을 중심으로 설명합니다.
-지금은 더 업되어 있을 겁니다.
 그리고 이제는 슬슬 BLAST+로 옮겨타보려고 계획중입니다. :)

-p 5개의 기본 blast 프로그램중 하나를 선택하는 옵션
ex) -p {blastn|blastp|blastx|tblastn|tblastx}

-d blast를 돌리기 위한 데이터베이스 선택하는 옵션
ex) -d {nr|nt|your_database_file}
blast에서 데이터베이스로 사용하기 위해서는 fasta파일을 formatdb로 blast에 사용할 수 있는 데이터베이스로 변환시켜주어야 사용 가능. formatdb 수행후 붙는 확장자 명은 적어주지 않아도 됨. 파일이름 적음.

-i 검색해보고 싶은 서열(들) 입니다. Query 파일은 fasta format으로 되어있어야 함.
ex) -i your_query_file.seq 현재폴더에 있는 서열 파일      
      -i /your/home/path/query.fasta 다른 폴더에 있는 서열 파일

-e Expectation value를 정해줘서 설정된 값보다 크면 결과에 포함시키지 않는 옵션. 일반적으로 blastn의 경우 1e-06/1e-12, blastp의 경우 1e-03/1e-06으로 설정하고 상황마다 조정하면서 사용.
ex) -e 1e-06
-m 결과 파일을 저장할때의 format 결정 옵션. 일반적으로 로컬에서 blast를 돌리시려는 분들은 대량의 서열을 분석하기 위함이니, -m 8이 결과 파일을 분석하기 용이함,
ex) -m 8


-o Blast 결과 파일 설정하는 옵션
ex) -o your_output_file


-M blast를 실행시킬때 Matrix를 사용하게 하는 옵션. 서열과 서열을 비교하면서 weight를 주어서 peptide 서열을 검색할때 사용됨. 기본값은 BLOSUM62.
Matrix는 /your_blast_folder/data/ 밑에 있음.
ex) -M {BLOSUM62|PAM250|your_matrix}

-a CPU가 1개 이상일때 blast 수행시 하나 이상의 cpu를 사용하게 하는 옵션
ex) -a 2

Local에서 Blast 작업 돌리기


BLAST는 최근 생명공학을 하는데 기본 도구중에
하나가 되었지만 그럼에도 많은 연구자들이 BLAST를
제대로 사용하지 못하고 있는 것이 현실이다.

BLAST를 수행하는데 Database가 NCBI나 다른 여타의 사이트에서
제공안되는 Database를 이용해야만 되는 경우가 발생하면 어떻게 할 것인가?

혹은 BLAST를 해야할 Query가 수십개가 아닌 수백, 수천개라면
어떻게 할 것인가?

이런경우 자신의 컴퓨터에서 BLAST를 수행하게 된다면 원하는 작업을
손쉽고 빠르게 할 수 있다.

BLAST 프로그램은 대부분 연구자들이 알고 있듯이
NCBI에서 다운로드 받을 수 있다.
ftp://ftp.ncbi.nih.gov/blast/executables/release
위의 ftp 주소에 들어가 자신의 플랫폼에 맞는 파일을 다운로드 받으면 일단 BLAST를
수행할 수 있는 준비가 된다.

다운로드 받은 압축 파일(실행파일(*.exe)로 압축되어있는)을 풀면
bin, data, doc 세개의 폴더가 나타난다.
BLAST를 직접 수행하는 실행파일은 bin 폴더안에 있다.

기본적으로 BLAST를 사용하기 위해서 두개의 파일이 필요하다.
blastall과 formatdb이다.
blastall은 일반적인 blast, 즉 blastn, blastp, blastx, tblastx,tblastn를 수행할 때 사용된다.
formatdb는 blast를 할 수 있는 database를 만들어 주는 파일이다.
blast에 사용되는 database는 항상 ncbi나 다른 웹사이트에서 제공해주는 것이 아니기
때문에 자신만의 database를 만들 수 있어야 한다.


formatdb -i INPUT_FILE -p T|F -o T|F


- i INPUT_FILE은 fasta form을 따르는 서열들이 모인 파일이면 문제없다.
- p INPUT_FILE이 DNA서열인지  Protein 서열인지 확인하는 옵션값 protein의 경우 T
- o INPUT_FILE를 paser하는 옵션 NCBI에서 수집한 서열의 경우 -o T를 하여도 문제 없지만, NCBI의 form을 완벽하게 따르지않았다면 F 값을 사용.


blastall -p SELET_PROGRAM -i INPUT_FILE -d DATABASE_FILE -o OUTPUT_FILE  -m  OUTPUT_FORMAT


- p 어떤 blast 프로그램을 사용할지 선택
- i Query가 될 서열, 하나의 서열 혹은 다수의 서열이 하나의 파일에 존재 할 수 있다.
- d blast할 database
-o blast를 수행한 후 결과를 저장할 파일 이름을 지정한다.
-m -m 옵션을 지정하지 않으면 NCBI에서 blast를 수행한 화면을 볼 수 있다. 만약 다른 정보들은 필요 없고, 어느 서열이 어떤 서열과 유사성이 있는지 환인 할 수 있는 정보만 필요하다면 -m의 옵션값을 조절하여 원하는 정보만 저장 할 수 있다. 본인의 경우 -m 8을 많이 애용한다.