2013-12-16 3 views
1

과 함께 단일 명령을 사용하여 100 개의 파일을 실행합니다. motif 분석을 위해 약 100 개의 파일 (subset_1에서 subset_100)에 대해이 명령을 실행하고 해당 출력을 저장하려고합니다. 처음에는 하위 프로세스를 사용하여 목록을 만들어이 작업을 수행하려고합니다. 100 파일을 실행하는 방법을 제안하십시오.서브 프로세스

명령 : 여기

meme subset_*.fas -text -dna -mod anr -nmotifs 10 -w 8 -revcomp -maxsites 100 -bfile seqs.MEMEbkgr > subset_*.MEME 

내가 파이썬 스크립트를 시도하고있다 :

import subprocess 
m = ['meme', 'subset_%s.fas', '-text', '-dna', '-mod', 'anr', '-nmotifs', 
    '1', '-w', '8', '-revcomp' '-maxsites' '100' '-bfile' 'seqs.MEMEbkgr' 
     '>' 'subset_%s.MEME'] 
for i in range(2): 
    finder_out = open("subset_%s", "w") 
    finder_out.close() 
    subprocess.call('m') 
+0

은 모든 100 개 파일이 subset_.MEME 파일에 추가 하시겠습니까? – Back2Basics

+0

번호. 각 하위 집합이 별도의 파일로 필요합니다. – user2985098

+0

여기 Python 스크립트가 있습니다. 가져 오기 하위 프로세스 m = [ 'meme', 'subset_ % s.fas', '-text', '-dna', '-mod', 'anr', '-nmotifs', '1', '-w' 범위 2에있는 i에 대해 : finder_out = open (최대 범위 : 2) :범위에 해당하는 i에 대해 -maxsites '100'-bfile ''seqs.MEMEbkgr ''> 'subset_ % s.MEME'] ("subset_ % s", "w") finder_out.close() subprocess.call ('m') – user2985098

답변

2
#as example to be short enough 
command = "meme subset_{filenum}.fas > subset_{filenum}.MEME" 

for i in range(100): 
    param={"filenum":i} #this is used to replace {filenum} with i in comnmand 
         #param is dict with string as key 
    command_t=command.format(**param) 
    print command_t 
    subprocess.call(command_t,shell=True)