Linux를 사용하는 경우 sed
, awk
및 tail/head
에 대해 잘 알고 있어야합니다. 그들은 미래에 많은 시간을 절약 할 것입니다.
의 우리가
sed -n '/GN=FV3-002L/,/^>/p' uniprot_sprot.fasta | head -n -1
-n
유전자 FV3-002L를 찾고 있습니다 가정 해 봅시다 : 그래서
GN=FV3-002L
말했을 때 인쇄 만 나오지도 알려줍니다 : 검색어
^>
:의 끝을 당신의 검색, ^
은 줄의 시작 부분이며 >
FASTA 헤더의 시작 부분입니다.
파이썬을 사용하여의 마지막 라인을 제거하자 (더 나은 정규 표현식을 찾을 너무 게으른,하지만 당신이 얻을 생각)
:
/p
: 경기
| head -n -1
을 인쇄 나오지도 알려줍니다
gene = 'FV3-002L'
gene_found = False
fasta = ''
with open('uniprot_sprot.fasta') as f:
for line in f:
if gene in line:
gene_found = True
fasta += line
elif gene_found and line.startswith('>'):
break
elif gene_found:
fasta += line
print(fasta)
스크립트는 uniprot 파일을 열고, 각 줄을 읽고, 유전자 이름이 있는지 확인하고, 그렇다면 다음 줄까지 모든 줄을 읽고 마지막으로 FASTA 시퀀스를 인쇄합니다.
참고 사항 :이 발췌 문장은 단일 예제에서 작동하지만 여러 유전자에도 적용 할 수 있습니다. 이 작업을 일상적으로 수행하려면 데이터를보다 효율적으로 처리하는 방법을 찾아야합니다. 생물학적 데이터를 조작하려면 BioPython을 볼 수도 있습니다.
어떤 OS를 사용하고 있습니까? –