Thanks for the suggestion and corrections.
I don't put the else staement onf if log_file but now I realize my mistake
I have 3 comand to do:
step_1_out =["STAR --genomeDir /home/sbsuser/databases/Starhg19/GenomeDir/ --
runMode alignReads --readFilesIn %s   %s  --runThreadN 12  --readFilesCommand 
zcat "%(dx[i],sn[i])]
step_2_out = ["STAR --runMode genomeGenerate --genomeDir  %s  --
genomeFastaFiles ~/databases/bowtie2Database/hg19.fa --sjdbFileChrStartEnd  %
sSJ.out.tab --sjdbOverhang 49   --runThreadN 12" %(tx[i],tx[i])]
step_3_out =["STAR --genomeDir %s --runMode alignReads --readFilesIn %s   %s  
--runThreadN 12  --readFilesCommand zcat "%(Pos2,dx,sn)]

So I need to run one step a time. cmd is the comand (step_1_out) e pi is the  
directory of the files.


def run(cmd,pi):
        import subprocess
        import time
        import logging

        logging.basicConfig(level=logging.DEBUG,format="%(asctime)s - %(name)s 
- %
(levelname)s - %(message)s")

        #logging.debug(" Running pipelines: %s" % (cmd))
        # setup logging
        
        tou = "log.txt"
        logfh = open(tou, "r+")
        

        p1 = 
subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE,stderr=logfh,
cwd=pi)

        #logging.info(" Running pipelines: %s" % (cmd))
        while True:
                if p1.poll() is None:
                        time.sleep(120)
                        pass
                if p1.poll()==0:
                        print 'Finish this step.'
                        logging.info("###################: %s %s" % 
(cmd,time.ctime()))
                        break
                if p1.poll() is not None and p1.poll() != 0:
                        raise Exception('Not working please check the error')
        # end logging
        
        logfh.close()

        return  0

I don't understand where is the  error in the code above. 

If I change the code in this way seems work
def run(cmd,pi):
                import subprocess
                import time
                import logging

                logging.basicConfig(level=logging.DEBUG,format="%(asctime)s - 
%(name)s - %
(levelname)s - %(messag
e)s")

                #logging.debug(" Running pipelines: %s" % (cmd))
                # setup logging
                log_file = "None"
                tou = "og.txt"
                logfh = open(tou, "r+")

                

                p1 = 
subprocess.Popen(cmd,shell=True,stdout=logfh,stderr=logfh,cwd=pi)
                p1.wait()
                

                #logging.info(" Running pipelines: %s" % (cmd))
                

                return  0

Someone can explain to me when we neet to choose wait or pool?
Thanks for the help
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to