금요일, 8월 11, 2023

16S rRNA에서 V3/4와 V4/5는 대체 얼마나 다르지?

정확히 얘기하자면 북극해의 해양 생태계의 미생물 군집을 연구할 때는 16S rRNA의 어느 variable region을 사용하는게 좋을까? 되겠습니다.

Comparison of Two 16S rRNA Primers (V3–V4 and V4–V5) for Studies of Arctic Microbial Communities

doi: 10.3389/fmicb.2021.637526

예전부터 microbiome, metagenome연구할 때 항상 언급되는 내용이긴 합니다.
엄밀히 얘기하면

1. 박테리아 genome full sequence가 제일 좋아요
2. 안되면 full lenght 16S rRNA가 좋아요
3. 안되면 그냥 본인이 이거다 싶은거 쓰세요. 다른사람이 무엇을 쓰든지

여튼 이 논문은 빠른 온난화로인해 북극해의 해양 생태계가 어떻게 변화하는지 확인해보고자 1년여동안 모니터링한/샘플링한 데이터를 분석해봤는데, 지금까지 우리가 대중적으로 사용하고 있었던 16S rRNA의 V34가 진짜 golden standard인가? 우리 한번 생각해봐야하지 않겠나? 아니면 적어도 북극해의 미생물 분석 할 때는 (우리가 해봤을때는) 16S rRNA의 V34보다는 V45가 더 적합한것 같아요를 얘기하고 있는 논문되겠습니다.

여기서 얘기하고 있는 16S rRNA의 V34는 어디고 V45는 어디냐?

16S rRNA는 >여기< 참고하시면 잘 나와있습니다. 그리고 그중 V34와 V45는 어디냐?

V34는 341(F)에서 785(R)까지, V45는 515(F-Y)에서 926(R)까지라고 하네요

사실 범용적으로 사용하는 primer 위치들이 연구팀들마다 100% 동일하지는 않습니다. 살짝씩 다를 수 있으니 이 부분도 잘 확인하시면 좋을 것 같습니다.

그 이유는 이 논문에서도 언급되었듯이 지금까지 지금까지 연구가 잘 되어오지 않았던 곳(여기서는 북극해)에서는 어떤 variable region이 종들을 더 잘 구분하는지, 어떤 범용 primer set이 더 잘 작동하는지 정확히 모르기 때문에 그렇습니다. 반대로 사람의 대변, 구강과 같이 이미 수년동안 연구를 통해 실험 방법이 정립된 경우에는 그냥 기존 방법대로 하시면 되겠습니다.

그래서 이 논문의 결론은 북극해와 같이 아직 생태계가 연구되지 않은 환경에 대해서 미생물 군집 연구를 위해서는 V45 primer set을 사용하는 것이 좋다고 하였습니다.


근데 진짜 그럴까요?

논문에서도 나오지만 결론에서 북극해의 미생물 군집 연구를 위해서는 V45가 좋은데, 그 이유가 다른 미생물 군집 검출에 영향을 끼치지 않기 때문이고, archaea도 검출 가능하기 때문인데, V45와 함께 V34를 혼용해서 사용하면 더 좋지 않을까하는 생각이네요


그리고 사족으로 일부 샘플에서 현미경으로 셀 카운팅을 했는데 그 결과가 NSG와 차이가 있었고, 그 이유가 현미경 정량의 한계라고 얘기를 하였지만 꼭 그럴까하는 생각도, NGS의 한계일 수 도 있다는 생각은 >여기<를 보시면 알게 된다는..

그럼 다시 또 재미있는 이야기거리를 가져와 보도록 하겠습니다.



출처: @ye._.vely618


목요일, 8월 10, 2023

NCBI기반의 분류데이터를 손쉽게 다루는 방법

NCBI의 taxonomy 데이터는 드려다 보신 분들은 아시겠지만 환장의 도가니라고 할 수 있죠

그래서 보다 못한 호주의 어느 용자께서 NCBI의 taxonomy 데이터를 처리할 수 있는 스크립트를 개발하셔서 github에 올려주셨습니다. 물론 논문도 투고하셨고요


이름하여 ncbi-taxonomist, NCBI 분류학자라니.. Orz

Collecting and managing taxonomic data with NCBI-taxonomist

doi: https://doi.org/10.1093%2Fbioinformatics%2Fbtaa1027


여튼 재미있는 기능 중 하나가 NCBI의 nucleotide이든 protein이든 accession을 입력하면 이 accession의 taxonomy 정보를 알려준다는 것입니다.

물론 NCBI 분류학자답게 NCBI의 taxonomy ID과 종 이름(약간의 오타가 있어도, 그 오타가 NCBI에 등록되어 있다면)로도 검색할 수 있습죠.

accession 정보를 이용하여 taxonomy 정보를 파악하는게 생각보다 번거로운 작업인데 ncbi-taxonomist에서 명령어 한번 때려주면 호로록 검색해서 결과를 알려줍니다.

여튼 오늘은 간단한 기능을 보여주는 tool을 소개하였는데
밤새 태풍에 무탈하시기 바랍니다. :)



출처: @ye._.vely618


토요일, 8월 05, 2023

microbiome 시퀀싱 데이터는 얼마나 잘라내야 결과가 좋을까? for DADA2

요즘 QIIME2를 뒤적이고 있는 차에 쓰임이 많아 보이는 논문이 하나 있어서 투적해봅니다. (물론 greengene2만큼일련지는...)

Trimming conditions for DADA2 analysis in QIIME2 platform

doi: https://doi.org/10.11620/IJOB.2021.46.3.146


사실 QIIME2를 사용할 때뿐만 아니라 metagenome 분석을 할 때 한번은 짚고 넘어가야 하는 내용을 다루고 있어서 거쳐야 하는 단계를 가볍게 넘어가게 할 수 있지 않을까 합니다.

바로 metagenome분석시 qiime2에서 DADA2를 이용한 최적의 read trimming 조건 찾기 입니다.


metagenome 연구를 할 때 일반적으로 일루미나 플랫폼의 V3/4 region을 target으로 시퀀싱을 진행하게 됩니다. 16S rRNA가 종 동정에 많이 사용되고 16S rRNA의 가변 영역인 V1~V9중 해상도가 괜찮은 부분인 V3/4라고 연구되어 있기 때문에 일반적으로 많이 사용하고 있죠

V3/4은 대략 440bp정도이므로 안타깝게도 일루미나의 한쪽 read만으로는 V3/4 영역을 커버할 수가 없습니다. 그래서 pair로 짝을 이뤄 중간에 overlap되게 하여 시퀀싱을 진행하고 overlap되는 서열을 활용하여 merged/stitch 하게 됩니다.

이때 Read1에서는 얼마나 잘라내고 Read2에서는 얼마나 잘라내야지 내 피 같은 연구비를 들여서 생산한 데이터를 최대로 활용하면서 좋은 데이터를 확보할 수 있을까? 가 중요하게 됩니다.

그래서 이 연구팀은 QIIME2의 DADA2를 사용하여 Read1과 Read2를 얼마나 trimming해야지 내 데이터에서 좋은 결과를 뽑아낼 수 있는지에 대한 다양한 실험을 통해 확인하였습니다.

QIIME2에는 DADA2말고 deblur도 있는데 delbur는 왜 안 했어? 라고 하신다면 안타깝게도 deblur는 single read에서 작동된다고 되어 있으니 deblur 결과가 궁금하신 분께서는 직접 해보시는 것도 좋은 선택지 같습니다. :)


여튼 Read1과 Read2의 여러 수치의 trimming 조건과 trimming후 read merge/stitch 이후 chimera 서열로 보이는 데이터의 양, 그리고 trimming에 따라 얻어진 데이터의 미생물의 풍부도(Alpha Diversity)까지, 세심하게 trimming에 따른 결과 영향까지 확인해서 논문에 실어주었네요

사실 빡빡 trimming해서 좋은 quality base들만 남겨 논들 read merge/stitch가 되지 않고, 죄다 chimera라고 나와버리면 무용지물이다 보지 trimming 이후에 trimming의 영향에 대해서도 함께 평가해서 적절한 trimming 지점을 제안해주고 있습니다. 

결과적으로 Read1은 1사분위의 read quality가 Q20가 되면 이제 그 위치부터는 헤어져야 하고, Read2는 Read1과 overlap되는 길이가 16bp이상만 되도록 조절(trimming)해주면 결과에 나쁜 영향을 미치지 않는 -개인적으로는 망하지는 않는 조건이지 않을까 합니다- trimming 조건이라고 얘기하고 있습니다.


그럼 다음에 또 재미있는 내용으로 찾아와 보도록 하겠습니다.


출처: @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


토요일, 7월 29, 2023

왕의 귀환, greengene2

어이쿠... 기억속에 잊혀져 있던 database가 우리 곁으로 다시 돌아왔네요

옛날에 metagenome 한번 해봤으면 썼었던 바로 그 db, greengene이 버전업 해서

greengene2으로 아래 논문으로 돌아왔습니다.


Greengenes2 unifies microbial data in a single reference tree


역시 우리 Rob훃아가 찬밥 신세로 있었던 greengeen을 멱살 잡고 끌고 온듯합니다.

단순히 greengene의 빈약했던 taxonomy정보만 벌크업 한것이 아닌 16S rRNA와 shotgun metagenome 결과를 비교할 수 있도록 개선했다고 합니다.

여튼 metagenome 하면서 다들 느낀 점은 시퀀싱 방법과 db가 바뀔 때 마다 결과가 왜 다르지 아니겠습니까? 이 문제를 (어느정도)해결하지 않나 싶습니다.

꼼꼼하게 보지는 않았지만 현존하는 종 db들을 싹싹 털었던듯 싶네요

WoL(Web of Life), LTP(Living Tree Project)등의 db에서 확보가능한 full length 16S rRNA 서열을 긁어모았고 쿵짝 쿵짝 하고 taxonomy는 통일을 하기 위해 NCBI체계를 따르는 LTP 정보를 GTDB(Genome Taxonomy DataBase)에 통합하였다고 합니다.  curation차이로 인해서 LTP와 GTDB간의 차이가 발생하고 종의 종보들이 누락되어 있는 것들이 있다보니 데이터가 더 풍부한 GTDB에 LTP 정보들을 통합하였다고 하네요.
(개인적으로 NCBI taxonomy 체계를 사용하고 있는데...)

여튼.. 거의 10년만의 greengene의 귀환 논문이고 (단순히) 데이터만 많았던 siliva가 긴장좀 하겠네요 ㅎㅎ 


더 자세하게 읽어 봐야하는데...

기쁜 마음에 포스트 먼저 훗..




출처: @ye._.vely618



수요일, 5월 17, 2023

The next giant step for microbes


최근 페링과 세레스에서 개발한 C. difficile 관련 치료제가 FDA의 승은을.. 아니 승인 받은 미생물 치료제들이 세상에 나오고 있고, 최근에는 세레스에서 먹는 장내 미생물 치료제까지... ㄷㄷㄷ

그런의미에서 microbes관련 짧은 글 하나가 눈에 보여 살짝쿵 글하나 올려봅니다.

The next giant step for microbes

C. difficile 치료제가 FDA 승인을 받은 시점에서 microbes가 가야하는 그곳은 어디인가?

이제 다들 잘 알고 있다 싶이 장 속의 미생물을 비롯해서 피부, 구강, 질, 폐 등 다양한 기관 -다분히 청정 또는 무균 일 것이라고 생각되는 장기들-에 우리와 함께 살고 있는 수많은 미생물들이 있습니다.

그 중 장 속에 압도적으로 많은 다양하고 많은 미생물들이 존재하고 신경 발달과 약물에 대한 치료의 효과에도 영향을 미치고 있는 엄청 중요한 존재인것을 이제 연구를 통해 알아가고 있습니다.

그래서 많은 바이오 기업들이 장내미생물을 활용한 약물 또는 건강을 개선하는데 사용할 수 있는 보조제나 치료제들을 개발하기 위해 노력하고 있습니다.

그러나 아직 장내미생물이 건강에 지대하고 중요한 역할을 하는 것에 비해 알려진것이 생각보다 많진 않는것 같습니다. 또한 약물이나 치료제로써 사용하기 위해서 안전성도 중요한 문제이다 보니 이런 부분들에 대해서도 아직 갈길이 멀지만 그래도 또 걷다보면 좋은 일이 있지 않을까 합니다.

간만에 간략한 글 하나 공유해보았습니다.


세상에는 할일이 참 많다는 것은 변하지않는 진리인듯 합니다. :)




출처: @ye._.vely618


수요일, 4월 26, 2023

언제까지 primer3만 사용할텐가

이제부터는 ConsensusPrime을 사용해보자.

ConsensusPrime—A Bioinformatic Pipeline for Ideal Consensus Primer Design

https://github.com/mcollatz/ConsensusPrime

작년 말에 출판된 논문으로 서열 정렬과 프라이머 디자인까지 자동화한 tool 소개 곰국되겠습니다.

소스코드는 물론 최신 트렌드에 맞게 docker로도 제공되고있습니다.

primer를 디자인 하고자 하는 영역의 서열과 primer3의 paramerter 파일만 준비하면 나머지는 제가, 아니 ConsensusPrime가 해줍니다.

물론 내가 원하는 수준의 결과물이 나오냐? 그런 모르겠습니다만

그래도 온갖 삽질은 줄어 들것 같은 긍정회로가 돌아가고 있지 않나요? 

실제로 쓸만한지는 한번 사용해보는걸로 :)


