유전자 뱅크 파일 .gbk에서 특정 유전자를 추출하고 싶습니다. 내 문제는 다음과 같습니다. 파일을 처리하기 위해 각 궤적의 헤더가 특정 형식이어야하며 내 파일에 없습니다. 내가 파일을 구문 분석하고 다음과 같은 헤더를 교체하려면 :파일을 구문 분석하고 파이썬에서 문자열을 수정하십시오.
LOCUS NODE_1_length_393688_cov_17.8554393688 bp DNA linear
BCT22-MAY-2017
DEFINITION Escherichia coli strain strain.
ACCESSION
VERSION
KEYWORDS .
SOURCE Escherichia coli
ORGANISM Escherichia coli
Bacteria; Proteobacteria; gamma subdivision; Enterobacteriaceae;
Escherichia.
....
>>Gene data here
....
LOCUS NODE_2_length_278889_cov_17.85545278889 bp DNA linear
BCT22-MAY-2017
DEFINITION Escherichia coli strain strain.
ACCESSION
VERSION
KEYWORDS .
SOURCE Escherichia coli
ORGANISM Escherichia coli
Bacteria; Proteobacteria; gamma subdivision; Enterobacteriaceae;
Escherichia.
....
>>Gene data here
....
LOCUS NODE_3_length_340008_cov_17.855432340008 bp DNA linear
BCT22-MAY-2017
DEFINITION Escherichia coli strain strain.
ACCESSION
VERSION
KEYWORDS .
SOURCE Escherichia coli
ORGANISM Escherichia coli
Bacteria; Proteobacteria; gamma subdivision; Enterobacteriaceae;
Escherichia.
....
>>Gene data here
....
NODE
로 시작되는 문자열은 파일 형식 규칙에 너무 오래이며 그 모양 때문에 교체해야합니다 :
LOCUS NODE_1_393688 bp DNA linear
....
LOCUS NODE_2_278889 bp DNA linear
....
LOCUS NODE_3_340008 bp DNA linear
잘라내어야 할 부분이 같은 길이 일 필요는 없으므로 문자열의 특정 위치 사이에있는 모든 것을 제거하는 고정 된 방법은 실현 가능하지 않습니다. re.compile()과 r.sub()를 사용하여 다른 접근법을 시도했지만 지금까지 성공하지 못했습니다.
도움을 주시면 감사하겠습니다. 시간 내 주셔서 감사합니다. 첫 번째 라인을 읽을 때
감사합니다. 좋은 소리입니다. 다른 하위 디렉토리의 여러 파일을 구문 분석하고 각 파일에서 'LOCUS'로 시작하는 줄의 모든 인스턴스를 수정하는 루프에이 작업을 구현하기 만하면됩니다. 이를 위해서 필자는 전체 파일 자체에서 읽은'content = textwrap.dedent' 함수에 텍스트를 채워 넣을 필요가 있습니다. 'textwrap.dedent' 할 수 있습니까? – kruemelprinz