2012-02-18 2 views
3

어떻게해야합니까? Biopython을 사용하고 매뉴얼을 이미 보았습니다. 물론 독립형 NCBI BLAST +에서 "makeblastdb"를 사용하여 FASTA에서 blastdb를 만들 수 있지만 한 프로그램에서 전체 프로세스를 원합니다.Python의 FASTA에서 Blast 데이터베이스 만들기

두 가지 가능한 해결책이있는 것 같습니다.

  1. 이 작업을 수행하는 기능을 찾으십시오.

    찾을 수 없습니다. 나는 하루 종일 보냈다.

  2. "makeblastdb"를 python으로 실행하십시오.

    파이썬 쉘에서 os.system ("C : \ blast-2.2.25 + \ bin \ makeblastdb.exe")을 입력했지만 매개 변수를 제공 할 수 없습니다.

어떻게 해결할 수 있습니까? 도움을 주셔서 감사합니다.

+1

makeblastdb를 별도의 프로세스로 호출 할 때 어떻게 매개 변수를 제공하려고 시도 했습니까? –

답변

2

이것은 고전적인 Blast이지만 아이디어는 동일하게 유지됩니다. 코드는 내 응용 프로그램 KimBlast에서 추출됩니다. 제 생각에 그것은 자명 한 것 같습니다 :

def on_execute_setup(self, evt): 
    """on pressing execute button""" 
    FORMAT_EXE = os.path.join(self.blastpath, 'bin', 'formatdb') 
    fasta = os.path.join(self.dbpath, self.fasta) 
    format_filename = self.format_file.rsplit('.', 1)[0] 
    format_filepath = os.path.join(self.dbpath, format_filename) 
    format_type = 'T' if self.format_type == 'protein' else 'F' 

    format_cmd = '%s -i %s -p %s -n %s' % (FORMAT_EXE, fasta, 
              format_type, format_filepath) 
    process = subprocess.Popen(format_cmd, 
           stdout=subprocess.PIPE, 
           stderr=subprocess.PIPE, 
           shell=False) 

    (out, err) = process.communicate() 
관련 문제