def excuteCreat(projdir,processes,samples): structure_model = directory_structure.projdirectory(projdir,directory_structure.directory) filtered_modelbyProcesses = final_path(structure_model,processes) real_structure = creatDirect(filtered_modelbyProcesses,samples) for adirname in real_structure: for aprocess in real_structure[adirname]: creatDir(real_structure[adirname][aprocess]) print '\t'.join([adirname,aprocess,real_structure[adirname][aprocess]])
dirs[dirname][aprocess] = re.sub(p,dirname,pathes[aprocess]) return dirs def excuteCreat(projdir,processes,samples): structure_model = directory_structure.projdirectory(projdir,directory_structure.directory) filtered_modelbyProcesses = final_path(structure_model,processes) real_structure = creatDirect(filtered_modelbyProcesses,samples) for adirname in real_structure: for aprocess in real_structure[adirname]: creatDir(real_structure[adirname][aprocess]) print '\t'.join([adirname,aprocess,real_structure[adirname][aprocess]]) def write_shell(shell_file,cmds): with open(shell_file,'w') as sh: sh.write('\n'.join(cmds)+'\n') if __name__ == "__main__": p = directory_structure.projdirectory('d',directory_structure.directory) for k in p: print '\t'.join([k,p[k]]) print '#################################################################' pp = final_path(p,['rawdata','cleandata','aln','somaticsnv','snv','somaticsv','somaticmsi']) for k in pp: print '\t'.join([k,pp[k]]) print '#################################################################' dirs = creatDirect(pp,{'PA172':{'T':{'PA172TQ1':{}},'N':{'PA172NB1':{}}},'PA173':{'N':{'PA173NB1':{}}}}) for k in dirs: for m in dirs[k]: print '\t'.join([k,m,dirs[k][m]])
for asample in datas[aperson][TorN]: for alib in datas[aperson][TorN][asample]: for lane in datas[aperson][TorN][asample][alib]: if datas[aperson][TorN][asample][alib][lane]['rawdata'] != '-': if '.raw.fq.gz' not in infiles: infiles['.raw.fq.gz'] = [datas[aperson][TorN][asample][alib][lane]['rawdata'].split(',')] else: infiles['.raw.fq.gz'].append(datas[aperson][TorN][asample][alib][lane]['rawdata'].split(',')) elif datas[aperson][TorN][asample][alib][lane]['cleandata'] != '-': if '.clean.fq.gz' not in infiles: infiles['.clean.fq.gz'] = [datas[aperson][TorN][asample][alib][lane]['cleandata'].split(',')] else: infiles['.clean.fq.gz'].append(datas[aperson][TorN][asample][alib][lane]['cleandata'].split(',')) ##make dirs, and check the completeness of result files that were exsited p = projdirectory(projdir,directory) # for k in p: # print '\t'.join([k,p[k]]) # print '#################################################################' processes = set([wanted_jobs[ajob]['outputdir'] for ajob in wanted_jobs]) pp = final_path(p,processes) # for k in pp: # print '\t'.join([k,pp[k]]) # print '#################################################################' dirs = creatDirect(pp,samples) # for k in dirs: # for m in dirs[k]: # print '\t'.join([k,m,dirs[k][m]]) #寻找需要更新的bam文件和需要添加到datas中的bam文件,如以前下机的T,现在下机了N,可以做后面的somatic检测了,那就需要添加 #需要更新的bam文件是指加测新lane