### Check that there is a database else built it DatabaseName = args.database CheckDatabase_BlastdbcmdProcess = BlastPlus.Blastdbcmd(DatabaseName, "", "") if not CheckDatabase_BlastdbcmdProcess.is_database(): logger.info("Database %s does not exist" % DatabaseName) #Build blast formated database from a fasta file if args.fastq or args.fasta: if args.fastq: if not os.path.isfile(args.fastq): logger.error("The fastq file (-fq) does not exist.") sys.exit(1) else: # Format the fastq file in fasta InputFasta = TmpDirName + "/" + os.path.basename(args.fastq) + ".fasta" logger.info("Convert the fastq file in fasta format") ExitCode = ApytramNeeds.fastq2fasta(args.fastq,InputFasta) elif args.fasta: InputFasta = args.fasta if not os.path.isfile(InputFasta): logger.error("The fasta file (-fa) does not exist.") sys.exit(1) if os.path.isdir(os.path.dirname(DatabaseName)): logger.info("Database directory exists") else: logger.info("Database directory does not exist, we create it") os.makedirs(os.path.dirname(DatabaseName)) # database building logger.info(DatabaseName + " database building") MakeblastdbProcess = BlastPlus.Makeblastdb(InputFasta,DatabaseName) ExitCode = MakeblastdbProcess.launch()
os.makedirs(os.path.dirname(args.output_prefix)) else: logger.error("The output prefix must be defined") end(1) ### Check that query files exist if args.query: QueryFile = args.query AliQueryFile = args.query if not os.path.isfile(QueryFile): logger.error(QueryFile+" (-q) is not a file.") end(1) elif not os.stat(QueryFile).st_size: logger.error(QueryFile+" (-q) is empty.") end(1) elif ApytramNeeds.count_sequences(QueryFile) !=1: logger.warning("%s (-q) contains more than one query. They are %s sequences." %(QueryFile,ApytramNeeds.count_sequences(QueryFile))) # If there are multiple probes, align them for the future coverage counter # Use Mafft start_mafft_time = time.time() MafftProcess = Aligner.Mafft(QueryFile) MafftProcess.QuietOption = True MafftProcess.AutoOption = True (MafftResult, err) = MafftProcess.get_output() AliQueryFile = "%s/References.ali.fasta" %TmpDirName ApytramNeeds.write_in_file(MafftResult,AliQueryFile) logger.debug("mafft --- %s seconds ---" % (time.time() - start_mafft_time)) # If the -pep option is used, the -q option must be precised if args.query_pep: