>

패스워드 형식의 뉴클레오타이드를 문자열 (각각 한 단어로 입력)로 읽는 다음 이미 알려진 결합 부위 서열 (11 bp 길이)을 사용하여 word2vec 모델을 통해 뉴클레오타이드 서열을 검색하는 코드를 개발하려고했습니다

fasta 파일처럼 보이고 모든 값을 문자열로 순서대로 읽습니다

`시퀀스 :

ATCGTGACGTGACGTGACGT

CGTAGCTAGAGCTAGCGGATCGA

그리고 바인딩 사이트는 데이터 프레임에서 df [ 'binding']

ATGACTCAGCA

GTGACTAAGCA

ATGACTCAGCA

ATGACTCAGCA

...

파이썬 코드는 다음과 같습니다 :

import gensim 
import logging
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)
model = gensim.models.Word2Vec(sequences, size=2, min_count=len(sequences), sg = 1)
model.train(sequences,total_examples=len(sequences),epochs=10)
w1 = df['binding']
model.wv.most_similar(positive=w1)

각 바인딩 사이트 간의 관계를 원했지만 KeyError: "word 'ATGACTCAGCA' not in vocabulary" 로 오류가 발생합니다.  여기 ATGACTCAGCA는 df['binding'] 의 첫 번째 값입니다

내가 w1 = df['binding'] to w1='A' 를 변경하면 , 나는 결과를

[('T', 0.9952122569084167),
 ('G', 0.9772425889968872),
 ('C', 0.9460670351982117)]

두 개 이상의 염기쌍이 아닌 두 개의 바인딩 사이트 사이의 관계를 얻기 위해 무엇이 바뀌어야합니까?


  • 답변 # 1

    당신은 당신의 sequences 를 확인해야합니다  python 시퀀스는 각 항목이 토큰 목록이며, 여기서 토큰은 조회하려는 '단어'(예 : 여러 관련 11 자 문자 '바인딩 사이트')입니다. 'AGTC'문자 만있는 일련의 문자열 인 경우 토큰은 A 입니다. G T C .

    와이즈 비즈  적어도 수백 또는 수천 개의 어휘에는 적합하지 않은 흥미로운 벡터를 생성하지 못할 것입니다.

    와이즈 비즈  전체 예제가 적어도 여러 번 나타나지 않는 토큰을 버리는 한.

    size=2 에 전화 할 필요가 없습니다.  클래스 초기화에 데이터 세트를 제공 한 경우 이미 자동으로 교육을 시작했을 것입니다. (INFO 레벨에서 로깅으로 실행하는 경우 출력에서 ​​알 수 있습니다.)

    min_count

  • 이전 tfs2010 - 팀 프로젝트에서 tfs 2010 지점 - 모범 사례
  • 다음 PHP에서 페이지로드/새로 고침에 양식 제출을 방지하는 방법은 무엇입니까?