다음에 흥미로운 논문으로 찾아오도록 하겠습니다.



@ye._.vely618






화요일, 4월 25, 2023

딥러닝을 이용해서 CRISPR/Cas9의 Off-Target Cleavage의 정확도를 보장할 수 있을까?

간만에 CRISPR/Cas9 off target 예측 툴하나 훑어보겠습니다.

biorxiv에 21년도에 오픈된 논문인데, 지금쯤이면 어디 안착했을거라고 생각했던 논문인데 아직 biorxiv에 있네요..

제목은 "piCRISPR: Physically Informed Deep Learning Models for CRISPR/Cas9 Off-Target Cleavage Prediction"

doi : https://www.biorxiv.org/content/10.1101/2021.11.16.468799v3

github florianst/picrispr


유전자 편집에서 CRISPR/Cas9은 언급을 하지 않을 수 없는 기술이 됐죠

CRISPR/Cas9의 경우 기존 1,2세대 유전자 가위와 달리 target 서열을 인식하는 guide RNA만 있으면 어렵지 않게 유전자 편집을 할 수 있죠.

그러나 그와 함께 편집하고자 하는 위치를 정확히 하고자 하면 guide RNA의 길이가 길어질 수 밖에 없는데 guide RNA의 specific을 확보하기 위해 길이를 무한정 늘릴 수 없는 노릇이고, 사람 genome안에 흔하디 흔한 서열을 guide RNA 서열을 사용하게 되면 불필요한 곳을 편집하게 되니 guide RNA 서열을 잘 디자인 하는 것과 디자인한 guide RNA 서열이 off-target 없이 잘 작동하는지 미리 검토하는 작업이 필요하게 되었습니다.

그래서 유행하는 Deep Learning을 사용하여 CRISPR/Cas9의 off-target cleavage 정확도를 예측하는 툴을 만들었다고 합니다.


결론적으로,

동일한 guide RNA 서열이더라도 환경, 같은 사람이더라도 피부조직의 환경에서의 genome 또는 다양한 암(폐, 대장, 간...) 세포 내에서의 genome의 상황은 서로 다를 것이므로 이런 정보들을 잘 활용하여 CRISPR/Cas9 Off-Target의 cleavage의 예측 정확도를 향상 시켰고, 기존의 단순한 서열 기반의 off-target cleavage 예측 시스템과 다른 정확도를 보여줬다고 합니다.

모델은 6x23 모델과, 16x23 모델 2가지를 사용하였고,

서열정보와 더불어 GC Content, Nucleotide BDM, NuPoP Affinity, CRISPoff Free Energy 정보들을 활용하여 기존의 CRISPR/Cas9의 off-target 예측 툴 들과 비교하여 월등(?)한 결과를 보여줬다고 합니다.

그리고 Deep Learning종류 중 CNN(Convolutional Neural Network)와 RNN(Recurrent Neural Network) 방법이 있는데 결과를 비교 하다 보면 어떤 경우에는 CNN 방법이, 다른 경우에는 RNN 방법이 우수한 경우가 있었습니다. 이는 CNN과 RNN간의 우열이 있기 보다는 학습 방법의 특장점을 잘 활용해야 하는 것으로 보였고, 데이터의 특징에 따라 학습 모델을 잘 활용하면 조금 더 나은 결과를 확인 할 수 있지 않을까 합니다.


다음에 또 좋은 내용을 가지고 찾아오도록 하겠습니다. :)






@ye._.vely618





수요일, 4월 05, 2023

너도 AB1파일 가지고 pdf 만들 수 있어 (2)


너도 AB1 파일 사용해서 pdf 만들 수 있어 첫번째 글에 이은 두번째!!!


chatGPT한테 물어 물어 좀 쉽게 작성을 해보려고 했으나...

아.. 이것 또한 쉽지 않습니다.

예제를 보여줘서 학습을 시키면 좋을텐데... 잘 모르게서

그냥 간단히 matplotlib 코드만 간단히 활용해 보았습니다.


ab1 파일을 분석하는 것은 그냥 노가다로... ㅎㅎ 

우선 그냥 chatGPT한테 

"ab1파일 parsing해서 pdf로 만드는 스크립트 작성해줘" 하면 


from Bio import SeqIO

import matplotlib.pyplot as plt


# ab1 파일 경로 설정

abif_file = "example.ab1"


# ab1 파일 파싱하여 전기영동 결과 얻기

abif_record = SeqIO.read(abif_file, "abi")

electropherogram = abif_record.annotations['abif_raw']['DATA2']


# matplotlib를 이용하여 전기영동 결과 그래프 그리기

plt.plot(electropherogram)

