<applicationname="MALT"distributionSourceDir=""applicationId="3229-5251-7410-5330"mediaDir="../../../builds"mediaFilePattern="${compiler:sys.shortName}_${compiler:sys.platform}_${compiler:sys.version}"compression="6"lzmaCompression="false"pack200Compression="false"excludeSignedFromPacking="true"commonExternalFiles="false"createMd5Sums="true"shrinkRuntime="true"shortName="MALT"publisher="Daniel Huson's Lab, University of Tuebingen"publisherWeb="www-ab.informatik.uni-tuebingen.de"version="0"allPathsRelative="true"backupOnSave="true"autoSave="false"convertDotsToUnderscores="true"macSignature="????"macVolumeId="970a61501b2fa775"javaMinVersion="1.8"javaMaxVersion=""allowBetaVM="true"jdkMode="runtimeJre"jdkName="">
<macosFoldername="Mac OS X Folder"id="1691242149"customizedId=""mediaFileName=""installDir="MALT"overridePrincipalLanguage="true"jreBitType="all"runPostProcessor="false"postProcessor=""failOnPostProcessorError="false"useLegacyMediaFileIds="false"legacyMediaFileIds=""downloadURL=""includeAllDownloadableComponents="false"includedJRE="macosx-amd64-1.8.0_112"manualJREEntry="false"bundleType="1"jreURL=""jreShared="false"directDownload="false"installOnlyIfNecessary="false"appleJre="false"requiredVmIdPrefix=""customInstallBaseDir=""contentFilesType="2"installerName="${i18n:InstallerName(${compiler:sys.fullName})}"volumeName="${compiler:sys.shortName}"compressDmg="false"signLaunchers="false">
<macosFoldername="Mac OS X Folder"id="1691242149"customizedId=""mediaFileName=""installDir="MALT"overridePrincipalLanguage="true"jreBitType="all"runPostProcessor="false"postProcessor=""failOnPostProcessorError="false"useLegacyMediaFileIds="false"legacyMediaFileIds=""downloadURL=""includeAllDownloadableComponents="false"includedJRE="macosx-amd64-1.8.0_162"manualJREEntry="false"bundleType="1"jreURL=""jreShared="false"directDownload="false"installOnlyIfNecessary="false"appleJre="false"requiredVmIdPrefix=""customInstallBaseDir=""contentFilesType="1"installerName="${i18n:InstallerName(${compiler:sys.fullName})}"volumeName="${compiler:sys.shortName}"compressDmg="false"signLaunchers="false">
@@ -380,21 +369,21 @@ public class AlignmentEngine {
break;
}
caseTab:{
text=aligner.getAlignmentTab(dataForInnerLoop,null,referencesDB.getHeader(refIndex),seedMatch.getRank());// don't pass queryHeader, it is added below
text=aligner.getAlignmentTab(dataForInnerLoop,null,referenceHeader,seedMatch.getRank());// don't pass queryHeader, it is added below
break;
}
caseSAM:{
rma3Text=text=aligner.getAlignmentSAM(dataForInnerLoop,null,query.getSequence(),referencesDB.getHeader(refIndex),seedMatch.getRank());// don't pass queryHeader, it is added below
rma6Text=text=aligner.getAlignmentSAM(dataForInnerLoop,null,query.getSequence(),referenceHeader,seedMatch.getRank());// don't pass queryHeader, it is added below
break;
}
}
}
if(rmaWriter!=null&&rma3Text==null){
rma3Text=aligner.getAlignmentSAM(dataForInnerLoop,null,query.getSequence(),referencesDB.getHeader(refIndex),seedMatch.getRank());// don't pass queryHeader, it is added below
if(rmaWriter!=null&&rma6Text==null){
rma6Text=aligner.getAlignmentSAM(dataForInnerLoop,null,query.getSequence(),referenceHeader,seedMatch.getRank());// don't pass queryHeader, it is added below
}
if(percentIdentity>0)// need to filter by percent identity. Can't do this earlier because number of matches not known until alignment has been computed
{
if(text==null&&rma3Text==null)// haven't computed alignment, so number of matches not yet computed
if(text==null&&rma6Text==null)// haven't computed alignment, so number of matches not yet computed
aligner.computeAlignmentByTraceBack();// compute number of matches
if(aligner.getIdentities()<percentIdentity*aligner.getAlignmentLength()){// too few identities
if(incrementedNumberOfReadMatchesForRefIndex)
...
...
@@ -402,7 +391,7 @@ public class AlignmentEngine {
finalList<String>inputFiles=options.getOptionMandatory("i","input","Input reference files in FastA format (or specify a single directory)",newLinkedList<String>());
finalList<String>gffFiles=options.getOption("-igff","inputGFF","Files that provide CDS annotations of DNA input files in GFF format (or specify a single directory)",newLinkedList<String>());
options.comment("Output:");
finalStringindexDirectoryName=options.getOptionMandatory("d","index","Name of index directory","");
finalStringindexDirectoryName=options.getOptionMandatory("-d","index","Name of index directory","");
options.comment("Performance:");
finalintnumberOfThreads=options.getOption("t","threads","Number of worker threads",Runtime.getRuntime().availableProcessors());
finalintstepSize=options.getOption("st","step","Step size used to advance seed, values greater than 1 reduce index size and sensitivity",1,1,100);
finalintnumberOfThreads=options.getOption("-t","threads","Number of worker threads",Runtime.getRuntime().availableProcessors());
finalintstepSize=options.getOption("-st","step","Step size used to advance seed; a value greater than 1 will reduce index size, but also sensitivity",1,1,100);
String[]cNames=options.getOption("-c","classify","Classifications (any of "+Basic.toString(availableFNames," ")+")",newString[]{Classification.Taxonomy});
finalbooleanfunctionalClassification=!options.getOption("-nf","noFun","Turn off functional classifications for provided mapping files (set this when using GFF files for DNA references)",false);
options.comment(ArgsOptions.OTHER);
ProgramProperties.put(IdParser.PROPERTIES_FIRST_WORD_IS_ACCESSION,options.getOption("-fwa","firstWordIsAccession","First word in reference header is accession number",ProgramProperties.get(IdParser.PROPERTIES_FIRST_WORD_IS_ACCESSION,true)));
...
...
@@ -154,6 +149,36 @@ public class MaltBuild {
if(sequenceType==null)
thrownewIOException("Sequence type undefined");
if(inputFiles.size()==1){
finalFilefile=newFile(inputFiles.get(0));
if(file.isDirectory()){
System.err.println("Looking for FastA files in directory: "+file);
maltOptions.setSparseSAM(options.getOption("sps","sparseSAM","Produce sparse SAM format (smaller, faster, but only suitable for MEGAN)",maltOptions.isSparseSAM()));
}
finalList<String>outputOrganismFileNames;
if(true)// do not allow organisms output
outputOrganismFileNames=newLinkedList<>();
else{
outputOrganismFileNames=options.getOption("oo","outOrganism","Organism profile XML output file(s) or directory or STDOUT",newLinkedList<String>());
maltOptions.setGzipOrganisms(options.getOption("zo","gzipOrganism","Compress organism output using gzip",maltOptions.isGzipOrganisms()));
}
}
finalList<String>outputAlignedFileNames=options.getOption("oa","outAligned","Aligned reads output file(s) or directory or STDOUT",newLinkedList<String>());
finalbooleanuseLCA=options.getOption("-l_"+cName.toLowerCase(),"lca_"+cName.toLowerCase(),"Use LCA for assigning to '"+cName+"' (otherwise 'best-hit')",ProgramProperties.get(cName+"UseLCA",cName.equals(Classification.Taxonomy)));
ProgramProperties.put(cName+"UseLCA",useLCA);
}
}
maltOptions.setTopPercentLCA(options.getOption("top","topPercent","Top percent value for LCA algorithm",maltOptions.getTopPercentLCA()));
maltOptions.setMinSupportPercentLCA(options.getOption("supp","minSupportPercent","Min support value for LCA algorithm as a percent of assigned reads (0==off)",maltOptions.getMinSupportPercentLCA()));
maltOptions.setMinSupportLCA(options.getOption("sup","minSupport","Min support value for LCA algorithm (overrides --minSupportPercent)",0));
...
...
@@ -216,10 +192,12 @@ public class MaltRun {
maltOptions.setUseWeightedLCA(options.getOption("-wlca","weightedLCA","Use the weighted LCA for taxonomic assignment",false));
maltOptions.setWeightedLCAPercent(options.getOption("-wlp","weightedLCAPercent","Set the percent weight to cover",Document.DEFAULT_WEIGHTED_LCA_PERCENT));
maltOptions.setLcaCoveragePercent(options.getOption("-lcp","lcaCoveragePercent","Set the percent for the LCA to cover",Document.DEFAULT_LCA_COVERAGE_PERCENT));
ReadMagnitudeParser.setEnabled(options.getOption("mag","magnitudes","Reads have magnitudes (to be used in taxonomic or functional analysis)",false));
maltOptions.setContaminantsFile(ProgramProperties.getIfEnabled("enable-contaminants",options.getOption("-cf","conFile","File of contaminant taxa (one Id or name per line)","")));
options.comment("Heuristics:");
maltOptions.setMaxSeedsPerOffsetPerFrame(options.getOption("spf","maxSeedsPerFrame","Maximum number of seed matches per offset per read frame",maltOptions.getMaxSeedsPerOffsetPerFrame()));
maltOptions.setMaxSeedsPerReference(options.getOption("spr","maxSeedsPerRef","Maximum number of seed matches per read and reference",maltOptions.getMaxSeedsPerReference()));
...
...
@@ -273,19 +251,20 @@ public class MaltRun {
thrownewUsageException("You must specify at least one input file");