2017-09-27 1 views
1

큰 서열 (F) 내에서 발생하는 작은 DNA 서열 (R)의 수를 찾고 조사하려고하는데, R은 몇 가지 문자를 가질 수 있습니다 변하기 쉬운. 내가 이것을 생각할 수있는 가장 쉬운 방법은 R에 대한 비율을 설정하고 F에서 80 %를 초과하는 모든 히트를 계산하는 것이지만, 이렇게하는 것처럼 보이는 명령 (예 : difflib의 SequenceMatcher 또는 get_close_matches)은 작업 할 목록이 필요합니다. 그런 목록에 F를 넣을 수 없습니다. 어떤 아이디어?더 큰 DNA 서열 내의 퍼지 시퀀스의 출현 횟수

EDIT 2 : 추가 정보 요청.

DNA 단편 (F)에 정해진 반복 횟수 (R)가 존재한다. F는 353 자이고 한 번의 반복은 15 자입니다. R이 겹치지 않을 정도로 겹치지 않아야합니다. 문제는 R이 가변적 일 수 있으며, 15 개의 문자 중 2 개의 문자가 변경되거나 동일하게 유지 될 수 있다는 것입니다. 이러한 유사 콘텐츠와 발생할 수있는 향후 유사 콘텐츠를 감지 할 수 있어야합니다. 나는 변수 문자도 중 하나를 같은 위치에 있지 않을 수 있습니다 R. 이러한 변화의 전체 별도의 데이터베이스를 피하기 위해 노력하고, 그래서 같은 정규식을 사용하고 있습니다 :

re.findall(pattern = "CTGCTTGGCGGG[TC]T[CG]", string = fragment) 

이 작동하지 않을 수 있습니다.

difflib.get_close_matches(repeat, fragment, cutoff = 0.85) 

반복이 CTGCTTGGCGGGTTC 것과 DNA 단편 AAAATTGCGGCATGTGGGCTGACTCTGAAAGCGATGCTCACGAAAAGGGAACGCGGCGCCGTCGGGCGCCGCGCGCCGCTTAGGACTGCTGGCCTGCGGCCGGCGCCTGCTTGGCGGGTTCCTGCTTGGCGGGCTCCTGCTTGGCGGGTTCCTGCTTGGCGGGTTCCTGCTTGGCGGGTTCCTGCTTGGCGGGCTGCTGCTTGGCGGGCTGCTGGGCCGGCGCCTGCTGGCCAGGAGCGGGCTGCTGGCCGGCAGGCGCCGCGCCCCCCTTGTTCCAGGGCGAAGCCTGCACCGGCGCCCCCGGACGGATCTTCTGGAAGCCTTCGACCACCACCACGTCTCCCGCCGCCAGG 될 것이다 : 또한, 여기 difflib를 통해 시도 할 때 내가 사용 된 것입니다.

반복하면 R은 DNA 단편에서 여러 번 반복된다는 의미입니다.

감사합니다.

+0

그것을 :

import re from itertools import product R = [['CTGCTTGGCGGG'] , ['T', 'C'], ['T'], ['C', 'G']] F = 'AAAATTGCGGCATGTGGGCTGACTCTGAAAGCGATGCTCACGAAAAGGGAACGCGGCGCC' +\ 'GTCGGGCGCCGCGCGCCGCTTAGGACTGCTGGCCTGCGGCCGGCGCCTGCTTGGCGGGTT' +\ 'CCTGCTTGGCGGGCTCCTGCTTGGCGGGTTCCTGCTTGGCGGGTTCCTGCTTGGCGGGTT' +\ 'CCTGCTTGGCGGGCTGCTGCTTGGCGGGCTGCTGGGCCGGCGCCTGCTGGCCAGGAGCGG' +\ 'GCTGCTGGCCGGCAGGCGCCGCGCCCCCCTTGTTCCAGGGCGAAGCCTGCACCGGCGCCC' +\ 'CCGGACGGATCTTCTGGAAGCCTTCGACCACCACCACGTCTCCCGCCGCCAGG' for repeat in product(*R): repeat = ''.join(repeat) matches = re.findall(repeat, F) if matches: print "The repeat '{}' is found {} time(s)".format(repeat, len(matches)) 

가 결과로 제공합니다 당신이하고 싶은 것이 무엇인지 완전히 명확하지 않습니다. 예제를 제공해주십시오. 더 나아가 오버랩 카운트 등을 지정하는 것이 더 좋습니다. –

+0

'R'과'F'의 예제를 붙여 넣을 수 있으며 반복으로 정의한 것을 더 설명 할 수 있습니까? – mitoRibo

+0

어쩌면 당신은 이것에 볼 수 있었다 : http://biopython.org/DIST/docs/api/Bio.motifs-module.html – bli

답변

0

귀하의 질문에 대한 자세한 정보가 부족하므로 약간의 가정을하였습니다. 당신이 목록의 목록으로 R 다시 작성할 수있는 경우

, 당신은 단지 R의 모든 가능한 변화를 계산하고 F에있는 사람들도 찾아보실 수 있습니다 :

The repeat 'CTGCTTGGCGGGTTC' is found 4 time(s) 
The repeat 'CTGCTTGGCGGGCTC' is found 1 time(s) 
The repeat 'CTGCTTGGCGGGCTG' is found 2 time(s) 
관련 문제