plt.title("Electropherogram")

plt.xlabel("Base Position")

plt.ylabel("Signal Strength")

plt.show()


이렇게 알려줍니다.


이거 그대로 작성하면 우리가 기대했던 이미지하고 영 딴판의 결과가 저장됩니다.


그래서 세부 내용들은 Applied Biosystems에서 제공하는 Data File Format pdf를 좀 들쳐봐야합니다.

그래서 코드를 좀 수정 하면...


from Bio import SeqIO
import matplotlib.pyplot as plt

# ab1 파일 경로 설정
abif_file = "example.ab1"

# ab1 파일 파싱하여 전기영동 결과 얻기
abif_record = SeqIO.read(abif_file, "abi")
poc = record.annotations['abif_raw']['PLOC1']
a = record.annotations['abif_raw']['DATA10']
c = record.annotations['abif_raw']['DATA12']
g = record.annotations['abif_raw']['DATA9']
t = record.annotations['abif_raw']['DATA11']

data = {"A":a_seq, "C":c_seq,"G":g_seq,"T":t_seq}

plt.figure(figsize=(len(poc)/10,5))
for base, color in zip("ACGT",["g","b","k","r"]):
    plt.plot(data[base],color=color)

tmp = [None]*len(a_seq)

i=0
for pnt in poc:
    tmp[pnt]=seq[i]
    i+=1

plt.xticks(range(len(tmp)),tmp, fontsize=6)
plt.savefig('output.pdf')


이 코드를 사용하면 응? 좀 이상하지만 약간 그럴싸한 이미지가 보이실겁니다.

시퀀칭 업체에 Sanger Sequencing에 맡기면 fasta파일과 ab1파일과 함께 오는 pdf파일과 다르긴 하지만 얼추 비슷한...

그럼 다음 기회에는 Sanger Sequencing 맡기면 함께 받아 볼 수 있는 pdf 파일을 만들어보기로 해봐요. 내년 쯤에는 할 수 있지 않을까 합니다. :)




출처: @ye._.vely618





월요일, 3월 20, 2023

AAPL 1년치 주식 자료를 쉽게 다운로드 받을 수 없을까?

왜 없겠습니까?

그래서 chatGPT와 Bing에게 물어보았습니다.


chatGTP

----

Q: https://finance.yahoo.com/ 에서 API를 이용해서 AAPL 주식 1년 자료 다운로드 받는 코드 짜줘.

A: 안녕하세요! Yahoo Finance API는 2017년 이후에 deprecated되어 더 이상 지원되지 않기 때문에, 이를 이용한 데이터 수집이 불가능합니다. 대신 Yahoo Finance에서는 다양한 주식 데이터를 제공하고 있으므로 다른 방법으로 데이터를 수집해야 합니다.

먼저, Python에서는 yfinance 라이브러리를 이용해서 Yahoo Finance에서 주식 데이터를 다운로드할 수 있습니다. yfinance를 사용하면 간편하게 주식 데이터를 다운로드할 수 있습니다. 아래는 yfinance 라이브러리를 이용해 AAPL의 1년치 주식 데이터를 다운로드하는 코드입니다.

import yfinance as yf

import datetime


start_date = datetime.datetime.now() - datetime.timedelta(days=365)

end_date = datetime.datetime.now()


# AAPL의 주식 데이터를 다운로드합니다.

aapl = yf.download("AAPL", start=start_date, end=end_date)


# CSV 파일로 저장합니다.

aapl.to_csv("AAPL.csv")


이 코드는 현재 날짜를 기준으로 1년 전부터 현재까지의 AAPL 주식 데이터를 다운로드하고, CSV 파일로 저장합니다. 위 코드에서 start_date와 end_date 변수를 변경함으로써 원하는 기간의 데이터를 다운로드할 수 있습니다.

----


BING

----

# yfinance 라이브러리 설치

pip install yfinance

# yfinance 라이브러리 임포트

import yfinance as yf

# AAPL 티커 객체 생성

aapl = yf.Ticker("AAPL")

# 1년 동안의 주가 데이터 가져오기

hist = aapl.history(period="1y")

# 데이터를 csv 파일로 저장하기

hist.to_csv("aapl_1y.csv")

----


chatGTP와 bing에게 코드를 작성해 달라고 하였을 때 현재 단순한 코드에서는 chatGPT의 손을 들어주고 싶습니다.

그 이유는 date와 period의 차이라고 해두죠. 나중에 특정 년 월 일을 사용할 것을 생각한다면 bing보다는 chatGPT가 (아직은) 한 수 위 인듯 합니다. :)




출처: @ye._.vely618