Repository 's_mart'
hg clone https://toolshed.g2.bx.psu.edu/repos/yufei-luo/s_mart

Changeset 31:0ab839023fe4 (2013-04-30)
Previous changeset 30:5677346472b5 (2013-04-29) Next changeset 32:3441fe98a2ba (2013-04-30)
Commit message:
Uploaded
modified:
SMART/Java/Python/CountLoci.py
SMART/Java/Python/cleaning/CleanerChooser.pyc
SMART/Java/Python/cleaning/DefaultCleaner.pyc
SMART/Java/Python/cleaning/GffCleaner.pyc
SMART/Java/Python/cleaning/GtfCleaner.pyc
SMART/Java/Python/cleaning/TranscriptListCleaner.pyc
SMART/Java/Python/cleaning/__init__.pyc
SMART/Java/Python/misc/Progress.pyc
SMART/Java/Python/misc/RPlotter.py
SMART/Java/Python/misc/RPlotter.pyc
SMART/Java/Python/misc/UnlimitedProgress.pyc
SMART/Java/Python/misc/Utils.pyc
SMART/Java/Python/misc/__init__.pyc
SMART/Java/Python/mySql/MySqlConnection.pyc
SMART/Java/Python/mySql/MySqlExonTable.pyc
SMART/Java/Python/mySql/MySqlQuery.pyc
SMART/Java/Python/mySql/MySqlTable.pyc
SMART/Java/Python/mySql/MySqlTranscriptTable.pyc
SMART/Java/Python/mySql/__init__.pyc
SMART/Java/Python/ncList/ConvertToNCList.pyc
SMART/Java/Python/ncList/FileSorter.pyc
SMART/Java/Python/ncList/NCIndex.pyc
SMART/Java/Python/ncList/NCList.pyc
SMART/Java/Python/ncList/NCListCursor.pyc
SMART/Java/Python/ncList/NCListFilePickle.pyc
SMART/Java/Python/ncList/NCListHandler.pyc
SMART/Java/Python/ncList/NCListMerger.pyc
SMART/Java/Python/ncList/NCListParser.pyc
SMART/Java/Python/ncList/__init__.pyc
SMART/Java/Python/removeEmptySequences.py
SMART/Java/Python/structure/Bins.pyc
SMART/Java/Python/structure/Interval.pyc
SMART/Java/Python/structure/Mapping.pyc
SMART/Java/Python/structure/Sequence.pyc
SMART/Java/Python/structure/SequenceList.pyc
SMART/Java/Python/structure/SubMapping.pyc
SMART/Java/Python/structure/Transcript.pyc
SMART/Java/Python/structure/TranscriptContainer.pyc
SMART/Java/Python/structure/TranscriptList.pyc
SMART/Java/Python/structure/__init__.pyc
SMART/Java/README.txt
SMART/galaxy/CleanTranscriptFile.xml
SMART/galaxy/Clusterize.xml
SMART/galaxy/CollapseReads.xml
SMART/galaxy/CompareOverlappingSmallQuery.xml
SMART/galaxy/CompareOverlappingSmallRef.xml
SMART/galaxy/ConvertTranscriptFile.xml
SMART/galaxy/CountReadGCPercent.xml
SMART/galaxy/GetDifferentialExpression.xml
SMART/galaxy/GetFlanking.xml
SMART/galaxy/SelectByTag.xml
SMART/galaxy/WrappGetLetterDistribution.xml
SMART/galaxy/changeGffFeatures.xml
SMART/galaxy/changeTagName.xml
SMART/galaxy/clusterizeBySlidingWindows.xml
SMART/galaxy/compareOverlapping.xml
SMART/galaxy/computeCoverage.xml
SMART/galaxy/coordinatesToSequence.xml
SMART/galaxy/getDifference.xml
SMART/galaxy/getDistance.xml
SMART/galaxy/getDistribution.xml
SMART/galaxy/getExons.xml
SMART/galaxy/getIntrons.xml
SMART/galaxy/getSizes.xml
SMART/galaxy/getWigData.xml
SMART/galaxy/getWigDistance.xml
SMART/galaxy/getWigProfile.xml
SMART/galaxy/mapperAnalyzer.xml
SMART/galaxy/mergeSlidingWindowsClusters.xml
SMART/galaxy/mergeTranscriptLists.xml
SMART/galaxy/modifyGenomicCoordinates.xml
SMART/galaxy/modifySequenceList.xml
SMART/galaxy/plotCoverage.xml
SMART/galaxy/plotTranscriptList.xml
SMART/galaxy/removeExonLines.xml
SMART/galaxy/restrictFromSize.xml
SMART/galaxy/restrictTranscriptList.xml
SMART/galaxy/trimSequences.xml
commons/core/parsing/AxtParser.py
commons/core/parsing/FastaParser.py
added:
SMART/DiffExpAnal/DESeqTools/HTseqClean.R
SMART/DiffExpAnal/DESeqTools/MAplotDE.R
SMART/DiffExpAnal/DESeqTools/RNAseqFunctions.R
SMART/DiffExpAnal/DESeqTools/anadiffGenes2conds.R
SMART/DiffExpAnal/DESeqTools/barplotNul.R
SMART/DiffExpAnal/DESeqTools/barplotTC.R
SMART/DiffExpAnal/DESeqTools/boxplotCounts.R
SMART/DiffExpAnal/DESeqTools/clusterPlot.R
SMART/DiffExpAnal/DESeqTools/densityPlot.R
SMART/DiffExpAnal/DESeqTools/exportComplete.R
SMART/DiffExpAnal/DESeqTools/exportDiff.R
SMART/DiffExpAnal/DESeqTools/histoRawp.R
SMART/DiffExpAnal/DESeqTools/loadCountData.R
SMART/DiffExpAnal/DESeqTools/loadTargetFile.R
SMART/DiffExpAnal/DESeqTools/majSequence.R
SMART/DiffExpAnal/DESeqTools/pairwiseSERE.R
SMART/DiffExpAnal/DESeqTools/pairwiseScatterPlots.R
SMART/DiffExpAnal/DESeqTools/plotDispEstimates.R
SMART/DiffExpAnal/DESeqTools/raw/f1cond1.tsv
SMART/DiffExpAnal/DESeqTools/raw/f1cond2.tsv
SMART/DiffExpAnal/DESeqTools/raw/f2cond1.tsv
SMART/DiffExpAnal/DESeqTools/raw/f2cond2.tsv
SMART/DiffExpAnal/DESeqTools/raw2counts.R
SMART/DiffExpAnal/DESeqTools/removeNul.R
SMART/DiffExpAnal/__init__.py
SMART/DiffExpAnal/bam_to_sam_parallel.py
SMART/DiffExpAnal/bam_to_sam_parallel.xml
SMART/DiffExpAnal/bam_to_sam_parallel_unSQL.py
SMART/DiffExpAnal/bam_to_sam_parallel_unSQL.xml
SMART/DiffExpAnal/compareOverlapping_parallel.py
SMART/DiffExpAnal/compareOverlapping_parallel.xml
SMART/DiffExpAnal/compareOverlapping_parallel_unSQL.py
SMART/DiffExpAnal/compareOverlapping_parallel_unSQL.xml
SMART/DiffExpAnal/countNumber.pl
SMART/DiffExpAnal/countNumber.xml
SMART/DiffExpAnal/countNumber_parallel.py
SMART/DiffExpAnal/countNumber_parallel.xml
SMART/DiffExpAnal/countNumber_parallel_unSQL.py
SMART/DiffExpAnal/countNumber_parallel_unSQL.xml
SMART/DiffExpAnal/deseq.sh
SMART/DiffExpAnal/deseq.xml
SMART/DiffExpAnal/fastq_groomer_parallel.py
SMART/DiffExpAnal/fastq_groomer_parallel.xml
SMART/DiffExpAnal/fastq_groomer_parallel_unSQL.py
SMART/DiffExpAnal/fastq_groomer_parallel_unSQL.xml
SMART/DiffExpAnal/gsnap.xml
SMART/DiffExpAnal/gsnap_parallel_unSQL.py
SMART/DiffExpAnal/gsnap_parallel_unSQL.xml
SMART/DiffExpAnal/listInputs.pl
SMART/DiffExpAnal/listInputs.xml
SMART/DiffExpAnal/loadHTSeqResultFiles.py
SMART/DiffExpAnal/loadHTSeqResultFiles.xml
SMART/DiffExpAnal/loadMultiFastqFiles.py
SMART/DiffExpAnal/loadMultiFastqFiles.sh
SMART/DiffExpAnal/loadMultiFastqFiles.xml
SMART/DiffExpAnal/testR.R
SMART/DiffExpAnal/testR.sh
SMART/DiffExpAnal/tophat_parallel.py
SMART/DiffExpAnal/tophat_parallel.xml
SMART/DiffExpAnal/tophat_parallel_unSQL.py
SMART/DiffExpAnal/tophat_parallel_unSQL.xml
SMART/DiffExpAnal/wrappGSNAP.py
SMART/Java/File.java
SMART/Java/Files.java
SMART/Java/FormatType.java
SMART/Java/FormatsContainer.java
SMART/Java/FormatsReader.java
SMART/Java/Global.java
SMART/Java/Installer/Old/PasswordAsker.java
SMART/Java/Installer/Old/SmartInstaller.java
SMART/Java/Installer/Old/SmartInstallerTask.java
SMART/Java/Installer/PasswordAsker.java
SMART/Java/Installer/SmartInstaller.jar
SMART/Java/Installer/SmartInstaller.java
SMART/Java/Installer/SmartInstallerTask.java
SMART/Java/Installer/build.sh
SMART/Java/Installer/manifest.txt
SMART/Java/Installer/s-mart.zip
SMART/Java/Program.java
SMART/Java/ProgramFileReader.java
SMART/Java/ProgramLauncher.java
SMART/Java/ProgramOption.java
SMART/Java/Python/.RData
SMART/Java/Python/.gitignore
SMART/Java/Python/100%
SMART/Java/Python/CompareOverlapping.pyc
SMART/Java/Python/GetFlanking.pyc
SMART/Java/Python/GetUpDownStream.pyc
SMART/Java/Python/Helitrons.fasta
SMART/Java/Python/Rplots.pdf
SMART/Java/Python/S1_S3_blast.blast
SMART/Java/Python/TestFiles/SR1.fastq
SMART/Java/Python/TestFiles/Wig/chr1.wig
SMART/Java/Python/TestFiles/adress.txt
SMART/Java/Python/TestFiles/clusterize_default_expected.gff3
SMART/Java/Python/TestFiles/clusterize_default_expected.map
SMART/Java/Python/TestFiles/clusterize_normalize_expected.gff3
SMART/Java/Python/TestFiles/clusterize_output_tag_expected.gff3
SMART/Java/Python/TestFiles/clusterize_strands_expected.gff3
SMART/Java/Python/TestFiles/expOutputGff.gff3
SMART/Java/Python/TestFiles/expRef.fasta
SMART/Java/Python/TestFiles/inputCR.gff3
SMART/Java/Python/TestFiles/inputFileTest1.bed
SMART/Java/Python/TestFiles/inputFileTest2.bed
SMART/Java/Python/TestFiles/inputMSWC1.gff3
SMART/Java/Python/TestFiles/inputMSWC2.gff3
SMART/Java/Python/TestFiles/inputMTC.sam
SMART/Java/Python/TestFiles/inputMapping.map
SMART/Java/Python/TestFiles/mapperAnalyzerExpected.gff3
SMART/Java/Python/TestFiles/mapperAnalyzerMappings.axt
SMART/Java/Python/TestFiles/mapperAnalyzerOutput.gff3
SMART/Java/Python/TestFiles/mapperAnalyzerSequences.mfq
SMART/Java/Python/TestFiles/sorted_file_oneline.gff3
SMART/Java/Python/TestFiles/sorted_query.gff3
SMART/Java/Python/TestFiles/sorted_query_wig.wig
SMART/Java/Python/TestFiles/sorted_ref.gff3
SMART/Java/Python/TestFiles/testBedParser1.bed
SMART/Java/Python/TestFiles/testC2S.fa
SMART/Java/Python/TestFiles/testC2S.gff3
SMART/Java/Python/TestFiles/testCompareTranscriptListDistanceAntisense1.gff3
SMART/Java/Python/TestFiles/testCompareTranscriptListDistanceAntisense2.gff3
SMART/Java/Python/TestFiles/testCompareTranscriptListDistanceSimple1.gff3
SMART/Java/Python/TestFiles/testCompareTranscriptListDistanceSimple2.gff3
SMART/Java/Python/TestFiles/testDifferentialExpressionExpected.gff3
SMART/Java/Python/TestFiles/testDifferentialExpressionOutput.gff3
SMART/Java/Python/TestFiles/testDifferentialExpressionReference.gff3
SMART/Java/Python/TestFiles/testDifferentialExpressionSample1.gff3
SMART/Java/Python/TestFiles/testDifferentialExpressionSample2.gff3
SMART/Java/Python/TestFiles/testGffParser1.gff3
SMART/Java/Python/TestFiles/testPlot.gff3
SMART/Java/Python/TestFiles/testSW.gff3
SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptList1.bed
SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptList2.bed
SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListGetDifference1.gff3
SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListGetDifference2.gff3
SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListMergeAggregation1.bed
SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListMergeAggregation2.bed
SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListMergeSenseAntiSenseAway1.bed
SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListMergeSenseAntiSenseAway1_modif.bed
SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListMergeSenseAntiSenseAway2.bed
SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListMergeSimple1.bed
SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListMergeSimple2.bed
SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListSelfMerge1.gff3
SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListSelfMergeDifferentClusters1.bed
SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListSelfMergeSense1.bed
SMART/Java/Python/TestFiles/testTranscriptNormalize.gff3
SMART/Java/Python/TestFiles/test_distance.bed
SMART/Java/Python/TestFiles/test_minoverlapp.bed
SMART/Java/Python/__init__.pyc
SMART/Java/Python/cleanGff.pyc
SMART/Java/Python/compare_TAIR10_Reiterative4th.gff3
SMART/Java/Python/fo.py
SMART/Java/Python/genes.gtf
SMART/Java/Python/genome.fasta
SMART/Java/Python/gf.py
SMART/Java/Python/misc/MultipleRPlotter.pyc
SMART/Java/Python/re_filter_ratio_5_NbReads_100_samples_all_norm_Window100overlap50.gff3
SMART/Java/Python/test.gff3
SMART/Java/Python/test.pdf
SMART/Java/Python/test.png
SMART/Java/Python/test/MockGetLetterDistribution.py
SMART/Java/Python/test/Test_F_Clusterize.py
SMART/Java/Python/test/Test_F_ClusterizeByTags.py
SMART/Java/Python/test/Test_F_CollapseReads.py
SMART/Java/Python/test/Test_F_CombineTags.py
SMART/Java/Python/test/Test_F_FindOverlapsOptim.py
SMART/Java/Python/test/Test_F_GetDifferentialExpression.py
SMART/Java/Python/test/Test_F_GetFlanking.py
SMART/Java/Python/test/Test_F_GetRandomSubset.py
SMART/Java/Python/test/Test_F_GetSizes.py
SMART/Java/Python/test/Test_F_RestrictFromCoverage.py
SMART/Java/Python/test/Test_F_clusterizeBySlidingWindows.py
SMART/Java/Python/test/Test_F_compareOverlapping.py
SMART/Java/Python/test/Test_F_convertTranscriptFile.py
SMART/Java/Python/test/Test_F_coordinatesToSequence.py
SMART/Java/Python/test/Test_F_findTss.py
SMART/Java/Python/test/Test_F_getExons.py
SMART/Java/Python/test/Test_F_getLetterDistribution.py
SMART/Java/Python/test/Test_F_getRandomRegions.py
SMART/Java/Python/test/Test_F_getReadDistribution.py
SMART/Java/Python/test/Test_F_getWigData.py
SMART/Java/Python/test/Test_F_getWigDistance.py
SMART/Java/Python/test/Test_F_getWigProfile.py
SMART/Java/Python/test/Test_F_mapperAnalyzer.py
SMART/Java/Python/test/Test_F_mappingToCoordinates.py
SMART/Java/Python/test/Test_F_mergeSlidingWindowsClusters.py
SMART/Java/Python/test/Test_F_mergeTranscriptLists.py
SMART/Java/Python/test/Test_F_plot.py
SMART/Java/Python/test/Test_F_plotCoverage.py
SMART/Java/Python/test/Test_F_qualToFastq.py
SMART/Java/Python/test/Test_F_restrictSequenceList.py
SMART/Java/Python/test/Test_F_selectByTag.py
SMART/Java/Python/test/Test_F_trimSequences.py
SMART/Java/Python/test/Test_FindOverlapsOptim.py
SMART/Java/Python/test/Test_FindOverlaps_optim.py
SMART/Java/Python/test/__init__.py
SMART/Java/Python/test/timeResults.R
SMART/Java/Python/test3.gff3
SMART/Java/Python/test3.png
SMART/Java/Python/test3.png_I.png
SMART/Java/Python/testInstall.py
SMART/Java/Python/testOut.gff3
SMART/Java/PythonHelperReader.java
SMART/Java/PythonProgramFinder.java
SMART/Java/Sav/File.java
SMART/Java/Sav/Files.java
SMART/Java/Sav/FormatType.java
SMART/Java/Sav/FormatsContainer.java
SMART/Java/Sav/FormatsReader.java
SMART/Java/Sav/Global.java
SMART/Java/Sav/Program.java
SMART/Java/Sav/ProgramFileReader.java
SMART/Java/Sav/ProgramLauncher.java
SMART/Java/Sav/ProgramOption.java
SMART/Java/Sav/PythonHelperReader.java
SMART/Java/Sav/PythonProgramFinder.java
SMART/Java/Sav/Smart.java
SMART/Java/Smart.jar
SMART/Java/Smart.java
SMART/Java/SmartInstaller.jar
SMART/Java/WindowsRegistry.java
SMART/Java/__init__.pyc
SMART/Java/formats.txt
SMART/Java/manifest.txt
SMART/__init__.pyc
SMART/bacteriaRegulatoryRegion_Detection/changeName.py
SMART/bacteriaRegulatoryRegion_Detection/changeName.xml
SMART/bacteriaRegulatoryRegion_Detection/colorGff.pl
SMART/bacteriaRegulatoryRegion_Detection/colorGff.xml
SMART/bacteriaRegulatoryRegion_Detection/coverageGff.pl
SMART/bacteriaRegulatoryRegion_Detection/coverageGff.xml
SMART/bacteriaRegulatoryRegion_Detection/interElementGff.pl
SMART/bacteriaRegulatoryRegion_Detection/interElementGff.xml
SMART/bacteriaRegulatoryRegion_Detection/listGff.sh
SMART/bacteriaRegulatoryRegion_Detection/prepareAnnot.sh
SMART/bacteriaRegulatoryRegion_Detection/prepareAnnot.xml
SMART/bacteriaRegulatoryRegion_Detection/seedGff.pl
SMART/bacteriaRegulatoryRegion_Detection/seedGff.xml
SMART/bacteriaRegulatoryRegion_Detection/sortGff.pl
SMART/bacteriaRegulatoryRegion_Detection/sortGff.xml
SMART/bacteriaRegulatoryRegion_Detection/splitTranscriptGff.pl
SMART/bacteriaRegulatoryRegion_Detection/splitTranscriptGff.xml
SMART/bacteriaRegulatoryRegion_Detection/strictlyIncludeGff.pl
SMART/bacteriaRegulatoryRegion_Detection/strictlyIncludeGff.xml
SMART/bacteriaRegulatoryRegion_Detection/writeResToHTML.py
SMART/bacteriaRegulatoryRegion_Detection/writeResToHTML.xml
SMART/data/REF.fasta
SMART/data/REF.fasta.fai
SMART/data/SR1.fasta
SMART/data/SR1.fastq
SMART/data/SR2.fastq
SMART/data/bamFile.bam
SMART/data/dummy.fasta
SMART/data/expRef.fasta
SMART/data/expRef_withoutSplit.fasta
SMART/data/output.png
SMART/data/part0.bam
SMART/data/part0.sam
SMART/data/part1.bam
SMART/data/part1.sam
SMART/data/part2.bam
SMART/data/part2.sam
SMART/data/part3.bam
SMART/data/part3.sam
SMART/data/part4.bam
SMART/data/part4.sam
SMART/data/samFile.sam
SMART/data/sortedBamFile.bam
SMART/data/test.gff.gff3
SMART/data/test_clusterize.gff3
SMART/data/test_clusterize2.gff3
SMART/galaxy/ConvertTranscriptFile_BedToCsv.xml
SMART/galaxy/ConvertTranscriptFile_BedToGff2.xml
SMART/galaxy/ConvertTranscriptFile_BedToGff3.xml
SMART/galaxy/ConvertTranscriptFile_BedToSam.xml
SMART/galaxy/ConvertTranscriptFile_BlastToCsv.xml
SMART/galaxy/ConvertTranscriptFile_BlastToGff2.xml
SMART/galaxy/ConvertTranscriptFile_BlastToGff3.xml
SMART/galaxy/ConvertTranscriptFile_BlastToSam.xml
SMART/galaxy/ConvertTranscriptFile_FastqToFasta.xml
SMART/galaxy/ConvertTranscriptFile_Gff2ToCsv.xml
SMART/galaxy/ConvertTranscriptFile_Gff2ToGff3.xml
SMART/galaxy/ConvertTranscriptFile_Gff2ToSam.xml
SMART/galaxy/ConvertTranscriptFile_Gff3ToCsv.xml
SMART/galaxy/ConvertTranscriptFile_Gff3ToGff2.xml
SMART/galaxy/ConvertTranscriptFile_Gff3ToSam.xml
SMART/galaxy/ConvertTranscriptFile_Gff3ToWig.xml
SMART/galaxy/ConvertTranscriptFile_SamToCsv.xml
SMART/galaxy/ConvertTranscriptFile_SamToGff2.xml
SMART/galaxy/ConvertTranscriptFile_SamToGff3.xml
SMART/galaxy/DiffExpAnal.xml
SMART/galaxy/FindOverlaps_optim.xml
SMART/galaxy/cleanGff.xml
SMART/galaxy/clusterize.xml
SMART/galaxy/findTss.xml
SMART/galaxy/getNb.xml
SMART/galaxy/getReadDistribution.xml
SMART/galaxy/getSequence.xml
SMART/galaxy/mappingToCoordinates.xml
SMART/galaxy/modifyFasta.xml
SMART/galaxy/plot.xml
SMART/galaxy/plotGenomeCoverage.xml
SMART/galaxy/plotRepartition.xml
SMART/galaxy/qualToFastq.xml
SMART/galaxy/restrictSequenceList.xml
SMART/galaxy/test/CollapseReads.xml
SMART/galaxy/test/Test_F_WrappGetLetterDistribution.py
SMART/galaxy/test/__init__.py
SMART/galaxy/testArgum.xml
SMART/galaxy/testR.xml
SMART/galaxy/trimAdaptor.xml
commons/__init__.pyc
commons/core/LoggerFactory.pyc
commons/core/__init__.pyc
commons/core/checker/AbstractChecker.py
commons/core/checker/CheckerException.py
commons/core/checker/CheckerUtils.py
commons/core/checker/ConfigChecker.py
commons/core/checker/ConfigException.py
commons/core/checker/ConfigValue.py
commons/core/checker/IChecker.py
commons/core/checker/OldConfigChecker.py
commons/core/checker/RepetException.py
commons/core/checker/RepetException.pyc
commons/core/checker/__init__.py
commons/core/checker/__init__.pyc
commons/core/checker/test/TestSuite_Checker.py
commons/core/checker/test/Test_CheckerUtils.py
commons/core/checker/test/Test_ConfigChecker.py
commons/core/checker/test/Test_ConfigValue.py
commons/core/checker/test/Test_F_ConfigChecker.py
commons/core/checker/test/Test_OldConfigChecker.py
commons/core/checker/test/__init__.py
commons/core/coord/Align.pyc
commons/core/coord/Map.pyc
commons/core/coord/Range.pyc
commons/core/coord/__init__.pyc
commons/core/coord/test/TestSuite_coord.py
commons/core/coord/test/Test_Align.py
commons/core/coord/test/Test_AlignUtils.py
commons/core/coord/test/Test_ConvCoord.py
commons/core/coord/test/Test_F_ConvCoord.py
commons/core/coord/test/Test_Map.py
commons/core/coord/test/Test_MapUtils.py
commons/core/coord/test/Test_Match.py
commons/core/coord/test/Test_MatchUtils.py
commons/core/coord/test/Test_MergedRange.py
commons/core/coord/test/Test_Path.py
commons/core/coord/test/Test_PathUtils.py
commons/core/coord/test/Test_Range.py
commons/core/coord/test/Test_Set.py
commons/core/coord/test/Test_SetUtils.py
commons/core/coord/test/Test_SlidingWindow.py
commons/core/coord/test/__init__.py
commons/core/launcher/JobScriptTemplate.py
commons/core/launcher/JobScriptTemplateLight.py
commons/core/launcher/JobScriptWithFilesCopyTemplate.py
commons/core/launcher/Launcher.py
commons/core/launcher/Launcher2.py
commons/core/launcher/LauncherUtils.py
commons/core/launcher/WriteScript.py
commons/core/launcher/__init__.py
commons/core/launcher/test/Test_Launcher.py
commons/core/launcher/test/Test_Launcher2.py
commons/core/launcher/test/Test_LauncherUtils.py
commons/core/launcher/test/Test_WriteScript.py
commons/core/launcher/test/__init__.py
commons/core/launcher/test/expFiles/expJobScriptSQLiteWithFilesCopyTemplate.py
commons/core/launcher/test/expFiles/expJobScriptTemplate.py
commons/core/launcher/test/expFiles/expJobScriptTemplateLight.py
commons/core/launcher/test/expFiles/expJobScriptTemplate_cmdWith2Lines.py
commons/core/launcher/test/expFiles/expJobScriptWithFilesCopyTemplate.py
commons/core/parsing/AxtParser.pyc
commons/core/parsing/BamParser.pyc
commons/core/parsing/BedParser.pyc
commons/core/parsing/BlastParser.pyc
commons/core/parsing/BowtieParser.pyc
commons/core/parsing/CoordsParser.pyc
commons/core/parsing/ElandParser.pyc
commons/core/parsing/ExoParser.pyc
commons/core/parsing/FastaParser.pyc
commons/core/parsing/FastqParser.pyc
commons/core/parsing/GffParser.pyc
commons/core/parsing/GtfParser.pyc
commons/core/parsing/MapParser.pyc
commons/core/parsing/MapperParser.pyc
commons/core/parsing/MaqParser.pyc
commons/core/parsing/NCListParser.pyc
commons/core/parsing/ParserChooser.pyc
commons/core/parsing/PklParser.pyc
commons/core/parsing/PslParser.pyc
commons/core/parsing/RmapParser.pyc
commons/core/parsing/SamParser.pyc
commons/core/parsing/SeqmapParser.pyc
commons/core/parsing/SequenceListParser.pyc
commons/core/parsing/ShrimpParser.pyc
commons/core/parsing/Soap2Parser.pyc
commons/core/parsing/SoapParser.pyc
commons/core/parsing/TranscriptListParser.pyc
commons/core/parsing/WigParser.pyc
commons/core/parsing/__init__.pyc
commons/core/parsing/test/Test_BedParser.py
commons/core/parsing/test/Test_BlatFileParser.py
commons/core/parsing/test/Test_BlatParser.py
commons/core/parsing/test/Test_BlatToGff.py
commons/core/parsing/test/Test_BlatToGffForBesPaired.py
commons/core/parsing/test/Test_BowtieParser.py
commons/core/parsing/test/Test_CoordsParser.py
commons/core/parsing/test/Test_CrossSsrAndBesMappedByBlatToGff.py
commons/core/parsing/test/Test_F_BlatToGff.py
commons/core/parsing/test/Test_F_BlatToGffForBesPaired.py
commons/core/parsing/test/Test_F_CrossSsrAndBesMappedByBlatToGff.py
commons/core/parsing/test/Test_F_VarscanToVCF.py
commons/core/parsing/test/Test_FastaParser.py
commons/core/parsing/test/Test_FindRep.py
commons/core/parsing/test/Test_GffParser.py
commons/core/parsing/test/Test_MapParser.py
commons/core/parsing/test/Test_MrepsToSet.py
commons/core/parsing/test/Test_Multifasta2SNPFile.py
commons/core/parsing/test/Test_Multifasta2SNPFileWriter.py
commons/core/parsing/test/Test_PalsToAlign.py
commons/core/parsing/test/Test_PathNum2Id.py
commons/core/parsing/test/Test_PslParser.py
commons/core/parsing/test/Test_SsrParser.py
commons/core/parsing/test/Test_VarscanFile.py
commons/core/parsing/test/Test_VarscanFileForGnpSNP.py
commons/core/parsing/test/Test_VarscanHit.py
commons/core/parsing/test/Test_VarscanHitForGnpSNP.py
commons/core/parsing/test/Test_VarscanHit_WithTag.py
commons/core/parsing/test/Test_VarscanHit_v2_2_8.py
commons/core/parsing/test/Test_VarscanHit_v2_2_8_WithTag.py
commons/core/parsing/test/Test_VarscanToVCF.py
commons/core/parsing/test/Test_WigParser.py
commons/core/parsing/test/Test_pilerTAToGrouperMap.py
commons/core/parsing/test/__init__.py
commons/core/parsing/test/data/ExpPotDooblonsSubSNP.csv
commons/core/parsing/test/data/Wig/chr1.wig
commons/core/parsing/test/data/realExpBatchLine.csv
commons/core/parsing/test/data/realExpIndividual.csv
commons/core/parsing/test/data/realExpSequences.fsa
commons/core/parsing/test/data/realExpSubSNP.csv
commons/core/parsing/test/data/real_multifasta_input.fasta
commons/core/parsing/test/data/sampleForTestVarscanToVCF.varscan
commons/core/parsing/test/data/test.wig
commons/core/parsing/test/data/test1.wig
commons/core/parsing/test/data/test2.wig
commons/core/parsing/test/data/testBedParser1.bed
commons/core/parsing/test/data/testCoordsParser.coords
commons/core/parsing/test/data/testCoordsParser_showcoord.coords
commons/core/parsing/test/data/testCoordsParser_showcoord_promer.coords
commons/core/parsing/test/data/testGffParser1.gff3
commons/core/seq/Bioseq.pyc
commons/core/seq/__init__.pyc
commons/core/seq/test/TestClusterConsensusCollection.py
commons/core/seq/test/TestSuite_seq.py
commons/core/seq/test/Test_AlignedBioseqDB.py
commons/core/seq/test/Test_Bioseq.py
commons/core/seq/test/Test_BioseqDB.py
commons/core/seq/test/Test_BioseqUtils.py
commons/core/seq/test/Test_FastaUtils.py
commons/core/seq/test/Utils_for_T_FastaUtils.py
commons/core/seq/test/__init__.py
commons/core/sql/DbFactory.py
commons/core/sql/DbMySql.py
commons/core/sql/DbSQLite.py
commons/core/sql/ITableMapAdaptator.py
commons/core/sql/ITableMatchAdaptator.py
commons/core/sql/ITablePathAdaptator.py
commons/core/sql/ITableSeqAdaptator.py
commons/core/sql/ITableSetAdaptator.py
commons/core/sql/Job.py
commons/core/sql/JobAdaptator.py
commons/core/sql/OldRepetDB.py
commons/core/sql/RepetJob.py
commons/core/sql/TableAdaptator.py
commons/core/sql/TableBinPathAdaptator.py
commons/core/sql/TableBinSetAdaptator.py
commons/core/sql/TableJobAdaptator.py
commons/core/sql/TableJobAdaptatorFactory.py
commons/core/sql/TableMapAdaptator.py
commons/core/sql/TableMatchAdaptator.py
commons/core/sql/TablePathAdaptator.py
commons/core/sql/TableSeqAdaptator.py
commons/core/sql/TableSetAdaptator.py
commons/core/sql/__init__.py
commons/core/sql/test/TestSuite_sql.py
commons/core/sql/test/Test_DbFactory.py
commons/core/sql/test/Test_DbMySql.py
commons/core/sql/test/Test_DbSQLite.py
commons/core/sql/test/Test_F_JobAdaptator.py
commons/core/sql/test/Test_F_TableJobAdaptator.py
commons/core/sql/test/Test_Job.py
commons/core/sql/test/Test_TableBinPathAdaptator.py
commons/core/sql/test/Test_TableBinSetAdaptator.py
commons/core/sql/test/Test_TableJobAdaptator.py
commons/core/sql/test/Test_TableJobAdaptatorFactory.py
commons/core/sql/test/Test_TableMapAdaptator.py
commons/core/sql/test/Test_TableMatchAdaptator.py
commons/core/sql/test/Test_TablePathAdaptator.py
commons/core/sql/test/Test_TableSeqAdaptator.py
commons/core/sql/test/Test_TableSetAdaptator.py
commons/core/sql/test/Tst_F_RepetJob.py
commons/core/sql/test/Tst_RepetJob.py
commons/core/sql/test/__init__.py
commons/core/stat/Stat.py
commons/core/stat/__init__.py
commons/core/stat/test/Test_F_Stat.py
commons/core/stat/test/Test_Stat.py
commons/core/stat/test/__init__.py
commons/core/test/Test_LoggerFactory.py
commons/core/test/__init__.py
commons/core/tree/Tree.py
commons/core/tree/__init__.py
commons/core/tree/test/Test_Tree.py
commons/core/tree/test/__init__.py
commons/core/tree/test/treeTestSuite.py
commons/core/utils/RepetOptionParser.pyc
commons/core/utils/__init__.pyc
commons/core/utils/test/TestSuite_utils.py
commons/core/utils/test/Test_FileUtils.py
commons/core/utils/test/__init__.py
commons/core/writer/BedWriter.pyc
commons/core/writer/CsvWriter.pyc
commons/core/writer/EmblWriter.pyc
commons/core/writer/FastaWriter.pyc
commons/core/writer/FastqWriter.pyc
commons/core/writer/GbWriter.pyc
commons/core/writer/Gff2Writer.pyc
commons/core/writer/Gff3Writer.pyc
commons/core/writer/GtfWriter.pyc
commons/core/writer/MapWriter.pyc
commons/core/writer/MySqlTranscriptWriter.pyc
commons/core/writer/SamWriter.pyc
commons/core/writer/SequenceListWriter.pyc
commons/core/writer/TranscriptListWriter.pyc
commons/core/writer/TranscriptWriter.pyc
commons/core/writer/UcscWriter.pyc
commons/core/writer/WigWriter.pyc
commons/core/writer/WriterChooser.pyc
commons/core/writer/__init__.pyc
commons/core/writer/test/Test_Gff3Writer.py
commons/core/writer/test/Test_MapWriter.py
commons/core/writer/test/__init__.py
commons/launcher/BlatClusterLauncher.py
commons/launcher/BlatProgramLauncher.py
commons/launcher/LaunchBlastclust.py
commons/launcher/LaunchLastZ.py
commons/launcher/LaunchMCL.py
commons/launcher/LaunchMap.py
commons/launcher/LaunchMatcher.py
commons/launcher/LaunchMummerPlot.py
commons/launcher/LaunchNucmer.py
commons/launcher/LaunchPhyML.py
commons/launcher/LaunchPromer.py
commons/launcher/LaunchRefAlign.py
commons/launcher/LaunchRefalign_old.py
commons/launcher/LaunchRepeatMasker.py
commons/launcher/LaunchTRF.py
commons/launcher/LaunchTallymer.py
commons/launcher/MafftClusterLauncher.py
commons/launcher/MafftProgramLauncher.py
commons/launcher/MapClusterLauncher.py
commons/launcher/MapProgramLauncher.py
commons/launcher/NWalignProgramLauncher.py
commons/launcher/RepeatMaskerClusterLauncher.py
commons/launcher/RepeatMaskerProgramLauncher.py
commons/launcher/YassClusterLauncher.py
commons/launcher/YassProgramLauncher.py
commons/launcher/__init__.py
commons/launcher/launchBlasterMatcherPerQuery.py
commons/launcher/launchMafft.py
commons/launcher/launchMreps.py
commons/launcher/launchPhyML.py
commons/launcher/launchPrank.py
commons/launcher/launchTCoffee.py
commons/launcher/launchTEclass.py
commons/launcher/tests/MockDataBankForBlat.py
commons/launcher/tests/MockESTBankForBlat.py
commons/launcher/tests/MockOutputForBlat.py
commons/launcher/tests/Test_BlatClusterLauncher.py
commons/launcher/tests/Test_BlatProgramLauncher.py
commons/launcher/tests/Test_F_BlatProgramLauncher.py
commons/launcher/tests/Test_F_LaunchBlastclust.py
commons/launcher/tests/Test_F_LaunchLastZ.py
commons/launcher/tests/Test_F_LaunchMCL.py
commons/launcher/tests/Test_F_LaunchMap.py
commons/launcher/tests/Test_F_LaunchMatcher.py
commons/launcher/tests/Test_F_LaunchMummerPlot.py
commons/launcher/tests/Test_F_LaunchNucmer.py
commons/launcher/tests/Test_F_LaunchPhyML.py
commons/launcher/tests/Test_F_LaunchPromer.py
commons/launcher/tests/Test_F_LaunchRefAlign.py
commons/launcher/tests/Test_F_LaunchRefalign.py
commons/launcher/tests/Test_F_LaunchRepeatMasker.py
commons/launcher/tests/Test_F_LaunchTRF.py
commons/launcher/tests/Test_F_LaunchTallymer.py
commons/launcher/tests/Test_LaunchBlastclust.py
commons/launcher/tests/Test_LaunchTallymer.py
commons/launcher/tests/Test_MafftClusterLauncher.py
commons/launcher/tests/Test_MafftProgramLauncher.py
commons/launcher/tests/Test_MapClusterLauncher.py
commons/launcher/tests/Test_MapProgramLauncher.py
commons/launcher/tests/Test_NWalignProgramLauncher.py
commons/launcher/tests/Test_RepeatMaskerClusterLauncher.py
commons/launcher/tests/Test_RepeatMaskerProgramLauncher.py
commons/launcher/tests/Test_YassClusterLauncher.py
commons/launcher/tests/Test_YassProgramLauncher.py
commons/launcher/tests/Test_launchTEclass.py
commons/launcher/tests/__init__.py
commons/pyRepetUnit/__init__.py
commons/pyRepetUnit/align/AlignList.py
commons/pyRepetUnit/align/AlignListUtils.py
commons/pyRepetUnit/align/__init__.py
commons/pyRepetUnit/align/hmmOutputParsing/HmmpfamOutput2align.py
commons/pyRepetUnit/align/hmmOutputParsing/HmmscanOutput2align.py
commons/pyRepetUnit/align/hmmOutputParsing/__init__.py
commons/pyRepetUnit/align/hmmOutputParsing/tests/HmmpfamOutput2AlignTestSuite.py
commons/pyRepetUnit/align/hmmOutputParsing/tests/Test_F_Hmmerpfam2align.py
commons/pyRepetUnit/align/hmmOutputParsing/tests/Test_F_HmmpfamOutput2align.py
commons/pyRepetUnit/align/hmmOutputParsing/tests/Test_F_HmmscanOutput2align.py
commons/pyRepetUnit/align/hmmOutputParsing/tests/__init__.py
commons/pyRepetUnit/align/hmmOutputParsing/tests/datas/ConsensusTestFile_nt.fsa
commons/pyRepetUnit/align/hmmOutputParsing/tests/datas/OutputHmmpfamTest
commons/pyRepetUnit/align/hmmOutputParsing/tests/datas/PostPostProcessTestFiltered.align
commons/pyRepetUnit/align/hmmOutputParsing/tests/datas/hmmscanTransformedExpected.align
commons/pyRepetUnit/align/hmmOutputParsing/tests/datas/repetHmmscan.fa
commons/pyRepetUnit/align/hmmOutputParsing/tests/datas/test_hmmpfam_output
commons/pyRepetUnit/align/hmmOutputParsing/tests/datas/test_hmmpfam_output.align
commons/pyRepetUnit/align/tests/Test_AlignListUtils.py
commons/pyRepetUnit/align/tests/__init__.py
commons/pyRepetUnit/align/tests/hmmpfamOutputParsingTestSuite.py
commons/pyRepetUnit/align/transformAACoordIntoNtCoord/TransformAACoordIntoNtCoordInAlignFormat.py
commons/pyRepetUnit/align/transformAACoordIntoNtCoord/__init__.py
commons/pyRepetUnit/align/transformAACoordIntoNtCoord/tests/Test_F_TransformAACoordIntoNtCoordAndScoreFiltering.py
commons/pyRepetUnit/align/transformAACoordIntoNtCoord/tests/Test_TransformAACoordIntoNtCoordInAlignFormat.py
commons/pyRepetUnit/align/transformAACoordIntoNtCoord/tests/TransformAACoordIntoNtCoordTestSuite.py
commons/pyRepetUnit/align/transformAACoordIntoNtCoord/tests/__init__.py
commons/pyRepetUnit/align/transformAACoordIntoNtCoord/tests/datas/ConsensusTestFile_nt.fsa
commons/pyRepetUnit/align/transformAACoordIntoNtCoord/tests/datas/OutputHmmpfamTest.align
commons/pyRepetUnit/align/transformAACoordIntoNtCoord/tests/datas/PostPostProcessTest.align
commons/pyRepetUnit/align/transformAACoordIntoNtCoord/tests/datas/PostPostProcessTestFiltered.align
commons/pyRepetUnit/blastnForClassifierStep1/RepbaseBLRnForClassifierStep1.py
commons/pyRepetUnit/blastnForClassifierStep1/__init__.py
commons/pyRepetUnit/blastnForClassifierStep1/tests/Test_RepbaseBLRnForClassifierStep1.py
commons/pyRepetUnit/blastnForClassifierStep1/tests/__init__.py
commons/pyRepetUnit/components/AbstractClusterLauncher.py
commons/pyRepetUnit/components/AbstractProgramLauncher.py
commons/pyRepetUnit/components/IClusterLauncher.py
commons/pyRepetUnit/components/__init__.py
commons/pyRepetUnit/components/blastx2GFF/__init__.py
commons/pyRepetUnit/components/blastx2GFF/tests/__init__.py
commons/pyRepetUnit/components/blastx2GFF/tests/blastx2GFFTestSuite.py
commons/pyRepetUnit/components/blastx2GFF/tests/datas/dummy.align.match.path
commons/pyRepetUnit/components/blastx2GFF/tests/datas/dummy.align.match.tab
commons/pyRepetUnit/components/blastx2GFF/tests/datas/exp_dummy.gff
commons/pyRepetUnit/components/blastx2GFF/tests/datas/lm_supctg_v2_29_30_vs_BlastBank.align
commons/pyRepetUnit/components/blastx2GFF/tests/datas/lm_supctg_v2_29_30_vs_BlastBank.align.match.map
commons/pyRepetUnit/components/blastx2GFF/tests/datas/lm_supctg_v2_29_30_vs_BlastBank.align.match.path
commons/pyRepetUnit/components/blastx2GFF/tests/datas/lm_supctg_v2_29_30_vs_BlastBank.align.match.tab
commons/pyRepetUnit/convCoord/ConvMapChr2Chunk.py
commons/pyRepetUnit/convCoord/ConvPathChr2Chunk.py
commons/pyRepetUnit/convCoord/ConvSetChr2Chunk.py
commons/pyRepetUnit/convCoord/PathChunkConnector.py
commons/pyRepetUnit/convCoord/__init__.py
commons/pyRepetUnit/convCoord/test/TestConvCoordWithOverlapps.py
commons/pyRepetUnit/convCoord/test/Test_ConvMapChr2Chunk.py
commons/pyRepetUnit/convCoord/test/Test_ConvPathChr2Chunk.py
commons/pyRepetUnit/convCoord/test/Test_ConvSetChr2Chunk.py
commons/pyRepetUnit/convCoord/test/Test_PathChunkConnector.py
commons/pyRepetUnit/convCoord/test/__init__.py
commons/pyRepetUnit/convCoord/test/convCoordTestSuite.py
commons/pyRepetUnit/doc/__init__.py
commons/pyRepetUnit/doc/api-objects.txt
commons/pyRepetUnit/doc/class-tree.html
commons/pyRepetUnit/doc/commons.Checker-module.html
commons/pyRepetUnit/doc/commons.Checker-pysrc.html
commons/pyRepetUnit/doc/commons.Checker.Checker-class.html
commons/pyRepetUnit/doc/commons.Checker.CheckerException-class.html
commons/pyRepetUnit/doc/commons.Checker.ConfigChecker-class.html
commons/pyRepetUnit/doc/commons.Checker.ConfigException-class.html
commons/pyRepetUnit/doc/commons.Checker.IChecker-class.html
commons/pyRepetUnit/doc/commons.Checker._Logger-class.html
commons/pyRepetUnit/doc/commons.IComponentWrapper-module.html
commons/pyRepetUnit/doc/commons.IComponentWrapper-pysrc.html
commons/pyRepetUnit/doc/commons.IComponentWrapper.IComponentWrapper-class.html
commons/pyRepetUnit/doc/commons.IDataProcessor-module.html
commons/pyRepetUnit/doc/commons.IDataProcessor-pysrc.html
commons/pyRepetUnit/doc/commons.IDataProcessor.IDataProcessor-class.html
commons/pyRepetUnit/doc/crarr.png
commons/pyRepetUnit/doc/epydoc.css
commons/pyRepetUnit/doc/epydoc.js
commons/pyRepetUnit/doc/frames.html
commons/pyRepetUnit/doc/help.html
commons/pyRepetUnit/doc/identifier-index.html
commons/pyRepetUnit/doc/index.html
commons/pyRepetUnit/doc/module-tree.html
commons/pyRepetUnit/doc/redirect.html
commons/pyRepetUnit/doc/toc-commons.Checker-module.html
commons/pyRepetUnit/doc/toc-commons.IComponentWrapper-module.html
commons/pyRepetUnit/doc/toc-commons.IDataProcessor-module.html
commons/pyRepetUnit/doc/toc-everything.html
commons/pyRepetUnit/doc/toc.html
commons/pyRepetUnit/fastaTranslation/__init__.py
commons/pyRepetUnit/fastaTranslation/allFrames/TranslateInAllFramesAndReplaceStopByX.py
commons/pyRepetUnit/fastaTranslation/allFrames/__init__.py
commons/pyRepetUnit/fastaTranslation/allFrames/tests/Test_F_TranslateAfastaFileInAllFrameAndReplaceStopsByX.py
commons/pyRepetUnit/fastaTranslation/allFrames/tests/Test_F_TranslateInAllFramesAndReplaceStopByX.py
commons/pyRepetUnit/fastaTranslation/allFrames/tests/Test_TranslateAfastaFileInAllFrameAndReplaceStopsByX.py
commons/pyRepetUnit/fastaTranslation/allFrames/tests/Test_TranslateInAllFramesAndReplaceStopByX.py
commons/pyRepetUnit/fastaTranslation/allFrames/tests/__init__.py
commons/pyRepetUnit/fastaTranslation/allFrames/tests/datas/ConsensusTestFile_aaWithoutStop.fsa
commons/pyRepetUnit/fastaTranslation/allFrames/tests/datas/ConsensusTestFile_nt.fsa
commons/pyRepetUnit/fastaTranslation/allFrames/tests/datas/__init__.py
commons/pyRepetUnit/fastaTranslation/allFrames/tests/datas/test_input_aa.fa
commons/pyRepetUnit/fastaTranslation/allFrames/tests/datas/test_input_nt.fa
commons/pyRepetUnit/fastaTranslation/allFrames/translateAfastaFileInAllFrameAndReplaceStopsByX_script.py
commons/pyRepetUnit/hmmer/HmmpfamClusterComponent.py
commons/pyRepetUnit/hmmer/LaunchPreProcessHmmpfamPostProcessNotInParallel.py
commons/pyRepetUnit/hmmer/__init__.py
commons/pyRepetUnit/hmmer/check/OldDetectFeatureConfigChecker.py
commons/pyRepetUnit/hmmer/check/__init__.py
commons/pyRepetUnit/hmmer/check/test/Test_OldDetectFeaturesConfigChecker.py
commons/pyRepetUnit/hmmer/check/test/__init__.py
commons/pyRepetUnit/hmmer/check/test/detectFeatureConfigCheckerTestSuite.py
commons/pyRepetUnit/hmmer/hmmOutput/HmmOutput.py
commons/pyRepetUnit/hmmer/hmmOutput/HmmOutputProcessing.py
commons/pyRepetUnit/hmmer/hmmOutput/HmmpfamOutputProcessing.py
commons/pyRepetUnit/hmmer/hmmOutput/HmmscanOutputProcessing.py
commons/pyRepetUnit/hmmer/hmmOutput/__init__.py
commons/pyRepetUnit/hmmer/hmmOutput/tests/TestHmmOutputProcessing.py
commons/pyRepetUnit/hmmer/hmmOutput/tests/TestHmmpfamOutputProcessing.py
commons/pyRepetUnit/hmmer/hmmOutput/tests/TestHmmscanOutputProcessing.py
commons/pyRepetUnit/hmmer/hmmOutput/tests/Test_HmmOutput.py
commons/pyRepetUnit/hmmer/hmmOutput/tests/__init__.py
commons/pyRepetUnit/hmmer/hmmOutput/tests/datas/Outputhmmpfam
commons/pyRepetUnit/hmmer/hmmOutput/tests/datas/hmmscanOutput
commons/pyRepetUnit/hmmer/hmmOutput/tests/datas/hmmscanOutput.align
commons/pyRepetUnit/hmmer/hmmOutput/tests/datas/hmmscanOutputTab.txt
commons/pyRepetUnit/hmmer/hmmOutput/tests/datas/test_hmmpfam_output
commons/pyRepetUnit/hmmer/hmmOutput/tests/hmmOutputTestSuite.py
commons/pyRepetUnit/hmmer/profilsSearchInTEClassifier/ProfilesSearch.py
commons/pyRepetUnit/hmmer/profilsSearchInTEClassifier/__init__.py
commons/pyRepetUnit/hmmer/profilsSearchInTEClassifier/tests/Test_ProfilesSearch.py
commons/pyRepetUnit/hmmer/profilsSearchInTEClassifier/tests/__init__.py
commons/pyRepetUnit/hmmer/profilsSearchInTEClassifier/tests/datas/ConsensusFile_test.fa
commons/pyRepetUnit/hmmer/profilsSearchInTEClassifier/tests/datas/DummyRepbase_aa.fa
commons/pyRepetUnit/hmmer/profilsSearchInTEClassifier/tests/datas/DummyRepbase_nt.fa
commons/pyRepetUnit/hmmer/profilsSearchInTEClassifier/tests/datas/hmmbank_test
commons/pyRepetUnit/hmmer/profilsSearchInTEClassifier/tests/datas/hmmpfamOut.align.clean_match.path
commons/pyRepetUnit/hmmer/tests/TestAcceptanceHmmpfamAndParse2alignInparallel.py
commons/pyRepetUnit/hmmer/tests/TestFunctionalHmmpfamAndParse2alignLauncherInParallel.py
commons/pyRepetUnit/hmmer/tests/TestFunctionalHmmpfamClusterComponent.py
commons/pyRepetUnit/hmmer/tests/TestHmmpfamAndParse2alignLauncher.py
commons/pyRepetUnit/hmmer/tests/TestHmmpfamClusterComponent.py
commons/pyRepetUnit/hmmer/tests/TestHmmpfamLauncher.py
commons/pyRepetUnit/hmmer/tests/TestLaunchPreProcessHmmpfamPostProcessNotInParallel.py
commons/pyRepetUnit/hmmer/tests/TestProgramLauncher.py
commons/pyRepetUnit/hmmer/tests/__init__.py
commons/pyRepetUnit/hmmer/tests/datas/Outputhmmpfam
commons/pyRepetUnit/hmmer/tests/datas/config.cfg
commons/pyRepetUnit/hmmer/tests/datas/configTestAcceptanceHmmpfamAndParse2alignLauncherInparallel.cfg
commons/pyRepetUnit/hmmer/tests/datas/configTestFunctionalHmmpfamLauncherInparallel.cfg
commons/pyRepetUnit/hmmer/tests/datas/configTestLaunchPreProcessHmmpfamPostProcessNotInParallel.cfg
commons/pyRepetUnit/hmmer/tests/datas/myhmms
commons/pyRepetUnit/hmmer/tests/datas/test_input_aa.fa
commons/pyRepetUnit/hmmer/tests/datas/test_input_nt.fa
commons/pyRepetUnit/profilesDB/CompleteAProfilesDBFromAFileWithProfilesNamesOrAccNumber.py
commons/pyRepetUnit/profilesDB/InsertProfilesMapFileInDB.py
commons/pyRepetUnit/profilesDB/Profiles.py
commons/pyRepetUnit/profilesDB/ProfilesDB2Map.py
commons/pyRepetUnit/profilesDB/ProfilesDB4Repet.py
commons/pyRepetUnit/profilesDB/ProfilesDatabank.py
commons/pyRepetUnit/profilesDB/ProfilesDatabankUtils.py
commons/pyRepetUnit/profilesDB/__init__.py
commons/pyRepetUnit/profilesDB/tests/InsertProfilesMapFileInDBTestRessources.py
commons/pyRepetUnit/profilesDB/tests/TestCompleteProfilesDBFromProfilesNameListOrAccNumber.py
commons/pyRepetUnit/profilesDB/tests/TestInsertProfilesMapFileInDB.py
commons/pyRepetUnit/profilesDB/tests/TestProfiles.py
commons/pyRepetUnit/profilesDB/tests/TestProfilesDB2Map.py
commons/pyRepetUnit/profilesDB/tests/TestProfilesDatabankUtils.py
commons/pyRepetUnit/profilesDB/tests/Test_F_CompleteProfilDB.py
commons/pyRepetUnit/profilesDB/tests/Test_F_ProfilesDB2Map.py
commons/pyRepetUnit/profilesDB/tests/Test_F_ProfilesDB4Repet.py
commons/pyRepetUnit/profilesDB/tests/Test_ProfilesDB4Repet.py
commons/pyRepetUnit/profilesDB/tests/__init__.py
commons/pyRepetUnit/profilesDB/tests/completeProfilesDBFromAFileWithProfilesList_script.py
commons/pyRepetUnit/profilesDB/tests/datas/ListPfamProfilsInRepbase.txt
commons/pyRepetUnit/profilesDB/tests/datas/ListpfamAccNumber.txt
commons/pyRepetUnit/profilesDB/tests/datas/myhmms
commons/pyRepetUnit/profilesDB/tests/datas/profilesDBTest.hmm
commons/pyRepetUnit/profilesDB/tests/profilesDBTestSuite.py
commons/tools/AlignTEOnGenomeAccordingToAnnotation.py
commons/tools/AnnotationStats.py
commons/tools/BenchmarkTEconsensus.py
commons/tools/CalcCoordCumulLength.py
commons/tools/ChangeSequenceHeaders.py
commons/tools/CheckMysqlConnect.py
commons/tools/CleanClusterNodesAfterRepet.py
commons/tools/CorrelateTEageWithGCcontent.py
commons/tools/FilterAlign.py
commons/tools/GFF3Maker.py
commons/tools/GameXmlMaker.py
commons/tools/GetMultAlignAndPhylogenyPerTErefSeq.py
commons/tools/GetSpecificTELibAccordingToAnnotation.py
commons/tools/HmmOutput2alignAndTransformCoordInNtAndFilterScores_script.py
commons/tools/LaunchBlaster.py
commons/tools/LaunchBlasterInParallel.py
commons/tools/LaunchMatcherInParallel.py
commons/tools/ListAndDropTables.py
commons/tools/MergeMatchsFiles.py
commons/tools/MysqlConnect.py
commons/tools/OrientSequences.py
commons/tools/PostAnalyzeTELib.py
commons/tools/PrepareBatches.py
commons/tools/RetrieveInitHeaders.py
commons/tools/RmvPairAlignInChunkOverlaps.py
commons/tools/SpliceTEsFromGenome.py
commons/tools/SplicerFromAnnotation.py
commons/tools/TEclassifierPE.py
commons/tools/TEclassifierPE_parallelized.py
commons/tools/__init__.py
commons/tools/blast2align.py
commons/tools/dbBestLength.py
commons/tools/dbConsensus.py
commons/tools/dbShuffle.py
commons/tools/dbSplit.py
commons/tools/filterOutMatcher.py
commons/tools/getCumulLengthFromTEannot.py
commons/tools/pathnum2id.py
commons/tools/refalign2fasta.py
commons/tools/removeDescriptionInFastaHeaderProgramLauncher.py
commons/tools/replaceGreaterThanSymbolInFastaHeaderProgramLauncher.py
commons/tools/setnum2id.py
commons/tools/srptBlasterMatcher.py
commons/tools/srptCreateTable.py
commons/tools/srptExportTable.py
commons/tools/srptGameXmlMaker.py
commons/tools/srptPhyML.py
commons/tools/srptTableOverlap.py
commons/tools/tabFileReader.py
commons/tools/tests/MockFastaForReplaceGreaterThanSymbolInFastaHeader.py
commons/tools/tests/Test_AlignTEOnGenomeAccordingToAnnotation.py
commons/tools/tests/Test_CalcCoordCumulLength.py
commons/tools/tests/Test_ChangeSequenceHeaders.py
commons/tools/tests/Test_CorrelateTEageWithGCcontent.py
commons/tools/tests/Test_F_AlignTEOnGenomeAccordingToAnnotation.py
commons/tools/tests/Test_F_CheckMysqlConnect.py
commons/tools/tests/Test_F_FilterAlign.py
commons/tools/tests/Test_F_GFF3Maker.py
commons/tools/tests/Test_F_GameXmlMaker.py
commons/tools/tests/Test_F_GetMultiAlignAndPhylogenyPerTErefSeq.py
commons/tools/tests/Test_F_GetSpecificTELibAccordingToAnnotation.py
commons/tools/tests/Test_F_HmmOutput2alignAndTransformCoordInNtAndFilterScores_script.py
commons/tools/tests/Test_F_LaunchBlaster.py
commons/tools/tests/Test_F_LaunchBlasterInParallel.py
commons/tools/tests/Test_F_LaunchMatcherInParallel.py
commons/tools/tests/Test_F_MergeMatchsFiles.py
commons/tools/tests/Test_F_PostAnalyzeTELib.py
commons/tools/tests/Test_F_ReplaceGreaterThanSymbolInFastaHeader.py
commons/tools/tests/Test_F_RetrieveInitHeaders.py
commons/tools/tests/Test_F_SplicerFromAnnotation.py
commons/tools/tests/Test_F_TEclassifierPE.py
commons/tools/tests/Test_GetMultAlignAndPhylogenyPerTErefSeq.py
commons/tools/tests/Test_GetSpecificTELibAccordingToAnnotation.py
commons/tools/tests/Test_OrientSequences.py
commons/tools/tests/Test_RmvPairAlignInChunkOverlaps.py
commons/tools/tests/Test_SpliceTEsFromGenome.py
commons/tools/tests/Test_getCumulLengthFromTEannot.py
commons/tools/tests/Test_pathnum2id.py
commons/tools/tests/Test_refalign2fasta.py
commons/tools/tests/Test_srptTableOverlap.py
commons/tools/tests/__init__.py
removed:
SMART/Java/Python/GetIntersection.py
SMART/Java/Python/ncList/.NCList.py.swp
SMART/Java/Python/ncList/.NCListCursor.py.swp
SMART/Java/Python/ncList/Benchmark.py
SMART/Java/Python/script.Rout
SMART/Java/PythonProgramFinder$1.class
SMART/Java/Smart$1.class
SMART/Java/Smart$2.class
SMART/galaxy/tool_conf.xml
SMART/galaxy/tool_dependencies.xml
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/DESeqTools/HTseqClean.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/DESeqTools/HTseqClean.R Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,19 @@
+# HTseqClean
+# remove extra counts out of genes
+# for HTseq output
+
+# input : rawCounts
+# output : cleaned rawCounts
+
+# created Feb 6th, 2012
+# Modified Feb 16th, 2012
+# Marie-Agnes Dillies
+
+
+HTseqClean <- function( rawCounts ){
+
+  row2remove <- c("alignment_not_unique", "ambiguous", "no_feature", "not_aligned", "too_low_aQual")
+  rawCounts <- rawCounts[!rawCounts$Id %in% row2remove,]
+  rawCounts[is.na(rawCounts)] <- 0
+  return(rawCounts)
+}
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/DESeqTools/MAplotDE.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/DESeqTools/MAplotDE.R Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,16 @@
+# MAplotDE
+# MAplot of DE genes
+
+# input : res, alpha,OUT_MAplotDEName 
+# output : MAplot (png)
+
+MAplotDE <- function( res, alpha, OUT_MAplotDEName, out = TRUE ){
+
+  if (out) png( file=OUT_MAplotDEName )
+  
+  plot( res$baseMean, res$log2FoldChange, pch=".", xlab="Mean expression", ylab="log2FC", main="",
+   log="x", col=ifelse(res$padj < alpha, "red", "black") )
+ abline(h=0, col="red")
+
+   if (out) dev.off()
+}
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/DESeqTools/RNAseqFunctions.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/DESeqTools/RNAseqFunctions.R Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,38 @@
+# RNAseqFunctions
+# when sourced, sources all R functions associated with RNAseq data analysis
+
+RNAseqFunctions <- function( RfuncDir ){
+  
+  source(paste(RfuncDir, "loadTargetFile.R", sep=""))
+  source(paste(RfuncDir, "loadCountData.R", sep=""))
+# source(paste(RfuncDir, "loadStrandData.R", sep=""))
+  source(paste(RfuncDir, "HTseqClean.R", sep=""))
+  source(paste(RfuncDir, "raw2counts.R", sep=""))
+  source(paste(RfuncDir, "barplotTC.R", sep=""))
+  source(paste(RfuncDir, "barplotNul.R", sep=""))
+  source(paste(RfuncDir, "removeNul.R", sep=""))
+  source(paste(RfuncDir, "densityPlot.R", sep=""))
+  source(paste(RfuncDir, "boxplotCounts.R", sep=""))
+  source(paste(RfuncDir, "majSequence.R", sep=""))
+  source(paste(RfuncDir, "clusterPlot.R", sep=""))
+  source(paste(RfuncDir, "pairwiseSERE.R", sep=""))
+  source(paste(RfuncDir, "pairwiseScatterPlots.R", sep=""))
+#  source(paste(RfuncDir, "pairwiseScatterPlotsAll.R", sep=""))
+  source(paste(RfuncDir, "plotDispEstimates.R", sep=""))
+#  source(paste(RfuncDir, "deseqByCond.R", sep="")) 
+#  source(paste(RfuncDir, "edgeRByCond.R", sep=""))  
+#  source(paste(RfuncDir, "fisher.R", sep=""))
+  source(paste(RfuncDir, "histoRawp.R", sep=""))
+#  source(paste(RfuncDir, "histoRawpMconds.R", sep=""))
+  source(paste(RfuncDir, "MAplotDE.R", sep=""))
+#  source(paste(RfuncDir, "MAplotDEMconds.R", sep=""))
+  source(paste(RfuncDir, "exportComplete.R", sep=""))
+#  source(paste(RfuncDir, "exportCompleteEdgeR.R", sep=""))
+#  source(paste(RfuncDir, "exportCompleteFisher.R", sep=""))
+#  source(paste(RfuncDir, "exportCompleteMconds.R", sep=""))
+#  source(paste(RfuncDir, "exportCompleteByCond.R", sep=""))
+#  source(paste(RfuncDir, "exportCompletePaired.R", sep=""))
+  source(paste(RfuncDir, "exportDiff.R", sep=""))
+#  source(paste(RfuncDir, "synthese.R", sep=""))
+#  source(paste(RfuncDir, "exportDiffByCond.R", sep=""))
+}
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/DESeqTools/anadiffGenes2conds.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/DESeqTools/anadiffGenes2conds.R Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,191 @@
+# Analyse differentielle de donnees d expression par gene
+# avec DESeq
+# 2 conditions
+
+args <- commandArgs()
+#print(args[1])
+#print(args[2])
+#print(args[3])
+#print(args[4])
+#print(args[5])
+#print(args[6])
+#output file names
+#print(args[7]) # HTML file name
+#print(args[8]) # HTML file all images directory 
+#print(args[9]) # complete xls file name
+#print(args[10])# UP xls file name
+#print(args[11]) #Down xls file name
+#print(args[12]) #the executable scipt (for getting the path)
+
+library(R2HTML)
+library(R.utils)
+
+#run example: 
+projectName <- "DESeqAnalysis"
+analysisVersion <- "V1"    # fitType=local, sharingMode=fit-only, method=blind 
+rawDir <- "raw"
+targetFile <- args[4]
+header <- as.integer(args[5]) #si on a header ou pas, si on a, header=1, sinon header=0
+withOutReplicates <- as.integer(args[6])
+
+#get the directory to write the results
+tab <- splitByPattern(args[7], pattern="/")
+res_dir <- ""
+for (e in tab[1:length(tab)-1]) { res_dir <- paste(res_dir, e, sep="")}
+#get the html output file name
+OUT_HTMLname <- args[7]
+#get the images directory to write to
+OUT_imgDir <- args[8]
+#if the directory dosen't existe, we should create it first
+
+alpha <- 0.05
+adjMethod <- "BH"
+outfile <- T
+runningScriptTab <-  splitByPattern(args[12], pattern="/")
+RfuncDir <- ""
+for (r in runningScriptTab[1:length(runningScriptTab)-1]) { RfuncDir <- paste(RfuncDir, r, sep="")} #find the path of executable script  
+RfuncDir <- paste(RfuncDir, "DESeqTools/", sep="") #define the function files path
+# Dossier contenant les fonctions
+print(RfuncDir)
+source( paste(RfuncDir, "RNAseqFunctions.R", sep="/") )
+
+# Chargement des packages et des fonctions
+library(DESeq)
+RNAseqFunctions(RfuncDir)
+# Chargement du target file
+target <- loadTargetFile( targetFile, header )
+# Chargement des donnees, construction d'une table de comptages par gene
+#have changed
+rawCounts <- loadCountData( target, header )
+conds <- unique(target$group)
+cond1 <- as.character(conds[1])
+cond2 <- as.character(conds[!conds == conds[1]])
+rawCounts <- HTseqClean( rawCounts )
+
+# Transformation en matrice de comptages
+counts <- raw2counts( rawCounts )[[1]]
+
+# Nombre de reads par echantillon
+OUT_barplotTCName <- paste(OUT_imgDir, "barplotTC.png", sep="/")
+barplotTC( counts, target$group, OUT_barplotTCName, out=outfile )
+
+# Proportion comptages nuls
+OUT_barplotNulName <- paste(OUT_imgDir, "barplotNul.png", sep="/")
+barplotNul( counts, target$group, OUT_barplotNulName, out=outfile )
+
+# Suppression comptages nuls
+counts <- removeNul( counts )[[1]]
+
+# Density plot
+OUT_densityPlotName <- paste(OUT_imgDir, "densityPlot.png", sep="/")
+densityPlot( counts, target$group, OUT_densityPlotName, out=outfile )
+
+# Boxplot
+OUT_boxplotCountsName <- paste(OUT_imgDir, "boxplotCounts.png", sep="/")
+boxplotCounts( counts, target$group, type = c("raw", "norm"), OUT_boxplotCountsName, out=outfile )
+# Sequence majoritaire
+OUT_majSequenceName <- paste(OUT_imgDir, "majSequence.png", sep="/")
+majSequence( counts, target$group, OUT_majSequenceName, out=outfile )
+
+# ScatterPlot between two samples
+OUT_scatterPlot <- paste(OUT_imgDir, "scatterPlot.png", sep="/")
+pairwiseScatterPlots(counts, target, OUT_scatterPlot, out=outfile, pdffile=FALSE)
+
+# SERE coefficient calculation (Poisson hypothesis for replicates techiques), to know if the variability between the réplicates or the conditons is hight or not. 
+coef <- pairwiseSERE(counts)
+print(coef)
+coef
+# Creation structure de donnees cds, !! we use newCountDataset because that we have first column not numeric, and DESeq dosen't take non numeric values.
+cds <- newCountDataSet( counts, target$group )
+
+# Diagnostic for clustering of non-normalized samples
+OUT_clusterPlot_before <- paste(OUT_imgDir, "clusteringOfSamplesBefore.png", sep="/")
+clusterPlot(cds, OUT_clusterPlot_before, out=outfile)
+
+
+# Normalisation (calcul des lib size factors )
+cds <- estimateSizeFactors( cds )
+
+# Estimation de la dispersion
+# parametres: 
+ # method: how samples are pooled to estimate dispersion. If no replicates use "blind"
+ # sharingMode: how variance estimate is computed with respect to the fitted line. 
+ #  "Maximum" is the most conservative (max between fit and estimation), "fit-only" keeps the estimated value
+ # fitType: refers to the model. "Local" is the published model, "parametric" is glm-based (may not converge), now we use "parametric" as default value.
+#in this case, without replicates
+if(withOutReplicates!=0){
+ cds <- estimateDispersions( cds, sharingMode="fit-only", method="blind")
+} else if(withOutReplicates==0){
+ #cds <- estimateDispersions( cds, sharingMode="fit-only", fitType="local")}
+ cds <- estimateDispersions( cds)}
+# Analyse differentielle, ajustement BH par defaut
+res <- nbinomTest( cds, cond1, cond2)  
+
+# Diagnostic for clustering of normalized samples
+OUT_clusterPlot <- paste(OUT_imgDir, "clusteringOfSamples.png", sep="/")
+clusterPlot(cds, OUT_clusterPlot, out=outfile)
+
+# Control plot of dispersion estimates
+OUT_plotDispEstimatesName <- paste(OUT_imgDir, "disperssionEstimates.png", sep="/")
+plotDispEstimates( cds, OUT_plotDispEstimatesName, out=outfile )
+
+# Distribution of raw p-values
+OUT_histoRawpName <- paste(OUT_imgDir, "histoRawPvalue.png", sep="/")
+histoRawp( res, OUT_histoRawpName, out=outfile )
+
+# MAplot showing DE genes
+OUT_MAplotDEName <- paste(OUT_imgDir, "MAplotDE.png", sep="/")
+MAplotDE( res, alpha, OUT_MAplotDEName, out=outfile )
+
+# export complete data
+OUT_completeName <- args[9]
+complete <- exportComplete( counts, res, target, adjMethod, cond1, cond2, OUT_completeName, out=outfile )
+
+# export significant genes
+OUT_upName <- args[10]
+OUT_downName <- args[11]
+diff <- exportDiff( complete, alpha, adjMethod, OUT_upName, OUT_downName, out=outfile )
+
+# write all images results into an HTML file
+prefixHTMLname <- tab[length(tab)]
+#HTMLCSS(file.path(res_dir), filename=prefixHTMLname, CSSfile="R2HTML")
+HTMLInitFile(file.path(res_dir), filename=prefixHTMLname, BackGroundColor="white")
+HTML.title("<center>Differential Expression DESeq analysis.", HR=1) 
+HTML.title("<center>BarplotTC: number of RNA-seq reads per sample.", HR=2)
+     HTMLInsertGraph("barplotTC.png")
+
+HTML.title("<center>BarplotNul: number of RNA-seq reads that the count is 0 (nul).", HR=2)
+ HTMLInsertGraph("barplotNul.png")
+
+HTML.title("<center>DensityPlot: density of each sample.", HR=2)
+ HTMLInsertGraph("densityPlot.png")
+
+HTML.title("<center>Boxplot: number of RNA-seq reads distribution per sample.", HR=2)
+ HTMLInsertGraph("boxplotCounts.png")
+
+HTML.title("<center>MajorSequence: the proportion of reads associated with the most expressed sequence.", HR=2)
+ HTMLInsertGraph("majSequence.png")
+
+HTML.title("<center>ScatterPlot: Scatter plot of samples.", HR=2)
+ HTMLInsertGraph("scatterPlot.png")
+
+HTML.title("<center>Clustering Of No-Normalized Samples: Representing the no-normalized samples in Diagnostic.", HR=2)
+ HTMLInsertGraph("clusteringOfSamplesBefore.png")
+
+HTML.title("<center>Clustering Of Normalized Samples: Representing the normalized samples in Diagnostic.", HR=2)
+ HTMLInsertGraph("clusteringOfSamples.png")
+
+HTML.title("<center>DispersionEstimates: representing dispersion estimates vs mean expression.", HR=2)
+ HTMLInsertGraph("disperssionEstimates.png")
+
+HTML.title("<center>HistoRawPValue: histogram of raw p-value.", HR=2)
+ HTMLInsertGraph("histoRawPvalue.png")
+
+HTML.title("<center>MAplotDE: the differentially expressed genes (red point).", HR=2)
+ HTMLInsertGraph("MAplotDE.png")
+HTMLEndFile()
+absoluPrefixHTMLname <- paste(res_dir, prefixHTMLname, sep="")
+outName <- paste(absoluPrefixHTMLname, ".html", sep="")
+# change name is to be adapted into Galaxy
+file.rename(outName, OUT_HTMLname)
+
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/DESeqTools/barplotNul.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/DESeqTools/barplotNul.R Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,19 @@
+# barplotNul
+# barplot representing null counts per sample
+
+# input : counts, target, projectName
+# output : barplotNul (png)
+
+# created Feb 7th, 2012
+# modified April 30th, 2012 (target$group instead of target)
+
+barplotNul <- function( counts, group,  OUT_barplotNulName, out = TRUE ){
+
+  if (out) png( file=OUT_barplotNulName )
+
+  N <- apply(counts, 2, function(x){sum(x == 0)})/nrow(counts)
+  barplot(N, col=as.integer(group)+1, main = "Proportion of null counts per Sample", ylim = c(0,1))
+  legend("topright", as.character(unique(group)), lty=1, col=as.integer(unique(group))+1)
+
+  if (out) dev.off()
+}
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/DESeqTools/barplotTC.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/DESeqTools/barplotTC.R Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,20 @@
+# barplotTC
+# barplot representing total count per sample
+
+# input : counts, target, projectName
+# output : barplotTC (png)
+
+# created Feb 7th, 2012
+# modified April 30th, 2012 (group instead of target$group)
+
+barplotTC <- function( counts, group, OUT_barplotTCName, out = TRUE ){
+
+  if (out) png( file=OUT_barplotTCName )
+
+  ylim <- c(0, max(colSums(counts))*1.2)
+  barplot( colSums(counts), col=as.integer(group)+1, main = "Total Read Count per Sample",  ylim=ylim )
+  legend( "topright", as.character(unique(group)), lty=1,
+         col=as.integer(unique(group))+1 )
+
+  if (out) dev.off()
+}
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/DESeqTools/boxplotCounts.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/DESeqTools/boxplotCounts.R Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,18 @@
+# boxplotCounts
+# boxplots representing counts distribution per sample
+
+# input : counts, target, projectName, type of data (raw or norm)
+# output : boxplot (png)
+
+# created Feb 7th, 2012
+# modified April 30th, 2012
+
+boxplotCounts <- function( counts, group, type = c("raw", "norm"), OUT_boxplotCountsName, out = TRUE ){
+
+  if (out) png( file=OUT_boxplotCountsName )
+
+  boxplot( log2(counts+1), col=as.integer(group)+1, main = paste(type[1], " counts distribution", sep="" ) )
+  legend( "topright", as.character(unique(group)), lty=1, col=as.integer(unique(group))+1 )
+
+  if (out) dev.off()
+}
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/DESeqTools/clusterPlot.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/DESeqTools/clusterPlot.R Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,27 @@
+# clusterPlot
+# dendrogram of sample clustering
+
+# input : counts, outputName, type of data (raw or norm)
+# output : dendrogram (jpeg)
+
+# created Sept 13th, 2012
+# modified Oct 30th, 2012
+# Marie-Agnes Dillies
+
+
+clusterPlot <- function( cds, OUT_clusterPlot, type = "raw", out = TRUE ){
+
+  if (out) png( file=OUT_clusterPlot )
+
+  if (type == "norm"){
+    cdsblind <- estimateDispersions( cds, method="blind" )
+    vsd <- getVarianceStabilizedData( cdsblind )
+  }
+  else {
+    vsd <- counts(cds)
+  }
+  hc <- hclust( dist(t(vsd)), method="ward" )
+  plot( hc, xlab = "Euclidean distance, Ward criterion", main=paste("Cluster Dendrogram, ", type, " data", sep="") )
+
+  if (out) dev.off()
+}
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/DESeqTools/densityPlot.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/DESeqTools/densityPlot.R Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,23 @@
+# densityPlot
+# density plot of all samples
+
+# input : counts, target, projectName
+# output : densplot (png)
+
+# created Feb 7th, 2012
+# modified April 30th, 2012
+
+
+densityPlot <- function( counts, group, OUT_densityPlotName, out = TRUE ){
+
+  if (out) png( file=OUT_densityPlotName )
+
+  couleurs <- as.integer( group ) + 1
+  ylim <- c(0, max(density(log2(counts)+1)$y)*1.5)
+  plot( density(log2(counts[,1])+1), main="Density of counts distribution", col=couleurs[1], ylim = ylim )
+  for (i in 2:ncol(counts))
+   lines( density(log2(counts[,i])+1), col=couleurs[i] )
+  legend( "topright", as.character(unique(group)), lty=1, col=as.integer(unique(group))+1 )
+
+  if (out) dev.off()
+}
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/DESeqTools/exportComplete.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/DESeqTools/exportComplete.R Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,20 @@
+# exportComplete
+# export complete data and results
+
+# input : counts res, target
+# output : complete data and xls file (in text format)
+
+# created Feb 14th, 2012
+# modified March 9th, 2012 (order of cond1 and cond2)
+
+
+exportComplete <- function( counts, res, target, adjMethod, cond1, cond2, OUT_completeName, out = T ){
+
+ complete <- data.frame( res$id, counts, res[,3:ncol(res)] )
+ colnames(complete) <- c( "id", as.character(target$label), cond2, cond1, "FC", "log2FC", "rawp", 
+ paste("adjp",adjMethod,sep="") )
+
+  if (out)
+   write.table( complete, file=OUT_completeName, sep="\t", row.names=F )
+  return( complete )
+}
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/DESeqTools/exportDiff.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/DESeqTools/exportDiff.R Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,42 @@
+# exportDiff
+# export differentially expressed genes
+
+# input : complete, alpha, adjMethod, projectName
+# output : diff genes, up and down in xls files
+
+# created Feb 14th, 2012
+
+
+exportDiff <- function( complete, alpha, adjMethod, OUT_upName, OUT_downName, out = T ){
+
+ diff <- complete[which(complete[,grep("adjp",colnames(complete))] < alpha),]
+
+ gup <- up( diff )
+ gdown <- down( diff )
+
+  if (out){
+    gup[,(ncol(gup)-4):ncol(gup)] <- format( gup[,(ncol(gup)-4):ncol(gup)], digits=3, dec=",")
+    gdown[,(ncol(gdown)-4):ncol(gdown)] <- format( gdown[,(ncol(gdown)-4):ncol(gdown)], digits=3, dec=",")
+ write.table(gup, file=OUT_upName, row.names=F, sep="\t")
+ write.table(gdown, file=OUT_downName, row.names=F, sep="\t")
+  }
+  return( diff )
+}
+
+
+up <- function( diff ){
+
+ up <- diff[diff$log2FC > 0,]
+ up <- up[order(up[,grep("adjp",colnames(up))]),]
+
+ return( up )
+}
+
+
+down <- function( diff ){
+
+ down <- diff[diff$log2FC < 0,]
+ down <- down[order(down[,grep("adjp",colnames(down))]),]
+
+ return( down )
+}
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/DESeqTools/histoRawp.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/DESeqTools/histoRawp.R Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,18 @@
+# histoRawp
+# histogram of raw p-values
+
+# input : res, OUT_histoRawpName
+# output : histogram (png)
+
+
+histoRawp <- function( res, OUT_histoRawpName, out = TRUE ){
+
+  if (out) png( file=OUT_histoRawpName )
+  
+  ind <- grep("val", colnames(res))
+  hist( res[,ind], nclass=50, xlab="Raw p-values", main="", col="skyblue" )
+
+  if (out) dev.off()
+}
+
+
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/DESeqTools/loadCountData.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/DESeqTools/loadCountData.R Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,36 @@
+# loadCountData
+# loads counts, one file per lane
+# file names from target file
+
+# input : target
+# output : raw count table
+
+# created Feb 6th, 2012
+# modified May 2nd, 2012 (colnames -> target$label)
+# Marie-Agnes Dillies
+
+
+loadCountData <- function(target, header){
+
+  require(DESeq)
+  fileNames <- target$files
+
+if(header!=0){
+ #rawCounts <- read.table(as.character(paste(rawDir,target$files[1],sep="/")), sep="\t", header=TRUE)
+ rawCounts <- read.table(as.character(target$files[1],sep="/"), sep="\t", header=TRUE)
+} else if(header==0){
+ rawCounts <- read.table(as.character(target$files[1],sep="/"), sep="\t")}
+  
+  colnames(rawCounts) <- c("Id", as.character(target$label[1]))
+
+  for (i in 2:length(fileNames)){
+ if(header!=0){
+   tmp <- read.table(as.character(target$files[i],sep="/"), sep="\t", header=TRUE)
+ } else if(header==0){
+ tmp <- read.table(as.character(target$files[i],sep="/"), sep="\t")}
+   colnames(tmp) <- c("Id", as.character(target$label[i]))
+   rawCounts <- merge(rawCounts, tmp, by="Id", all=T)
+  }
+  rawCounts[is.na(rawCounts)] <- 0
+  return(rawCounts)
+}
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/DESeqTools/loadTargetFile.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/DESeqTools/loadTargetFile.R Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,17 @@
+# loadTargetFile
+# loads file containing sample info
+
+# input : targetFile Name
+# output : target
+
+# created Feb 6th, 2012
+# Marie-Agnes Dillies
+
+
+loadTargetFile <- function(targetFile, header){
+if(header!=0){
+  return(read.table(targetFile, header=T, sep="\t"))
+ }else if(header==0){
+  return(read.table(targetFile, sep="\t"))
+ }
+}
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/DESeqTools/majSequence.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/DESeqTools/majSequence.R Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,26 @@
+# majSequence
+# compute proportion of reads associated with most expressed sequence
+
+# input : counts, target, projectName
+# output : barplot, % associated with majority gene
+
+# created Feb 7th, 2012
+# modified Feb 20th, 2012
+# modified April 30th, 2012
+# Marie-Agnes Dillies
+
+
+majSequence <- function( counts, group, OUT_majSequenceName, out = T, position = "topright" ){
+
+  if (out) png( file=OUT_majSequenceName )
+
+  maj <- apply(counts, 2, function(x){x <- x[order(x, decreasing=T)]; x[1]*100/sum(x)})
+  seqname <- apply(counts, 2, function(x){x <- x[order(x, decreasing=T)]; names(x)[1]})
+
+  x <- barplot( maj, col=as.integer(group)+1, main = "Proportion of reads from most expressed gene", 
+ ylim = c(0, max(maj)*1.2), cex.main=0.8 )
+  for (i in 1:length(seqname)) text( x[i], maj[i]/2, seqname[i], cex=0.8, srt=90, adj=0)
+  legend( position, as.character(unique(group)), lty=1, col=as.integer(unique(group))+1 )
+
+  if (out) dev.off()
+}
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/DESeqTools/pairwiseSERE.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/DESeqTools/pairwiseSERE.R Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,41 @@
+# pairwiseSERE
+# compute pairwise SERE statistics
+
+# input : counts
+# output : matrix of SERE values
+
+# created october 19th, 2012
+# Marie-Agnes Dillies
+
+
+pairwiseSERE <- function( counts ){
+  
+  sere <- matrix( NA, ncol=ncol(counts), nrow=ncol(counts) )
+  for (i in 1:ncol(counts)){
+    for (j in 1:ncol(counts)){
+      sere[i,j] <- sigfun_Pearson( counts[,c(i,j)] )
+    }
+  }
+  colnames(sere) <- rownames(sere) <- colnames(counts)
+  return( formatC(sere, format="f", digits=2) )
+}
+
+sigfun_Pearson <- function(observed) {
+  #calculate lambda and expected values
+  laneTotals<- colSums(observed);
+  total <- sum(laneTotals)
+  fullObserved <- observed[rowSums(observed)>0,];
+  fullLambda <- rowSums(fullObserved)/total;
+  fullLhat <- fullLambda > 0;
+  fullExpected<- outer(fullLambda, laneTotals);
+
+  #keep values
+  fullKeep <- which(fullExpected > 0);
+  
+  #calculate degrees of freedom (nrow*(ncol -1) >> number of parameters - calculated (just lamda is calculated >> thats why minus 1)
+  #calculate pearson and deviance for all values
+  oeFull <- (fullObserved[fullKeep] - fullExpected[fullKeep])^2/ fullExpected[fullKeep] # pearson chisq test
+  dfFull <- length(fullKeep) - sum(fullLhat!=0);
+  
+  return(c(sqrt(sum(oeFull)/dfFull)));
+}
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/DESeqTools/pairwiseScatterPlots.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/DESeqTools/pairwiseScatterPlots.R Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,31 @@
+# pairwiseScatterPlots
+# scatter plots for pairwise comparaisons of log counts
+
+# input : counts, target, outputName
+# output : scatter plots (pdf: allows multiple figures in one file)
+
+# created Feb 21th, 2012
+# modified Sept 27th, 2012 (pdf output file)
+# modified Oct 30th, 2012 (png)
+# Marie-Agnes Dillies
+
+
+pairwiseScatterPlots <- function( counts, target, OUT_scatterPlot, out = TRUE, pdffile = FALSE ){
+
+  if (out & !pdffile) png( OUT_scatterPlot )
+  if (pdffile) pdf( OUT_scatterPlot )
+  
+  conds <- unique(target$group)
+  # colnames(counts) <- target$label
+  
+  for (i in 1:(length(conds)-1)){
+   for (j in (i+1):length(conds)){
+   cond1 <- conds[i]; cond2 <- conds[j]
+ pairs( log2(counts[, which(target$group %in% c(as.character(cond1), as.character(cond2)))]+1), 
+ pch=".", cex=0.5, main = paste(cond1, cond2, sep=" vs ") )
+   }
+  }
+
+  if (pdffile) dev.off()
+  if (out) dev.off()
+}
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/DESeqTools/plotDispEstimates.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/DESeqTools/plotDispEstimates.R Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,21 @@
+# plotDispEstimates
+# scatter plots representing dispersion estimates vs mean expression
+
+# input : cds, OUT_plotDispEstimatesName
+# output : scatterplot (png)
+
+plotDispEstimates <- function( cds, OUT_plotDispEstimatesName, out = TRUE ){
+
+  if (out) png( file=OUT_plotDispEstimatesName )
+  
+  plot(
+   rowMeans( counts(cds, normalized=T) ),
+   fitInfo(cds)$perGeneDispEsts,
+   pch=".", log="xy",
+   xlab = "Mean expression strength", ylab = "Dispersion estimate" )
+  
+  xg <- 10^seq(-.5, 5, length.out=300)
+  lines( xg, fitInfo(cds)$dispFun(xg), col="red" )
+
+  if (out) dev.off()
+}
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/DESeqTools/raw/f1cond1.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/DESeqTools/raw/f1cond1.tsv Tue Apr 30 14:33:21 2013 -0400
b
b"@@ -0,0 +1,18761 @@\n+GliNS1\tG144\n+13CDNA73\t4\n+15E1.2\t75\n+182-FIP\t118\n+2'-PDE\t39\n+3'HEXO\t18\n+3.8-1\t0\n+384D8-2\t3\n+76P\t61\n+7h3\t4\n+8D6A\t1\n+A1BG\t1\n+A2BP1\t19\n+A2M\t2724\n+A4GALT\t0\n+A4GNT\t0\n+AAA1\t2\n+AAAS\t57\n+AACS\t1904\n+AADACL1\t3\n+AADAT\t18\n+AAK1\t2\n+AAMP\t215\n+AANAT\t0\n+AARS\t157\n+AARSD1\t27\n+AARSL\t21\n+AASDH\t15\n+AASDHPPT\t162\n+AASS\t159\n+AATF\t68\n+AATK\t3\n+ABAT\t493\n+ABC1\t7\n+ABCA1\t23\n+ABCA10\t1\n+ABCA11\t10\n+ABCA12\t3\n+ABCA13\t0\n+ABCA2\t38\n+ABCA3\t95\n+ABCA4\t0\n+ABCA5\t1\n+ABCA6\t0\n+ABCA7\t23\n+ABCA8\t98\n+ABCA9\t155\n+ABCB1\t0\n+ABCB10\t64\n+ABCB11\t0\n+ABCB4\t51\n+ABCB5\t2\n+ABCB6\t26\n+ABCB7\t34\n+ABCB8\t84\n+ABCB9\t12\n+ABCC1\t24\n+ABCC10\t17\n+ABCC11\t4\n+ABCC12\t0\n+ABCC13\t4\n+ABCC2\t1\n+ABCC3\t4\n+ABCC4\t17\n+ABCC5\t41\n+ABCC6\t27\n+ABCC8\t29\n+ABCC9\t4\n+ABCD1\t9\n+ABCD2\t2\n+ABCD3\t147\n+ABCD4\t44\n+ABCE1\t490\n+ABCF1\t68\n+ABCF2\t42\n+ABCF3\t35\n+ABCG1\t1\n+ABCG2\t48\n+ABCG4\t0\n+ABHD1\t0\n+ABHD10\t6\n+ABHD11\t1804\n+ABHD14A\t44\n+ABHD14B\t18\n+ABHD2\t85\n+ABHD3\t133\n+ABHD4\t114\n+ABHD5\t34\n+ABHD6\t62\n+ABHD7\t0\n+ABHD8\t49\n+ABI1\t275\n+ABI2\t195\n+ABI3\t0\n+ABI3BP\t3\n+ABL1\t112\n+ABL2\t25\n+ABLIM1\t70\n+ABLIM2\t0\n+ABLIM3\t1\n+ABO\t0\n+ABR\t199\n+ABRA\t0\n+ABT1\t51\n+ABTB1\t11\n+ABTB2\t19\n+ACAA1\t34\n+ACAA2\t144\n+ACACA\t47\n+ACACB\t2\n+ACAD10\t36\n+ACAD11\t109\n+ACAD8\t22\n+ACAD9\t116\n+ACADL\t1\n+ACADM\t69\n+ACADS\t37\n+ACADSB\t36\n+ACADVL\t200\n+ACAS2\t9\n+ACAS2L\t3\n+ACAT1\t111\n+ACAT2\t165\n+ACATE2\t12\n+ACBD3\t213\n+ACBD4\t4\n+ACBD5\t14\n+ACBD6\t130\n+ACBD7\t6\n+ACCN2\t20\n+ACCN3\t11\n+ACCN4\t1\n+ACD\t9\n+ACDC\t2\n+ACE\t0\n+ACF\t25\n+ACHE\t199\n+ACIN1\t44\n+ACLY\t313\n+ACMSD\t6\n+ACN9\t133\n+ACO1\t70\n+ACO2\t348\n+ACOT2\t19\n+ACOT4\t1\n+ACOT7\t192\n+ACOT8\t2\n+ACOT9\t15\n+ACOX1\t97\n+ACOX2\t2\n+ACOX3\t4\n+ACOXL\t0\n+ACP1\t239\n+ACP2\t42\n+ACP5\t0\n+ACP6\t241\n+ACPL2\t55\n+ACPP\t7\n+ACR\t0\n+ACRBP\t0\n+ACRC\t3\n+ACRV1\t0\n+ACSBG1\t7\n+ACSL1\t5\n+ACSL3\t440\n+ACSL4\t63\n+ACSL5\t2\n+ACSL6\t19\n+ACSM2\t0\n+ACSM3\t1\n+ACSS1\t91\n+ACSS2\t55\n+ACTA1\t74\n+ACTA2\t0\n+ACTB\t26071\n+ACTC\t1\n+ACTG1\t2667\n+ACTG2\t26\n+ACTL6A\t58\n+ACTL6B\t0\n+ACTL8\t0\n+ACTN1\t463\n+ACTN2\t12\n+ACTN4\t3028\n+ACTR10\t77\n+ACTR1A\t234\n+ACTR1B\t18\n+ACTR2\t3044\n+ACTR3\t319\n+ACTR3B\t2\n+ACTR5\t13\n+ACTR6\t162\n+ACTR8\t64\n+ACTRT1\t0\n+ACVR1\t7\n+ACVR1B\t17\n+ACVR1C\t0\n+ACVR2\t14\n+ACVR2A\t3\n+ACVR2B\t2\n+ACVRL1\t0\n+ACY1\t10\n+ACY1L2\t46\n+ACY3\t0\n+ACYP1\t59\n+ACYP2\t58\n+AD-003\t1\n+AD-020\t9\n+AD023\t0\n+AD031\t51\n+AD7C-NTP\t3\n+ADA\t1889\n+ADAL\t0\n+ADAM10\t251\n+ADAM11\t9\n+ADAM12\t932\n+ADAM15\t74\n+ADAM17\t101\n+ADAM18\t0\n+ADAM19\t118\n+ADAM20\t0\n+ADAM21\t6\n+ADAM22\t264\n+ADAM23\t66\n+ADAM28\t0\n+ADAM32\t0\n+ADAM33\t35\n+ADAM8\t0\n+ADAM9\t581\n+ADAMDEC1\t0\n+ADAMTS1\t61\n+ADAMTS10\t58\n+ADAMTS12\t22\n+ADAMTS13\t3\n+ADAMTS15\t19\n+ADAMTS16\t16\n+ADAMTS17\t1\n+ADAMTS18\t0\n+ADAMTS19\t0\n+ADAMTS2\t2\n+ADAMTS20\t0\n+ADAMTS3\t147\n+ADAMTS4\t23\n+ADAMTS5\t43\n+ADAMTS6\t31\n+ADAMTS7\t2\n+ADAMTS8\t0\n+ADAMTS9\t321\n+ADAMTSL1\t6\n+ADAMTSL2\t0\n+ADAMTSL3\t0\n+ADAMTSL4\t1\n+ADAR\t53\n+ADARB1\t7\n+ADARB2\t0\n+ADAT1\t38\n+ADC\t0\n+ADCK1\t28\n+ADCK2\t11\n+ADCK4\t106\n+ADCK5\t4\n+ADCY1\t186\n+ADCY2\t0\n+ADCY3\t14\n+ADCY5\t9\n+ADCY6\t182\n+ADCY7\t19\n+ADCY8\t0\n+ADCY9\t21\n+ADCYAP1\t0\n+ADCYAP1R1\t3\n+ADD1\t322\n+ADD2\t48\n+ADD3\t448\n+ADFP\t31\n+ADH1B\t0\n+ADH1C\t0\n+ADH4\t3\n+ADH5\t490\n+ADHFE1\t5\n+ADI1\t181\n+ADIPOR1\t102\n+ADIPOR2\t26\n+ADK\t135\n+ADM\t78\n+ADM2\t0\n+ADMP\t0\n+ADMR\t2386\n+ADNP\t253\n+ADORA1\t3\n+ADORA2A\t1\n+ADORA2B\t7\n+ADPGK\t2019\n+ADPN\t7\n+ADPRH\t2\n+ADPRHL1\t0\n+ADPRHL2\t31\n+ADRA1A\t0\n+ADRA1B\t0\n+ADRA1D\t1\n+ADRA2A\t39\n+ADRA2B\t0\n+ADRB1\t11\n+ADRB2\t0\n+ADRB3\t17\n+ADRBK1\t51\n+ADRBK2\t4\n+ADRM1\t189\n+ADSL\t96\n+ADSS\t165\n+ADSSL1\t0\n+AE2\t6\n+AEBP1\t1856\n+AEBP2\t144\n+AEGP\t3\n+AER61\t3\n+AES\t1381\n+AF15Q14\t1\n+AF1Q\t24\n+AF5Q31\t244\n+AFAP\t139\n+AFAR3\t6\n+AFF1\t19\n+AFF2\t0\n+AFF3\t7\n+AFF4\t1\n+AFG3L1\t5\n+AFG3L2\t107\n+AFMID\t92\n+AFP\t0\n+AFTIPHILIN\t81\n+AG1\t6\n+AGA\t19\n+AGBL2\t1\n+AGBL3\t2\n+AGC1\t8\n+AGER\t4\n+AGGF1\t52\n+AGL\t71\n+AGMAT\t5\n+AGPAT1\t83\n+AGPAT2\t2\n+AGPAT3\t20\n+AGPAT4\t51\n+AGPAT5\t260\n+AGPAT6\t51\n+AGPAT7\t25\n+AGPS\t96\n+AGR2\t21\n+AGRN\t345\n+AGRP\t0\n+AGT\t948\n+AGTPBP1\t28\n+AGTR1\t0\n+AGTR2\t0\n+AGTRAP\t204\n+AGXT2L1\t0\n+AHCTF1\t69\n+AHCY\t594\n+AHCYL1\t709\n+AHDC1\t8\n+AHI1\t55\n+AHNAK\t0\n+AHR\t458\n+AHSA1\t136\n+AHSA2\t38\n+AHSG\t0\n+AICDA\t1\n+AIFL\t0\n+AIG1\t63\n+AIM1\t2\n+AIM1L\t0\n+AIP\t87\n+AIP1\t92\n+AIPL1\t8\n+AK1\t37\n+AK2\t156\n+AK3\t197\n+AK3L1\t14\n+AK5\t9\n+AK7\t1\n+AKAP1\t42\n+AKAP10\t86\n+AKAP11\t78\n+AKAP12\t72\n+AKAP13\t26\n+AKAP14\t9\n+AKAP3\t3\n+AKAP6\t29\n+AKAP7\t57\n+AKAP8\t51\n+AKAP8L\t155\n+AKAP9\t56\n+AKIP\t1\n+AKNA\t8\n+AKR1A1\t126\n+AKR1B1\t305\n+AKR1B10"..b'59\n+ZNF278\t80\n+ZNF28\t31\n+ZNF281\t139\n+ZNF282\t64\n+ZNF283\t18\n+ZNF284\t64\n+ZNF285\t9\n+ZNF286\t488\n+ZNF287\t48\n+ZNF289\t51\n+ZNF291\t49\n+ZNF292\t112\n+ZNF294\t45\n+ZNF295\t52\n+ZNF297\t45\n+ZNF297B\t84\n+ZNF3\t39\n+ZNF30\t97\n+ZNF300\t6\n+ZNF302\t170\n+ZNF304\t45\n+ZNF305\t18\n+ZNF306\t2\n+ZNF307\t24\n+ZNF31\t10\n+ZNF311\t15\n+ZNF312\t0\n+ZNF313\t199\n+ZNF317\t51\n+ZNF318\t50\n+ZNF319\t22\n+ZNF32\t66\n+ZNF322A\t6\n+ZNF323\t6\n+ZNF324\t105\n+ZNF326\t43\n+ZNF329\t32\n+ZNF330\t33\n+ZNF331\t28\n+ZNF333\t41\n+ZNF334\t11\n+ZNF335\t6\n+ZNF336\t9\n+ZNF337\t33\n+ZNF33A\t11\n+ZNF34\t13\n+ZNF341\t1\n+ZNF342\t0\n+ZNF343\t16\n+ZNF345\t9\n+ZNF346\t47\n+ZNF347\t35\n+ZNF35\t12\n+ZNF350\t14\n+ZNF354A\t62\n+ZNF354B\t22\n+ZNF354C\t1336\n+ZNF358\t70\n+ZNF364\t40\n+ZNF365\t7\n+ZNF366\t0\n+ZNF367\t66\n+ZNF37A\t74\n+ZNF37B\t102\n+ZNF38\t53\n+ZNF382\t6\n+ZNF383\t7\n+ZNF384\t90\n+ZNF385\t1\n+ZNF390\t5\n+ZNF394\t643\n+ZNF395\t80\n+ZNF396\t2\n+ZNF397\t43\n+ZNF398\t29\n+ZNF403\t106\n+ZNF404\t17\n+ZNF406\t1\n+ZNF407\t9\n+ZNF408\t18\n+ZNF41\t57\n+ZNF410\t66\n+ZNF414\t3\n+ZNF415\t132\n+ZNF416\t49\n+ZNF417\t0\n+ZNF418\t10\n+ZNF419\t30\n+ZNF42\t84\n+ZNF420\t1\n+ZNF423\t38\n+ZNF425\t9\n+ZNF426\t12\n+ZNF429\t42\n+ZNF43\t55\n+ZNF430\t59\n+ZNF431\t11\n+ZNF432\t26\n+ZNF433\t22\n+ZNF434\t48\n+ZNF435\t1\n+ZNF436\t412\n+ZNF438\t67\n+ZNF439\t35\n+ZNF44\t71\n+ZNF440\t23\n+ZNF440L\t7\n+ZNF441\t15\n+ZNF442\t3\n+ZNF443\t52\n+ZNF444\t299\n+ZNF445\t15\n+ZNF446\t34\n+ZNF447\t56\n+ZNF449\t24\n+ZNF45\t187\n+ZNF451\t43\n+ZNF452\t0\n+ZNF454\t39\n+ZNF46\t7\n+ZNF462\t70\n+ZNF467\t10\n+ZNF468\t198\n+ZNF469\t3\n+ZNF471\t41\n+ZNF473\t18\n+ZNF479\t12\n+ZNF480\t117\n+ZNF482\t37\n+ZNF483\t3\n+ZNF484\t12\n+ZNF485\t4\n+ZNF486\t630\n+ZNF488\t10\n+ZNF490\t9\n+ZNF491\t3\n+ZNF492\t0\n+ZNF493\t27\n+ZNF496\t91\n+ZNF497\t4\n+ZNF498\t38\n+ZNF499\t15\n+ZNF500\t7\n+ZNF501\t11\n+ZNF502\t11\n+ZNF503\t111\n+ZNF505\t3\n+ZNF506\t19\n+ZNF507\t101\n+ZNF509\t6\n+ZNF510\t63\n+ZNF511\t336\n+ZNF512\t67\n+ZNF513\t41\n+ZNF514\t9\n+ZNF516\t104\n+ZNF517\t14\n+ZNF518\t50\n+ZNF519\t27\n+ZNF521\t49\n+ZNF524\t79\n+ZNF525\t12\n+ZNF526\t39\n+ZNF527\t8\n+ZNF528\t51\n+ZNF529\t53\n+ZNF530\t14\n+ZNF532\t459\n+ZNF533\t0\n+ZNF536\t25\n+ZNF537\t299\n+ZNF539\t118\n+ZNF540\t13\n+ZNF542\t40\n+ZNF543\t16\n+ZNF544\t33\n+ZNF545\t0\n+ZNF546\t6\n+ZNF547\t138\n+ZNF548\t44\n+ZNF549\t29\n+ZNF550\t26\n+ZNF551\t65\n+ZNF552\t14\n+ZNF553\t89\n+ZNF554\t8\n+ZNF555\t27\n+ZNF557\t13\n+ZNF558\t60\n+ZNF559\t87\n+ZNF560\t0\n+ZNF561\t131\n+ZNF562\t10\n+ZNF563\t19\n+ZNF564\t68\n+ZNF565\t14\n+ZNF566\t14\n+ZNF567\t17\n+ZNF568\t27\n+ZNF569\t59\n+ZNF570\t6\n+ZNF571\t7\n+ZNF572\t0\n+ZNF573\t4\n+ZNF574\t32\n+ZNF575\t6\n+ZNF576\t46\n+ZNF577\t50\n+ZNF578\t8\n+ZNF579\t47\n+ZNF580\t270\n+ZNF581\t158\n+ZNF582\t7\n+ZNF583\t65\n+ZNF584\t20\n+ZNF585A\t133\n+ZNF585B\t99\n+ZNF586\t12\n+ZNF587\t70\n+ZNF588\t40\n+ZNF589\t24\n+ZNF592\t14\n+ZNF593\t21\n+ZNF594\t6\n+ZNF595\t12\n+ZNF596\t227\n+ZNF597\t0\n+ZNF598\t26\n+ZNF599\t30\n+ZNF6\t43\n+ZNF600\t17\n+ZNF605\t14\n+ZNF606\t37\n+ZNF607\t72\n+ZNF608\t84\n+ZNF609\t22\n+ZNF610\t5\n+ZNF611\t186\n+ZNF613\t17\n+ZNF614\t25\n+ZNF615\t52\n+ZNF616\t35\n+ZNF618\t1\n+ZNF619\t1\n+ZNF620\t19\n+ZNF621\t26\n+ZNF622\t36\n+ZNF623\t45\n+ZNF624\t20\n+ZNF625\t0\n+ZNF626\t37\n+ZNF627\t31\n+ZNF629\t72\n+ZNF630\t0\n+ZNF638\t261\n+ZNF639\t50\n+ZNF641\t14\n+ZNF642\t0\n+ZNF643\t0\n+ZNF644\t65\n+ZNF646\t19\n+ZNF649\t119\n+ZNF650\t33\n+ZNF651\t174\n+ZNF652\t27\n+ZNF653\t6\n+ZNF654\t20\n+ZNF655\t103\n+ZNF658\t20\n+ZNF659\t5\n+ZNF66\t0\n+ZNF660\t8\n+ZNF663\t0\n+ZNF664\t120\n+ZNF665\t15\n+ZNF667\t191\n+ZNF668\t9\n+ZNF669\t51\n+ZNF670\t3\n+ZNF671\t51\n+ZNF672\t70\n+ZNF673\t7\n+ZNF677\t0\n+ZNF678\t7\n+ZNF680\t13\n+ZNF681\t1\n+ZNF682\t11\n+ZNF684\t6\n+ZNF687\t32\n+ZNF688\t9\n+ZNF689\t55\n+ZNF69\t7\n+ZNF690\t11\n+ZNF691\t28\n+ZNF692\t12\n+ZNF694\t11\n+ZNF695\t0\n+ZNF697\t26\n+ZNF7\t49\n+ZNF70\t1\n+ZNF700\t53\n+ZNF701\t6\n+ZNF702\t0\n+ZNF703\t3\n+ZNF704\t0\n+ZNF706\t353\n+ZNF707\t13\n+ZNF708\t35\n+ZNF71\t33\n+ZNF710\t36\n+ZNF713\t2\n+ZNF714\t61\n+ZNF718\t0\n+ZNF720\t66\n+ZNF721\t15\n+ZNF722\t0\n+ZNF74\t41\n+ZNF740\t19\n+ZNF75\t36\n+ZNF75A\t86\n+ZNF76\t125\n+ZNF77\t3\n+ZNF79\t1\n+ZNF8\t1\n+ZNF80\t1\n+ZNF81\t3\n+ZNF83\t572\n+ZNF84\t23\n+ZNF85\t66\n+ZNF9\t112\n+ZNF91\t163\n+ZNF92\t68\n+ZNF93\t72\n+ZNF96\t1\n+ZNFN1A2\t0\n+ZNFN1A3\t0\n+ZNFN1A4\t21\n+ZNFN1A5\t59\n+ZNFX1\t15\n+ZNHIT1\t18\n+ZNHIT2\t9\n+ZNHIT3\t58\n+ZNHIT4\t14\n+ZNRD1\t42\n+ZNRF1\t112\n+ZNRF2\t15\n+ZNRF3\t54\n+ZP3\t21\n+ZPBP\t0\n+ZPLD1\t0\n+ZRANB1\t53\n+ZRANB3\t7\n+ZRF1\t134\n+ZSCAN1\t73\n+ZSCAN2\t8\n+ZSCAN5\t17\n+ZSWIM1\t37\n+ZSWIM3\t3\n+ZSWIM4\t28\n+ZSWIM5\t7\n+ZSWIM6\t381\n+ZW10\t19\n+ZWILCH\t4\n+ZWINT\t157\n+ZXDA\t0\n+ZXDB\t16\n+ZXDC\t42\n+ZYG11B\t1581\n+ZYG11BL\t28\n+ZYX\t1233\n+ZZANK1\t48\n+ZZEF1\t26\n+ZZZ3\t77\n'
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/DESeqTools/raw/f1cond2.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/DESeqTools/raw/f1cond2.tsv Tue Apr 30 14:33:21 2013 -0400
b
b"@@ -0,0 +1,18761 @@\n+GliNS1\tCB541\n+13CDNA73\t1\n+15E1.2\t458\n+182-FIP\t231\n+2'-PDE\t127\n+3'HEXO\t111\n+3.8-1\t0\n+384D8-2\t4\n+76P\t108\n+7h3\t0\n+8D6A\t0\n+A1BG\t0\n+A2BP1\t7\n+A2M\t49\n+A4GALT\t0\n+A4GNT\t0\n+AAA1\t0\n+AAAS\t49\n+AACS\t5365\n+AADACL1\t683\n+AADAT\t24\n+AAK1\t2\n+AAMP\t383\n+AANAT\t0\n+AARS\t183\n+AARSD1\t122\n+AARSL\t11\n+AASDH\t47\n+AASDHPPT\t543\n+AASS\t145\n+AATF\t36\n+AATK\t0\n+ABAT\t281\n+ABC1\t24\n+ABCA1\t27\n+ABCA10\t6\n+ABCA11\t73\n+ABCA12\t0\n+ABCA13\t30\n+ABCA2\t1\n+ABCA3\t166\n+ABCA4\t0\n+ABCA5\t51\n+ABCA6\t7\n+ABCA7\t6\n+ABCA8\t1\n+ABCA9\t317\n+ABCB1\t2\n+ABCB10\t169\n+ABCB11\t0\n+ABCB4\t0\n+ABCB5\t1\n+ABCB6\t69\n+ABCB7\t51\n+ABCB8\t28\n+ABCB9\t11\n+ABCC1\t127\n+ABCC10\t7\n+ABCC11\t27\n+ABCC12\t0\n+ABCC13\t3\n+ABCC2\t0\n+ABCC3\t301\n+ABCC4\t57\n+ABCC5\t38\n+ABCC6\t44\n+ABCC8\t0\n+ABCC9\t6\n+ABCD1\t13\n+ABCD2\t0\n+ABCD3\t86\n+ABCD4\t598\n+ABCE1\t790\n+ABCF1\t32\n+ABCF2\t36\n+ABCF3\t32\n+ABCG1\t0\n+ABCG2\t19\n+ABCG4\t0\n+ABHD1\t1\n+ABHD10\t16\n+ABHD11\t676\n+ABHD14A\t8\n+ABHD14B\t7\n+ABHD2\t35\n+ABHD3\t343\n+ABHD4\t210\n+ABHD5\t68\n+ABHD6\t394\n+ABHD7\t0\n+ABHD8\t0\n+ABI1\t257\n+ABI2\t247\n+ABI3\t0\n+ABI3BP\t145\n+ABL1\t94\n+ABL2\t45\n+ABLIM1\t13\n+ABLIM2\t8\n+ABLIM3\t15\n+ABO\t1\n+ABR\t1137\n+ABRA\t0\n+ABT1\t25\n+ABTB1\t10\n+ABTB2\t12\n+ACAA1\t104\n+ACAA2\t156\n+ACACA\t173\n+ACACB\t1\n+ACAD10\t1\n+ACAD11\t17\n+ACAD8\t56\n+ACAD9\t256\n+ACADL\t2\n+ACADM\t2\n+ACADS\t50\n+ACADSB\t82\n+ACADVL\t35\n+ACAS2\t44\n+ACAS2L\t8\n+ACAT1\t195\n+ACAT2\t25\n+ACATE2\t41\n+ACBD3\t692\n+ACBD4\t2\n+ACBD5\t5\n+ACBD6\t123\n+ACBD7\t9\n+ACCN2\t40\n+ACCN3\t28\n+ACCN4\t0\n+ACD\t117\n+ACDC\t17\n+ACE\t1\n+ACF\t45\n+ACHE\t37\n+ACIN1\t0\n+ACLY\t234\n+ACMSD\t0\n+ACN9\t399\n+ACO1\t124\n+ACO2\t1552\n+ACOT2\t28\n+ACOT4\t0\n+ACOT7\t208\n+ACOT8\t0\n+ACOT9\t16\n+ACOX1\t123\n+ACOX2\t66\n+ACOX3\t5\n+ACOXL\t1\n+ACP1\t942\n+ACP2\t25\n+ACP5\t0\n+ACP6\t361\n+ACPL2\t136\n+ACPP\t6\n+ACR\t0\n+ACRBP\t2\n+ACRC\t13\n+ACRV1\t0\n+ACSBG1\t2\n+ACSL1\t77\n+ACSL3\t1546\n+ACSL4\t126\n+ACSL5\t52\n+ACSL6\t1\n+ACSM2\t0\n+ACSM3\t0\n+ACSS1\t48\n+ACSS2\t18\n+ACTA1\t10\n+ACTA2\t182\n+ACTB\t11099\n+ACTC\t0\n+ACTG1\t1712\n+ACTG2\t29\n+ACTL6A\t78\n+ACTL6B\t0\n+ACTL8\t1\n+ACTN1\t7604\n+ACTN2\t0\n+ACTN4\t8247\n+ACTR10\t30\n+ACTR1A\t18\n+ACTR1B\t1\n+ACTR2\t3964\n+ACTR3\t830\n+ACTR3B\t1\n+ACTR5\t20\n+ACTR6\t21\n+ACTR8\t289\n+ACTRT1\t1\n+ACVR1\t31\n+ACVR1B\t6\n+ACVR1C\t0\n+ACVR2\t41\n+ACVR2A\t21\n+ACVR2B\t3\n+ACVRL1\t0\n+ACY1\t3\n+ACY1L2\t253\n+ACY3\t3\n+ACYP1\t155\n+ACYP2\t240\n+AD-003\t0\n+AD-020\t24\n+AD023\t30\n+AD031\t48\n+AD7C-NTP\t3\n+ADA\t5311\n+ADAL\t0\n+ADAM10\t403\n+ADAM11\t1\n+ADAM12\t144\n+ADAM15\t76\n+ADAM17\t560\n+ADAM18\t0\n+ADAM19\t142\n+ADAM20\t5\n+ADAM21\t0\n+ADAM22\t116\n+ADAM23\t61\n+ADAM28\t0\n+ADAM32\t0\n+ADAM33\t12\n+ADAM8\t7\n+ADAM9\t2589\n+ADAMDEC1\t0\n+ADAMTS1\t94\n+ADAMTS10\t2\n+ADAMTS12\t4\n+ADAMTS13\t32\n+ADAMTS15\t44\n+ADAMTS16\t10\n+ADAMTS17\t1\n+ADAMTS18\t3\n+ADAMTS19\t11\n+ADAMTS2\t0\n+ADAMTS20\t0\n+ADAMTS3\t0\n+ADAMTS4\t78\n+ADAMTS5\t9\n+ADAMTS6\t86\n+ADAMTS7\t0\n+ADAMTS8\t0\n+ADAMTS9\t223\n+ADAMTSL1\t37\n+ADAMTSL2\t0\n+ADAMTSL3\t0\n+ADAMTSL4\t19\n+ADAR\t96\n+ADARB1\t28\n+ADARB2\t1\n+ADAT1\t6\n+ADC\t12\n+ADCK1\t5\n+ADCK2\t23\n+ADCK4\t21\n+ADCK5\t2\n+ADCY1\t59\n+ADCY2\t0\n+ADCY3\t166\n+ADCY5\t0\n+ADCY6\t519\n+ADCY7\t98\n+ADCY8\t7\n+ADCY9\t43\n+ADCYAP1\t0\n+ADCYAP1R1\t1\n+ADD1\t808\n+ADD2\t339\n+ADD3\t400\n+ADFP\t77\n+ADH1B\t0\n+ADH1C\t0\n+ADH4\t0\n+ADH5\t612\n+ADHFE1\t26\n+ADI1\t204\n+ADIPOR1\t123\n+ADIPOR2\t40\n+ADK\t287\n+ADM\t215\n+ADM2\t0\n+ADMP\t10\n+ADMR\t8582\n+ADNP\t615\n+ADORA1\t132\n+ADORA2A\t30\n+ADORA2B\t42\n+ADPGK\t4998\n+ADPN\t4\n+ADPRH\t0\n+ADPRHL1\t0\n+ADPRHL2\t77\n+ADRA1A\t0\n+ADRA1B\t1\n+ADRA1D\t2\n+ADRA2A\t0\n+ADRA2B\t0\n+ADRB1\t12\n+ADRB2\t4\n+ADRB3\t10\n+ADRBK1\t11\n+ADRBK2\t18\n+ADRM1\t204\n+ADSL\t112\n+ADSS\t386\n+ADSSL1\t9\n+AE2\t30\n+AEBP1\t4799\n+AEBP2\t320\n+AEGP\t9\n+AER61\t11\n+AES\t292\n+AF15Q14\t0\n+AF1Q\t45\n+AF5Q31\t395\n+AFAP\t480\n+AFAR3\t11\n+AFF1\t132\n+AFF2\t0\n+AFF3\t70\n+AFF4\t6\n+AFG3L1\t19\n+AFG3L2\t88\n+AFMID\t232\n+AFP\t4\n+AFTIPHILIN\t309\n+AG1\t1\n+AGA\t159\n+AGBL2\t6\n+AGBL3\t0\n+AGC1\t0\n+AGER\t0\n+AGGF1\t130\n+AGL\t209\n+AGMAT\t1\n+AGPAT1\t12\n+AGPAT2\t0\n+AGPAT3\t54\n+AGPAT4\t45\n+AGPAT5\t1757\n+AGPAT6\t33\n+AGPAT7\t7\n+AGPS\t350\n+AGR2\t12\n+AGRN\t98\n+AGRP\t0\n+AGT\t79\n+AGTPBP1\t9\n+AGTR1\t0\n+AGTR2\t0\n+AGTRAP\t286\n+AGXT2L1\t0\n+AHCTF1\t33\n+AHCY\t463\n+AHCYL1\t745\n+AHDC1\t5\n+AHI1\t40\n+AHNAK\t7\n+AHR\t1326\n+AHSA1\t159\n+AHSA2\t185\n+AHSG\t2\n+AICDA\t0\n+AIFL\t0\n+AIG1\t289\n+AIM1\t58\n+AIM1L\t0\n+AIP\t453\n+AIP1\t142\n+AIPL1\t85\n+AK1\t138\n+AK2\t415\n+AK3\t106\n+AK3L1\t21\n+AK5\t36\n+AK7\t13\n+AKAP1\t18\n+AKAP10\t557\n+AKAP11\t3\n+AKAP12\t196\n+AKAP13\t40\n+AKAP14\t0\n+AKAP3\t9\n+AKAP6\t206\n+AKAP7\t225\n+AKAP8\t80\n+AKAP8L\t19\n+AKAP9\t36"..b'F281\t151\n+ZNF282\t100\n+ZNF283\t19\n+ZNF284\t62\n+ZNF285\t0\n+ZNF286\t562\n+ZNF287\t64\n+ZNF289\t16\n+ZNF291\t57\n+ZNF292\t245\n+ZNF294\t69\n+ZNF295\t105\n+ZNF297\t116\n+ZNF297B\t337\n+ZNF3\t27\n+ZNF30\t29\n+ZNF300\t0\n+ZNF302\t262\n+ZNF304\t29\n+ZNF305\t60\n+ZNF306\t0\n+ZNF307\t20\n+ZNF31\t13\n+ZNF311\t0\n+ZNF312\t0\n+ZNF313\t462\n+ZNF317\t176\n+ZNF318\t45\n+ZNF319\t95\n+ZNF32\t53\n+ZNF322A\t4\n+ZNF323\t20\n+ZNF324\t162\n+ZNF326\t143\n+ZNF329\t39\n+ZNF330\t105\n+ZNF331\t72\n+ZNF333\t49\n+ZNF334\t121\n+ZNF335\t9\n+ZNF336\t17\n+ZNF337\t63\n+ZNF33A\t1\n+ZNF34\t0\n+ZNF341\t0\n+ZNF342\t0\n+ZNF343\t44\n+ZNF345\t0\n+ZNF346\t39\n+ZNF347\t49\n+ZNF35\t8\n+ZNF350\t12\n+ZNF354A\t165\n+ZNF354B\t43\n+ZNF354C\t1139\n+ZNF358\t10\n+ZNF364\t45\n+ZNF365\t47\n+ZNF366\t0\n+ZNF367\t441\n+ZNF37A\t79\n+ZNF37B\t57\n+ZNF38\t78\n+ZNF382\t11\n+ZNF383\t0\n+ZNF384\t43\n+ZNF385\t1\n+ZNF390\t4\n+ZNF394\t598\n+ZNF395\t56\n+ZNF396\t11\n+ZNF397\t32\n+ZNF398\t19\n+ZNF403\t89\n+ZNF404\t0\n+ZNF406\t0\n+ZNF407\t10\n+ZNF408\t8\n+ZNF41\t192\n+ZNF410\t117\n+ZNF414\t4\n+ZNF415\t35\n+ZNF416\t2\n+ZNF417\t2\n+ZNF418\t20\n+ZNF419\t7\n+ZNF42\t27\n+ZNF420\t0\n+ZNF423\t82\n+ZNF425\t23\n+ZNF426\t27\n+ZNF429\t13\n+ZNF43\t59\n+ZNF430\t66\n+ZNF431\t4\n+ZNF432\t15\n+ZNF433\t19\n+ZNF434\t34\n+ZNF435\t0\n+ZNF436\t193\n+ZNF438\t95\n+ZNF439\t15\n+ZNF44\t96\n+ZNF440\t21\n+ZNF440L\t0\n+ZNF441\t45\n+ZNF442\t0\n+ZNF443\t63\n+ZNF444\t230\n+ZNF445\t9\n+ZNF446\t25\n+ZNF447\t775\n+ZNF449\t18\n+ZNF45\t99\n+ZNF451\t197\n+ZNF452\t0\n+ZNF454\t97\n+ZNF46\t24\n+ZNF462\t61\n+ZNF467\t0\n+ZNF468\t513\n+ZNF469\t0\n+ZNF471\t40\n+ZNF473\t8\n+ZNF479\t9\n+ZNF480\t108\n+ZNF482\t157\n+ZNF483\t0\n+ZNF484\t11\n+ZNF485\t13\n+ZNF486\t338\n+ZNF488\t0\n+ZNF490\t0\n+ZNF491\t0\n+ZNF492\t1\n+ZNF493\t21\n+ZNF496\t132\n+ZNF497\t0\n+ZNF498\t119\n+ZNF499\t2\n+ZNF500\t2\n+ZNF501\t21\n+ZNF502\t22\n+ZNF503\t0\n+ZNF505\t0\n+ZNF506\t23\n+ZNF507\t94\n+ZNF509\t76\n+ZNF510\t223\n+ZNF511\t275\n+ZNF512\t18\n+ZNF513\t110\n+ZNF514\t11\n+ZNF516\t38\n+ZNF517\t57\n+ZNF518\t98\n+ZNF519\t27\n+ZNF521\t8\n+ZNF524\t8\n+ZNF525\t37\n+ZNF526\t33\n+ZNF527\t0\n+ZNF528\t45\n+ZNF529\t4\n+ZNF530\t5\n+ZNF532\t1033\n+ZNF533\t2\n+ZNF536\t37\n+ZNF537\t238\n+ZNF539\t30\n+ZNF540\t15\n+ZNF542\t45\n+ZNF543\t5\n+ZNF544\t50\n+ZNF545\t148\n+ZNF546\t4\n+ZNF547\t225\n+ZNF548\t23\n+ZNF549\t4\n+ZNF550\t0\n+ZNF551\t50\n+ZNF552\t41\n+ZNF553\t186\n+ZNF554\t7\n+ZNF555\t49\n+ZNF557\t15\n+ZNF558\t5\n+ZNF559\t116\n+ZNF560\t13\n+ZNF561\t135\n+ZNF562\t0\n+ZNF563\t12\n+ZNF564\t79\n+ZNF565\t8\n+ZNF566\t0\n+ZNF567\t19\n+ZNF568\t39\n+ZNF569\t55\n+ZNF570\t6\n+ZNF571\t36\n+ZNF572\t1\n+ZNF573\t0\n+ZNF574\t2\n+ZNF575\t14\n+ZNF576\t36\n+ZNF577\t20\n+ZNF578\t18\n+ZNF579\t1\n+ZNF580\t131\n+ZNF581\t13\n+ZNF582\t0\n+ZNF583\t43\n+ZNF584\t42\n+ZNF585A\t147\n+ZNF585B\t23\n+ZNF586\t13\n+ZNF587\t15\n+ZNF588\t92\n+ZNF589\t9\n+ZNF592\t88\n+ZNF593\t165\n+ZNF594\t17\n+ZNF595\t9\n+ZNF596\t423\n+ZNF597\t4\n+ZNF598\t12\n+ZNF599\t17\n+ZNF6\t44\n+ZNF600\t14\n+ZNF605\t41\n+ZNF606\t26\n+ZNF607\t23\n+ZNF608\t130\n+ZNF609\t13\n+ZNF610\t16\n+ZNF611\t84\n+ZNF613\t13\n+ZNF614\t31\n+ZNF615\t20\n+ZNF616\t12\n+ZNF618\t0\n+ZNF619\t0\n+ZNF620\t33\n+ZNF621\t55\n+ZNF622\t100\n+ZNF623\t245\n+ZNF624\t19\n+ZNF625\t9\n+ZNF626\t66\n+ZNF627\t35\n+ZNF629\t117\n+ZNF630\t8\n+ZNF638\t1139\n+ZNF639\t454\n+ZNF641\t18\n+ZNF642\t41\n+ZNF643\t0\n+ZNF644\t210\n+ZNF646\t4\n+ZNF649\t60\n+ZNF650\t131\n+ZNF651\t145\n+ZNF652\t104\n+ZNF653\t10\n+ZNF654\t10\n+ZNF655\t483\n+ZNF658\t52\n+ZNF659\t11\n+ZNF66\t0\n+ZNF660\t51\n+ZNF663\t0\n+ZNF664\t352\n+ZNF665\t7\n+ZNF667\t37\n+ZNF668\t3\n+ZNF669\t12\n+ZNF670\t46\n+ZNF671\t97\n+ZNF672\t135\n+ZNF673\t50\n+ZNF677\t0\n+ZNF678\t19\n+ZNF680\t18\n+ZNF681\t0\n+ZNF682\t8\n+ZNF684\t52\n+ZNF687\t28\n+ZNF688\t36\n+ZNF689\t6\n+ZNF69\t6\n+ZNF690\t9\n+ZNF691\t54\n+ZNF692\t0\n+ZNF694\t10\n+ZNF695\t39\n+ZNF697\t11\n+ZNF7\t163\n+ZNF70\t0\n+ZNF700\t126\n+ZNF701\t7\n+ZNF702\t14\n+ZNF703\t0\n+ZNF704\t0\n+ZNF706\t1130\n+ZNF707\t2\n+ZNF708\t70\n+ZNF71\t1\n+ZNF710\t20\n+ZNF713\t0\n+ZNF714\t0\n+ZNF718\t24\n+ZNF720\t92\n+ZNF721\t88\n+ZNF722\t5\n+ZNF74\t23\n+ZNF740\t28\n+ZNF75\t191\n+ZNF75A\t381\n+ZNF76\t661\n+ZNF77\t14\n+ZNF79\t0\n+ZNF8\t0\n+ZNF80\t0\n+ZNF81\t16\n+ZNF83\t553\n+ZNF84\t72\n+ZNF85\t147\n+ZNF9\t326\n+ZNF91\t79\n+ZNF92\t618\n+ZNF93\t90\n+ZNF96\t0\n+ZNFN1A2\t0\n+ZNFN1A3\t0\n+ZNFN1A4\t32\n+ZNFN1A5\t91\n+ZNFX1\t64\n+ZNHIT1\t0\n+ZNHIT2\t18\n+ZNHIT3\t276\n+ZNHIT4\t31\n+ZNRD1\t58\n+ZNRF1\t278\n+ZNRF2\t121\n+ZNRF3\t117\n+ZP3\t144\n+ZPBP\t0\n+ZPLD1\t0\n+ZRANB1\t31\n+ZRANB3\t34\n+ZRF1\t313\n+ZSCAN1\t118\n+ZSCAN2\t5\n+ZSCAN5\t0\n+ZSWIM1\t62\n+ZSWIM3\t0\n+ZSWIM4\t26\n+ZSWIM5\t9\n+ZSWIM6\t752\n+ZW10\t14\n+ZWILCH\t22\n+ZWINT\t222\n+ZXDA\t0\n+ZXDB\t20\n+ZXDC\t44\n+ZYG11B\t4403\n+ZYG11BL\t21\n+ZYX\t1378\n+ZZANK1\t42\n+ZZEF1\t25\n+ZZZ3\t430\n'
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/DESeqTools/raw/f2cond1.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/DESeqTools/raw/f2cond1.tsv Tue Apr 30 14:33:21 2013 -0400
b
b"@@ -0,0 +1,18761 @@\n+GliNS1\tG166\n+13CDNA73\t0\n+15E1.2\t74\n+182-FIP\t127\n+2'-PDE\t38\n+3'HEXO\t20\n+3.8-1\t0\n+384D8-2\t3\n+76P\t51\n+7h3\t0\n+8D6A\t1\n+A1BG\t0\n+A2BP1\t18\n+A2M\t2209\n+A4GALT\t0\n+A4GNT\t0\n+AAA1\t0\n+AAAS\t29\n+AACS\t1294\n+AADACL1\t13\n+AADAT\t5\n+AAK1\t0\n+AAMP\t170\n+AANAT\t0\n+AARS\t105\n+AARSD1\t48\n+AARSL\t10\n+AASDH\t5\n+AASDHPPT\t128\n+AASS\t101\n+AATF\t40\n+AATK\t0\n+ABAT\t838\n+ABC1\t13\n+ABCA1\t13\n+ABCA10\t0\n+ABCA11\t1\n+ABCA12\t0\n+ABCA13\t0\n+ABCA2\t5\n+ABCA3\t91\n+ABCA4\t0\n+ABCA5\t2\n+ABCA6\t1\n+ABCA7\t7\n+ABCA8\t76\n+ABCA9\t133\n+ABCB1\t0\n+ABCB10\t41\n+ABCB11\t0\n+ABCB4\t28\n+ABCB5\t0\n+ABCB6\t17\n+ABCB7\t47\n+ABCB8\t53\n+ABCB9\t6\n+ABCC1\t31\n+ABCC10\t16\n+ABCC11\t0\n+ABCC12\t0\n+ABCC13\t5\n+ABCC2\t0\n+ABCC3\t3\n+ABCC4\t24\n+ABCC5\t15\n+ABCC6\t8\n+ABCC8\t13\n+ABCC9\t2\n+ABCD1\t19\n+ABCD2\t0\n+ABCD3\t147\n+ABCD4\t71\n+ABCE1\t378\n+ABCF1\t39\n+ABCF2\t42\n+ABCF3\t29\n+ABCG1\t5\n+ABCG2\t29\n+ABCG4\t0\n+ABHD1\t1\n+ABHD10\t14\n+ABHD11\t1182\n+ABHD14A\t37\n+ABHD14B\t10\n+ABHD2\t79\n+ABHD3\t95\n+ABHD4\t82\n+ABHD5\t31\n+ABHD6\t204\n+ABHD7\t0\n+ABHD8\t6\n+ABI1\t199\n+ABI2\t200\n+ABI3\t0\n+ABI3BP\t4\n+ABL1\t67\n+ABL2\t14\n+ABLIM1\t50\n+ABLIM2\t1\n+ABLIM3\t0\n+ABO\t1\n+ABR\t158\n+ABRA\t0\n+ABT1\t31\n+ABTB1\t12\n+ABTB2\t9\n+ACAA1\t52\n+ACAA2\t109\n+ACACA\t67\n+ACACB\t2\n+ACAD10\t19\n+ACAD11\t70\n+ACAD8\t43\n+ACAD9\t53\n+ACADL\t0\n+ACADM\t67\n+ACADS\t21\n+ACADSB\t51\n+ACADVL\t86\n+ACAS2\t12\n+ACAS2L\t2\n+ACAT1\t141\n+ACAT2\t153\n+ACATE2\t19\n+ACBD3\t169\n+ACBD4\t0\n+ACBD5\t21\n+ACBD6\t167\n+ACBD7\t1\n+ACCN2\t14\n+ACCN3\t6\n+ACCN4\t0\n+ACD\t3\n+ACDC\t0\n+ACE\t0\n+ACF\t12\n+ACHE\t75\n+ACIN1\t0\n+ACLY\t431\n+ACMSD\t9\n+ACN9\t128\n+ACO1\t42\n+ACO2\t309\n+ACOT2\t9\n+ACOT4\t0\n+ACOT7\t128\n+ACOT8\t0\n+ACOT9\t11\n+ACOX1\t71\n+ACOX2\t4\n+ACOX3\t4\n+ACOXL\t0\n+ACP1\t303\n+ACP2\t26\n+ACP5\t1\n+ACP6\t125\n+ACPL2\t71\n+ACPP\t5\n+ACR\t0\n+ACRBP\t0\n+ACRC\t10\n+ACRV1\t2\n+ACSBG1\t4\n+ACSL1\t3\n+ACSL3\t521\n+ACSL4\t68\n+ACSL5\t2\n+ACSL6\t46\n+ACSM2\t4\n+ACSM3\t0\n+ACSS1\t26\n+ACSS2\t30\n+ACTA1\t28\n+ACTA2\t0\n+ACTB\t16535\n+ACTC\t0\n+ACTG1\t1349\n+ACTG2\t23\n+ACTL6A\t38\n+ACTL6B\t2\n+ACTL8\t0\n+ACTN1\t669\n+ACTN2\t30\n+ACTN4\t4178\n+ACTR10\t61\n+ACTR1A\t55\n+ACTR1B\t3\n+ACTR2\t4056\n+ACTR3\t264\n+ACTR3B\t1\n+ACTR5\t16\n+ACTR6\t218\n+ACTR8\t78\n+ACTRT1\t0\n+ACVR1\t3\n+ACVR1B\t11\n+ACVR1C\t0\n+ACVR2\t21\n+ACVR2A\t4\n+ACVR2B\t0\n+ACVRL1\t2\n+ACY1\t21\n+ACY1L2\t58\n+ACY3\t0\n+ACYP1\t61\n+ACYP2\t81\n+AD-003\t2\n+AD-020\t4\n+AD023\t0\n+AD031\t36\n+AD7C-NTP\t0\n+ADA\t1274\n+ADAL\t1\n+ADAM10\t188\n+ADAM11\t7\n+ADAM12\t333\n+ADAM15\t40\n+ADAM17\t69\n+ADAM18\t0\n+ADAM19\t100\n+ADAM20\t0\n+ADAM21\t4\n+ADAM22\t238\n+ADAM23\t48\n+ADAM28\t0\n+ADAM32\t0\n+ADAM33\t11\n+ADAM8\t1\n+ADAM9\t411\n+ADAMDEC1\t0\n+ADAMTS1\t192\n+ADAMTS10\t28\n+ADAMTS12\t9\n+ADAMTS13\t2\n+ADAMTS15\t4\n+ADAMTS16\t10\n+ADAMTS17\t0\n+ADAMTS18\t0\n+ADAMTS19\t2\n+ADAMTS2\t10\n+ADAMTS20\t0\n+ADAMTS3\t122\n+ADAMTS4\t21\n+ADAMTS5\t25\n+ADAMTS6\t36\n+ADAMTS7\t0\n+ADAMTS8\t0\n+ADAMTS9\t206\n+ADAMTSL1\t2\n+ADAMTSL2\t0\n+ADAMTSL3\t0\n+ADAMTSL4\t2\n+ADAR\t42\n+ADARB1\t5\n+ADARB2\t0\n+ADAT1\t15\n+ADC\t0\n+ADCK1\t10\n+ADCK2\t2\n+ADCK4\t87\n+ADCK5\t5\n+ADCY1\t158\n+ADCY2\t0\n+ADCY3\t15\n+ADCY5\t7\n+ADCY6\t78\n+ADCY7\t9\n+ADCY8\t0\n+ADCY9\t11\n+ADCYAP1\t0\n+ADCYAP1R1\t4\n+ADD1\t196\n+ADD2\t52\n+ADD3\t581\n+ADFP\t24\n+ADH1B\t0\n+ADH1C\t0\n+ADH4\t0\n+ADH5\t389\n+ADHFE1\t5\n+ADI1\t170\n+ADIPOR1\t71\n+ADIPOR2\t12\n+ADK\t153\n+ADM\t40\n+ADM2\t0\n+ADMP\t0\n+ADMR\t2037\n+ADNP\t246\n+ADORA1\t11\n+ADORA2A\t0\n+ADORA2B\t1\n+ADPGK\t1928\n+ADPN\t2\n+ADPRH\t3\n+ADPRHL1\t4\n+ADPRHL2\t16\n+ADRA1A\t0\n+ADRA1B\t0\n+ADRA1D\t0\n+ADRA2A\t66\n+ADRA2B\t0\n+ADRB1\t6\n+ADRB2\t2\n+ADRB3\t17\n+ADRBK1\t9\n+ADRBK2\t5\n+ADRM1\t150\n+ADSL\t99\n+ADSS\t166\n+ADSSL1\t2\n+AE2\t15\n+AEBP1\t1063\n+AEBP2\t109\n+AEGP\t0\n+AER61\t14\n+AES\t864\n+AF15Q14\t0\n+AF1Q\t26\n+AF5Q31\t106\n+AFAP\t104\n+AFAR3\t6\n+AFF1\t15\n+AFF2\t1\n+AFF3\t5\n+AFF4\t1\n+AFG3L1\t7\n+AFG3L2\t74\n+AFMID\t112\n+AFP\t0\n+AFTIPHILIN\t66\n+AG1\t2\n+AGA\t17\n+AGBL2\t0\n+AGBL3\t0\n+AGC1\t2\n+AGER\t3\n+AGGF1\t35\n+AGL\t13\n+AGMAT\t5\n+AGPAT1\t31\n+AGPAT2\t1\n+AGPAT3\t14\n+AGPAT4\t41\n+AGPAT5\t280\n+AGPAT6\t24\n+AGPAT7\t11\n+AGPS\t55\n+AGR2\t7\n+AGRN\t298\n+AGRP\t0\n+AGT\t860\n+AGTPBP1\t29\n+AGTR1\t0\n+AGTR2\t0\n+AGTRAP\t152\n+AGXT2L1\t0\n+AHCTF1\t53\n+AHCY\t395\n+AHCYL1\t653\n+AHDC1\t2\n+AHI1\t69\n+AHNAK\t0\n+AHR\t252\n+AHSA1\t107\n+AHSA2\t33\n+AHSG\t0\n+AICDA\t0\n+AIFL\t0\n+AIG1\t65\n+AIM1\t0\n+AIM1L\t0\n+AIP\t115\n+AIP1\t74\n+AIPL1\t15\n+AK1\t45\n+AK2\t110\n+AK3\t101\n+AK3L1\t22\n+AK5\t4\n+AK7\t1\n+AKAP1\t39\n+AKAP10\t81\n+AKAP11\t90\n+AKAP12\t103\n+AKAP13\t45\n+AKAP14\t1\n+AKAP3\t4\n+AKAP6\t34\n+AKAP7\t59\n+AKAP8\t54\n+AKAP8L\t20\n+AKAP9\t39\n+AKIP\t0\n+AKNA\t2\n+AKR1A1\t183\n+AKR1B1\t370\n+AKR1B10\t0\n+AKR1C1\t1\n+AKR1C"..b'NF274\t20\n+ZNF275\t30\n+ZNF276\t16\n+ZNF277\t442\n+ZNF278\t43\n+ZNF28\t26\n+ZNF281\t94\n+ZNF282\t51\n+ZNF283\t23\n+ZNF284\t103\n+ZNF285\t14\n+ZNF286\t306\n+ZNF287\t35\n+ZNF289\t21\n+ZNF291\t22\n+ZNF292\t84\n+ZNF294\t37\n+ZNF295\t76\n+ZNF297\t38\n+ZNF297B\t90\n+ZNF3\t21\n+ZNF30\t128\n+ZNF300\t7\n+ZNF302\t194\n+ZNF304\t33\n+ZNF305\t27\n+ZNF306\t1\n+ZNF307\t4\n+ZNF31\t7\n+ZNF311\t24\n+ZNF312\t0\n+ZNF313\t142\n+ZNF317\t47\n+ZNF318\t59\n+ZNF319\t29\n+ZNF32\t41\n+ZNF322A\t0\n+ZNF323\t1\n+ZNF324\t112\n+ZNF326\t59\n+ZNF329\t17\n+ZNF330\t41\n+ZNF331\t27\n+ZNF333\t32\n+ZNF334\t10\n+ZNF335\t4\n+ZNF336\t3\n+ZNF337\t27\n+ZNF33A\t6\n+ZNF34\t0\n+ZNF341\t0\n+ZNF342\t1\n+ZNF343\t17\n+ZNF345\t10\n+ZNF346\t34\n+ZNF347\t14\n+ZNF35\t4\n+ZNF350\t39\n+ZNF354A\t31\n+ZNF354B\t13\n+ZNF354C\t964\n+ZNF358\t15\n+ZNF364\t29\n+ZNF365\t5\n+ZNF366\t0\n+ZNF367\t66\n+ZNF37A\t59\n+ZNF37B\t52\n+ZNF38\t37\n+ZNF382\t10\n+ZNF383\t8\n+ZNF384\t66\n+ZNF385\t2\n+ZNF390\t2\n+ZNF394\t349\n+ZNF395\t24\n+ZNF396\t0\n+ZNF397\t36\n+ZNF398\t26\n+ZNF403\t128\n+ZNF404\t5\n+ZNF406\t3\n+ZNF407\t12\n+ZNF408\t9\n+ZNF41\t72\n+ZNF410\t54\n+ZNF414\t0\n+ZNF415\t111\n+ZNF416\t37\n+ZNF417\t1\n+ZNF418\t10\n+ZNF419\t29\n+ZNF42\t73\n+ZNF420\t4\n+ZNF423\t16\n+ZNF425\t4\n+ZNF426\t17\n+ZNF429\t30\n+ZNF43\t66\n+ZNF430\t86\n+ZNF431\t1\n+ZNF432\t37\n+ZNF433\t19\n+ZNF434\t43\n+ZNF435\t2\n+ZNF436\t279\n+ZNF438\t102\n+ZNF439\t10\n+ZNF44\t103\n+ZNF440\t16\n+ZNF440L\t6\n+ZNF441\t3\n+ZNF442\t2\n+ZNF443\t50\n+ZNF444\t392\n+ZNF445\t11\n+ZNF446\t5\n+ZNF447\t52\n+ZNF449\t36\n+ZNF45\t171\n+ZNF451\t53\n+ZNF452\t0\n+ZNF454\t53\n+ZNF46\t3\n+ZNF462\t114\n+ZNF467\t6\n+ZNF468\t171\n+ZNF469\t0\n+ZNF471\t32\n+ZNF473\t22\n+ZNF479\t8\n+ZNF480\t121\n+ZNF482\t27\n+ZNF483\t2\n+ZNF484\t7\n+ZNF485\t3\n+ZNF486\t410\n+ZNF488\t5\n+ZNF490\t2\n+ZNF491\t0\n+ZNF492\t2\n+ZNF493\t29\n+ZNF496\t51\n+ZNF497\t0\n+ZNF498\t35\n+ZNF499\t9\n+ZNF500\t3\n+ZNF501\t7\n+ZNF502\t3\n+ZNF503\t32\n+ZNF505\t7\n+ZNF506\t21\n+ZNF507\t70\n+ZNF509\t5\n+ZNF510\t54\n+ZNF511\t403\n+ZNF512\t58\n+ZNF513\t77\n+ZNF514\t7\n+ZNF516\t76\n+ZNF517\t21\n+ZNF518\t72\n+ZNF519\t17\n+ZNF521\t69\n+ZNF524\t8\n+ZNF525\t9\n+ZNF526\t14\n+ZNF527\t3\n+ZNF528\t28\n+ZNF529\t51\n+ZNF530\t7\n+ZNF532\t340\n+ZNF533\t1\n+ZNF536\t48\n+ZNF537\t179\n+ZNF539\t80\n+ZNF540\t2\n+ZNF542\t31\n+ZNF543\t19\n+ZNF544\t10\n+ZNF545\t0\n+ZNF546\t6\n+ZNF547\t212\n+ZNF548\t19\n+ZNF549\t11\n+ZNF550\t20\n+ZNF551\t18\n+ZNF552\t16\n+ZNF553\t77\n+ZNF554\t11\n+ZNF555\t23\n+ZNF557\t1\n+ZNF558\t25\n+ZNF559\t59\n+ZNF560\t0\n+ZNF561\t102\n+ZNF562\t11\n+ZNF563\t23\n+ZNF564\t76\n+ZNF565\t2\n+ZNF566\t10\n+ZNF567\t7\n+ZNF568\t14\n+ZNF569\t61\n+ZNF570\t2\n+ZNF571\t7\n+ZNF572\t0\n+ZNF573\t7\n+ZNF574\t25\n+ZNF575\t1\n+ZNF576\t41\n+ZNF577\t36\n+ZNF578\t9\n+ZNF579\t36\n+ZNF580\t343\n+ZNF581\t76\n+ZNF582\t6\n+ZNF583\t41\n+ZNF584\t22\n+ZNF585A\t93\n+ZNF585B\t64\n+ZNF586\t12\n+ZNF587\t26\n+ZNF588\t26\n+ZNF589\t8\n+ZNF592\t19\n+ZNF593\t33\n+ZNF594\t3\n+ZNF595\t7\n+ZNF596\t329\n+ZNF597\t0\n+ZNF598\t43\n+ZNF599\t8\n+ZNF6\t40\n+ZNF600\t15\n+ZNF605\t12\n+ZNF606\t63\n+ZNF607\t83\n+ZNF608\t59\n+ZNF609\t12\n+ZNF610\t8\n+ZNF611\t122\n+ZNF613\t25\n+ZNF614\t20\n+ZNF615\t51\n+ZNF616\t23\n+ZNF618\t3\n+ZNF619\t0\n+ZNF620\t12\n+ZNF621\t11\n+ZNF622\t24\n+ZNF623\t43\n+ZNF624\t34\n+ZNF625\t0\n+ZNF626\t35\n+ZNF627\t29\n+ZNF629\t65\n+ZNF630\t0\n+ZNF638\t382\n+ZNF639\t74\n+ZNF641\t5\n+ZNF642\t2\n+ZNF643\t0\n+ZNF644\t44\n+ZNF646\t1\n+ZNF649\t67\n+ZNF650\t38\n+ZNF651\t115\n+ZNF652\t17\n+ZNF653\t18\n+ZNF654\t10\n+ZNF655\t99\n+ZNF658\t10\n+ZNF659\t5\n+ZNF66\t0\n+ZNF660\t12\n+ZNF663\t2\n+ZNF664\t82\n+ZNF665\t4\n+ZNF667\t231\n+ZNF668\t1\n+ZNF669\t22\n+ZNF670\t2\n+ZNF671\t57\n+ZNF672\t62\n+ZNF673\t1\n+ZNF677\t2\n+ZNF678\t7\n+ZNF680\t8\n+ZNF681\t0\n+ZNF682\t5\n+ZNF684\t12\n+ZNF687\t10\n+ZNF688\t2\n+ZNF689\t53\n+ZNF69\t6\n+ZNF690\t11\n+ZNF691\t25\n+ZNF692\t5\n+ZNF694\t15\n+ZNF695\t0\n+ZNF697\t25\n+ZNF7\t27\n+ZNF70\t0\n+ZNF700\t31\n+ZNF701\t12\n+ZNF702\t0\n+ZNF703\t0\n+ZNF704\t2\n+ZNF706\t359\n+ZNF707\t17\n+ZNF708\t26\n+ZNF71\t29\n+ZNF710\t37\n+ZNF713\t0\n+ZNF714\t29\n+ZNF718\t0\n+ZNF720\t54\n+ZNF721\t15\n+ZNF722\t0\n+ZNF74\t28\n+ZNF740\t5\n+ZNF75\t68\n+ZNF75A\t84\n+ZNF76\t110\n+ZNF77\t3\n+ZNF79\t1\n+ZNF8\t2\n+ZNF80\t0\n+ZNF81\t2\n+ZNF83\t698\n+ZNF84\t34\n+ZNF85\t80\n+ZNF9\t85\n+ZNF91\t128\n+ZNF92\t13\n+ZNF93\t51\n+ZNF96\t0\n+ZNFN1A2\t0\n+ZNFN1A3\t0\n+ZNFN1A4\t5\n+ZNFN1A5\t43\n+ZNFX1\t9\n+ZNHIT1\t5\n+ZNHIT2\t4\n+ZNHIT3\t95\n+ZNHIT4\t4\n+ZNRD1\t17\n+ZNRF1\t77\n+ZNRF2\t18\n+ZNRF3\t72\n+ZP3\t39\n+ZPBP\t0\n+ZPLD1\t0\n+ZRANB1\t54\n+ZRANB3\t9\n+ZRF1\t99\n+ZSCAN1\t99\n+ZSCAN2\t12\n+ZSCAN5\t10\n+ZSWIM1\t37\n+ZSWIM3\t0\n+ZSWIM4\t14\n+ZSWIM5\t13\n+ZSWIM6\t329\n+ZW10\t6\n+ZWILCH\t6\n+ZWINT\t152\n+ZXDA\t1\n+ZXDB\t12\n+ZXDC\t35\n+ZYG11B\t1785\n+ZYG11BL\t11\n+ZYX\t698\n+ZZANK1\t15\n+ZZEF1\t15\n+ZZZ3\t94\n'
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/DESeqTools/raw/f2cond2.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/DESeqTools/raw/f2cond2.tsv Tue Apr 30 14:33:21 2013 -0400
b
b"@@ -0,0 +1,18761 @@\n+GliNS1\tCB660\n+13CDNA73\t0\n+15E1.2\t215\n+182-FIP\t334\n+2'-PDE\t34\n+3'HEXO\t121\n+3.8-1\t0\n+384D8-2\t3\n+76P\t358\n+7h3\t9\n+8D6A\t0\n+A1BG\t0\n+A2BP1\t1\n+A2M\t193\n+A4GALT\t0\n+A4GNT\t0\n+AAA1\t0\n+AAAS\t202\n+AACS\t3737\n+AADACL1\t158\n+AADAT\t22\n+AAK1\t0\n+AAMP\t512\n+AANAT\t0\n+AARS\t111\n+AARSD1\t112\n+AARSL\t55\n+AASDH\t18\n+AASDHPPT\t888\n+AASS\t130\n+AATF\t100\n+AATK\t0\n+ABAT\t8467\n+ABC1\t34\n+ABCA1\t11\n+ABCA10\t6\n+ABCA11\t10\n+ABCA12\t14\n+ABCA13\t180\n+ABCA2\t20\n+ABCA3\t250\n+ABCA4\t0\n+ABCA5\t181\n+ABCA6\t30\n+ABCA7\t1\n+ABCA8\t9\n+ABCA9\t302\n+ABCB1\t1\n+ABCB10\t71\n+ABCB11\t1\n+ABCB4\t7\n+ABCB5\t1\n+ABCB6\t26\n+ABCB7\t34\n+ABCB8\t82\n+ABCB9\t36\n+ABCC1\t21\n+ABCC10\t19\n+ABCC11\t11\n+ABCC12\t1\n+ABCC13\t2\n+ABCC2\t46\n+ABCC3\t57\n+ABCC4\t73\n+ABCC5\t28\n+ABCC6\t7\n+ABCC8\t0\n+ABCC9\t25\n+ABCD1\t13\n+ABCD2\t13\n+ABCD3\t261\n+ABCD4\t208\n+ABCE1\t567\n+ABCF1\t58\n+ABCF2\t90\n+ABCF3\t21\n+ABCG1\t3\n+ABCG2\t10\n+ABCG4\t0\n+ABHD1\t3\n+ABHD10\t6\n+ABHD11\t1161\n+ABHD14A\t219\n+ABHD14B\t16\n+ABHD2\t149\n+ABHD3\t406\n+ABHD4\t253\n+ABHD5\t90\n+ABHD6\t315\n+ABHD7\t49\n+ABHD8\t32\n+ABI1\t510\n+ABI2\t413\n+ABI3\t0\n+ABI3BP\t14\n+ABL1\t223\n+ABL2\t36\n+ABLIM1\t197\n+ABLIM2\t25\n+ABLIM3\t0\n+ABO\t0\n+ABR\t538\n+ABRA\t0\n+ABT1\t48\n+ABTB1\t11\n+ABTB2\t94\n+ACAA1\t120\n+ACAA2\t134\n+ACACA\t183\n+ACACB\t9\n+ACAD10\t33\n+ACAD11\t61\n+ACAD8\t33\n+ACAD9\t228\n+ACADL\t6\n+ACADM\t55\n+ACADS\t63\n+ACADSB\t107\n+ACADVL\t179\n+ACAS2\t8\n+ACAS2L\t1\n+ACAT1\t288\n+ACAT2\t88\n+ACATE2\t74\n+ACBD3\t866\n+ACBD4\t1\n+ACBD5\t38\n+ACBD6\t112\n+ACBD7\t22\n+ACCN2\t10\n+ACCN3\t3\n+ACCN4\t0\n+ACD\t28\n+ACDC\t10\n+ACE\t0\n+ACF\t54\n+ACHE\t15\n+ACIN1\t3\n+ACLY\t497\n+ACMSD\t7\n+ACN9\t114\n+ACO1\t134\n+ACO2\t770\n+ACOT2\t0\n+ACOT4\t0\n+ACOT7\t266\n+ACOT8\t8\n+ACOT9\t19\n+ACOX1\t277\n+ACOX2\t300\n+ACOX3\t8\n+ACOXL\t0\n+ACP1\t1384\n+ACP2\t80\n+ACP5\t0\n+ACP6\t172\n+ACPL2\t101\n+ACPP\t4\n+ACR\t13\n+ACRBP\t0\n+ACRC\t14\n+ACRV1\t0\n+ACSBG1\t52\n+ACSL1\t14\n+ACSL3\t2158\n+ACSL4\t66\n+ACSL5\t21\n+ACSL6\t0\n+ACSM2\t0\n+ACSM3\t10\n+ACSS1\t15\n+ACSS2\t83\n+ACTA1\t65\n+ACTA2\t824\n+ACTB\t25909\n+ACTC\t0\n+ACTG1\t14476\n+ACTG2\t3\n+ACTL6A\t198\n+ACTL6B\t0\n+ACTL8\t1\n+ACTN1\t4575\n+ACTN2\t0\n+ACTN4\t7378\n+ACTR10\t33\n+ACTR1A\t159\n+ACTR1B\t40\n+ACTR2\t8300\n+ACTR3\t584\n+ACTR3B\t0\n+ACTR5\t17\n+ACTR6\t65\n+ACTR8\t176\n+ACTRT1\t0\n+ACVR1\t0\n+ACVR1B\t6\n+ACVR1C\t0\n+ACVR2\t43\n+ACVR2A\t22\n+ACVR2B\t6\n+ACVRL1\t0\n+ACY1\t17\n+ACY1L2\t93\n+ACY3\t0\n+ACYP1\t69\n+ACYP2\t282\n+AD-003\t0\n+AD-020\t19\n+AD023\t1\n+AD031\t32\n+AD7C-NTP\t6\n+ADA\t3713\n+ADAL\t12\n+ADAM10\t638\n+ADAM11\t1\n+ADAM12\t191\n+ADAM15\t58\n+ADAM17\t283\n+ADAM18\t2\n+ADAM19\t555\n+ADAM20\t0\n+ADAM21\t0\n+ADAM22\t254\n+ADAM23\t59\n+ADAM28\t0\n+ADAM32\t12\n+ADAM33\t22\n+ADAM8\t2\n+ADAM9\t3047\n+ADAMDEC1\t0\n+ADAMTS1\t0\n+ADAMTS10\t175\n+ADAMTS12\t89\n+ADAMTS13\t1\n+ADAMTS15\t163\n+ADAMTS16\t8\n+ADAMTS17\t0\n+ADAMTS18\t0\n+ADAMTS19\t0\n+ADAMTS2\t21\n+ADAMTS20\t0\n+ADAMTS3\t515\n+ADAMTS4\t0\n+ADAMTS5\t7\n+ADAMTS6\t46\n+ADAMTS7\t0\n+ADAMTS8\t0\n+ADAMTS9\t281\n+ADAMTSL1\t19\n+ADAMTSL2\t0\n+ADAMTSL3\t1\n+ADAMTSL4\t4\n+ADAR\t96\n+ADARB1\t44\n+ADARB2\t0\n+ADAT1\t17\n+ADC\t7\n+ADCK1\t21\n+ADCK2\t8\n+ADCK4\t84\n+ADCK5\t12\n+ADCY1\t63\n+ADCY2\t23\n+ADCY3\t27\n+ADCY5\t1\n+ADCY6\t376\n+ADCY7\t44\n+ADCY8\t0\n+ADCY9\t41\n+ADCYAP1\t0\n+ADCYAP1R1\t127\n+ADD1\t1109\n+ADD2\t0\n+ADD3\t680\n+ADFP\t85\n+ADH1B\t1\n+ADH1C\t0\n+ADH4\t6\n+ADH5\t1368\n+ADHFE1\t35\n+ADI1\t213\n+ADIPOR1\t208\n+ADIPOR2\t31\n+ADK\t195\n+ADM\t323\n+ADM2\t0\n+ADMP\t0\n+ADMR\t5108\n+ADNP\t961\n+ADORA1\t27\n+ADORA2A\t43\n+ADORA2B\t2\n+ADPGK\t3996\n+ADPN\t4\n+ADPRH\t0\n+ADPRHL1\t0\n+ADPRHL2\t86\n+ADRA1A\t0\n+ADRA1B\t0\n+ADRA1D\t0\n+ADRA2A\t0\n+ADRA2B\t1\n+ADRB1\t11\n+ADRB2\t0\n+ADRB3\t17\n+ADRBK1\t88\n+ADRBK2\t14\n+ADRM1\t405\n+ADSL\t188\n+ADSS\t526\n+ADSSL1\t10\n+AE2\t23\n+AEBP1\t3115\n+AEBP2\t468\n+AEGP\t25\n+AER61\t2\n+AES\t1972\n+AF15Q14\t1\n+AF1Q\t84\n+AF5Q31\t574\n+AFAP\t84\n+AFAR3\t15\n+AFF1\t69\n+AFF2\t8\n+AFF3\t1\n+AFF4\t0\n+AFG3L1\t25\n+AFG3L2\t94\n+AFMID\t293\n+AFP\t22\n+AFTIPHILIN\t144\n+AG1\t2\n+AGA\t133\n+AGBL2\t0\n+AGBL3\t0\n+AGC1\t0\n+AGER\t3\n+AGGF1\t184\n+AGL\t374\n+AGMAT\t6\n+AGPAT1\t84\n+AGPAT2\t1\n+AGPAT3\t101\n+AGPAT4\t64\n+AGPAT5\t1149\n+AGPAT6\t47\n+AGPAT7\t48\n+AGPS\t293\n+AGR2\t14\n+AGRN\t587\n+AGRP\t0\n+AGT\t0\n+AGTPBP1\t47\n+AGTR1\t0\n+AGTR2\t0\n+AGTRAP\t306\n+AGXT2L1\t0\n+AHCTF1\t41\n+AHCY\t489\n+AHCYL1\t767\n+AHDC1\t11\n+AHI1\t40\n+AHNAK\t0\n+AHR\t1101\n+AHSA1\t311\n+AHSA2\t67\n+AHSG\t0\n+AICDA\t0\n+AIFL\t0\n+AIG1\t243\n+AIM1\t0\n+AIM1L\t0\n+AIP\t468\n+AIP1\t59\n+AIPL1\t12\n+AK1\t112\n+AK2\t316\n+AK3\t131\n+AK3L1\t52\n+AK5\t16\n+AK7\t0\n+AKAP1\t47\n+AKAP10\t309\n+AKAP11\t76\n+AKAP12\t370\n+AKAP13\t79\n+AKAP14\t11\n+AKAP3\t3\n+AKAP6\t18\n+AKAP7\t410\n+AKAP8"..b'4\n+ZNF283\t11\n+ZNF284\t85\n+ZNF285\t20\n+ZNF286\t719\n+ZNF287\t75\n+ZNF289\t112\n+ZNF291\t83\n+ZNF292\t208\n+ZNF294\t82\n+ZNF295\t61\n+ZNF297\t128\n+ZNF297B\t261\n+ZNF3\t19\n+ZNF30\t100\n+ZNF300\t3\n+ZNF302\t493\n+ZNF304\t44\n+ZNF305\t34\n+ZNF306\t5\n+ZNF307\t21\n+ZNF31\t3\n+ZNF311\t0\n+ZNF312\t41\n+ZNF313\t247\n+ZNF317\t151\n+ZNF318\t81\n+ZNF319\t130\n+ZNF32\t70\n+ZNF322A\t18\n+ZNF323\t12\n+ZNF324\t85\n+ZNF326\t122\n+ZNF329\t85\n+ZNF330\t52\n+ZNF331\t23\n+ZNF333\t88\n+ZNF334\t78\n+ZNF335\t10\n+ZNF336\t17\n+ZNF337\t55\n+ZNF33A\t26\n+ZNF34\t5\n+ZNF341\t4\n+ZNF342\t0\n+ZNF343\t48\n+ZNF345\t0\n+ZNF346\t171\n+ZNF347\t27\n+ZNF35\t15\n+ZNF350\t24\n+ZNF354A\t59\n+ZNF354B\t46\n+ZNF354C\t1747\n+ZNF358\t61\n+ZNF364\t98\n+ZNF365\t42\n+ZNF366\t0\n+ZNF367\t134\n+ZNF37A\t74\n+ZNF37B\t94\n+ZNF38\t45\n+ZNF382\t24\n+ZNF383\t8\n+ZNF384\t95\n+ZNF385\t4\n+ZNF390\t11\n+ZNF394\t684\n+ZNF395\t62\n+ZNF396\t6\n+ZNF397\t50\n+ZNF398\t29\n+ZNF403\t89\n+ZNF404\t38\n+ZNF406\t0\n+ZNF407\t27\n+ZNF408\t16\n+ZNF41\t73\n+ZNF410\t189\n+ZNF414\t14\n+ZNF415\t171\n+ZNF416\t43\n+ZNF417\t2\n+ZNF418\t21\n+ZNF419\t16\n+ZNF42\t134\n+ZNF420\t8\n+ZNF423\t277\n+ZNF425\t5\n+ZNF426\t20\n+ZNF429\t13\n+ZNF43\t52\n+ZNF430\t51\n+ZNF431\t0\n+ZNF432\t15\n+ZNF433\t12\n+ZNF434\t30\n+ZNF435\t0\n+ZNF436\t455\n+ZNF438\t62\n+ZNF439\t80\n+ZNF44\t42\n+ZNF440\t28\n+ZNF440L\t0\n+ZNF441\t19\n+ZNF442\t0\n+ZNF443\t88\n+ZNF444\t959\n+ZNF445\t3\n+ZNF446\t27\n+ZNF447\t298\n+ZNF449\t39\n+ZNF45\t367\n+ZNF451\t138\n+ZNF452\t0\n+ZNF454\t11\n+ZNF46\t27\n+ZNF462\t376\n+ZNF467\t1\n+ZNF468\t350\n+ZNF469\t0\n+ZNF471\t51\n+ZNF473\t1\n+ZNF479\t0\n+ZNF480\t44\n+ZNF482\t175\n+ZNF483\t3\n+ZNF484\t26\n+ZNF485\t29\n+ZNF486\t648\n+ZNF488\t44\n+ZNF490\t0\n+ZNF491\t0\n+ZNF492\t1\n+ZNF493\t28\n+ZNF496\t229\n+ZNF497\t7\n+ZNF498\t69\n+ZNF499\t8\n+ZNF500\t8\n+ZNF501\t7\n+ZNF502\t6\n+ZNF503\t13\n+ZNF505\t1\n+ZNF506\t3\n+ZNF507\t291\n+ZNF509\t39\n+ZNF510\t80\n+ZNF511\t649\n+ZNF512\t56\n+ZNF513\t10\n+ZNF514\t0\n+ZNF516\t78\n+ZNF517\t120\n+ZNF518\t150\n+ZNF519\t47\n+ZNF521\t145\n+ZNF524\t38\n+ZNF525\t8\n+ZNF526\t48\n+ZNF527\t5\n+ZNF528\t35\n+ZNF529\t136\n+ZNF530\t8\n+ZNF532\t830\n+ZNF533\t0\n+ZNF536\t0\n+ZNF537\t0\n+ZNF539\t114\n+ZNF540\t32\n+ZNF542\t58\n+ZNF543\t40\n+ZNF544\t49\n+ZNF545\t71\n+ZNF546\t4\n+ZNF547\t302\n+ZNF548\t98\n+ZNF549\t1\n+ZNF550\t23\n+ZNF551\t44\n+ZNF552\t0\n+ZNF553\t300\n+ZNF554\t17\n+ZNF555\t24\n+ZNF557\t0\n+ZNF558\t22\n+ZNF559\t237\n+ZNF560\t0\n+ZNF561\t315\n+ZNF562\t11\n+ZNF563\t36\n+ZNF564\t110\n+ZNF565\t0\n+ZNF566\t11\n+ZNF567\t18\n+ZNF568\t59\n+ZNF569\t58\n+ZNF570\t0\n+ZNF571\t19\n+ZNF572\t3\n+ZNF573\t4\n+ZNF574\t47\n+ZNF575\t2\n+ZNF576\t37\n+ZNF577\t42\n+ZNF578\t3\n+ZNF579\t19\n+ZNF580\t695\n+ZNF581\t133\n+ZNF582\t3\n+ZNF583\t24\n+ZNF584\t87\n+ZNF585A\t192\n+ZNF585B\t5\n+ZNF586\t24\n+ZNF587\t47\n+ZNF588\t18\n+ZNF589\t2\n+ZNF592\t182\n+ZNF593\t98\n+ZNF594\t3\n+ZNF595\t0\n+ZNF596\t321\n+ZNF597\t9\n+ZNF598\t32\n+ZNF599\t36\n+ZNF6\t93\n+ZNF600\t7\n+ZNF605\t17\n+ZNF606\t100\n+ZNF607\t83\n+ZNF608\t45\n+ZNF609\t16\n+ZNF610\t8\n+ZNF611\t178\n+ZNF613\t44\n+ZNF614\t3\n+ZNF615\t86\n+ZNF616\t46\n+ZNF618\t1\n+ZNF619\t0\n+ZNF620\t15\n+ZNF621\t52\n+ZNF622\t128\n+ZNF623\t121\n+ZNF624\t28\n+ZNF625\t1\n+ZNF626\t14\n+ZNF627\t95\n+ZNF629\t336\n+ZNF630\t0\n+ZNF638\t1201\n+ZNF639\t225\n+ZNF641\t60\n+ZNF642\t26\n+ZNF643\t0\n+ZNF644\t151\n+ZNF646\t5\n+ZNF649\t124\n+ZNF650\t136\n+ZNF651\t263\n+ZNF652\t14\n+ZNF653\t20\n+ZNF654\t2\n+ZNF655\t416\n+ZNF658\t23\n+ZNF659\t0\n+ZNF66\t1\n+ZNF660\t44\n+ZNF663\t0\n+ZNF664\t241\n+ZNF665\t0\n+ZNF667\t120\n+ZNF668\t8\n+ZNF669\t15\n+ZNF670\t11\n+ZNF671\t312\n+ZNF672\t81\n+ZNF673\t31\n+ZNF677\t6\n+ZNF678\t4\n+ZNF680\t22\n+ZNF681\t0\n+ZNF682\t0\n+ZNF684\t0\n+ZNF687\t59\n+ZNF688\t15\n+ZNF689\t10\n+ZNF69\t48\n+ZNF690\t22\n+ZNF691\t129\n+ZNF692\t10\n+ZNF694\t86\n+ZNF695\t4\n+ZNF697\t22\n+ZNF7\t80\n+ZNF70\t0\n+ZNF700\t100\n+ZNF701\t10\n+ZNF702\t20\n+ZNF703\t22\n+ZNF704\t0\n+ZNF706\t996\n+ZNF707\t15\n+ZNF708\t67\n+ZNF71\t77\n+ZNF710\t260\n+ZNF713\t0\n+ZNF714\t0\n+ZNF718\t1\n+ZNF720\t170\n+ZNF721\t21\n+ZNF722\t0\n+ZNF74\t112\n+ZNF740\t28\n+ZNF75\t88\n+ZNF75A\t349\n+ZNF76\t407\n+ZNF77\t19\n+ZNF79\t34\n+ZNF8\t2\n+ZNF80\t0\n+ZNF81\t4\n+ZNF83\t470\n+ZNF84\t161\n+ZNF85\t113\n+ZNF9\t249\n+ZNF91\t86\n+ZNF92\t69\n+ZNF93\t53\n+ZNF96\t0\n+ZNFN1A2\t1\n+ZNFN1A3\t0\n+ZNFN1A4\t62\n+ZNFN1A5\t120\n+ZNFX1\t31\n+ZNHIT1\t6\n+ZNHIT2\t48\n+ZNHIT3\t181\n+ZNHIT4\t30\n+ZNRD1\t84\n+ZNRF1\t180\n+ZNRF2\t109\n+ZNRF3\t218\n+ZP3\t176\n+ZPBP\t0\n+ZPLD1\t0\n+ZRANB1\t144\n+ZRANB3\t55\n+ZRF1\t104\n+ZSCAN1\t208\n+ZSCAN2\t51\n+ZSCAN5\t32\n+ZSWIM1\t116\n+ZSWIM3\t0\n+ZSWIM4\t35\n+ZSWIM5\t1\n+ZSWIM6\t629\n+ZW10\t24\n+ZWILCH\t31\n+ZWINT\t371\n+ZXDA\t0\n+ZXDB\t63\n+ZXDC\t35\n+ZYG11B\t2909\n+ZYG11BL\t72\n+ZYX\t3056\n+ZZANK1\t67\n+ZZEF1\t16\n+ZZZ3\t270\n'
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/DESeqTools/raw2counts.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/DESeqTools/raw2counts.R Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,20 @@
+# raw2counts
+# extract counts only from rawCounts
+# and add rownames to counts
+
+# input : rawCounts
+# output : counts
+
+# created Feb 6th, 2012
+# modified April 12, 2012
+# Marie-Agnes Dillies
+
+
+raw2counts <- function( rawCounts, annot=1 ){
+
+  ex <- 1:annot
+  counts <- as.matrix( rawCounts[,-ex] )
+  rownames(counts) <- rawCounts[,1]
+  infoCounts <- rawCounts[,ex]
+  return( list("counts"=counts, "infoCounts"= infoCounts) )
+}
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/DESeqTools/removeNul.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/DESeqTools/removeNul.R Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,14 @@
+# removeNul
+# remove genes with null counts in all samples
+
+# input : counts
+# output : counts
+
+# created Feb 7th, 2012
+# Marie-Agnes Dillies
+
+
+removeNul <- function( counts, info = NULL ){
+
+  return( list(counts[rowSums(counts) > 0,], info[rowSums(counts) > 0,]) )
+}
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/bam_to_sam_parallel.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/bam_to_sam_parallel.py Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,172 @@
+#!/usr/bin/env python
+"""
+Converts BAM data to sorted SAM data.
+usage: bam_to_sam.py [options]
+   --input1: SAM file to be converted
+   --output1: output dataset in bam format
+"""
+
+import optparse, os, sys, subprocess, tempfile, shutil, tarfile, random
+#from galaxy import eggs
+#import pkg_resources; pkg_resources.require( "bx-python" )
+#from bx.cookbook import doc_optparse
+#from galaxy import util
+
+def stop_err( msg ):
+    sys.stderr.write( '%s\n' % msg )
+    sys.exit()
+    
+def toTar(tarFileName, samOutputNames):
+    dir = os.path.dirname(tarFileName)    
+    tfile = tarfile.open(tarFileName + ".tmp.tar", "w")
+    currentPath = os.getcwd()
+    os.chdir(dir)
+    for file in samOutputNames:
+        relativeFileName = os.path.basename(file)
+        tfile.add(relativeFileName)
+    os.system("mv %s %s" % (tarFileName + ".tmp.tar", tarFileName))
+    tfile.close()
+    os.chdir(currentPath)    
+
+
+def __main__():
+    #Parse Command Line
+    parser = optparse.OptionParser()
+    parser.add_option('-t', '--tar', dest='outputTar', default=None, help='output all SAM results in a tar file.' )
+    parser.add_option( '', '--input1', dest='input1', help='The input list of BAM datasets on txt format.' )
+    #parser.add_option( '', '--input1', dest='input1', help='The input BAM dataset' )
+    parser.add_option( '', '--output1', dest='output1', help='The output list of SAM datasets on txt format.' )
+    #parser.add_option( '', '--output1', dest='output1', help='The output SAM dataset' )
+    parser.add_option( '', '--header', dest='header', action='store_true', default=False, help='Write SAM Header' )
+    ( options, args ) = parser.parse_args()
+
+
+    #Parse the input txt file and read a list of BAM files.
+    file = open(options.input1, "r")
+    lines = file.readlines()
+    inputFileNames = []
+    samOutputNames = []
+    outputName = options.output1
+    resDirName = os.path.dirname(outputName) + '/'
+    #Write output txt file and define all output sam file names.
+    out = open(outputName, "w")
+    for line in lines:
+        tab = line.split()
+        inputFileNames.append(tab[1])
+        samOutName = resDirName + tab[0] + '_samOutput_%s.sam' % random.randrange(0, 10000)
+        samOutputNames.append(samOutName)
+        out.write(tab[0] + '\t' + samOutName  + '\n')
+    file.close()
+    out.close()
+
+    # output version # of tool
+    try:
+        tmp_files = []
+        tmp = tempfile.NamedTemporaryFile().name
+        tmp_files.append(tmp)
+        tmp_stdout = open( tmp, 'wb' )
+        proc = subprocess.Popen( args='samtools 2>&1', shell=True, stdout=tmp_stdout )
+        tmp_stdout.close()
+        returncode = proc.wait()
+        stdout = None
+        for line in open( tmp_stdout.name, 'rb' ):
+            if line.lower().find( 'version' ) >= 0:
+                stdout = line.strip()
+                break
+        if stdout:
+            sys.stdout.write( 'Samtools %s\n' % stdout )
+        else:
+            raise Exception
+    except:
+        sys.stdout.write( 'Could not determine Samtools version\n' )
+
+
+
+    tmp_dirs = []
+    for i in range(len(inputFileNames)):
+        try:
+            # exit if input file empty
+            if os.path.getsize( inputFileNames[i] ) == 0:
+                raise Exception, 'Initial input txt file is empty.'
+            # Sort alignments by leftmost coordinates. File <out.prefix>.bam will be created. This command
+            # may also create temporary files <out.prefix>.%d.bam when the whole alignment cannot be fitted
+            # into memory ( controlled by option -m ).
+            tmp_dir = tempfile.mkdtemp()
+            tmp_dirs.append(tmp_dir)
+            tmp_sorted_aligns_file = tempfile.NamedTemporaryFile( dir=tmp_dir )
+            tmp_sorted_aligns_file_base = tmp_sorted_aligns_file.name
+            tmp_sorted_aligns_file_name = '%s.bam' % tmp_sorted_aligns_file.name
+            tmp_files.append(tmp_sorted_aligns_file_name)
+            tmp_sorted_aligns_file.close()
+            
+            command = 'samtools sort %s %s' % ( inputFileNames[i], tmp_sorted_aligns_file_base )
+            tmp = tempfile.NamedTemporaryFile( dir=tmp_dir ).name
+            tmp_stderr = open( tmp, 'wb' )
+            proc = subprocess.Popen( args=command, shell=True, cwd=tmp_dir, stderr=tmp_stderr.fileno() )
+            returncode = proc.wait()
+            tmp_stderr.close()
+            # get stderr, allowing for case where it's very large
+            tmp_stderr = open( tmp, 'rb' )
+            stderr = ''
+            buffsize = 1048576
+            try:
+                while True:
+                    stderr += tmp_stderr.read( buffsize )
+                    if not stderr or len( stderr ) % buffsize != 0:
+                        break
+            except OverflowError:
+                pass
+            tmp_stderr.close()
+            if returncode != 0:
+                raise Exception, stderr
+            # exit if sorted BAM file empty
+            if os.path.getsize( tmp_sorted_aligns_file_name) == 0:
+                raise Exception, 'Intermediate sorted BAM file empty'
+        except Exception, e:
+            stop_err( 'Error sorting alignments from (%s), %s' % ( inputFileNames[i], str( e ) ) )
+            
+        try:
+            # Extract all alignments from the input BAM file to SAM format ( since no region is specified, all the alignments will be extracted ).
+            if options.header:
+                view_options = "-h"
+            else:
+                view_options = ""
+            command = 'samtools view %s -o %s %s' % ( view_options, samOutputNames[i], tmp_sorted_aligns_file_name )
+            tmp = tempfile.NamedTemporaryFile( dir=tmp_dir ).name
+            tmp_stderr = open( tmp, 'wb' )
+            proc = subprocess.Popen( args=command, shell=True, cwd=tmp_dir, stderr=tmp_stderr.fileno() )
+            returncode = proc.wait()
+            tmp_stderr.close()
+            # get stderr, allowing for case where it's very large
+            tmp_stderr = open( tmp, 'rb' )
+            stderr = ''
+            buffsize = 1048576
+            try:
+                while True:
+                    stderr += tmp_stderr.read( buffsize )
+                    if not stderr or len( stderr ) % buffsize != 0:
+                        break
+            except OverflowError:
+                pass
+            tmp_stderr.close()
+            if returncode != 0:
+                raise Exception, stderr
+        except Exception, e:
+            stop_err( 'Error extracting alignments from (%s), %s' % ( inputFileNames[i], str( e ) ) )
+        if os.path.getsize( samOutputNames[i] ) > 0:
+            sys.stdout.write( 'BAM file converted to SAM' )
+        else:
+            stop_err( 'The output file is empty, there may be an error with your input file.' )
+     
+    if options.outputTar != None:
+        toTar(options.outputTar, samOutputNames)       
+    #clean up temp files
+    for tmp_dir in tmp_dirs:
+        if os.path.exists( tmp_dir ):
+            shutil.rmtree( tmp_dir )
+    #print tmp_files
+    #for tmp in tmp_files:
+    #    os.remove(tmp)            
+    
+
+if __name__=="__main__": __main__()
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/bam_to_sam_parallel.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/bam_to_sam_parallel.xml Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,32 @@
+<tool id="bam_to_sam_parallel" name="BAM to SAM (for DEA)" version="1.0.0">
+  <description>converts a list of BAM format files to SAM format.</description>
+  <requirements>
+ <requirement type="package">samtools</requirement>
+  </requirements>
+  <command interpreter="python"> bam_to_sam_parallel.py
+      --input1=$input1
+      --output1=$output1
+      $header
+      $tar $outputTarFile
+  </command>
+  <inputs>
+    <param name="input1" type="data" format="txt" label="BAM File LIST to Convert" />
+    <param name="header" type="boolean" truevalue="--header" falsevalue="" checked="False" label="Include header in output" />
+    <param name="tar" type="boolean" truevalue="-t" falsevalue="" checked="false" label="tar option" help="This option creates a tar file for all out results." />
+  </inputs>
+  <outputs>
+   <data format="txt" name="output1" label="converted SAM LIST files " />
+   <data name="outputTarFile" format="tar">
+   <filter>tar</filter>
+   </data>
+  </outputs>
+  <help>
+
+**What it does**
+
+This tool uses the SAMTools_ toolkit to produce a SAM file from a BAM file.
+
+.. _SAMTools: http://samtools.sourceforge.net/samtools.shtml
+
+  </help>
+</tool>
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/bam_to_sam_parallel_unSQL.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/bam_to_sam_parallel_unSQL.py Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,145 @@
+#!/usr/bin/env python
+"""
+Converts BAM data to sorted SAM data.
+usage: bam_to_sam.py [options]
+   --input1: SAM file to be converted
+   --output1: output dataset in bam format
+"""
+
+import optparse, os, sys, subprocess, tempfile, shutil, tarfile, random
+from commons.core.launcher.Launcher import Launcher
+from commons.core.sql.TableJobAdaptatorFactory import TableJobAdaptatorFactory
+#from galaxy import eggs
+#import pkg_resources; pkg_resources.require( "bx-python" )
+#from bx.cookbook import doc_optparse
+#from galaxy import util
+
+def stop_err( msg ):
+    sys.stderr.write( '%s\n' % msg )
+    sys.exit()
+    
+def toTar(tarFileName, samOutputNames):
+    dir = os.path.dirname(tarFileName)    
+    tfile = tarfile.open(tarFileName + ".tmp.tar", "w")
+    currentPath = os.getcwd()
+    os.chdir(dir)
+    for file in samOutputNames:
+        relativeFileName = os.path.basename(file)
+        tfile.add(relativeFileName)
+    os.system("mv %s %s" % (tarFileName + ".tmp.tar", tarFileName))
+    tfile.close()
+    os.chdir(currentPath)    
+    
+def _map(iLauncher, cmd, cmdStart, cmdFinish ):
+    lCmds = []
+    lCmds.extend(cmd)
+    lCmdStart = []
+    lCmdStart.extend(cmdStart)
+    lCmdFinish = []
+    lCmdFinish.extend(cmdFinish)
+    return(iLauncher.prepareCommands_withoutIndentation(lCmds, lCmdStart, lCmdFinish))
+
+def _createSamToolsViewCmd(iLauncher, inputFile, tmp_sorted_aligns_file_name, header):
+        lArgs = []
+        lArgs.append("-o %s" %  inputFile)
+        lArgs.append("%s" % tmp_sorted_aligns_file_name)
+        if header:
+            lArgs.append("-h")
+        return iLauncher.getSystemCommand("samtools view", lArgs)
+
+def _createSamToolsSortCmd(iLauncher, inputFile, tmp_sorted_aligns_file_base):
+        lArgs = []
+        lArgs.append("%s" % inputFile)
+        lArgs.append("%s" %  tmp_sorted_aligns_file_base)
+        return iLauncher.getSystemCommand("samtools sort", lArgs)
+
+def __main__():
+    #Parse Command Line
+    parser = optparse.OptionParser()
+    parser.add_option('-t', '--tar', dest='outputTar', default=None, help='output all SAM results in a tar file.' )
+    parser.add_option( '', '--input1', dest='input1', help='The input list of BAM datasets on txt format.' )
+    #parser.add_option( '', '--input1', dest='input1', help='The input BAM dataset' )
+    parser.add_option( '', '--output1', dest='output1', help='The output list of SAM datasets on txt format.' )
+    #parser.add_option( '', '--output1', dest='output1', help='The output SAM dataset' )
+    parser.add_option( '', '--header', dest='header', action='store_true', default=False, help='Write SAM Header' )
+    ( options, args ) = parser.parse_args()
+
+
+    #Parse the input txt file and read a list of BAM files.
+    file = open(options.input1, "r")
+    lines = file.readlines()
+    inputFileNames = []
+    samOutputNames = []
+    outputName = options.output1
+    resDirName = os.path.dirname(outputName) + '/'
+    #Write output txt file and define all output sam file names.
+    out = open(outputName, "w")
+    for line in lines:
+        tab = line.split()
+        inputFileNames.append(tab[1])
+        samOutName = resDirName + tab[0] + '_samOutput_%s.sam' % random.randrange(0, 10000)
+        samOutputNames.append(samOutName)
+        out.write(tab[0] + '\t' + samOutName  + '\n')
+    file.close()
+    out.close()
+
+    # output version # of tool
+    try:
+        tmp_files = []
+        tmp = tempfile.NamedTemporaryFile().name
+        tmp_files.append(tmp)
+        tmp_stdout = open( tmp, 'wb' )
+        proc = subprocess.Popen( args='samtools 2>&1', shell=True, stdout=tmp_stdout )
+        tmp_stdout.close()
+        returncode = proc.wait()
+        stdout = None
+        for line in open( tmp_stdout.name, 'rb' ):
+            if line.lower().find( 'version' ) >= 0:
+                stdout = line.strip()
+                break
+        if stdout:
+            sys.stdout.write( 'Samtools %s\n' % stdout )
+        else:
+            raise Exception
+    except:
+        sys.stdout.write( 'Could not determine Samtools version\n' )
+
+    tmp_dirs = []
+    acronym = "bam_to_sam"
+    jobdb = TableJobAdaptatorFactory.createJobInstance()
+    iLauncher = Launcher(jobdb, os.getcwd(), "", "", os.getcwd(), os.getcwd(), "jobs", "", acronym, acronym, False, True)
+    lCmdsTuples = []
+    for i in range(len(inputFileNames)):    #Construct the lines commands
+        if os.path.getsize( inputFileNames[i] ) == 0:
+            raise Exception, 'Initial input txt file is empty.'
+        tmp_dir = tempfile.mkdtemp(dir="%s" % os.getcwd())
+        tmp_dirs.append(tmp_dir)
+        tmp_sorted_aligns_file = tempfile.NamedTemporaryFile( dir=tmp_dir )
+        tmp_sorted_aligns_file_base = tmp_sorted_aligns_file.name
+        tmp_sorted_aligns_file_name = '%s.bam' % tmp_sorted_aligns_file.name
+        tmp_files.append(tmp_sorted_aligns_file_name)
+        tmp_sorted_aligns_file.close()
+        
+        inputFile = inputFileNames[i]
+        outputFile = samOutputNames[i]
+        cmd2Launch = []
+        cmd2Launch.append(_createSamToolsSortCmd(iLauncher, inputFile, tmp_sorted_aligns_file_base))
+        cmd2Launch.append(_createSamToolsViewCmd(iLauncher, outputFile, tmp_sorted_aligns_file_name, options.header))
+        cmdStart = []
+        cmdFinish = []
+        lCmdsTuples.append(_map(iLauncher, cmd2Launch, cmdStart, cmdFinish))    
+
+    iLauncher.runLauncherForMultipleJobs(acronym, lCmdsTuples, True)
+    
+    if options.outputTar != None:
+        toTar(options.outputTar, samOutputNames)       
+    #clean up temp files
+    for tmp_dir in tmp_dirs:
+        if os.path.exists( tmp_dir ):
+            shutil.rmtree( tmp_dir )
+    #print tmp_files
+    #for tmp in tmp_files:
+    #    os.remove(tmp)            
+    
+
+if __name__=="__main__": __main__()
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/bam_to_sam_parallel_unSQL.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/bam_to_sam_parallel_unSQL.xml Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,32 @@
+<tool id="bam_to_sam_parallel_unSQL" name="BAM to SAM (for DEA in parallel)" version="1.0.0">
+  <description>converts a list of BAM format files to SAM format (parallelized).</description>
+  <requirements>
+ <requirement type="package">samtools</requirement>
+  </requirements>
+  <command interpreter="python"> bam_to_sam_parallel_unSQL.py
+      --input1=$input1
+      --output1=$output1
+      $header
+      $tar $outputTarFile
+  </command>
+  <inputs>
+    <param name="input1" type="data" format="txt" label="BAM File LIST to Convert" />
+    <param name="header" type="boolean" truevalue="--header" falsevalue="" checked="False" label="Include header in output" />
+    <param name="tar" type="boolean" truevalue="-t" falsevalue="" checked="false" label="tar option" help="This option creates a tar file for all out results." />
+  </inputs>
+  <outputs>
+   <data format="txt" name="output1" label="converted SAM LIST files " />
+   <data name="outputTarFile" format="tar">
+   <filter>tar</filter>
+   </data>
+  </outputs>
+  <help>
+
+**What it does**
+
+This tool uses the SAMTools_ toolkit to produce a SAM file from a BAM file.
+
+.. _SAMTools: http://samtools.sourceforge.net/samtools.shtml
+
+  </help>
+</tool>
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/compareOverlapping_parallel.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/compareOverlapping_parallel.py Tue Apr 30 14:33:21 2013 -0400
[
b'@@ -0,0 +1,175 @@\n+#! /usr/bin/env python\n+#This program is a wrapp for CompareOverlapping.py.\n+import optparse, os, sys, subprocess, tempfile, shutil, tarfile, glob\n+import os, struct, time, random\n+from optparse import OptionParser\n+from commons.core.parsing.ParserChooser import ParserChooser\n+from commons.core.writer.Gff3Writer import Gff3Writer\n+from SMART.Java.Python.CompareOverlapping import CompareOverlapping\n+from SMART.Java.Python.structure.Transcript import Transcript\n+from SMART.Java.Python.structure.Interval import Interval\n+from SMART.Java.Python.ncList.NCList import NCList\n+from SMART.Java.Python.ncList.NCListCursor import NCListCursor\n+from SMART.Java.Python.ncList.NCListFilePickle import NCListFilePickle, NCListFileUnpickle\n+from SMART.Java.Python.ncList.FileSorter import FileSorter\n+from SMART.Java.Python.misc.Progress import Progress\n+from SMART.Java.Python.misc.UnlimitedProgress import UnlimitedProgress\n+from SMART.Java.Python.misc import Utils\n+\n+\n+\n+def stop_err( msg ):\n+\tsys.stderr.write( "%s\\n" % msg )\n+\tsys.exit()\n+\n+def toTar(tarFileName, overlapOutputNames):\n+\tdir = os.path.dirname(tarFileName)\t\n+\ttfile = tarfile.open(tarFileName + ".tmp.tar", "w")\n+\tcurrentPath = os.getcwd()\n+\tos.chdir(dir)\n+\tfor file in overlapOutputNames:\n+\t\trelativeFileName = os.path.basename(file)\n+\t\ttfile.add(relativeFileName)\n+\tos.system("mv %s %s" % (tarFileName + ".tmp.tar", tarFileName))\n+\ttfile.close()\n+\tos.chdir(currentPath)\n+\n+def __main__():\n+\tdescription = "Compare Overlapping wrapp script: Get the a list of data which overlap with a reference set. [Category: Data Comparison]"\n+\tparser = OptionParser(description = description)\n+\tparser.add_option("-i", "--input1",\t\t   dest="inputFileName1", action="store",\t\t\t\t\t type="string", help="input file 1 (for annotation) [compulsory] [format: file in transcript format given by -f]")\n+\tparser.add_option("-f", "--format1",\t\t  dest="format1",\t\taction="store",\t\t\t\t\t type="string", help="format of file 1 [compulsory] [format: transcript file format]")\n+\tparser.add_option("", "--inputTxt", \t\tdest="inputTxt", \t\taction="store", \t\t\t\ttype="string", \thelp="input, a txt file for a list of input reads files. Should identify all reads files format, given by -g [compulsory]")\n+\t#parser.add_option("-j", "--input2",\t\t   dest="inputFileName2", action="store",\tdefault="inputRead",\t type="string", help="input file 2 [compulsory] [format: file in transcript format given by -g]")\n+\tparser.add_option("-g", "--format2",\t\t  dest="format2",\t\taction="store",\t\t\t\t type="string", help="format of file 2 [compulsory] [format: transcript file format]")\n+\t#parser.add_option("-o", "--output",\t\t   dest="output",\t\t action="store",\t  default=None,  type="string", help="output file [compulsory] [format: output file in GFF3 format]")\n+\tparser.add_option("-S", "--start1",\t\t   dest="start1",\t\t action="store",\t  default=None,  type="int",\thelp="only consider the n first nucleotides of the transcripts in file 1 (do not use it with -U) [format: int]")\n+\tparser.add_option("-s", "--start2",\t\t   dest="start2",\t\t action="store",\t  default=None,  type="int",\thelp="only consider the n first nucleotides of the transcripts in file 2 (do not use it with -u) [format: int]")\n+\tparser.add_option("-U", "--end1",\t\t\t dest="end1",\t\t   action="store",\t  default=None,  type="int",\thelp="only consider the n last nucleotides of the transcripts in file 1 (do not use it with -S) [format: int]")\n+\tparser.add_option("-u", "--end2",\t\t\t dest="end2",\t\t   action="store",\t  default=None,  type="int",\thelp="only consider the n last nucleotides of the transcripts in file 2 (do not use it with -s) [format: int]")\n+\tparser.add_option("-t", "--intron",\t\t   dest="introns",\t\taction="store_true", default=False,\t\t\t\thelp="also report introns [format: bool] [default: false]")\n+\tparser.add_option("-E", "--5primeExtension1", dest="fivePrime1",\t action="store",\t  default=None,  type="int",\thelp="extension towards 5\' in file 1 [format: int]")\n+\tparser.add_option("-e"'..b'verlapping data [format: bool] [default: false]")\n+\tparser.add_option("-x", "--exclude",\t\t  dest="exclude",\t\taction="store_true", default=False,\t\t\t\thelp="invert the match [format: bool] [default: false]")\n+\tparser.add_option("-v", "--verbosity",\t\tdest="verbosity",\t  action="store",\t  default=1,\t type="int",\thelp="trace level [format: int]")\n+\tparser.add_option(\'\', \'--tar\', dest=\'outputTar\', default=None, help=\'output all SAM results in a tar file.\' )\n+\tparser.add_option( \'\', \'--outTxt\', dest=\'outTxtFile\', help=\'The output list of results files on txt format.[compulsory]\' )\n+\t(options, args) = parser.parse_args()\n+\t\n+\t\n+\t#Parse the input txt file and read a list of BAM files.\n+\tfile = open(options.inputTxt, "r")\n+\tlines = file.readlines()\n+\tinputFileNames = []\n+\toverlapOutputNames = []\n+\toutputName = options.outTxtFile\n+\tresDirName = os.path.dirname(outputName) + "/"\n+\t#Write output txt file and define all output sam file names.\n+\tout = open(outputName, "w")\n+\tfor line in lines:\n+\t\ttab = line.split()\n+\t\tinputFileNames.append(tab[1])\n+\t\toverlapOutName = resDirName + tab[0] + \'_overlapOut_%s.gff3\' % random.randrange(0, 10000)\n+\t\toverlapOutputNames.append(overlapOutName)\n+\t\tout.write(tab[0] + \'\\t\' + overlapOutName  + \'\\n\')\n+\tfile.close()\n+\tout.close()\n+\t\n+\t#construction the commandes for each input file\n+\tcmds = []\n+\tfor i in range(len(inputFileNames)):\n+\t\tabsFile = sys.argv[0]\n+\t\tabsDir = os.path.dirname(absFile)\n+\t\tparentDir = os.path.abspath(os.path.join(absDir, os.path.pardir))\n+\t\tcmd = "python %s/Java/Python/CompareOverlappingSmallQuery.py " % parentDir\n+\t\topts = "-i %s -f %s -j %s -g %s -o %s " % (options.inputFileName1, options.format1, inputFileNames[i], options.format2, overlapOutputNames[i])\n+\t\t#if options.start1 != None:\n+\t\t#\topts += "-S %s " % options.start1\n+\t\t#if options.start2 != None:\n+\t\t#\topts += "-s %s " % options.start2\n+\t\t#if options.end1 != None:\n+\t\t#\topts += "-U %s " % options.end1\n+\t\t#if options.end2 != None:\n+\t\t#\topts += "-u %s " % options.end2\n+\t\t#if options.fivePrime1 != None:\n+\t\t#\topts += "-E %s " % options.fivePrime1\n+\t\t#if options.fivePrime2 != None:\n+\t\t#\topts += "-e %s " % options.fivePrime2\n+\t\t#if options.threePrime1 != None:\n+\t\t#\topts += "-N %s " % options.threePrime1\n+\t\t#if options.threePrime2 != None:\n+\t\t#\topts += "-n %s " % options.threePrime2\n+\t\t#if options.colinear:\n+\t\t#\topts += "-c "\n+\t\t#if options.antisense:\n+\t\t#\topts +="-a "\n+\t\t#if options.included:\n+\t\t#\topts += "-k "\n+\t\t#if options.including:\n+\t\t#\topts += "-K "\n+\t\t#if options.pcOverlap != None:\n+\t\t#\topts += "-p %s " % options.pcOverlap\n+\t\tif options.notOverlapping:\n+\t\t\topts += "-O "\n+\t\tif options.exclude:\n+\t\t\topts += "-x "\n+\t\tif options.distance != None:\n+\t\t\topts += "-d %s " % options.distance\n+\t\t#if options.minOverlap != None:\n+\t\t#\topts += "-m %s " % options.minOverlap\n+\t\tcmd += opts\n+\t\tcmds.append(cmd)\n+\n+\n+\tprint "les commandes sont %s \\n" % cmds\n+\n+\ttmp_files = []\t\n+\tfor i in range(len(cmds)):\n+\t\ttry:\n+\t\t\ttmp_out = tempfile.NamedTemporaryFile().name\n+\t\t\ttmp_files.append(tmp_out)\n+\t\t\ttmp_stdout = open( tmp_out, \'wb\' )\n+\t\t\ttmp_err = tempfile.NamedTemporaryFile().name\n+\t\t\ttmp_files.append(tmp_err)\n+\t\t\ttmp_stderr = open( tmp_err, \'wb\' )\n+\t\t\tproc = subprocess.Popen( args=cmds[i], shell=True, cwd=".", stdout=tmp_stdout, stderr=tmp_stderr )\n+\t\t\treturncode = proc.wait()\n+\t\t\ttmp_stderr.close()\n+\t\t\t# get stderr, allowing for case where it\'s very large\n+\t\t\ttmp_stderr = open( tmp_err, \'rb\' )\n+\t\t\tstderr = \'\'\n+\t\t\tbuffsize = 1048576\n+\t\t\ttry:\n+\t\t\t\twhile True:\n+\t\t\t\t\tstderr += tmp_stderr.read( buffsize )\n+\t\t\t\t\tif not stderr or len( stderr ) % buffsize != 0:\n+\t\t\t\t\t\tbreak\n+\t\t\texcept OverflowError:\n+\t\t\t\tpass\n+\t\t\ttmp_stdout.close()\n+\t\t\ttmp_stderr.close()\n+\t\t\tif returncode != 0:\n+\t\t\t\traise Exception, stderr\n+\t\texcept Exception, e:\n+\t\t\tstop_err( \'Error in :\\n\' + str( e ) )\n+\n+\tif options.outputTar != None:\n+\t\ttoTar(options.outputTar, overlapOutputNames)\t\n+\t\n+\tfor tmp_file in tmp_files:\n+\t\tos.remove(tmp_file)\n+\n+\n+if __name__=="__main__": __main__()\t\t\n+\t\t\n+\t\t\n'
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/compareOverlapping_parallel.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/compareOverlapping_parallel.xml Tue Apr 30 14:33:21 2013 -0400
[
b'@@ -0,0 +1,251 @@\n+<tool id="CompareOverlapping_parallel" name="CompareOverlapping (for DEA)">\n+\t<description>Shrink or extend the sets of genomic coordinates to get the information between starts of reads and starts of genes.</description>\n+\t<command interpreter="python">\n+\t\tcompareOverlapping_parallel.py -i $formatType.inputFileName1\n+\t\t#if $formatType.FormatInputFileName1 == \'bed\':\n+\t\t\t-f bed\n+\t\t#elif $formatType.FormatInputFileName1 == \'gff\':\n+\t\t\t-f gff\t\n+\t\t#elif $formatType.FormatInputFileName1 == \'gff2\':\n+\t\t\t-f gff2\n+\t\t#elif $formatType.FormatInputFileName1 == \'gff3\':\n+\t\t\t-f gff3\n+\t\t#elif $formatType.FormatInputFileName1 == \'sam\':\n+\t\t\t-f sam\n+\t\t#elif $formatType.FormatInputFileName1 == \'gtf\':\n+\t\t\t-f gtf\n+\t\t#end if\n+\t\t\t\n+\t\t--inputTxt $inputTxt \n+\t\t\n+\t\t-g $format2\n+\n+\t\t--outTxt $outTxtFile\n+\n+\t\t#if $optionNFirstFile1.NFirstForFile1 == \'Yes\':\n+\t\t\t-S $optionNFirstFile1.firstNtFile1\n+\t\t#end if\n+\t\t#if $optionNFirstFile2.NFirstForFile2 == \'Yes\':\n+\t\t\t-s $optionNFirstFile2.firstNtFile2\n+\t\t#end if\n+\t\t#if $optionNLastFile1.NLastForFile1 == \'Yes\':\n+\t\t\t-U $optionNLastFile1.lastNtFile1\n+\t\t#end if\n+\t\t#if $optionNLastFile2.NLastForFile2 == \'Yes\':\n+\t\t\t-u $optionNLastFile2.lastNtFile2\n+\t\t#end if\n+\t\n+\t\t#if $optionExtentionCinqFile1.extentionFile1 == \'Yes\':\n+\t\t\t-E $optionExtentionCinqFile1.extention51\n+\t\t#end if\n+\t\t#if $optionExtentionCinqFile2.extentionFile2 == \'Yes\':\n+\t\t\t-e $optionExtentionCinqFile2.extention52\n+\t\t#end if\n+\n+\t\t#if $optionExtentionTroisFile1.extentionFile1 == \'Yes\':\n+\t\t\t-N $optionExtentionTroisFile1.extention31\n+\t\t#end if\n+\t\t#if $optionExtentionTroisFile2.extentionFile2 == \'Yes\':\n+\t\t\t-n $optionExtentionTroisFile2.extention32\n+\t\t#end if\t\n+\n+\t\t#if $OptionColinearOrAntiSens.OptionCA == \'Colinear\':\n+\t\t\t-c \n+\t\t#elif $OptionColinearOrAntiSens.OptionCA == \'AntiSens\':\n+\t\t\t-a\n+\t\t#end if\t\n+\n+\t\t#if $OptionDistance.Dist == \'Yes\':\n+\t\t\t-d $OptionDistance.distance\n+\t\t#end if\n+\n+\t\t#if $OptionMinOverlap.MO == \'Yes\':\n+\t\t\t-m $OptionMinOverlap.minOverlap\n+\t\t#end if\n+\n+\t\t$InvertMatch\n+\t\t$ReportIntron\n+\t\t$NotOverlapping\n+\t\t$tar $outputTarFile\n+\t</command>\n+\n+\t<inputs>\n+\n+\t\t<conditional name="formatType">\n+\t\t\t<param name="FormatInputFileName1" type="select" label="Input File Format 1">\n+\t\t\t\t<option value="bed">bed</option>\n+\t\t\t\t<option value="gff">gff</option>\n+\t\t\t\t<option value="gff2">gff2</option>\n+\t\t\t\t<option value="gff3">gff3</option>\n+\t\t\t\t<option value="sam">sam</option>\n+\t\t\t\t<option value="gtf">gtf</option>\n+\t\t\t</param>\n+\t\t\t<when value="bed">\n+\t\t\t\t<param name="inputFileName1" format="bed" type="data" label="Input File 1"/>\n+\t\t\t</when>\n+\t\t\t<when value="gff">\n+\t\t\t\t<param name="inputFileName1" format="gff" type="data" label="Input File 1"/>\n+\t\t\t</when>\n+\t\t\t<when value="gff2">\n+\t\t\t\t<param name="inputFileName1" format="gff2" type="data" label="Input File 1"/>\n+\t\t\t</when>\n+\t\t\t<when value="gff3">\n+\t\t\t\t<param name="inputFileName1" format="gff3" type="data" label="Input File 1"/>\n+\t\t\t</when>\n+\t\t\t<when value="sam">\n+\t\t\t\t<param name="inputFileName1" format="sam" type="data" label="Input File 1"/>\n+\t\t\t</when>\n+\t\t\t<when value="gtf">\n+\t\t\t\t<param name="inputFileName1" format="gtf" type="data" label="Input File 1"/>\n+            </when>\n+\t\t</conditional>\n+\t\t\n+\t\t<param name="inputTxt" type="data" format="txt" label="A txt file contains a list of several input transcripts files." />\n+\t\t\n+\t\t<param name="format2" type="text" value="bed" label="format for  File 2, you can choose [bed, gff, gff2, gff3, sam, gtf]"/>\n+\t\t\n+\t\t<conditional name="optionNFirstFile1">\n+\t\t\t<param name="NFirstForFile1" type="select" label="NFirst for file 1" help="only consider the n first nucleotides of the transcripts in file 1">\n+\t\t\t\t\t<option value="Yes">Yes</option>\n+\t\t\t\t\t<option value="No" selected="true">No</option>\n+\t\t\t</param>\n+\t\t\t<when value="Yes">\n+\t\t\t\t<param name="firstNtFile1" type="integer" value="1" label="n first nucleotides for input file 1" />\n+\t\t\t</when>\n+\t\t\t<when value="No">\n+\t\t\t</when>\n+\t\t</conditional>\n+\t\t<conditional name="optionNFirstFile2">\n+\t\t\t<param name="NFirs'..b'tForFile2" type="select" label="NLast for file 2">\n+\t\t\t\t<option value="Yes">Yes</option>\n+\t\t\t\t<option value="No" selected="true">No</option>\n+\t\t\t</param>\n+\t\t\t<when value="Yes">\n+\t\t\t\t<param name="lastNtFile2" type="integer" value="1" label="n last nucleotides for input file 2" help="only consider the n last nucleotides of the transcripts in file 2"/>\n+\t\t\t</when>\n+\t\t\t<when value="No">\n+\t\t\t</when>\n+\t\t</conditional>\n+\n+\t\t<conditional name="optionExtentionCinqFile1">\n+\t\t\t<param name="extentionFile1" type="select" label="Extension towards 5 for file 1">\n+\t\t\t\t\t<option value="Yes">Yes</option>\n+\t\t\t\t\t<option value="No" selected="true">No</option>\n+\t\t\t</param>\n+\t\t\t<when value="Yes">\n+\t\t\t\t<param name="extention51" type="integer" value="1" label="in file 1" />\n+\t\t\t</when>\n+\t\t\t<when value="No">\n+\t\t\t</when>\n+\t\t</conditional>\n+\n+\t\t<conditional name="optionExtentionCinqFile2">\n+\t\t\t<param name="extentionFile2" type="select" label="Extension towards 5 for file 2">\n+\t\t\t\t<option value="Yes">Yes</option>\n+\t\t\t\t<option value="No" selected="true">No</option>\n+\t\t\t</param>\n+\t\t\t<when value="Yes">\n+\t\t\t\t<param name="extention52" type="integer" value="1" label="in file 2"/>\n+\t\t\t</when>\n+\t\t\t<when value="No">\n+\t\t\t</when>\n+\t\t</conditional>\n+\n+\t\t<conditional name="optionExtentionTroisFile1">\n+\t\t\t<param name="extentionFile1" type="select" label="Extension towards 3 for file 1">\n+\t\t\t\t\t<option value="Yes">Yes</option>\n+\t\t\t\t\t<option value="No" selected="true">No</option>\n+\t\t\t</param>\n+\t\t\t<when value="Yes">\n+\t\t\t\t<param name="extention31" type="integer" value="1" label="in file 1" />\n+\t\t\t</when>\n+\t\t\t<when value="No">\n+\t\t\t</when>\n+\t\t</conditional>\n+\n+\t\t<conditional name="optionExtentionTroisFile2">\n+\t\t\t<param name="extentionFile2" type="select" label="Extension towards 3 for file 2">\n+\t\t\t\t<option value="Yes">Yes</option>\n+\t\t\t\t<option value="No" selected="true">No</option>\n+\t\t\t</param>\n+\t\t\t<when value="Yes">\n+\t\t\t\t<param name="extention32" type="integer" value="1" label="in file 2" />\n+\t\t\t</when>\n+\t\t\t<when value="No">\n+\t\t\t</when>\n+\t\t</conditional>\n+\n+\t\t<conditional name="OptionColinearOrAntiSens">\n+\t\t\t<param name="OptionCA" type="select" label="Colinear or anti-sens">\n+\t\t\t\t<option value="Colinear">Colinear</option>\n+\t\t\t\t<option value="AntiSens">AntiSens</option>\n+\t\t\t\t<option value="NONE" selected="true">NONE</option>\n+\t\t\t</param>\n+\t\t\t<when value="Colinear">\n+\t\t\t</when>\n+\t\t\t<when value="AntiSens">\n+\t\t\t</when>\n+\t\t\t<when value="NONE">\n+\t\t\t</when>\n+\t\t</conditional>\n+\n+\t\t<conditional name="OptionDistance">\n+\t\t\t<param name="Dist" type="select" label="Maximum Distance between two reads">\n+\t\t\t\t<option value="Yes">Yes</option>\n+\t\t\t\t<option value="No" selected="true">No</option>\n+\t\t\t</param>\n+\t\t\t<when value="Yes">\n+\t\t\t\t<param name="distance" type="integer" value="0"/>\n+\t\t\t</when>\n+\t\t\t<when value="No">\n+\t\t\t</when>\n+\t\t</conditional>\n+\n+\t\t<conditional name="OptionMinOverlap">\n+\t\t\t<param name="MO" type="select" label="Minimum number of overlapping between two reads">\n+\t\t\t\t<option value="Yes">Yes</option>\n+\t\t\t\t<option value="No" selected="true">No</option>\n+\t\t\t</param>\n+\t\t\t<when value="Yes">\n+\t\t\t\t<param name="minOverlap" type="integer" value="1"/>\n+\t\t\t</when>\n+\t\t\t<when value="No">\n+\t\t\t</when>\n+\t\t</conditional>\n+\t\t<param name="InvertMatch" type="boolean" truevalue="-x" falsevalue="" checked="false" label="Invert match"/>\n+\t\t<param name="ReportIntron" type="boolean" truevalue="-t" falsevalue="" checked="false" label="Report intron"/>\n+\t\t<param name="NotOverlapping" type="boolean" truevalue="-O" falsevalue="" checked="false" label="When there is no overlapping, the number of Overlapping will be set to 0 by defalt."/>\n+\t\t<param name="tar" type="boolean" truevalue="--tar" falsevalue="" checked="false" label="tar option" help="This option creates a tar file for all out results." />\n+\t</inputs>\n+\n+\t<outputs>\n+\t\t<data name="outTxtFile" format="txt" label="overlapping output files "/>\n+\t\t<data name="outputTarFile" format="tar">\n+\t\t  <filter>tar</filter>\n+\t  </data>\n+\t</outputs> \n+\t\n+</tool>\n'
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/compareOverlapping_parallel_unSQL.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/compareOverlapping_parallel_unSQL.py Tue Apr 30 14:33:21 2013 -0400
[
b'@@ -0,0 +1,205 @@\n+#! /usr/bin/env python\n+#This program is a wrapp for CompareOverlapping.py.\n+import os, sys, tarfile, optparse\n+from commons.core.launcher.Launcher import Launcher\n+from commons.core.sql.TableJobAdaptatorFactory import TableJobAdaptatorFactory\n+from optparse import OptionParser\n+from commons.core.utils.FileUtils import FileUtils\n+from commons.core.parsing.ParserChooser import ParserChooser\n+from SMART.Java.Python.structure.TranscriptList import TranscriptList\n+from commons.core.writer.WriterChooser import WriterChooser\n+\n+def stop_err( msg ):\n+\tsys.stderr.write( "%s\\n" % msg )\n+\tsys.exit()\n+\n+def toTar(tarFileName, overlapOutputNames):\n+\tdir = os.path.dirname(tarFileName)\t\n+\ttfile = tarfile.open(tarFileName + ".tmp.tar", "w")\n+\tcurrentPath = os.getcwd()\n+\tos.chdir(dir)\n+\tfor file in overlapOutputNames:\n+\t\trelativeFileName = os.path.basename(file)\n+\t\ttfile.add(relativeFileName)\n+\tos.system("mv %s %s" % (tarFileName + ".tmp.tar", tarFileName))\n+\ttfile.close()\n+\tos.chdir(currentPath)\n+\n+def _createCompareOverlappingCmd(iLauncher, options, inputFileName, annotationFile, overlapOutputName):\n+\tlArgs = []\n+\tlArgs.append("-i %s" % annotationFile)\n+\tlArgs.append("-f %s" % options.format1)\n+\tlArgs.append("-j %s" % inputFileName)\n+\tlArgs.append("-g %s" % options.format2)\n+\tlArgs.append("-o %s" % overlapOutputName)\n+\tif options.notOverlapping:\n+\t\tlArgs.append("-O")\n+\tif options.exclude:\n+\t\tlArgs.append("-x")\n+\tif options.distance != None:\n+\t\tlArgs.append("-d %s" % options.distance)\n+\treturn(iLauncher.getSystemCommand("python %s/SMART/Java/Python/CompareOverlappingSmallQuery.py"  %  os.environ["REPET_PATH"], lArgs))\n+\n+def _map(iLauncher, cmd, cmdStart, cmdFinish ):\n+\tlCmds = []\n+\tlCmds.append(cmd)\n+\tlCmdStart = []\n+\tlCmdStart.append(cmdStart)\n+\tlCmdFinish = []\n+\tlCmdFinish.append(cmdFinish)\n+\treturn(iLauncher.prepareCommands_withoutIndentation(lCmds, lCmdStart, lCmdFinish))\n+\n+def split(fileName, nbOfSeqPerBatch):\n+\tfilePrefix, fileExt = os.path.splitext(os.path.basename(fileName))\n+\tresDir = os.path.dirname(fileName)\n+\tlInputName = []\n+\tfileNb = 1\n+\tSeqNb = 0\n+\toutFileName = "%s/%s-%s%s" %(resDir, filePrefix, fileNb, fileExt)\n+\tlInputName.append(outFileName)\n+\toutFile = open(outFileName, "w")\n+\tf = open(fileName, "r")\n+\tline = f.readline()\n+\tpreviousRefName = ""\n+\twhile line != "":\n+\t\tif not line.startswith(\'@SQ\'):\n+\t\t\tif SeqNb == nbOfSeqPerBatch:\n+\t\t\t\tSeqNb = 0\n+\t\t\t\tfileNb += 1\n+\t\t\t\toutFile.close()\n+\t\t\t\toutFileName = "%s/%s-%s%s" %(resDir, filePrefix, fileNb, fileExt)\n+\t\t\t\tlInputName.append(outFileName)\n+\t\t\t\toutFile = open(outFileName, "w")\n+\t\t\trefName = line.split("\\t")[2]\n+\t\t\tif previousRefName != refName:\n+\t\t\t\tSeqNb += 1\n+\t\t\t\toutFile.write(line)\n+\t\t\telse:\n+\t\t\t\tpreviousRefName = refName\n+\t\t\t\toutFile.write(line)\n+\t\tline = f.readline()\n+\treturn lInputName\t\t\n+\n+def join(dCutOut2Out, options):\n+\tchooser = ParserChooser()\n+\tchooser.findFormat("gtf")\n+\tgtfParser = chooser.getParser(options.inputFileName1)\n+\tref = {}\n+\tfor transcript in gtfParser.getIterator():\n+\t\tref[transcript.getTagValue("ID")] = transcript\n+\tfor key in dCutOut2Out.keys():\n+\t\twriterChooser = WriterChooser()\n+\t\twriterChooser.findFormat("gff3")\n+\t\tfor inputFile in dCutOut2Out[key]:\n+\t\t\tchooser = ParserChooser()\n+\t\t\tchooser.findFormat("gff")\n+\t\t\tgffParser = chooser.getParser(inputFile)\n+\t\t\tfor transcript in gffParser.getIterator():\n+\t\t\t\t\tfinalTranscript = ref[transcript.getTagValue("ID")]\n+\t\t\t\t\tif finalTranscript.getTagValue("nbOverlaps"):\n+\t\t\t\t\t\tnbOverlap = int(finalTranscript.getTagValue("nbOverlaps")) + int(transcript.getTagValue("nbOverlaps"))\n+\t\t\t\t\t\tfinalTranscript.setTagValue("nbOverlaps", nbOverlap)\n+\t\t\t\t\telse:\n+\t\t\t\t\t\tfinalTranscript.setTagValue("nbOverlaps", transcript.getTagValue("nbOverlaps"))\n+\t\t\t\t\t\n+\t\t\t\t\tif finalTranscript.getTagValue("overlapsWith") and transcript.getTagValue("overlapsWith") != None:\n+\t\t\t\t\t\toverlapName = "--".join([finalTranscript.getTagValue("overlapsWith"), transcript.getTagValue("overlapsWith")])\n+\t\t\t\t\t\tfinalTranscript.set'..b'pe="int",\thelp="extension towards 3\' in file 2 [format: int]")\n+\tparser.add_option("-c", "--colinear",\t\t dest="colinear",\t   action="store_true", default=False,\t\t\t\thelp="colinear only [format: bool] [default: false]")\n+\tparser.add_option("-a", "--antisense",\t\tdest="antisense",\t  action="store_true", default=False,\t\t\t\thelp="antisense only [format: bool] [default: false]")\n+\tparser.add_option("-d", "--distance",\t\t dest="distance",\t   action="store",\t  default=None,\t type="int",\thelp="accept some distance between query and reference [format: int]")\n+\tparser.add_option("-k", "--included",\t\t dest="included",\t   action="store_true", default=False,\t\t\t\thelp="keep only elements from file 1 which are included in an element of file 2 [format: bool] [default: false]")\n+\tparser.add_option("-K", "--including",\t\tdest="including",\t  action="store_true", default=False,\t\t\t\thelp="keep only elements from file 2 which are included in an element of file 1 [format: bool] [default: false]")\n+\tparser.add_option("-m", "--minOverlap",\t   dest="minOverlap",\t action="store",\t  default=None,\t type="int",\thelp="minimum number of nucleotides overlapping to declare an overlap [format: int] [default: 1]")\n+\tparser.add_option("-p", "--pcOverlap",\t\tdest="pcOverlap",\t  action="store",\t  default=None,  type="int",\thelp="minimum percentage of nucleotides to overlap to declare an overlap [format: int]")\n+\tparser.add_option("-O", "--notOverlapping",   dest="notOverlapping", action="store_true", default=False,\t\t\t\thelp="also output not overlapping data [format: bool] [default: false]")\n+\tparser.add_option("-x", "--exclude",\t\t  dest="exclude",\t\taction="store_true", default=False,\t\t\t\thelp="invert the match [format: bool] [default: false]")\n+\tparser.add_option("-v", "--verbosity",\t\tdest="verbosity",\t  action="store",\t  default=1,\t type="int",\thelp="trace level [format: int]")\n+\tparser.add_option(\'\', \'--tar\', dest=\'outputTar\', default=None, help=\'output all SAM results in a tar file.\' )\n+\tparser.add_option( \'\', \'--outTxt\', dest=\'outTxtFile\', help=\'The output list of results files on txt format.[compulsory]\' )\n+\t(options, args) = parser.parse_args()\n+\t\n+\t\n+\t#Parse the input txt file and read a list of BAM files.\n+\tfile = open(options.inputTxt, "r")\n+\tlines = file.readlines()\n+\tinputFileNames = []\n+\toverlapOutputNames = []\n+\toutputName = options.outTxtFile\n+\tresDirName = os.path.dirname(outputName) + "/"\n+\t#Write output txt file and define all output sam file names.\n+\tout = open(outputName, "w")\n+\tfor line in lines:\n+\t\ttab = line.split()\n+\t\tinputFileNames.append(tab[1])\n+\t\toverlapOutName = resDirName + tab[0] + \'_overlapOut.gff3\'\n+\t\toverlapOutputNames.append(overlapOutName)\n+\t\tout.write(tab[0] + \'\\t\' + overlapOutName  + \'\\n\')\n+\tfile.close()\n+\tout.close()\n+\t\n+\t#Launch on nodes\n+\tacronym = "compareOverlapping"\n+\tjobdb = TableJobAdaptatorFactory.createJobInstance()\n+\tiLauncher = Launcher(jobdb, os.getcwd(), "", "", os.getcwd(), os.getcwd(), "jobs", "test", acronym, acronym, False, True)\n+\n+\n+\t\n+\n+\t#construction the commandes for each input file\n+\tlCmdsTuples = []\n+\tdCutOut2Out = {}\n+\tlAllFile2remove = []\n+\tfor i in range(len(inputFileNames)):\n+\t\tlCutInputFile = split(inputFileNames[i], 20000)\n+\t\tlAllFile2remove.extend(lCutInputFile)\n+\t\tlCutOutput = []\n+\t\tfor cutInput in lCutInputFile:\n+\t\t\tcutOutput = "%s_out" % cutInput\n+\t\t\tlCutOutput.append(cutOutput)\n+\t\t\tlAllFile2remove.extend(lCutOutput)\n+\t\t\tcmd2Launch = _createCompareOverlappingCmd(iLauncher, options, cutInput, options.inputFileName1, cutOutput)\n+\t\t\tlCmdsTuples.append(_map(iLauncher, cmd2Launch, "", ""))\n+\t\tchooser = ParserChooser()\n+\t\tchooser.findFormat(options.format2)\n+\t\tdCutOut2Out[overlapOutputNames[i]] = lCutOutput\n+\tiLauncher.runLauncherForMultipleJobs(acronym, lCmdsTuples, True)\n+\t\n+\tjoin(dCutOut2Out, options)\n+\tFileUtils.removeFilesFromListIfExist(lAllFile2remove)\n+\n+\tif options.outputTar != None:\n+\t\ttoTar(options.outputTar, overlapOutputNames)\t\n+\n+if __name__=="__main__": __main__()\t\t\n\\ No newline at end of file\n'
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/compareOverlapping_parallel_unSQL.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/compareOverlapping_parallel_unSQL.xml Tue Apr 30 14:33:21 2013 -0400
[
b'@@ -0,0 +1,251 @@\n+<tool id="CompareOverlapping_parallel_unSQL" name="CompareOverlapping (for DEA in parallel)">\n+\t<description>Shrink or extend the sets of genomic coordinates to get the information between starts of reads and starts of genes (parallelized).</description>\n+\t<command interpreter="python">\n+\t\tcompareOverlapping_parallel_unSQL.py -i $formatType.inputFileName1\n+\t\t#if $formatType.FormatInputFileName1 == \'bed\':\n+\t\t\t-f bed\n+\t\t#elif $formatType.FormatInputFileName1 == \'gff\':\n+\t\t\t-f gff\t\n+\t\t#elif $formatType.FormatInputFileName1 == \'gff2\':\n+\t\t\t-f gff2\n+\t\t#elif $formatType.FormatInputFileName1 == \'gff3\':\n+\t\t\t-f gff3\n+\t\t#elif $formatType.FormatInputFileName1 == \'sam\':\n+\t\t\t-f sam\n+\t\t#elif $formatType.FormatInputFileName1 == \'gtf\':\n+\t\t\t-f gtf\n+\t\t#end if\n+\t\t\t\n+\t\t--inputTxt $inputTxt \n+\t\t\n+\t\t-g $format2\n+\n+\t\t--outTxt $outTxtFile\n+\n+\t\t#if $optionNFirstFile1.NFirstForFile1 == \'Yes\':\n+\t\t\t-S $optionNFirstFile1.firstNtFile1\n+\t\t#end if\n+\t\t#if $optionNFirstFile2.NFirstForFile2 == \'Yes\':\n+\t\t\t-s $optionNFirstFile2.firstNtFile2\n+\t\t#end if\n+\t\t#if $optionNLastFile1.NLastForFile1 == \'Yes\':\n+\t\t\t-U $optionNLastFile1.lastNtFile1\n+\t\t#end if\n+\t\t#if $optionNLastFile2.NLastForFile2 == \'Yes\':\n+\t\t\t-u $optionNLastFile2.lastNtFile2\n+\t\t#end if\n+\t\n+\t\t#if $optionExtentionCinqFile1.extentionFile1 == \'Yes\':\n+\t\t\t-E $optionExtentionCinqFile1.extention51\n+\t\t#end if\n+\t\t#if $optionExtentionCinqFile2.extentionFile2 == \'Yes\':\n+\t\t\t-e $optionExtentionCinqFile2.extention52\n+\t\t#end if\n+\n+\t\t#if $optionExtentionTroisFile1.extentionFile1 == \'Yes\':\n+\t\t\t-N $optionExtentionTroisFile1.extention31\n+\t\t#end if\n+\t\t#if $optionExtentionTroisFile2.extentionFile2 == \'Yes\':\n+\t\t\t-n $optionExtentionTroisFile2.extention32\n+\t\t#end if\t\n+\n+\t\t#if $OptionColinearOrAntiSens.OptionCA == \'Colinear\':\n+\t\t\t-c \n+\t\t#elif $OptionColinearOrAntiSens.OptionCA == \'AntiSens\':\n+\t\t\t-a\n+\t\t#end if\t\n+\n+\t\t#if $OptionDistance.Dist == \'Yes\':\n+\t\t\t-d $OptionDistance.distance\n+\t\t#end if\n+\n+\t\t#if $OptionMinOverlap.MO == \'Yes\':\n+\t\t\t-m $OptionMinOverlap.minOverlap\n+\t\t#end if\n+\n+\t\t$InvertMatch\n+\t\t$ReportIntron\n+\t\t$NotOverlapping\n+\t\t$tar $outputTarFile\n+\t</command>\n+\n+\t<inputs>\n+\n+\t\t<conditional name="formatType">\n+\t\t\t<param name="FormatInputFileName1" type="select" label="Input File Format 1">\n+\t\t\t\t<option value="bed">bed</option>\n+\t\t\t\t<option value="gff">gff</option>\n+\t\t\t\t<option value="gff2">gff2</option>\n+\t\t\t\t<option value="gff3">gff3</option>\n+\t\t\t\t<option value="sam">sam</option>\n+\t\t\t\t<option value="gtf">gtf</option>\n+\t\t\t</param>\n+\t\t\t<when value="bed">\n+\t\t\t\t<param name="inputFileName1" format="bed" type="data" label="Input File 1"/>\n+\t\t\t</when>\n+\t\t\t<when value="gff">\n+\t\t\t\t<param name="inputFileName1" format="gff" type="data" label="Input File 1"/>\n+\t\t\t</when>\n+\t\t\t<when value="gff2">\n+\t\t\t\t<param name="inputFileName1" format="gff2" type="data" label="Input File 1"/>\n+\t\t\t</when>\n+\t\t\t<when value="gff3">\n+\t\t\t\t<param name="inputFileName1" format="gff3" type="data" label="Input File 1"/>\n+\t\t\t</when>\n+\t\t\t<when value="sam">\n+\t\t\t\t<param name="inputFileName1" format="sam" type="data" label="Input File 1"/>\n+\t\t\t</when>\n+\t\t\t<when value="gtf">\n+\t\t\t\t<param name="inputFileName1" format="gtf" type="data" label="Input File 1"/>\n+            </when>\n+\t\t</conditional>\n+\t\t\n+\t\t<param name="inputTxt" type="data" format="txt" label="A txt file contains a list of several input transcripts files." />\n+\t\t\n+\t\t<param name="format2" type="text" value="bed" label="format for  File 2, you can choose [bed, gff, gff2, gff3, sam, gtf]"/>\n+\t\t\n+\t\t<conditional name="optionNFirstFile1">\n+\t\t\t<param name="NFirstForFile1" type="select" label="NFirst for file 1" help="only consider the n first nucleotides of the transcripts in file 1">\n+\t\t\t\t\t<option value="Yes">Yes</option>\n+\t\t\t\t\t<option value="No" selected="true">No</option>\n+\t\t\t</param>\n+\t\t\t<when value="Yes">\n+\t\t\t\t<param name="firstNtFile1" type="integer" value="1" label="n first nucleotides for input file 1" />\n+\t\t\t</when>\n+\t\t\t<when value="No">\n+\t\t\t</when>\n+\t\t</conditional>\n+\t\t<conditional name="opt'..b'tForFile2" type="select" label="NLast for file 2">\n+\t\t\t\t<option value="Yes">Yes</option>\n+\t\t\t\t<option value="No" selected="true">No</option>\n+\t\t\t</param>\n+\t\t\t<when value="Yes">\n+\t\t\t\t<param name="lastNtFile2" type="integer" value="1" label="n last nucleotides for input file 2" help="only consider the n last nucleotides of the transcripts in file 2"/>\n+\t\t\t</when>\n+\t\t\t<when value="No">\n+\t\t\t</when>\n+\t\t</conditional>\n+\n+\t\t<conditional name="optionExtentionCinqFile1">\n+\t\t\t<param name="extentionFile1" type="select" label="Extension towards 5 for file 1">\n+\t\t\t\t\t<option value="Yes">Yes</option>\n+\t\t\t\t\t<option value="No" selected="true">No</option>\n+\t\t\t</param>\n+\t\t\t<when value="Yes">\n+\t\t\t\t<param name="extention51" type="integer" value="1" label="in file 1" />\n+\t\t\t</when>\n+\t\t\t<when value="No">\n+\t\t\t</when>\n+\t\t</conditional>\n+\n+\t\t<conditional name="optionExtentionCinqFile2">\n+\t\t\t<param name="extentionFile2" type="select" label="Extension towards 5 for file 2">\n+\t\t\t\t<option value="Yes">Yes</option>\n+\t\t\t\t<option value="No" selected="true">No</option>\n+\t\t\t</param>\n+\t\t\t<when value="Yes">\n+\t\t\t\t<param name="extention52" type="integer" value="1" label="in file 2"/>\n+\t\t\t</when>\n+\t\t\t<when value="No">\n+\t\t\t</when>\n+\t\t</conditional>\n+\n+\t\t<conditional name="optionExtentionTroisFile1">\n+\t\t\t<param name="extentionFile1" type="select" label="Extension towards 3 for file 1">\n+\t\t\t\t\t<option value="Yes">Yes</option>\n+\t\t\t\t\t<option value="No" selected="true">No</option>\n+\t\t\t</param>\n+\t\t\t<when value="Yes">\n+\t\t\t\t<param name="extention31" type="integer" value="1" label="in file 1" />\n+\t\t\t</when>\n+\t\t\t<when value="No">\n+\t\t\t</when>\n+\t\t</conditional>\n+\n+\t\t<conditional name="optionExtentionTroisFile2">\n+\t\t\t<param name="extentionFile2" type="select" label="Extension towards 3 for file 2">\n+\t\t\t\t<option value="Yes">Yes</option>\n+\t\t\t\t<option value="No" selected="true">No</option>\n+\t\t\t</param>\n+\t\t\t<when value="Yes">\n+\t\t\t\t<param name="extention32" type="integer" value="1" label="in file 2" />\n+\t\t\t</when>\n+\t\t\t<when value="No">\n+\t\t\t</when>\n+\t\t</conditional>\n+\n+\t\t<conditional name="OptionColinearOrAntiSens">\n+\t\t\t<param name="OptionCA" type="select" label="Colinear or anti-sens">\n+\t\t\t\t<option value="Colinear">Colinear</option>\n+\t\t\t\t<option value="AntiSens">AntiSens</option>\n+\t\t\t\t<option value="NONE" selected="true">NONE</option>\n+\t\t\t</param>\n+\t\t\t<when value="Colinear">\n+\t\t\t</when>\n+\t\t\t<when value="AntiSens">\n+\t\t\t</when>\n+\t\t\t<when value="NONE">\n+\t\t\t</when>\n+\t\t</conditional>\n+\n+\t\t<conditional name="OptionDistance">\n+\t\t\t<param name="Dist" type="select" label="Maximum Distance between two reads">\n+\t\t\t\t<option value="Yes">Yes</option>\n+\t\t\t\t<option value="No" selected="true">No</option>\n+\t\t\t</param>\n+\t\t\t<when value="Yes">\n+\t\t\t\t<param name="distance" type="integer" value="0"/>\n+\t\t\t</when>\n+\t\t\t<when value="No">\n+\t\t\t</when>\n+\t\t</conditional>\n+\n+\t\t<conditional name="OptionMinOverlap">\n+\t\t\t<param name="MO" type="select" label="Minimum number of overlapping between two reads">\n+\t\t\t\t<option value="Yes">Yes</option>\n+\t\t\t\t<option value="No" selected="true">No</option>\n+\t\t\t</param>\n+\t\t\t<when value="Yes">\n+\t\t\t\t<param name="minOverlap" type="integer" value="1"/>\n+\t\t\t</when>\n+\t\t\t<when value="No">\n+\t\t\t</when>\n+\t\t</conditional>\n+\t\t<param name="InvertMatch" type="boolean" truevalue="-x" falsevalue="" checked="false" label="Invert match"/>\n+\t\t<param name="ReportIntron" type="boolean" truevalue="-t" falsevalue="" checked="false" label="Report intron"/>\n+\t\t<param name="NotOverlapping" type="boolean" truevalue="-O" falsevalue="" checked="false" label="When there is no overlapping, the number of Overlapping will be set to 0 by defalt."/>\n+\t\t<param name="tar" type="boolean" truevalue="--tar" falsevalue="" checked="false" label="tar option" help="This option creates a tar file for all out results." />\n+\t</inputs>\n+\n+\t<outputs>\n+\t\t<data name="outTxtFile" format="txt" label="overlapping output files "/>\n+\t\t<data name="outputTarFile" format="tar">\n+\t\t  <filter>tar</filter>\n+\t  </data>\n+\t</outputs> \n+\t\n+</tool>\n'
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/countNumber.pl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/countNumber.pl Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,34 @@
+#!/usr/bin/perl -w
+
+use strict;
+
+my $in_file = $ARGV[0];
+my $out_file = $ARGV[1];
+my $sort_type = $ARGV[2]; # n(umeric) or a(lphanumeric)
+my ($line,$ID,$nbOverlaps,%hash);
+
+open(IN, $in_file);
+while ($line = <IN>){
+ chomp($line);
+ $line=~s/\t/|/g;
+ my @part=split(/\|/,$line);
+ my @split=split(";",$part[$#part]);
+ $split[0] =~ m/^(\w+).+$/;
+
+ foreach my $i (@split){
+ if ($i=~m/nbOverlaps=(.+)/){
+ $nbOverlaps=$1;
+ }
+ if ($i=~m/gene_id=(.+)/){
+ $ID=$1;
+ $hash{$ID}=$nbOverlaps;
+ }
+ }
+}
+close(IN);
+
+open(OUT, ">$out_file");
+foreach my $key ( sort keys %hash) {
+ print OUT "$key\t$hash{$key}\n";
+}
+close(OUT);
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/countNumber.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/countNumber.xml Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,16 @@
+<tool id="countNumber" name="countNumber">
+ <description>Calculate the number of reads(annotations) overlapping for each transcript.</description>
+ <command interpreter="perl"> countNumber.pl $input $outputCSV
+ </command>
+
+ <inputs>
+ <param name="input" type="data" format="gff3" label="Please choose your gff3 format file (which contains the number of overlaps)."/>
+ </inputs>
+
+ <outputs>
+ <data format="csv" name="outputCSV" label="countNumber Output"/>
+ </outputs>
+
+ <help>
+ </help>
+</tool>
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/countNumber_parallel.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/countNumber_parallel.py Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,96 @@
+#! /usr/bin/env python
+
+
+import optparse, os, sys, subprocess, tempfile, shutil, tarfile, random
+from optparse import OptionParser
+
+def stop_err(msg):
+ sys.stderr.write('%s\n' % msg)
+ sys.exit()
+
+def toTar(tarFileName, outCountNames):
+ dir = os.path.dirname(tarFileName)
+ tfile = tarfile.open(tarFileName + ".tmp.tar", "w")
+ currentPath = os.getcwd()
+ os.chdir(dir)
+ for file in outCountNames:
+ relativeFileName = os.path.basename(file)
+ tfile.add(relativeFileName)
+ os.system("mv %s %s" % (tarFileName + ".tmp.tar", tarFileName))
+ tfile.close()
+ os.chdir(currentPath)
+
+
+def __main__():
+ #Parse Command Line
+ parser = optparse.OptionParser()
+ parser.add_option("-i", "--input", dest="inputFile", help="input txt file, a list of overlapping results files.")
+ parser.add_option("-o", "--output", dest="outputFile", help="Out txt file.")
+ parser.add_option("-t", "--tar", dest="outputTar", default=None, help="output all count results in a tar file.")
+ (options, args) = parser.parse_args()
+
+ #Parse the input txt file and read a list of transcripts files.
+ file = open(options.inputFile, "r")
+ lines = file.readlines()
+ inputFileNames = []
+ outCountNames = []
+ outputName = options.outputFile
+ resDirName = os.path.dirname(outputName) + '/'
+
+ #Write output txt file and define all output count file names
+ out = open(outputName, "w")
+ out.write("label\tfiles\tgroup\n")
+ for line in lines:
+ tab = line.split()
+ inputFileNames.append(tab[1])
+ outCountName = resDirName + tab[0] + "_outCount_%s.csv" % random.randrange(0, 10000)
+ outCountNames.append(outCountName)
+ out.write(tab[0] + '\t' + outCountName + '\t' + tab[0][5] + '\n')
+ file.close()
+ out.close()
+
+ #Construct the lines commands
+ cmds = []
+ for i in range(len(inputFileNames)):
+ cmd = "perl %s/SMART/DiffExpAnal/countNumber.pl " %  os.environ["REPET_PATH"]
+ opts = "%s %s " % (inputFileNames[i], outCountNames[i])
+ cmd += opts
+ cmds.append(cmd)
+
+ tmp_files = []
+ for i in range(len(cmds)):
+ try:
+ tmp_out = tempfile.NamedTemporaryFile().name
+ tmp_files.append(tmp_out)
+ tmp_stdout = open(tmp_out, 'wb')
+ tmp_err = tempfile.NamedTemporaryFile().name
+ tmp_files.append(tmp_err)
+ tmp_stderr = open(tmp_err, 'wb')
+ proc = subprocess.Popen(args=cmds[i], shell=True, cwd=".", stdout=tmp_stdout, stderr=tmp_stderr)
+ returncode = proc.wait()
+ tmp_stderr.close()
+ #get stderr, allowing for case where it's very large
+ tmp_stderr = open(tmp_err, 'rb')
+ stderr = ''
+ buffsize = 1048576
+ try:
+ while True:
+ stderr += tmp_stderr.read(buffsize)
+ if not stderr or len(stderr) % buffsize != 0:
+ break
+ except OverflowError:
+ pass
+ tmp_stdout.close()
+ tmp_stderr.close()
+ if returncode != 0:
+ raise Exception, stderr
+ except Exception, e:
+ stop_err('Error in :\n' + str(e))
+
+ if options.outputTar != None:
+ toTar(options.outputTar, outCountNames)
+
+ for tmp_file in tmp_files:
+ os.remove(tmp_file)
+
+if __name__=="__main__":__main__()
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/countNumber_parallel.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/countNumber_parallel.xml Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,19 @@
+<tool id="countNumber_parallel" name="countNumber (for DEA)">
+
+ <description>Calculate the number of reads(annotations) overlapping for each transcript.</description>
+ <command interpreter="python"> countNumber_parallel.py -i $inputTxt -o $outputTxt $tar $outputTarFile
+ </command>
+
+ <inputs>
+ <param name="inputTxt" type="data" format="txt" label="Please choose your txt format file (which contains a list of gff3 overlapping results files)."/>
+ <param name="tar" type="boolean" truevalue="-t" falsevalue="" checked="False" label="tar option" help="This option creates a tar file for all out results" />
+ </inputs>
+
+ <outputs>
+ <data format="txt" name="outputTxt" label="countNumber Output"/>
+ <data name="outputTarFile" format="tar">
+ <filter>tar</filter>
+ </data>
+ </outputs>
+
+</tool>
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/countNumber_parallel_unSQL.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/countNumber_parallel_unSQL.py Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,91 @@
+#! /usr/bin/env python
+
+
+import optparse, os, sys, tarfile, random
+from optparse import OptionParser
+from commons.core.launcher.Launcher import Launcher
+from commons.core.sql.TableJobAdaptatorFactory import TableJobAdaptatorFactory
+
+def stop_err(msg):
+ sys.stderr.write('%s\n' % msg)
+ sys.exit()
+
+def toTar(tarFileName, outCountNames):
+ dir = os.path.dirname(tarFileName)
+ tfile = tarfile.open(tarFileName + ".tmp.tar", "w")
+ currentPath = os.getcwd()
+ os.chdir(dir)
+ for file in outCountNames:
+ relativeFileName = os.path.basename(file)
+ tfile.add(relativeFileName)
+ os.system("mv %s %s" % (tarFileName + ".tmp.tar", tarFileName))
+ tfile.close()
+ os.chdir(currentPath)
+
+def _map(iLauncher, cmd, cmdStart, cmdFinish ):
+ lCmds = []
+ lCmds.append(cmd)
+ lCmdStart = []
+ lCmdStart.append(cmdStart)
+ lCmdFinish = []
+ lCmdFinish.append(cmdFinish)
+ return(iLauncher.prepareCommands_withoutIndentation(lCmds, lCmdStart, lCmdFinish))
+
+def _createCountNumberCommand(iLauncher, inputFile, outputFile):
+ lArgs = []
+ lArgs.append("%s" % inputFile)
+ lArgs.append("%s" %  outputFile)
+ return iLauncher.getSystemCommand("perl %s/SMART/DiffExpAnal/countNumber.pl " %  os.environ["REPET_PATH"], lArgs)
+
+def __main__():
+ #Parse Command Line
+ parser = optparse.OptionParser()
+ parser.add_option("-i", "--input", dest="inputFile", help="input txt file, a list of overlapping results files.")
+ parser.add_option("-o", "--output", dest="outputFile", help="Out txt file.")
+ parser.add_option("-t", "--tar", dest="outputTar", default=None, help="output all count results in a tar file.")
+ (options, args) = parser.parse_args()
+
+ #Parse the input txt file and read a list of transcripts files.
+ file = open(options.inputFile, "r")
+ lines = file.readlines()
+ inputFileNames = []
+ outCountNames = []
+ outputName = options.outputFile
+ resDirName = os.path.dirname(outputName) + '/'
+
+ #Write output txt file and define all output count file names
+ out = open(outputName, "w")
+ out.write("label\tfiles\tgroup\n")
+ for line in lines:
+ tab = line.split()
+ inputFileNames.append(tab[1])
+ outCountName = resDirName + tab[0] + "_outCount_%s.csv" % random.randrange(0, 10000)
+ outCountNames.append(outCountName)
+ out.write(tab[0] + '\t' + outCountName + '\t' + tab[0][5] + '\n')
+ file.close()
+ out.close()
+
+ #Launch on nodes
+ acronym = "countNumber"
+ jobdb = TableJobAdaptatorFactory.createJobInstance()
+ iLauncher = Launcher(jobdb, os.getcwd(), "", "", os.getcwd(), os.getcwd(), "jobs", "", acronym, acronym, False, True)
+ lCmdsTuples = []
+ for i in range(len(inputFileNames)): #Construct the lines commands
+ inputFile = inputFileNames[i]
+ outputFile = outCountNames[i]
+ cmd2Launch = _createCountNumberCommand(iLauncher, inputFile, outputFile)
+ cmdStart = ""
+ cmdFinish = ""
+ lCmdsTuples.append(_map(iLauncher, cmd2Launch, cmdStart, cmdFinish))
+
+
+
+ iLauncher.runLauncherForMultipleJobs(acronym, lCmdsTuples, True)
+
+
+
+ if options.outputTar != None:
+ toTar(options.outputTar, outCountNames)
+
+
+if __name__=="__main__":__main__()
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/countNumber_parallel_unSQL.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/countNumber_parallel_unSQL.xml Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,19 @@
+<tool id="countNumber_parallel_unSQL" name="countNumber (for DEA in parallel)">
+
+ <description>Calculate the number of reads(annotations) overlapping for each transcript (parallelized).</description>
+ <command interpreter="python"> countNumber_parallel_unSQL.py -i $inputTxt -o $outputTxt $tar $outputTarFile
+ </command>
+
+ <inputs>
+ <param name="inputTxt" type="data" format="txt" label="Please choose your txt format file (which contains a list of gff3 overlapping results files)."/>
+ <param name="tar" type="boolean" truevalue="-t" falsevalue="" checked="False" label="tar option" help="This option creates a tar file for all out results" />
+ </inputs>
+
+ <outputs>
+ <data format="txt" name="outputTxt" label="countNumber Output"/>
+ <data name="outputTarFile" format="tar">
+ <filter>tar</filter>
+ </data>
+ </outputs>
+
+</tool>
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/deseq.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/deseq.sh Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,21 @@
+#! /bin/sh
+
+#Arguments :
+#$1=targetFile(the list of files) 
+#$2=with or without header
+#$3=with or without replicates
+#$4=OUT_HTML.html
+#$5=OUT_HTML images directory
+#$6=OUT_complete.xls
+#$7=OUT_up.xls
+#$8=OUT_down.xls
+
+#run example: 
+#bash deseq.sh DESeqTools/targetTest.txt 1 1 testOUT_HTML.html /tmp/ testOUT_complet.xls testOUT_up.xls testOUT_down.xls
+
+#echo $5
+#mkdir -p $5 #First, create the images tmp directory given by Galaxy, -p option can create the parent directory which dosen't exist.
+
+mkdir -p $5
+MY_PATH=`dirname $0` 
+cat $MY_PATH/DESeqTools/anadiffGenes2conds.R | R --slave --args $1 $2 $3 $4 $5 $6 $7 $8 $0 < $MY_PATH/DESeqTools/anadiffGenes2conds.R
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/deseq.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/deseq.xml Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,22 @@
+<tool id="DESEQ" name="DESEQ for differential expression analysis">
+  <description>Differential expression analysis for reads count data</description>
+  <command interpreter="bash"> deseq.sh $inputFile $header $withOutReplicates $outHTML $outHTML.files_path $outComplete $outUP $outDown 2> $log </command>
+
+  <inputs>
+      <param name="inputFile" type="data" label="Input File list" format="txt"/>
+      <param name="header" type="boolean" truevalue="1" falsevalue="0" checked="false" label="If there is a header for your count files, please choose this case."/>
+      <param name="withOutReplicates" type="boolean" truevalue="1" falsevalue="0" checked="false" label="If your data has not replicates, please choose this case."/>
+
+  </inputs>
+
+  <outputs>
+      <data format="HTML" name="outHTML" label="[DESEQ] Output HTML File" help="This output file shows all results images by DESeq analysis"/> 
+      <data format="tabular" name="outComplete" label="[DESEQ] Output complete File"/> 
+      <data format="tabular" name="outUP" label="[DESEQ] Output up File" help="This output file shows the genes of group1 which are overexpressed than those of group2"/> 
+      <data format="tabular" name="outDown" label="[DESEQ] Output down File" help="This output file shows the  genes of group1 which are less expressed than those of group2"/>
+      <data format="txt" name="log" label="[DESEQ] Output log File"/> 
+  </outputs>
+
+  <help>
+  </help>
+</tool>
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/fastq_groomer_parallel.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/fastq_groomer_parallel.py Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,115 @@
+import sys, os, optparse, random
+from galaxy_utils.sequence.fastq import fastqReader, fastqVerboseErrorReader, fastqAggregator, fastqWriter
+
+def stop_err(msg):
+ sys.stderr.write("%s\n" % msg)
+ sys.exit()
+
+def main():
+
+    input_filename = sys.argv[1]  #a txt file
+    input_type = sys.argv[2]
+    output_filename = sys.argv[3] #a txt file
+    output_type = sys.argv[4]
+    force_quality_encoding = sys.argv[5]
+    summarize_input = sys.argv[6] == 'summarize_input'
+    pairedEnd_input = sys.argv[7] 
+    if pairedEnd_input == 'None':
+     pairedEnd_input = None
+    else:
+ output_pairedEndFileName = sys.argv[8]
+
+    if force_quality_encoding == 'None':
+        force_quality_encoding = None
+
+    #Parse the input txt file and read a list of fastq files
+    file = open(input_filename, "r")
+    lines = file.readlines()
+    inputFileNames = []
+    outGroomerNames = []
+    resDirName = os.path.dirname(output_filename) + "/"
+    #Write output txt file and define all output groomer file names
+    outFile = open(output_filename, "w")
+    for line in lines:
+ tab = line.split()
+ inputFileNames.append(tab[1])
+ outGroomerName = resDirName + tab[0] + '_outGroomer_%s.fastq' % random.randrange(0, 10000)
+ outGroomerNames.append(outGroomerName)
+ outFile.write(tab[0] + '\t' + outGroomerName + '\n')
+    outFile.close()
+    file.close()
+
+    if pairedEnd_input != None:
+ inPairedFile = open(pairedEnd_input, "r")
+ lines = inPairedFile.readlines()
+ inputPairedEndFileNames = []
+ outGroomerPairedEndNames = []
+ outPairedEndFile = open(output_pairedEndFileName, "w")
+ for line in lines:
+ tab = line.split()
+ inputPairedEndFileNames.append(tab[1])
+ outGroomerPairedEndName = resDirName + tab[0] + '_outGroomer_pairedEnd_%s.fastq' % random.randrange(0, 10000)
+ outGroomerPairedEndNames.append(outGroomerPairedEndName)
+ outPairedEndFile.write(tab[0] + '\t' + outGroomerPairedEndName + '\n')
+ outPairedEndFile.close()
+        inPairedFile.close()
+    
+    # Write output file
+    aggregator = fastqAggregator()
+    for i in range(len(outGroomerNames)):
+ out = fastqWriter( open( outGroomerNames[i], 'wb' ), format = output_type, force_quality_encoding = force_quality_encoding )
+ read_count = None
+ if summarize_input:
+     reader = fastqVerboseErrorReader
+ else:
+     reader = fastqReader
+ for read_count, fastq_read in enumerate( reader( open( inputFileNames[i] ), format = input_type, apply_galaxy_conventions = True ) ):
+     if summarize_input:
+         aggregator.consume_read( fastq_read )
+     out.write( fastq_read )
+ out.close()
+     
+ if read_count is not None:
+     print "Groomed %i %s reads into %s reads." % ( read_count + 1, input_type, output_type )
+     if input_type != output_type and 'solexa' in [ input_type, output_type ]:
+         print "Converted between Solexa and PHRED scores."
+     if summarize_input:
+         print "Based upon quality and sequence, the input data is valid for: %s" % ( ", ".join( aggregator.get_valid_formats() )  or "None" )
+         ascii_range = aggregator.get_ascii_range()
+         decimal_range =  aggregator.get_decimal_range()
+         print "Input ASCII range: %s(%i) - %s(%i)" % ( repr( ascii_range[0] ), ord( ascii_range[0] ), repr( ascii_range[1] ), ord( ascii_range[1] ) ) #print using repr, since \x00 (null) causes info truncation in galaxy when printed
+         print "Input decimal range: %i - %i" % ( decimal_range[0], decimal_range[1] )        
+ else:
+      print "No valid FASTQ reads were provided."
+
+
+    # Write output pairedEnd file
+    if pairedEnd_input != None:
+     aggregator = fastqAggregator()
+     for i in range(len(outGroomerPairedEndNames)):
+     outPair = fastqWriter(open(outGroomerPairedEndNames[i], 'wb'), format = output_type, force_quality_encoding = force_quality_encoding)
+     read_count = None
+     if summarize_input:
+     reader = fastqVerboseErrorReader
+     else:
+     reader = fastqReader
+     for read_count, fastq_reader in enumerate(reader(open(inputPairedEndFileNames[i]), format=input_type, apply_galaxy_conventions=True)):
+    if summarize_input:
+     aggregator.consume_read(fastq_read)
+    outPair.write(fastq_read)
+     outPair.close()
+
+     if read_count is not None:
+      print "Groomed %i %s reads into %s reads." % ( read_count + 1, input_type, output_type )
+     if input_type != output_type and 'solexa' in [ input_type, output_type ]:
+     print "Converted between Solexa and PHRED scores."
+     if summarize_input:
+     print "Based upon quality and sequence, the input data is valid for: %s" % ( ", ".join( aggregator.get_valid_formats() )  or "None" )
+ ascii_range = aggregator.get_ascii_range()
+ decimal_range =  aggregator.get_decimal_range()
+ print "Input ASCII range: %s(%i) - %s(%i)" % ( repr( ascii_range[0] ), ord( ascii_range[0] ), repr( ascii_range[1] ), ord( ascii_range[1] ) ) #print using repr, since \x00 (null) causes info truncation in galaxy when printed
+ print "Input decimal range: %i - %i" % ( decimal_range[0], decimal_range[1] )
+     else:
+      print "No valid paired-end FASTQ reads were provided."
+
+if __name__ == "__main__": main()
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/fastq_groomer_parallel.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/fastq_groomer_parallel.xml Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,122 @@
+<tool id="fastq_groomer_parallel" name="FASTQ Groomer (for DEA)" version="1.0.0">
+  <description>convert between various FASTQ quality formats for a list of inputs.</description>
+  <command interpreter="python">fastq_groomer_parallel.py '$input_file' '$input_type' '$output_file'
+#if str( $options_type['options_type_selector'] ) == 'basic':
+#if str( $input_type ) == 'cssanger':
+'cssanger'
+#else:
+'sanger'
+#end if
+'ascii' 'summarize_input'
+#else:
+'${options_type.output_type}' '${options_type.force_quality_encoding}' '${options_type.summarize_input}'
+#end if
+#if $OptionPairedEnd.pairedEnd == "Yes":
+'$OptionPairedEnd.pairedEnd_input' '$output_pairedEndFile'
+#else:
+'None' 'None'
+#end if
+</command>
+  <inputs>
+    <param name="input_file" type="data" format="txt" label="The File list to groom" />
+    <param name="input_type" type="select" label="Input FASTQ quality scores type">
+      <option value="solexa">Solexa</option>
+      <option value="illumina">Illumina 1.3-1.7</option>
+      <option value="sanger" selected="True">Sanger</option>
+      <option value="cssanger">Color Space Sanger</option>
+    </param>
+    <conditional name="options_type">
+    <param name="options_type_selector" type="select" label="Advanced Options">
+      <option value="basic" selected="True">Hide Advanced Options</option>
+      <option value="advanced">Show Advanced Options</option>
+    </param>
+    <when value="basic">
+      <!-- no options -->
+    </when>
+    <when value="advanced">
+      <param name="output_type" type="select" label="Output FASTQ quality scores type" help="Galaxy tools are designed to work with the Sanger Quality score format.">
+        <option value="solexa">Solexa</option>
+        <option value="illumina">Illumina 1.3+</option>
+        <option value="sanger" selected="True">Sanger (recommended)</option>
+        <option value="cssanger">Color Space Sanger</option>
+      </param>
+      <param name="force_quality_encoding" type="select" label="Force Quality Score encoding">
+        <option value="None">Use Source Encoding</option>
+        <option value="ascii" selected="True">ASCII</option>
+        <option value="decimal">Decimal</option>
+      </param>
+      <param name="summarize_input" type="select" label="Summarize input data">
+        <option value="summarize_input" selected="True">Summarize Input</option>
+        <option value="dont_summarize_input">Do not Summarize Input (faster)</option>
+      </param>
+    </when>
+  </conditional>
+
+  <conditional name="OptionPairedEnd">
+   <param name="pairedEnd" type="select" label="For paired-end analysis.">
+   <option value="Yes">Yes</option>
+   <option value="No" selected="true">No</option>
+   </param>
+   <when value="Yes">
+   <param name="pairedEnd_input" type="data" format="txt" label="input paired-end files list"/>
+   </when>
+   <when value="No">
+   </when>
+  </conditional>
+
+  </inputs>
+
+  <outputs>
+    <data name="output_file" format="txt">
+    </data>
+    <data format="txt" name="output_pairedEndFile" label="output Paired-end fastq files">
+     <filter>(OptionPairedEnd['pairedEnd']=='Yes')</filter>
+    </data>
+  </outputs>
+  <help>
+**What it does**
+
+This tool offers several conversions options relating to the FASTQ format.
+
+When using *Basic* options, the output will be *sanger* formatted or *cssanger* formatted (when the input is Color Space Sanger).
+
+When converting, if a quality score falls outside of the target score range, it will be coerced to the closest available value (i.e. the minimum or maximum). 
+
+When converting between Solexa and the other formats, quality scores are mapped between Solexa and PHRED scales using the equations found in `Cock PJ, Fields CJ, Goto N, Heuer ML, Rice PM. The Sanger FASTQ file format for sequences with quality scores, and the Solexa/Illumina FASTQ variants. Nucleic Acids Res. 2009 Dec 16.`_
+
+When converting between color space (csSanger) and base/sequence space (Sanger, Illumina, Solexa) formats, adapter bases are lost or gained; if gained, the base 'G' is used as the adapter. You cannot convert a color space read to base space if there is no adapter present in the color space sequence. Any masked or ambiguous nucleotides in base space will be converted to 'N's when determining color space encoding.
+
+-----
+
+**Quality Score Comparison**
+
+::
+
+    SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
+    ...............................IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
+    ..........................XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+    !"#$%&amp;'()*+,-./0123456789:;&lt;=&gt;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
+    |                         |    |        |                              |                     |
+   33                        59   64       73                            104                   126
+  
+   S - Sanger       Phred+33,  93 values  (0, 93) (0 to 60 expected in raw reads)
+   I - Illumina 1.3 Phred+64,  62 values  (0, 62) (0 to 40 expected in raw reads)
+   X - Solexa       Solexa+64, 67 values (-5, 62) (-5 to 40 expected in raw reads)
+
+Diagram adapted from http://en.wikipedia.org/wiki/FASTQ_format
+
+.. class:: infomark
+
+Output from Illumina 1.8+ pipelines are Sanger encoded.
+
+------
+
+**Citation**
+
+If you use this tool, please cite `Blankenberg D, Gordon A, Von Kuster G, Coraor N, Taylor J, Nekrutenko A; Galaxy Team. Manipulation of FASTQ data with Galaxy. Bioinformatics. 2010 Jul 15;26(14):1783-5. &lt;http://www.ncbi.nlm.nih.gov/pubmed/20562416&gt;`_
+
+
+.. _Cock PJ, Fields CJ, Goto N, Heuer ML, Rice PM. The Sanger FASTQ file format for sequences with quality scores, and the Solexa/Illumina FASTQ variants. Nucleic Acids Res. 2009 Dec 16.: http://www.ncbi.nlm.nih.gov/pubmed/20015970
+
+  </help>
+</tool>
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/fastq_groomer_parallel_unSQL.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/fastq_groomer_parallel_unSQL.py Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,168 @@
+import sys, os, optparse,shutil, random
+from commons.core.launcher.Launcher import Launcher
+from commons.core.sql.TableJobAdaptatorFactory import TableJobAdaptatorFactory
+from commons.core.utils.FileUtils import FileUtils
+
+def _map(iLauncher, cmd, cmdStart, cmdFinish ):
+ lCmds = []
+ lCmds.extend(cmd)
+ lCmdStart = []
+ lCmdStart.extend(cmdStart)
+ lCmdFinish = []
+ lCmdFinish.extend(cmdFinish)
+ return(iLauncher.prepareCommands_withoutIndentation(lCmds, lCmdStart, lCmdFinish))
+
+def splitFastQ(fileName, nbOfSeqPerBatch):
+ nbOfLinesPerFile = nbOfSeqPerBatch * 4
+ lOutput = []
+ filePrefix, fileExt = os.path.splitext(os.path.basename(fileName))
+ resDir = os.path.dirname(fileName)
+ with open(fileName) as inF:
+ fileNb = 1
+ line = inF.readline()
+ if not line or nbOfLinesPerFile == 0:
+ outFileName = "%s/%s-%s%s" %(resDir, filePrefix, fileNb, fileExt)
+ lOutput.append(outFileName)
+ f = open(outFileName, "wb")
+ shutil.copyfileobj(open(fileName, "rb"), f)
+ f.close()
+ else:
+ while line:
+ outFileName = "%s/%s-%s%s" %(resDir, filePrefix, fileNb, fileExt)
+ lOutput.append(outFileName)
+ with open(outFileName, "w") as outF:
+ lineNb = 1
+ while lineNb <= nbOfLinesPerFile and line:
+ outF.write(line)
+ line = inF.readline()
+ lineNb += 1
+ fileNb += 1
+ return lOutput
+
+def joinFastQ(dCutOut2Out):
+ for key in dCutOut2Out.keys():
+ FileUtils.catFilesFromList(dCutOut2Out[key],key, False)
+
+def _createFastqGroomerCode(outGroomerNames, inputFileNames, input_type, output_type, force_quality_encoding, summarize_input):
+ cmd2Launch = []
+ cmd2Launch.append("log = 0")
+ cmd2Launch.append("from galaxy_utils.sequence.fastq import fastqReader, fastqVerboseErrorReader, fastqAggregator, fastqWriter")
+ cmd2Launch.append("aggregator = fastqAggregator()")
+ cmd2Launch.append("out = fastqWriter( open( '%s', 'wb' ), format = '%s', force_quality_encoding = '%s')" % (outGroomerNames,output_type,force_quality_encoding))
+ cmd2Launch.append("read_count = None")
+ if summarize_input:
+ cmd2Launch.append("reader = fastqVerboseErrorReader")
+ else:
+ cmd2Launch.append("reader = fastqReader")
+ cmd2Launch.append("for read_count, fastq_read in enumerate( reader( open( '%s' ), format = '%s', apply_galaxy_conventions = True ) ):" % (inputFileNames, input_type))
+ if summarize_input:
+ cmd2Launch.append("\taggregator.consume_read( fastq_read )")
+ cmd2Launch.append("\tout.write( fastq_read )")
+ cmd2Launch.append("out.close()")
+ cmd2Launch.append("if read_count is not None:")
+ #cmd2Launch.append("\tprint 'Groomed %s %s reads into %s reads.' % ( read_count + 1, %s, %s )" % ('%i', '%s', '%s', input_type,output_type))
+ cmd2Launch.append("\tif '%s' != '%s' and 'solexa' in [ '%s', '%s' ]:" % (input_type, output_type, input_type, output_type))
+ cmd2Launch.append("\t\tprint 'Converted between Solexa and PHRED scores.'")
+ if summarize_input:
+ cmd2Launch.append("\tprint 'Based upon quality and sequence, the input data is valid for: %s' % ( ', '.join( aggregator.get_valid_formats() )  or 'None' )")
+ cmd2Launch.append("\tascii_range = aggregator.get_ascii_range()")
+ cmd2Launch.append("\tdecimal_range =  aggregator.get_decimal_range()")
+ cmd2Launch.append("\tprint 'Input ASCII range: %s(%i) - %s(%i)' % ( repr( ascii_range[0] ), ord( ascii_range[0] ), repr( ascii_range[1] ), ord( ascii_range[1] ) )")
+ cmd2Launch.append("\tprint 'Input decimal range: %i - %i' % ( decimal_range[0], decimal_range[1] ) ")
+ cmd2Launch.append("else:")
+ cmd2Launch.append("\tprint 'No valid FASTQ reads were provided.'")
+ cmd2Launch.append("\tlog = 255")
+ return cmd2Launch
+
+def stop_err(msg):
+ sys.stderr.write("%s\n" % msg)
+ sys.exit()
+
+def main():
+
+ input_filename = sys.argv[1]  #a txt file
+ input_type = sys.argv[2]
+ output_filename = sys.argv[3] #a txt file
+ output_type = sys.argv[4]
+ force_quality_encoding = sys.argv[5]
+ summarize_input = sys.argv[6] == 'summarize_input'
+ pairedEnd_input = sys.argv[7]
+ if pairedEnd_input == 'None':
+ pairedEnd_input = None
+ else:
+ output_pairedEndFileName = sys.argv[8]
+
+ if force_quality_encoding == 'None':
+ force_quality_encoding = None
+
+ #Parse the input txt file and read a list of fastq files
+ file = open(input_filename, "r")
+ lines = file.readlines()
+ inputFileNames = []
+ outGroomerNames = []
+ resDirName = os.path.dirname(output_filename) + "/"
+ #Write output txt file and define all output groomer file names
+ outFile = open(output_filename, "w")
+ for line in lines:
+ tab = line.split()
+ inputFileNames.append(tab[1])
+ outGroomerName = resDirName + tab[0] + '_outGroomer_%s.fastq' % random.randrange(0, 10000)
+ outGroomerNames.append(outGroomerName)
+ outFile.write(tab[0] + '\t' + outGroomerName + '\n')
+ outFile.close()
+ file.close()
+
+ if pairedEnd_input != None:
+ inPairedFile = open(pairedEnd_input, "r")
+ lines = inPairedFile.readlines()
+ inputPairedEndFileNames = []
+ outGroomerPairedEndNames = []
+ outPairedEndFile = open(output_pairedEndFileName, "w")
+ for line in lines:
+ tab = line.split()
+ inputPairedEndFileNames.append(tab[1])
+ outGroomerPairedEndName = resDirName + tab[0] + '_outGroomer_pairedEnd_%s.fastq' % random.randrange(0, 10000)
+ outGroomerPairedEndNames.append(outGroomerPairedEndName)
+ outPairedEndFile.write(tab[0] + '\t' + outGroomerPairedEndName + '\n')
+ outPairedEndFile.close()
+ inPairedFile.close()
+
+ acronym = "fastqGroomer"
+ jobdb = TableJobAdaptatorFactory.createJobInstance()
+ iLauncher = Launcher(jobdb, os.getcwd(), "", "", os.getcwd(), os.getcwd(), "jobs", "", acronym, acronym, False, True)
+ lCmdsTuples = []
+ dCutOut2Out = {}
+ lAllFile2remove = []
+ # Write output file
+ for i in range(len(outGroomerNames)):
+ lCutInputFile = splitFastQ(inputFileNames[i], 20000)
+ lAllFile2remove.extend(lCutInputFile)
+ lCutOutput = []
+ for cutInput in lCutInputFile:
+ cutOutput = "%s_out" % cutInput
+ lCutOutput.append(cutOutput)
+ lAllFile2remove.extend(lCutOutput)
+ cmd2Launch = _createFastqGroomerCode(cutOutput, cutInput, input_type, output_type, force_quality_encoding, summarize_input)
+ cmdStart = []
+ cmdFinish = []
+ lCmdsTuples.append(_map(iLauncher, cmd2Launch, cmdStart, cmdFinish))
+ dCutOut2Out[outGroomerNames[i]] = lCutOutput
+ if pairedEnd_input != None:
+ lCutInputFile = splitFastQ(inputPairedEndFileNames[i], 20000)
+ lAllFile2remove.extend(lCutInputFile)
+ lCutOutput = []
+ for cutInput in lCutInputFile:
+ cutOutput = "%s_out" % cutInput
+ lCutOutput.append(cutOutput)
+ lAllFile2remove.extend(lCutOutput)
+ cmd2Launch = _createFastqGroomerCode(cutOutput, cutInput, input_type, output_type, force_quality_encoding, summarize_input)
+ cmdStart = []
+ cmdFinish = []
+ lCmdsTuples.append(_map(iLauncher, cmd2Launch, cmdStart, cmdFinish))
+ dCutOut2Out[outGroomerPairedEndNames[i]] =  lCutOutput
+ iLauncher.runLauncherForMultipleJobs(acronym, lCmdsTuples, False)
+
+ joinFastQ(dCutOut2Out)
+ FileUtils.removeFilesFromListIfExist(lAllFile2remove)
+
+if __name__ == "__main__": main()
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/fastq_groomer_parallel_unSQL.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/fastq_groomer_parallel_unSQL.xml Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,122 @@
+<tool id="fastq_groomer_parallel_unSQL" name="FASTQ Groomer (for DEA in parallel)" version="1.0.0">
+  <description>convert between various FASTQ quality formats for a list of inputs (parallelized).</description>
+  <command interpreter="python">fastq_groomer_parallel_unSQL.py '$input_file' '$input_type' '$output_file'
+#if str( $options_type['options_type_selector'] ) == 'basic':
+#if str( $input_type ) == 'cssanger':
+'cssanger'
+#else:
+'sanger'
+#end if
+'ascii' 'summarize_input'
+#else:
+'${options_type.output_type}' '${options_type.force_quality_encoding}' '${options_type.summarize_input}'
+#end if
+#if $OptionPairedEnd.pairedEnd == "Yes":
+'$OptionPairedEnd.pairedEnd_input' '$output_pairedEndFile'
+#else:
+'None' 'None'
+#end if
+</command>
+  <inputs>
+    <param name="input_file" type="data" format="txt" label="The File list to groom" />
+    <param name="input_type" type="select" label="Input FASTQ quality scores type">
+      <option value="solexa">Solexa</option>
+      <option value="illumina">Illumina 1.3-1.7</option>
+      <option value="sanger" selected="True">Sanger</option>
+      <option value="cssanger">Color Space Sanger</option>
+    </param>
+    <conditional name="options_type">
+    <param name="options_type_selector" type="select" label="Advanced Options">
+      <option value="basic" selected="True">Hide Advanced Options</option>
+      <option value="advanced">Show Advanced Options</option>
+    </param>
+    <when value="basic">
+      <!-- no options -->
+    </when>
+    <when value="advanced">
+      <param name="output_type" type="select" label="Output FASTQ quality scores type" help="Galaxy tools are designed to work with the Sanger Quality score format.">
+        <option value="solexa">Solexa</option>
+        <option value="illumina">Illumina 1.3+</option>
+        <option value="sanger" selected="True">Sanger (recommended)</option>
+        <option value="cssanger">Color Space Sanger</option>
+      </param>
+      <param name="force_quality_encoding" type="select" label="Force Quality Score encoding">
+        <option value="None">Use Source Encoding</option>
+        <option value="ascii" selected="True">ASCII</option>
+        <option value="decimal">Decimal</option>
+      </param>
+      <param name="summarize_input" type="select" label="Summarize input data">
+        <option value="summarize_input" selected="True">Summarize Input</option>
+        <option value="dont_summarize_input">Do not Summarize Input (faster)</option>
+      </param>
+    </when>
+  </conditional>
+
+  <conditional name="OptionPairedEnd">
+   <param name="pairedEnd" type="select" label="For paired-end analysis.">
+   <option value="Yes">Yes</option>
+   <option value="No" selected="true">No</option>
+   </param>
+   <when value="Yes">
+   <param name="pairedEnd_input" type="data" format="txt" label="input paired-end files list"/>
+   </when>
+   <when value="No">
+   </when>
+  </conditional>
+
+  </inputs>
+
+  <outputs>
+    <data name="output_file" format="txt">
+    </data>
+    <data format="txt" name="output_pairedEndFile" label="output Paired-end fastq files">
+     <filter>(OptionPairedEnd['pairedEnd']=='Yes')</filter>
+    </data>
+  </outputs>
+  <help>
+**What it does**
+
+This tool offers several conversions options relating to the FASTQ format.
+
+When using *Basic* options, the output will be *sanger* formatted or *cssanger* formatted (when the input is Color Space Sanger).
+
+When converting, if a quality score falls outside of the target score range, it will be coerced to the closest available value (i.e. the minimum or maximum). 
+
+When converting between Solexa and the other formats, quality scores are mapped between Solexa and PHRED scales using the equations found in `Cock PJ, Fields CJ, Goto N, Heuer ML, Rice PM. The Sanger FASTQ file format for sequences with quality scores, and the Solexa/Illumina FASTQ variants. Nucleic Acids Res. 2009 Dec 16.`_
+
+When converting between color space (csSanger) and base/sequence space (Sanger, Illumina, Solexa) formats, adapter bases are lost or gained; if gained, the base 'G' is used as the adapter. You cannot convert a color space read to base space if there is no adapter present in the color space sequence. Any masked or ambiguous nucleotides in base space will be converted to 'N's when determining color space encoding.
+
+-----
+
+**Quality Score Comparison**
+
+::
+
+    SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
+    ...............................IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
+    ..........................XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+    !"#$%&amp;'()*+,-./0123456789:;&lt;=&gt;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
+    |                         |    |        |                              |                     |
+   33                        59   64       73                            104                   126
+  
+   S - Sanger       Phred+33,  93 values  (0, 93) (0 to 60 expected in raw reads)
+   I - Illumina 1.3 Phred+64,  62 values  (0, 62) (0 to 40 expected in raw reads)
+   X - Solexa       Solexa+64, 67 values (-5, 62) (-5 to 40 expected in raw reads)
+
+Diagram adapted from http://en.wikipedia.org/wiki/FASTQ_format
+
+.. class:: infomark
+
+Output from Illumina 1.8+ pipelines are Sanger encoded.
+
+------
+
+**Citation**
+
+If you use this tool, please cite `Blankenberg D, Gordon A, Von Kuster G, Coraor N, Taylor J, Nekrutenko A; Galaxy Team. Manipulation of FASTQ data with Galaxy. Bioinformatics. 2010 Jul 15;26(14):1783-5. &lt;http://www.ncbi.nlm.nih.gov/pubmed/20562416&gt;`_
+
+
+.. _Cock PJ, Fields CJ, Goto N, Heuer ML, Rice PM. The Sanger FASTQ file format for sequences with quality scores, and the Solexa/Illumina FASTQ variants. Nucleic Acids Res. 2009 Dec 16.: http://www.ncbi.nlm.nih.gov/pubmed/20015970
+
+  </help>
+</tool>
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/gsnap.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/gsnap.xml Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,42 @@
+<tool id="gsnap" name="gsnap">
+
+ <description>GSNAP version 2012-12-20. 
+              GMAP: A Genomic Mapping and Alignment Program for mRNA and EST Sequences, and
+                 GSNAP: Genomic Short-read Nucleotide Alignment Program 
+    </description>
+    
+ <command interpreter="python"> wrappGSNAP.py 
+ -d $genomeName -i $inputFasta -k $kmer -q $inputFastq -A $outputFormat -o $outputSam
+
+ #if $optionPairedEnd.paire == 'Yes':
+ -p $optionPairedEnd.pairedEndFile
+ #end if
+
+ </command>
+
+ <inputs>
+ <param name="inputFasta" type="data" format="fasta" label="Reference genome file, fasta format."/>
+ <param name="genomeName" type="text" value="Arabidopsis_Thaliana" label="Please give the reference genome a name! (Ex. Arabidopsis_Thaliana)"/>
+ <param name="kmer" type="integer" value="12" label="Choose kmer value (superior or egal at 16), a big kmer value can take more RAM(4Go)." />
+ <param name="inputFastq" type="data" format="fastq" label="Input fastq file."/>
+ <param name="outputFormat" type="text" format="sam" label="Choose an output format [sam, goby (need to re-compile with appropriate options)]."/>
+
+ <conditional name="optionPairedEnd">
+ <param name="paire" type="select" label="pairedEnd fastq file">
+ <option value="Yes">Yes</option>
+ <option value="No" selected="true">No</option>
+ </param>
+ <when value="Yes">
+ <param name="pairedEndFile" type="data" format="fastq"/>
+ </when>
+ <when value="No">
+ </when>
+ </conditional>
+
+ </inputs>
+
+ <outputs>
+ <data format="sam" name="outputSam" label="gsnap Output"/>
+ </outputs>
+
+</tool>
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/gsnap_parallel_unSQL.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/gsnap_parallel_unSQL.py Tue Apr 30 14:33:21 2013 -0400
[
b'@@ -0,0 +1,195 @@\n+#!/usr/bin/env python\n+\n+import optparse, os, shutil, subprocess, sys, tempfile, fileinput, tarfile, glob \n+import time\n+from commons.core.launcher.Launcher import Launcher\n+from commons.core.sql.TableJobAdaptatorFactory import TableJobAdaptatorFactory\n+from commons.core.utils.FileUtils import FileUtils\n+from optparse import OptionParser\n+\n+def stop_err( msg ):\n+    sys.stderr.write( "%s\\n" % msg )\n+    sys.exit()\n+\n+def toTar(tarFileName, accepted_hits_outputNames):\n+    tfile = tarfile.open(tarFileName + ".tmp.tar", "w")\n+    currentPath = os.getcwd()\n+    os.chdir(dir)\n+    for file in accepted_hits_outputNames:\n+        relativeFileName = os.path.basename(file)\n+        tfile.add(relativeFileName)\n+    os.system("mv %s %s" % (tarFileName + ".tmp.tar", tarFileName))\n+    tfile.close()\n+    os.chdir(currentPath)\n+    \n+def joinSAM(dCutOut2Out):\n+    for key in dCutOut2Out.keys():\n+        FileUtils.catFilesFromList(dCutOut2Out[key],key, False)\n+        \n+def _map(iLauncher, cmd, cmdStart, cmdFinish ):\n+    lCmds = []\n+    lCmds.extend(cmd)\n+    lCmdStart = []\n+    lCmdStart.extend(cmdStart)\n+    lCmdFinish = []\n+    lCmdFinish.extend(cmdFinish)\n+    return(iLauncher.prepareCommands_withoutIndentation(lCmds, lCmdStart, lCmdFinish))\n+\n+def _createGsnapSplicingOptions(options):\n+    lArgs = []\n+    lArgs.append("-N %s" % options.novelsplicing)\n+    if options.useSplicing:\n+        lArgs.append("-s %s" % options.useSplicing)\n+    lArgs.append("-w %s" % options.localsplicedist)\n+    lArgs.append("-e %s" % options.localSplicePenality)\n+    lArgs.append("-E %s" % options.distantSplicePenality)\n+    lArgs.append("-K %s" % options.distantSpliceEndlength)\n+    lArgs.append("-l %s" % options.shortendSpliceEndlength)\n+    \n+    \n+    return lArgs\n+\n+def _createGsnapPairedEndOptions(options):\n+    lArgs = []\n+    if not(options.useSplicing or options.pairedEndFile):\n+        lArgs.append("--pairmax-dna %s" % options.pairmaxRna)\n+    if options.useSplicing or options.pairedEndFile:\n+        lArgs.append("--pairmax-rna %s" % options.pairmaxRna)\n+    lArgs.append("--pairexpect=%s" % options.pairexpect)\n+    lArgs.append("--pairdev=%s" % options.pairedev)\n+    \n+    \n+\n+def _createGsnapCommand(iLauncher, options, workingDir, inputFileNames, inputRevFilesNames, outputFileName, batchNumber, numberOfBatch):\n+    lArgs = []\n+    lArgs.append("-d %s" % options.genomeName)\n+    lArgs.append("-k %s" % options.kmer)\n+    lArgs.append("-D %s" % workingDir)\n+    lArgs.append("-A %s" % options.outputFormat)\n+    lArgs.append("-q %s/%s" % (batchNumber, numberOfBatch))\n+    lArgs.append("--no-sam-headers")\n+    lArgs.append(inputFileNames)\n+    print \'N option: %s, pairedEndFile option: %s\' %(options.novelsplicing, options.pairedEndFile)\n+    if options.pairedEndFile:\n+        lArgs.append(inputRevFilesNames)\n+    if options.novelsplicing == \'1\':\n+        lArgs.extend(_createGsnapSplicingOptions(options))\n+    elif options.pairedEndFile:\n+        lArgs.extend(_createGsnapPairedEndOptions(options))\n+    \n+    lArgs.append("> %s" % outputFileName)  \n+    return iLauncher.getSystemCommand("gsnap", lArgs)   \n+\n+def __main__():\n+    #Parse Command Line\n+    description = "GMAP/GSNAP version:2012-12-20."\n+    parser = OptionParser(description = description)\n+    parser.add_option(\'-o\', \'--outputTxtFile\', dest=\'outputTxtFile\', help=\'for Differential expression analysis pipeline, new output option gives a txt output containing the list of mapping results.\')\n+    parser.add_option("-q", "--inputTxt",         dest="inputTxt",         action="store",                 type="string",     help="input, a txt file for a list of input reads files [compulsory]")\n+    parser.add_option(\'-t\', \'--tar\', dest=\'outputTar\', default=None, help=\'output all accepted hits results in a tar file.\' )\n+    parser.add_option("-d", "--genomeName", dest="genomeName", help="Define the reference genome name.[compulsory]")\n+#    parser.add_option("-o", "--outputFile", dest='..b'h for RNA-Seq paired reads, or other reads that could have a splice (default 200000).")\n+    parser.add_option("--pairexpect", dest="pairexpect", default=200, help="Expected paired-end length, used for calling splices in medial part of paired-end reads (default 200)")\n+    parser.add_option("--pairdev", dest="pairdev", default=25, help="Allowable deviation from expected paired-end length, used for calling splices in medial part of paired-end reads (default 25)")\n+    \n+    (options, args) = parser.parse_args()    \n+\n+    workingDir = os.path.dirname(options.inputFastaFile)\n+    \n+    file = open(options.inputTxt,"r")\n+    lines = file.readlines()\n+    inputFileNames = []\n+    gsnapOutputNames = []\n+    outputName = options.outputTxtFile\n+    resDirName = os.path.dirname(outputName) + \'/\'\n+    out = open(outputName, "w")\n+    for line in lines:\n+        timeId = time.strftime("%Y%m%d%H%M%S")\n+        tab = line.split()\n+        inputFileNames.append(tab[1])\n+        OutputName = resDirName + tab[0] + \'_samOutput_%s.sam\' % timeId\n+        gsnapOutputNames.append(OutputName) \n+        out.write(tab[0] + \'\\t\' + OutputName + \'\\n\')\n+    file.close()\n+    out.close()\n+    \n+    if options.pairedEndFile:\n+        revFile = open(options.pairedEndFile,"r")\n+        lines = revFile.readlines()\n+        inputRevFileNames = []\n+        for line in lines:\n+            revTab = line.split()\n+            inputRevFileNames.append(revTab[1])\n+        revFile.close()\n+\n+    #Create gsnap make \n+    lCmdsTuples =[]\n+    acronym = "gsnap_make"\n+    jobdb = TableJobAdaptatorFactory.createJobInstance()\n+    iLauncher = Launcher(jobdb, os.getcwd(), "", "", os.getcwd(), os.getcwd(), "jobs", "", acronym, acronym, False, True)\n+    cmds = []\n+    cmd_setup = "gmap_setup -d %s -D %s -k %s %s;" % (options.genomeName, workingDir, options.kmer, options.inputFastaFile)\n+    cmds.append(cmd_setup)\n+    cmd_make_coords = "make -f Makefile.%s coords;" % options.genomeName \n+    cmds.append(cmd_make_coords)\n+    cmd_make_gmapdb = "make -f Makefile.%s gmapdb;" % options.genomeName\n+    cmds.append(cmd_make_gmapdb)\n+    cmd_make_install = "make -f Makefile.%s install;" % options.genomeName\n+    cmds.append(cmd_make_install)\n+    cmd_index = iLauncher.getSystemCommand("", cmds)\n+    cmd2Launch = []\n+    cmdStart = []\n+    cmdFinish = []\n+    cmd2Launch.append(cmd_index)\n+    lCmdsTuples.append(_map(iLauncher, cmd2Launch, cmdStart, cmdFinish)) \n+    iLauncher.runLauncherForMultipleJobs(acronym, lCmdsTuples, True)    \n+    \n+    acronym = "gsnap"\n+    jobdb = TableJobAdaptatorFactory.createJobInstance()\n+    iLauncher = Launcher(jobdb, os.getcwd(), "", "", os.getcwd(), os.getcwd(), "jobs", "", acronym, acronym, False, True)\n+    lCmdsTuples = []\n+    dCutOut2Out = {}\n+    lAllFile2remove = []\n+    numberOfBatch = 20  #usually for testing, working on to find a value for default launch on galaxy\n+    for i in range(len(inputFileNames)):\n+        lCutOutput = []\n+        for j in range(numberOfBatch):\n+            cutOutput = "%s_out_%s" % (inputFileNames[i], j)\n+            lCutOutput.append(cutOutput)\n+            lAllFile2remove.extend(lCutOutput)\n+            cmd2Launch = []\n+            if options.pairedEndFile: \n+                inputRevFile = inputRevFileNames[i]\n+            else:\n+                inputRevFile = ""\n+            cmd2Launch.append(_createGsnapCommand(iLauncher, options, workingDir, inputFileNames[i], inputRevFile, cutOutput, j, numberOfBatch))\n+            cmdStart = []\n+            cmdFinish = []\n+            lCmdsTuples.append(_map(iLauncher, cmd2Launch, cmdStart, cmdFinish))    \n+            dCutOut2Out[gsnapOutputNames[i]] = lCutOutput\n+    iLauncher.runLauncherForMultipleJobs(acronym, lCmdsTuples, True)\n+    \n+    joinSAM(dCutOut2Out) \n+    FileUtils.removeFilesFromListIfExist(lAllFile2remove)   \n+                 \n+    if options.outputTar != None:\n+        toTar(options.outputTar, gsnapOutputNames)\n+\n+\n+if __name__=="__main__": __main__()\n'
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/gsnap_parallel_unSQL.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/gsnap_parallel_unSQL.xml Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,46 @@
+<tool id="gsnap_parallel_unSQL" name="GSNAP (for DEA in parallel)" version="1.0.0">
+  <description>Genomic Short-read Nucleotide Alignment Program in parallel for Differential Expression Analysis (DEA)</description>
+  <command interpreter="python">gsnap_parallel_unSQL.py 
+ -i $genome_file
+ -q $fastq_file_list  
+ -o $output_file_list
+ -d $genome_prefix 
+ -k $kmer_size
+ #if $OptionPairedEnd.pairedEnd == 'Yes':
+  -p $pairedEnd_input
+ #end if
+
+</command>
+  <inputs>
+    <param name="genome_file" type="data" format="fasta" label="Genome fasta file" />
+    <param name="fastq_file_list" type="data" format="txt" label="Fastq file list" />
+    <param name="genome_prefix" type="text" format="txt" label="Prefix used to name genome index " />
+    <param name="kmer_size" type="integer" value="12" label="Kmer size"/>
+    
+  <conditional name="OptionPairedEnd">
+   <param name="pairedEnd" type="select" label="For paired-end analysis.">
+   <option value="Yes">Yes</option>
+   <option value="No" selected="true">No</option>
+   </param>
+   <when value="Yes">
+   <param name="pairedEnd_input" type="data" format="txt" label="input paired-end files list"/>
+   </when>
+   <when value="No">
+   </when>
+  </conditional>
+
+  </inputs>
+
+  <outputs>
+    <data name="output_file_list" format="txt"/>
+  </outputs>
+  <help>
+**What it does**
+
+To complete
+
+**Citation**
+
+If you use this tool, please cite "Thomas D. Wu and Serban Nacu, Fast and SNP-tolerant detection of complex variants and splicing in short reads, Bioinformatics 2010 26:873-881"
+  </help>
+</tool>
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/listInputs.pl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/listInputs.pl Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,13 @@
+#!/usr/bin/perl -w
+
+use strict;
+
+my $in_file1 = $ARGV[0];
+my $in_file2 = $ARGV[1];
+my $out_file = $ARGV[2];
+
+open(OUT, ">$out_file");
+print OUT "label\tfiles\tgroup\n";
+print OUT "fileID=1\t$in_file1\tgroup1\n";
+print OUT "fileID=2\t$in_file2\tgroup2\n";
+close(OUT);
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/listInputs.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/listInputs.xml Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,25 @@
+<tool id="listInputs" name="listInputs">
+ <description>Give a list of input files from different conditions/groups for DESeq analysis, DESeq can then charge these input files from the given list.</description>
+ <command interpreter="perl"> listInputs.pl $inputFromGroup1 $inputFromGroup2 $output
+ </command>
+
+ <inputs>
+ <param name="inputFromGroup1" type="data" format="tabular" label="Please choose your file from group1."/>
+ <param name="inputFromGroup2" type="data" format="tabular" label="Please choose your file from group2."/>
+ </inputs>
+
+ <outputs>
+ <data format="txt" name="output" label="listInputs Output"/>
+ </outputs>
+
+ <help>
+ This tool can facilate the the chargement for DESeq tool.
+ Example:
+ From group1, we have input1.
+ From group2, we have input2.
+ This tool will give us a list like:
+ fileID=1 input1 group1
+ fileID=2 input2 group2
+ Where the value of fileID is unique for each input file. 
+ </help>
+</tool>
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/loadHTSeqResultFiles.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/loadHTSeqResultFiles.py Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,40 @@
+#!/usr/bin/env python
+
+import optparse, sys
+
+
+def __main__():
+    #Parse Command Line
+    parser = optparse.OptionParser()
+    parser.add_option('-i', '--inputs', dest='inputFiles', default=None, help='several input files. (seperated by @ or @@' )
+    parser.add_option( '-o', '--output', dest='outputFile', default=None, help='The output list of HTSeq results files(.tabular) on txt format.' )
+    ( options, args ) = parser.parse_args()
+
+    
+    out = open(options.outputFile, 'w')
+    out.write("label\tfiles\tgroup\n")
+    if options.inputFiles == None:
+        raise Exception, 'input file name is not defined!'
+    
+    groupCount = 1
+    fileCount = 0        
+    
+    inputFiles = sys.argv[6:]
+    print '\n\nthe length of inputfiles is : %s \n' % len(inputFiles)
+    i = 0
+    while i < (len(inputFiles)-1):
+        if inputFiles[i] == "@":
+            i += 1
+            fileCount = 1
+            groupCount += 1
+            out.write("Group%s_%s\t%s\t%s\n" % (groupCount, fileCount, inputFiles[i], groupCount))
+        else:
+     fileCount += 1
+            out.write("Group%s_%s\t%s\t%s\n" % (groupCount, fileCount, inputFiles[i], groupCount))
+        i += 1
+           
+    out.close()   
+    
+        
+
+if __name__=="__main__": __main__()
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/loadHTSeqResultFiles.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/loadHTSeqResultFiles.xml Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,29 @@
+<tool id="load_HTSeqResultFiles" name="load HTSeqResultFiles" >
+  <description>To load several HTSeq result files from different conditions.</description>
+  <command interpreter="python"> loadHTSeqResultFiles.py -o $htseqRes_out
+ -i
+ #for $i in $condition_groups
+ #for $j in $i.replicates
+ $j.tabular_file
+ #end for
+ @
+ #end for
+
+</command>
+  <inputs>
+   <repeat name="condition_groups" title="Condition group" min="2">
+      <repeat name="replicates" title="Replicate">
+     <param name="tabular_file" format="tabular" type="data" label="TABULAR file."/>
+          </repeat>
+        </repeat>
+  </inputs>
+
+  <outputs>
+    <data format="txt" name="htseqRes_out" label="HTSeq result files" help="This program gives you a list of files you choose for the following data analysis."/>
+
+</outputs>
+<help>
+</help>
+
+</tool>
+
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/loadMultiFastqFiles.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/loadMultiFastqFiles.py Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,70 @@
+#!/usr/bin/env python
+
+import optparse, sys
+
+
+def __main__():
+    #Parse Command Line
+    parser = optparse.OptionParser()
+    parser.add_option('-i', '--inputs', dest='inputFiles', default=None, help='several input files. (seperated by @ or @@' )
+    parser.add_option( '-o', '--output', dest='outputSingleFile', default=None, help='The output list of fastq files on txt format.' )
+    parser.add_option( '', '--pairedEnd', dest='outputPaireFile', default=None, help='paired end option help to upload the corresponding paired end complementary fastq files' )
+    ( options, args ) = parser.parse_args()
+
+    
+
+    if options.outputSingleFile == None: 
+        raise Exception, 'OutSingleFile txt file name is not defined!'
+    else:
+        outSingle = open(options.outputSingleFile, 'w')
+    
+    if options.inputFiles == None:
+        raise Exception, 'input file name is not defined!'
+    
+    groupCount = 1
+    fileCount = 0        
+    
+    if options.outputPaireFile == None:
+        inputFiles = sys.argv[4:]
+        i = 0
+        while i < (len(inputFiles)-1):
+     if inputFiles[i] == "@":
+                i += 1
+                fileCount = 1
+                groupCount += 1
+                outSingle.write("Group%s_%s\t%s\n" % (groupCount, fileCount, inputFiles[i]))
+                
+            else:
+                fileCount += 1
+                outSingle.write("Group%s_%s\t%s\n" % (groupCount, fileCount, inputFiles[i]))
+                
+            i += 1
+    else:
+        inputFiles = sys.argv[6:]
+        print '\n\nthe length of inputfiles is : %s \n' % len(inputFiles)
+        outPaire = open(options.outputPaireFile, 'w')
+        i = 0
+        while i < (len(inputFiles)-1):
+            if inputFiles[i] == "@@":
+                i += 1
+                outPaire.write("Group%s_%s\t%s\n" % (groupCount, fileCount, inputFiles[i]))
+            elif inputFiles[i] == "@":
+                i += 1
+                fileCount = 1
+                groupCount += 1
+                outSingle.write("Group%s_%s\t%s\n" % (groupCount, fileCount, inputFiles[i]))
+            else:
+                fileCount += 1
+                outSingle.write("Group%s_%s\t%s\n" % (groupCount, fileCount, inputFiles[i]))
+                
+            i += 1
+                
+        
+        
+        outPaire.close()
+           
+    outSingle.close()   
+    
+        
+
+if __name__=="__main__": __main__()
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/loadMultiFastqFiles.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/loadMultiFastqFiles.sh Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,24 @@
+#!/bin/bash
+
+OUTFile=${1}
+shift
+groupCount=1
+replicateNumber=1
+
+arrayZ=( $@ )
+#remove the last symble '@' given by commande line
+unset arrayZ[${#arrayZ[@]}-1]
+
+for FILE in ${arrayZ[@]}
+do
+ #if a new group of fastq, re-count the replicateNumber
+ if echo $FILE | grep -q "@" 
+ then 
+ groupCount=$(($groupCount + 1))
+ replicateNumber=1
+ else
+ echo -e "Group${groupCount}_${replicateNumber}\t${FILE}" >>${OUTFile}
+ replicateNumber=$(($replicateNumber + 1))
+   fi
+done
+
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/loadMultiFastqFiles.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/loadMultiFastqFiles.xml Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,75 @@
+<tool id="load_multiFASTQFiles" name="load_multiFASTQfiles" >
+  <description>To load several FASTQ files from different conditions.</description>
+  <command interpreter="python"> loadMultiFastqFiles.py -o $multiFASTQfiles_out
+#if $single_end_paired_end.mapping_mode == 'single':
+ -i
+ #for $i in $single_end_paired_end.condition_groups
+ #for $j in $i.replicates
+ $j.fastq_file
+ #end for
+ @
+ #end for
+
+#elif $single_end_paired_end.mapping_mode == 'paired':
+
+ --pairedEnd $multiFASTQfiles_paired_end_out
+ -i
+ #for $i in $single_end_paired_end.condition_groups
+ #for $j in $i.replicates
+ $j.fastq_file
+ @@
+ $j.fastq_paired_end_file
+ #end for
+ @
+ #end for
+#end if
+
+</command>
+  <inputs>
+   <conditional name="single_end_paired_end">
+    <param name="mapping_mode" type="select" label="The uploading fastq files for single-end or paired-end mapping mode.">
+ <option value="single">Single-End</option>
+ <option value="paired">Paire-End</option>
+    </param>
+            <when value="single">
+    <repeat name="condition_groups" title="Condition group" min="2">
+        <repeat name="replicates" title="Replicate">
+         <param name="fastq_file" format="fastq" type="data" label="FASTQ file. Can show the sequences quality."/>
+         </repeat>
+         </repeat>
+    </when>
+    <when value="paired">
+    <repeat name="condition_groups" title="Condition group" min="2">
+           <repeat name="replicates" title="Replicate">
+         <param name="fastq_file" format="fastq" type="data" label="FASTQ file. Can show the sequences quality."/>
+         <param name="fastq_paired_end_file" format="fastq" type="data" label="fastq paired end complementary file" help="Add the corresponding paired end file for paired end mapping"/>
+         </repeat>
+         </repeat>
+    </when>
+
+     </conditional>
+  </inputs>
+
+  <outputs>
+    <data format="txt" name="multiFASTQfiles_out" label="loadMultiFASTQFiles result" help="This program gives you a list of files you choose for the following data analysis."/>
+    <data format="txt" name="multiFASTQfiles_paired_end_out" label="loadMultiFASTQFiles for paired end result" help="This program gives you a list of files you choose for the following data analysis.">
+     <filter>(single_end_paired_end['mapping_mode']=='paired')</filter>
+
+    </data>
+</outputs>
+<help>
+ **This tool is to help upload several data for differential expression pipeline. Before click 'Execute', you should Click** Ctrl + here_ **first to open the pipeline in a new page.**
+
+ .. _here: http://127.0.0.1:8085/u/yufei-luo/w/differentialexpressiondeseq-with-replicates 
+</help>
+
+</tool>
+
+
+
+
+
+
+
+
+
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/testR.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/testR.R Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,93 @@
+#!/usr/bin
+
+library(DESeq)
+library(hexbin)
+library(latticeExtra)
+library(gplots)
+library(geneplotter)
+library(Biobase)
+
+##In a file called test_args.R
+args <- commandArgs()
+
+
+fileName <- args[4]
+colNames <- as.integer(unlist(strsplit(args[5], ",")))
+colCond1 <- as.integer(unlist(strsplit(args[6], ",")))
+colCond2 <- as.integer(unlist(strsplit(args[7], ",")))
+OUTPUTCSV <- args[8]
+OUTPUTPNG <- args[9]
+
+if(colNames[1]!=0){
+ countsTable <- read.delim(fileName, row.names=1)
+ conditions <- c((colNames[length(colNames)]+1):ncol(countsTable))
+} else if(colNames[1]==0){
+ countsTable <- read.delim(fileName)
+ conditions <- c(1:ncol(countsTable))
+ rownames(countsTable) <- paste( "Gene", 1:nrow(countsTable), sep="_" )}
+
+for(i in colCond1){conditions[i] = "A"}
+for(i in colCond2){conditions[i] = "B"}
+conditions
+#analysis with DESeq
+cds <- newCountDataSet( countsTable, conditions )
+cds <- estimateSizeFactors( cds )
+cds <- estimateVarianceFunctions( cds )
+result <- nbinomTest( cds, "A", "B" )
+#stock the result dans un .tsv as output file
+write.table(result, OUTPUTCSV, sep = " ", quote = FALSE, col.names = NA)
+
+#figures for DE analysis
+#pdf( OUTPUTPNG, width=4, height=4 )
+png( filename=OUTPUTPNG, width=700, height=700 )
+#png format is not as clear as pdf format!!!!!!!!!!!!!!!!!!!!!!!!!
+print(xyplot(
+ log2FoldChange ~ I(baseMean),
+ result,
+ pch=16, cex=.3,
+ col=ifelse(result$padj < .1, "#FF000040","#00000040" ),
+ panel = function( x, y, col, ...) {
+ above <- (y > 5.8)
+ below <- (y < -5.8)
+ inside <- !( above | below )
+ panel.xyplot( x=x[inside], y=y[inside], col=col[inside], ...)
+ panel.arrows( x[above], 5.8, x[above], 5.95, col=col[above],length=".1", unit="native" )
+ panel.arrows( x[below], -5.8, x[below], -5.95, col=col[below],length=".1", unit="native" ) },
+ axis = function(side, ...) {
+ if( side=="left") {
+ panel.axis( side, outside=TRUE, at=seq(-14,14,by=1), labels=FALSE )
+ panel.axis( side, outside=TRUE, at=seq(-10,10,by=5), labels=TRUE )
+ }
+ if( side=="bottom") {
+ panel.axis( side, outside=TRUE, at=seq(-2,10,by=1), rot=0,
+ labels = do.call( expression,
+ lapply( seq(-2,10,by=1), function(a)
+ substitute( 10^b, list(b=a) ) ) ) )
+ } },
+ xlab = "mean", ylab = "log2 fold change",
+ scales = list(x = list( log=TRUE ),y = list( log=FALSE, limits=c( -6, 6 ) ) ) ))
+dev.off()
+
+#The volcano plot 
+#pdf( "vulcano_fly.pdf", width=4, height=4 )
+#print(xyplot( -log10( pval ) ~ log2FoldChange,
+# result,
+# pch=20, cex=.2,
+# col=ifelse( result$padj<.1, "#FF000050", "#00000050" ),
+# axis = function( side, ... ) {
+# if( side=="bottom") {
+# panel.axis( side, outside=TRUE, at=seq(-14,14,by=1), labels=FALSE )
+# panel.axis( side, outside=TRUE, at=seq(-10,10,by=5), labels=TRUE )
+# }
+# if( side=="left") {
+# panel.axis( side, outside=TRUE, at=seq(0,25,by=1), labels=FALSE )
+# panel.axis( side, outside=TRUE, at=seq(0,25,by=5),
+# labels = do.call( expression,
+# lapply( seq(0,25,by=5), function(a)
+# substitute( 10^-b, list(b=a) ) ) ) )
+# } },
+# xlab = "log2 fold change", ylab = "p value",
+# scales = list(
+# x = list( limits=c( -6, 6 ) ),
+# y = list( limits=c( 0, 25 ) ) ) ))
+#dev.off()
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/testR.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/testR.sh Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,11 @@
+#! /bin/sh
+
+#cat testR.R | R --slave --args $1 $2 $3 $4 $5 $6 < DiffExpAnal/testR.R
+
+#ex1. sh testR.sh fly_RNA_counts.tsv 0 1,3 2,4 output_fly.csv output_fly.png
+#ex2. sh testR.sh NeuralStemCellData.tab 1 2,3,4 5,6 output_modif.csv output_modif.png
+
+#cat /share/apps/galaxy-dist/tools/repet_pipe/SMART/DiffExpAnal/testR.R | R --slave --args $1 $2 $3 $4 $5 $6 < /share/apps/galaxy-dist/tools/repet_pipe/SMART/DiffExpAnal/testR.R
+
+#$1=targetFile(the list of files) $2=with or without replicate
+cat /share/apps/galaxy-dist/tools/repet_pipe/SMART/DiffExpAnal/DESeqTools/anadiffGenes2conds.R| R --slave --args $1 $2 < /share/apps/galaxy-dist/tools/repet_pipe/SMART/DiffExpAnal/DESeqTools/anadiffGenes2conds.R
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/tophat_parallel.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/tophat_parallel.py Tue Apr 30 14:33:21 2013 -0400
[
b'@@ -0,0 +1,325 @@\n+\n+#!/usr/bin/env python\n+\n+import optparse, os, shutil, subprocess, sys, tempfile, fileinput, tarfile,random\n+\n+def stop_err( msg ):\n+    sys.stderr.write( "%s\\n" % msg )\n+    sys.exit()\n+\n+def toTar(tarFileName, accepted_hits_outputNames):\n+    fileName = os.path.splitext(tarFileName)[0]\n+    fileNameBaseName = os.path.basename(fileName)\n+    dir = os.path.dirname(tarFileName)    \n+    tfile = tarfile.open(tarFileName + ".tmp.tar", "w")\n+    currentPath = os.getcwd()\n+    os.chdir(dir)\n+    for file in accepted_hits_outputNames:\n+        relativeFileName = os.path.basename(file)\n+        tfile.add(relativeFileName)\n+    os.system("mv %s %s" % (tarFileName + ".tmp.tar", tarFileName))\n+    tfile.close()\n+    os.chdir(currentPath)\n+    \n+\n+def __main__():\n+    #Parse Command Line\n+    parser = optparse.OptionParser()\n+    parser.add_option(\'-o\', \'--outputTxtFile\', dest=\'outputTxtFile\', help=\'for Differential expression analysis pipeline, new output option gives a txt output containing the list of mapping results.\')\n+    parser.add_option(\'-t\', \'--tar\', dest=\'outputTar\', default=None, help=\'output all accepted hits results in a tar file.\' )\n+    parser.add_option( \'-p\', \'--num-threads\', dest=\'num_threads\', help=\'Use this many threads to align reads. The default is 1.\' )\n+    parser.add_option( \'-C\', \'--color-space\', dest=\'color_space\', action=\'store_true\', help=\'This indicates color-space data\' )\n+    parser.add_option( \'-J\', \'--junctions-output\', dest=\'junctions_output_file\', default=\'junctions_output.bed\', help=\'Junctions output file; formate is BED.\' )\n+    parser.add_option( \'-H\', \'--hits-output\', dest=\'accepted_hits_output_file\', default=\'hits_output_%s.bam\' % random.randrange(0, 10000), help=\'Accepted hits output file; formate is BAM.\' )\n+    parser.add_option( \'\', \'--own-file\', dest=\'own_file\', help=\'\' )\n+    parser.add_option( \'-D\', \'--indexes-path\', dest=\'index_path\', help=\'Indexes directory; location of .ebwt and .fa files.\' )\n+    parser.add_option( \'-r\', \'--mate-inner-dist\', dest=\'mate_inner_dist\', help=\'This is the expected (mean) inner distance between mate pairs. \\\n+                                                                                For, example, for paired end runs with fragments selected at 300bp, \\\n+                                                                                where each end is 50bp, you should set -r to be 200. There is no default, \\\n+                                                                                and this parameter is required for paired end runs.\')\n+    parser.add_option( \'\', \'--mate-std-dev\', dest=\'mate_std_dev\', help=\'Standard deviation of distribution on inner distances between male pairs.\' )\n+    parser.add_option( \'-a\', \'--min-anchor-length\', dest=\'min_anchor_length\', \n+                        help=\'The "anchor length". TopHat will report junctions spanned by reads with at least this many bases on each side of the junction.\' )\n+    parser.add_option( \'-m\', \'--splice-mismatches\', dest=\'splice_mismatches\', help=\'The maximum number of mismatches that can appear in the anchor region of a spliced alignment.\' )\n+    parser.add_option( \'-i\', \'--min-intron-length\', dest=\'min_intron_length\', \n+                        help=\'The minimum intron length. TopHat will ignore donor/acceptor pairs closer than this many bases apart.\' )\n+    parser.add_option( \'-I\', \'--max-intron-length\', dest=\'max_intron_length\', \n+                        help=\'The maximum intron length. When searching for junctions ab initio, TopHat will ignore donor/acceptor pairs farther than this many bases apart, except when such a pair is supported by a split segment alignment of a long read.\' )\n+    parser.add_option( \'-F\', \'--junction_filter\', dest=\'junction_filter\', help=\'Filter out junctions supported by too few alignments (number of reads divided by average depth of coverage)\' )\n+    parser.add_option( \'-g\', \'--max_multihits\', dest=\'max_multihits\', help=\'Maximum number of alignmen'..b'overage-search --min-coverage-intron %s --max-coverage-intron %s \' % ( options.min_coverage_intron, options.max_coverage_intron )\n+                else:\n+                    opts += \'--no-coverage-search \'\n+                if options.closure_search:\n+                    opts += \'--closure-search --min-closure-exon %s --min-closure-intron %s --max-closure-intron %s \'  % ( options.min_closure_exon, options.min_closure_intron, options.max_closure_intron ) \n+                else:\n+                    opts += \'--no-closure-search \'\n+                if options.microexon_search:\n+                    opts += \'--microexon-search \'\n+                if options.single_paired == \'paired\':\n+                    opts += \'--mate-std-dev %s \' % options.mate_std_dev\n+                if options.initial_read_mismatches:\n+                    opts += \'--initial-read-mismatches %d \' % int( options.initial_read_mismatches )\n+                if options.seg_mismatches:\n+                    opts += \'--segment-mismatches %d \' % int( options.seg_mismatches )\n+                if options.seg_length:\n+                    opts += \'--segment-length %d \' % int( options.seg_length )\n+                if options.min_segment_intron:\n+                    opts += \'--min-segment-intron %d \' % int( options.min_segment_intron )\n+                if options.max_segment_intron:\n+                    opts += \'--max-segment-intron %d \' % int( options.max_segment_intron )\n+                if options.own_file:\n+                    cmd = cmd % ( opts, index_paths[0], input_files ) #here to add paired end file\n+                else:\n+                    cmd = cmd % ( opts, index_paths[i], input_files ) #here to add paired end file\n+            except Exception, e:\n+                # Clean up temp dirs\n+                if os.path.exists( tmp_index_dir ):\n+                    shutil.rmtree( tmp_index_dir )\n+                stop_err( \'Something is wrong with the alignment parameters and the alignment could not be run\\n\' + str( e ) )\n+                \n+        cmds.append(cmd)\n+\n+    # Run the command line for each file.\n+    for i in range(len(cmds)):\n+        try:\n+            tmp_out = tempfile.NamedTemporaryFile().name\n+            tmp_files.append(tmp_out)\n+            tmp_stdout = open( tmp_out, \'wb\' )\n+            tmp_err = tempfile.NamedTemporaryFile().name\n+            tmp_files.append(tmp_err)\n+            tmp_stderr = open( tmp_err, \'wb\' )\n+            proc = subprocess.Popen( args=cmds[i], shell=True, cwd=".", stdout=tmp_stdout, stderr=tmp_stderr )\n+            returncode = proc.wait()\n+            tmp_stderr.close()\n+            # get stderr, allowing for case where it\'s very large\n+            tmp_stderr = open( tmp_err, \'rb\' )\n+            stderr = \'\'\n+            buffsize = 1048576\n+            try:\n+                while True:\n+                    stderr += tmp_stderr.read( buffsize )\n+                    if not stderr or len( stderr ) % buffsize != 0:\n+                        break\n+            except OverflowError:\n+                pass\n+            tmp_stdout.close()\n+            tmp_stderr.close()\n+            if returncode != 0:\n+                raise Exception, stderr\n+                \n+            # Copy output files from tmp directory to specified files.\n+            #shutil.copyfile( os.path.join( "tophat_out", "junctions.bed" ), junctions_outputNames[i] )\n+            shutil.copyfile( os.path.join( "tophat_out", "accepted_hits.bam" ), accepted_hits_outputNames[i] )\n+            # TODO: look for errors in program output.\n+        except Exception, e:\n+            stop_err( \'Error in tophat:\\n\' + str( e ) ) \n+\n+    if options.outputTar != None:\n+        toTar(options.outputTar, accepted_hits_outputNames)\n+\n+    \n+    # Clean up temp dirs\n+    for tmp_index_dir in tmp_index_dirs:\n+        if os.path.exists( tmp_index_dir ):\n+            shutil.rmtree( tmp_index_dir )\n+\n+    for tmp in tmp_files:\n+        os.remove(tmp)\n+\n+\n+if __name__=="__main__": __main__()\n'
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/tophat_parallel.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/tophat_parallel.xml Tue Apr 30 14:33:21 2013 -0400
[
b'@@ -0,0 +1,577 @@\n+<tool id="tophat_parallel" name="Tophat for Illumina (for DEA)" version="1.0.0">\n+    <description>Find splice junctions using RNA-seq data, can have several input RNA-seq data.</description>\n+    <version_command>tophat --version</version_command>\n+    <requirements>\n+        <requirement type="package">tophat</requirement>\n+    </requirements>\n+    <command interpreter="python">\n+\t    tophat_parallel.py\n+            ## Change this to accommodate the number of threads you have available.\n+            --num-threads="4"\n+\n+            ## Provide outputs.\n+            -o $outputFileName\n+            ##--junctions-output=$junctions\n+            ##--hits-output=$accepted_hits\n+\n+            ## Handle reference file.\n+            #if $refGenomeSource.genomeSource == "history":\n+                --own-file=$refGenomeSource.ownFile\n+            #else:\n+                --indexes-path="${ filter( lambda x: str( x[0] ) == str( $refGenomeSource.index ), $__app__.tool_data_tables[ \'tophat_indexes\' ].get_fields() )[0][-1] }"\n+            #end if\n+\n+            ## Are reads single-end or paired?\n+            --single-paired=$singlePaired.sPaired\n+\n+            ## First input file always required.\n+            --input1=$input1\n+\n+            ## Set params based on whether reads are single-end or paired.\n+            #if $singlePaired.sPaired == "single":\n+                --settings=$singlePaired.sParams.sSettingsType\n+                #if $singlePaired.sParams.sSettingsType == "full":\n+                    -a $singlePaired.sParams.anchor_length\n+                    -m $singlePaired.sParams.splice_mismatches\n+                    -i $singlePaired.sParams.min_intron_length\n+                    -I $singlePaired.sParams.max_intron_length\n+                    -F $singlePaired.sParams.junction_filter\n+                    -g $singlePaired.sParams.max_multihits\n+                    --min-segment-intron $singlePaired.sParams.min_segment_intron\n+                    --max-segment-intron $singlePaired.sParams.max_segment_intron\n+                    --initial-read-mismatches=$singlePaired.sParams.initial_read_mismatches\n+                    --seg-mismatches=$singlePaired.sParams.seg_mismatches\n+                    --seg-length=$singlePaired.sParams.seg_length\n+                    --library-type=$singlePaired.sParams.library_type\n+                    \n+                    ## Indel search.\n+                    #if $singlePaired.sParams.indel_search.allow_indel_search == "Yes":\n+                        ## --allow-indels\n+                        --max-insertion-length $singlePaired.sParams.indel_search.max_insertion_length\n+                        --max-deletion-length $singlePaired.sParams.indel_search.max_deletion_length\n+                    #else:\n+                        --no-novel-indels\n+                    #end if\n+\n+                    ## Supplying junctions parameters.\n+                    #if $singlePaired.sParams.own_junctions.use_junctions == "Yes":\n+                        #if $singlePaired.sParams.own_junctions.gene_model_ann.use_annotations == "Yes":\n+                            -G $singlePaired.sParams.own_junctions.gene_model_ann.gene_annotation_model\n+                        #end if\n+                        #if $singlePaired.sParams.own_junctions.raw_juncs.use_juncs == "Yes":\n+                            -j $singlePaired.sParams.own_junctions.raw_juncs.raw_juncs\n+                        #end if\n+                        ## TODO: No idea why a string cast is necessary, but it is:\n+                        #if str($singlePaired.sParams.own_junctions.no_novel_juncs) == "Yes":\n+                            --no-novel-juncs\n+                        #end if\n+                    #end if\n+\n+                    #if $singlePaired.sParams.closure_search.use_search == "Yes":\n+                        --closure-search\n+                        --min-closure-exon $singlePaired.sParams.closure_search.min_closure_exon\n+                        --'..b'hen such a pair is supported by a split segment alignment of a long read. The default is 500000.\n+  -F/--min-isoform-fraction 0.0-1.0 TopHat filters out junctions supported by too few alignments. Suppose a junction spanning two exons, is supported by S reads. Let the average depth of coverage of \n+                                    exon A be D, and assume that it is higher than B. If S / D is less than the minimum isoform fraction, the junction is not reported. A value of zero disables the \n+                                    filter. The default is 0.15.\n+  -g/--max-multihits INT            Instructs TopHat to allow up to this many alignments to the reference for a given read, and suppresses all alignments for reads with more than this many \n+                                    alignments. The default is 40.\n+  -G/--GTF [GTF 2.2 file]           Supply TopHat with a list of gene model annotations. TopHat will use the exon records in this file to build a set of known splice junctions for each gene, and will attempt to align reads to these junctions even if they would not normally be covered by the initial mapping.\n+  -j/--raw-juncs [juncs file]       Supply TopHat with a list of raw junctions. Junctions are specified one per line, in a tab-delimited format. Records look like: [chrom] [left] [right] [+/-], left and right are zero-based coordinates, and specify the last character of the left sequenced to be spliced to the first character of the right sequence, inclusive.\n+  -no-novel-juncs                   Only look for junctions indicated in the supplied GFF file. (ignored without -G)\n+  --no-closure-search               Disables the mate pair closure-based search for junctions. Currently, has no effect - closure search is off by default.\n+  --closure-search                  Enables the mate pair closure-based search for junctions. Closure-based search should only be used when the expected inner distance between mates is small (about or less than 50bp)\n+  --no-coverage-search              Disables the coverage based search for junctions.\n+  --coverage-search                 Enables the coverage based search for junctions. Use when coverage search is disabled by default (such as for reads 75bp or longer), for maximum sensitivity.\n+  --microexon-search                With this option, the pipeline will attempt to find alignments incident to microexons. Works only for reads 50bp or longer.\n+  --butterfly-search                TopHat will use a slower but potentially more sensitive algorithm to find junctions in addition to its standard search. Consider using this if you expect that your experiment produced a lot of reads from pre-mRNA, that fall within the introns of your transcripts.\n+  --segment-mismatches              Read segments are mapped independently, allowing up to this many mismatches in each segment alignment. The default is 2.\n+  --segment-length                  Each read is cut up into segments, each at least this long. These segments are mapped independently. The default is 25.\n+  --min-closure-exon                During closure search for paired end reads, exonic hops in the potential splice graph must be at least this long. The default is 50.\n+  --min-closure-intron              The minimum intron length that may be found during closure search. The default is 50.\n+  --max-closure-intron              The maximum intron length that may be found during closure search. The default is 5000.\n+  --min-coverage-intron             The minimum intron length that may be found during coverage search. The default is 50.\n+  --max-coverage-intron             The maximum intron length that may be found during coverage search. The default is 20000.\n+  --min-segment-intron              The minimum intron length that may be found during split-segment search. The default is 50.\n+  --max-segment-intron              The maximum intron length that may be found during split-segment search. The default is 500000.\n+    </help>\n+</tool>\n'
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/tophat_parallel_unSQL.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/tophat_parallel_unSQL.py Tue Apr 30 14:33:21 2013 -0400
[
b'@@ -0,0 +1,353 @@\n+\n+#!/usr/bin/env python\n+\n+import optparse, os, shutil, subprocess, sys, tempfile, fileinput, tarfile, glob\n+from commons.core.launcher.Launcher import Launcher\n+from commons.core.sql.TableJobAdaptatorFactory import TableJobAdaptatorFactory\n+from commons.core.utils.FileUtils import FileUtils\n+\n+def stop_err( msg ):\n+    sys.stderr.write( "%s\\n" % msg )\n+    sys.exit()\n+\n+def toTar(tarFileName, accepted_hits_outputNames):\n+    tfile = tarfile.open(tarFileName + ".tmp.tar", "w")\n+    currentPath = os.getcwd()\n+    os.chdir(dir)\n+    for file in accepted_hits_outputNames:\n+        relativeFileName = os.path.basename(file)\n+        tfile.add(relativeFileName)\n+    os.system("mv %s %s" % (tarFileName + ".tmp.tar", tarFileName))\n+    tfile.close()\n+    os.chdir(currentPath)\n+    \n+def splitFastQ(fileName, nbOfSeqPerBatch):\n+    nbOfLinesPerFile = nbOfSeqPerBatch * 4\n+    lOutput = []\n+    filePrefix, fileExt = os.path.splitext(os.path.basename(fileName))\n+    resDir = os.path.dirname(fileName)\n+    with open(fileName) as inF:\n+        fileNb = 1\n+        line = inF.readline()\n+        if not line or nbOfLinesPerFile == 0:\n+            outFileName = "%s/%s-%s%s" %(resDir, filePrefix, fileNb, fileExt)\n+            lOutput.append(outFileName)\n+            f = open(outFileName, "wb")\n+            shutil.copyfileobj(open(fileName, "rb"), f)\n+            f.close()\n+        else:\n+            while line:\n+                outFileName = "%s/%s-%s%s" %(resDir, filePrefix, fileNb, fileExt)\n+                lOutput.append(outFileName)\n+                with open(outFileName, "w") as outF:\n+                    lineNb = 1\n+                    while lineNb <= nbOfLinesPerFile and line:\n+                        outF.write(line)\n+                        line = inF.readline()\n+                        lineNb += 1\n+                fileNb += 1\n+    return lOutput\n+\n+def joinBAM(dCutOut2Out):\n+    for key in dCutOut2Out.keys():\n+        fh = open(key, "w") \n+        fh.close()\n+        nbFile = 0\n+        cmd = "samtools merge -f %s" % key\n+        for fileName in dCutOut2Out[key]:\n+            nbFile = nbFile + 1\n+            if nbFile < 225:\n+                cmd += " %s" % fileName\n+            else:\n+                nbFile = 0\n+                cmd += ";mv %s tmpBAM;" % (key)\n+                cmd += "samtools merge -f %s tmpBAM %s" %  (key, fileName)\n+        proc = subprocess.Popen( args=cmd , shell=True)\n+        returncode = proc.wait()\n+\n+        \n+def _map(iLauncher, cmd, cmdStart, cmdFinish ):\n+    lCmds = []\n+    lCmds.extend(cmd)\n+    lCmdStart = []\n+    lCmdStart.extend(cmdStart)\n+    lCmdFinish = []\n+    lCmdFinish.extend(cmdFinish)\n+    return(iLauncher.prepareCommands_withoutIndentation(lCmds, lCmdStart, lCmdFinish))\n+\n+def _createTopHatCommand(iLauncher, options, index_paths, inputFileNames, inputRevFilesNames, space):\n+    lArgs = []\n+    lArgs.append(\'-p %s %s\' % ( options.num_threads, space ))\n+    if options.single_paired == \'paired\':\n+        lArgs.append(\'-r %s \' % options.mate_inner_dist)\n+    if options.settings == \'preSet\':\n+        lArgs.append(index_paths)\n+        lArgs.append(inputFileNames)\n+        if options.input2:\n+            lArgs.append(inputRevFilesNames)\n+        return iLauncher.getSystemCommand("tophat", lArgs)\n+    else:\n+        if int( options.min_anchor_length ) >= 3:\n+            lArgs.append(\'-a %s \' % options.min_anchor_length)\n+        else:\n+            raise Exception, \'Minimum anchor length must be 3 or greater\'\n+        lArgs.append(\'-m %s \' % options.splice_mismatches)\n+        lArgs.append(\'-i %s \' % options.min_intron_length)\n+        lArgs.append(\'-I %s \' % options.max_intron_length)\n+        if float( options.junction_filter ) != 0.0:\n+            lArgs.append(\'-F %s \' % options.junction_filter)\n+        lArgs.append(\'-g %s \' % options.max_multihits)\n+        # Custom junctions options.\n+        if options.gene_model_annotations:\n+            lArgs.append(\'-G %s \' % options.gene_'..b'ame + \'\\n\')\n+    file.close()\n+    out.close()\n+    \n+    if options.input2:\n+        revFile = open(options.input2,"r")\n+        lines = revFile.readlines()\n+        inputRevFileNames = []\n+        for line in lines:\n+            revTab = line.split()\n+            inputRevFileNames.append(revTab[1])\n+        revFile.close()\n+\n+    \n+    # Creat bowtie index if necessary.\n+    tmp_index_dirs = []\n+    index_paths = []\n+    tmp_index_dir = tempfile.mkdtemp(dir="%s" % os.getcwd())\n+    tmp_index_dirs.append(tmp_index_dir)\n+    if options.own_file:\n+        index_path = os.path.join( tmp_index_dir, \'.\'.join( os.path.split( options.own_file )[1].split( \'.\' )[:-1] ) )\n+        index_paths.append(index_path)\n+        try:\n+            os.link( options.own_file, index_path + \'.fa\' )\n+        except:\n+            # Tophat prefers (but doesn\'t require) fasta file to be in same directory, with .fa extension\n+            pass\n+        lCmdsTuples =[]\n+        acronym = "tophat_index"\n+        jobdb = TableJobAdaptatorFactory.createJobInstance()\n+        iLauncher = Launcher(jobdb, os.getcwd(), "", "", os.getcwd(), os.getcwd(), "jobs", "", acronym, acronym, False, True)\n+        cmd_index = iLauncher.getSystemCommand("bowtie-build", [space, "-f %s" % options.own_file, index_path])\n+        cmd2Launch = []\n+        cmdStart = []\n+        cmdFinish = []\n+        cmd2Launch.append(cmd_index)\n+        lCmdsTuples.append(_map(iLauncher, cmd2Launch, cmdStart, cmdFinish)) \n+        iLauncher.runLauncherForMultipleJobs(acronym, lCmdsTuples, True)\n+    else:\n+        for file in inputFileNames:\n+            tmp_index_dir = tempfile.mkdtemp()\n+            index_path = tmp_index_dir + \'/\' + os.path.basename(file).split(\'.\')[0]\n+            index_paths.append(index_path)\n+            tmp_index_dirs.append(tmp_index_dir)\n+\n+    \n+    \n+    acronym = "tophat"\n+    jobdb = TableJobAdaptatorFactory.createJobInstance()\n+    iLauncher = Launcher(jobdb, os.getcwd(), "", "", os.getcwd(), os.getcwd(), "jobs", "", acronym, acronym, False, True)\n+    lCmdsTuples = []\n+    dCutOut2Out = {}\n+    lAllFile2remove = []\n+    # for inputFileName in inputFileNames:\n+    for i in range(len(inputFileNames)):\n+        lCutOutput = []\n+        lCutInputFile = splitFastQ(inputFileNames[i], 20000)\n+        lAllFile2remove.extend(lCutInputFile)\n+        if options.input2:\n+            lCutPairInputFile = splitFastQ(inputRevFileNames[i], 20000)\n+            lAllFile2remove.extend(lCutPairInputFile)\n+        for j in range(len(lCutInputFile)):\n+            cutOutput = "%s_out" %  lCutInputFile[j]\n+            lCutOutput.append(cutOutput)\n+            lAllFile2remove.extend(lCutOutput)\n+            cmd2Launch = []\n+            if options.input2: \n+                inputRevFile = lCutPairInputFile[j]\n+            else:\n+                inputRevFile = ""\n+            if options.own_file:\n+                cmd2Launch.append(_createTopHatCommand(iLauncher, options, index_paths[0], lCutInputFile[j], inputRevFile, space))\n+            else:\n+                cmd2Launch.append(_createTopHatCommand(iLauncher, options, index_paths[i], lCutInputFile[j], inputRevFile, space))\n+            cmdStart = []\n+            cmdFinish = ["shutil.copyfile( os.path.join( \'tophat_out\', \'accepted_hits.bam\' ), \'%s\')" % cutOutput]\n+            lCmdsTuples.append(_map(iLauncher, cmd2Launch, cmdStart, cmdFinish))    \n+        dCutOut2Out[accepted_hits_outputNames[i]] = lCutOutput\n+    iLauncher.runLauncherForMultipleJobs(acronym, lCmdsTuples, True)\n+    \n+    joinBAM(dCutOut2Out) \n+    FileUtils.removeFilesFromListIfExist(lAllFile2remove)   \n+                 \n+    if options.outputTar != None:\n+        toTar(options.outputTar, accepted_hits_outputNames)\n+\n+    \n+    # Clean up temp dirs\n+    for tmp_index_dir in tmp_index_dirs:\n+        if os.path.exists( tmp_index_dir ):\n+            shutil.rmtree( tmp_index_dir )\n+\n+    for tmp in tmp_files:\n+        os.remove(tmp)\n+\n+\n+if __name__=="__main__": __main__()\n'
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/tophat_parallel_unSQL.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/tophat_parallel_unSQL.xml Tue Apr 30 14:33:21 2013 -0400
[
b'@@ -0,0 +1,577 @@\n+<tool id="tophat_parallel_unSQL" name="Tophat for Illumina (for DEA in parallel)" version="1.0.0">\n+    <description>Find splice junctions using RNA-seq data, can have several input RNA-seq data (parallelized).</description>\n+    <version_command>tophat --version</version_command>\n+    <requirements>\n+        <requirement type="package">tophat</requirement>\n+    </requirements>\n+    <command interpreter="python">\n+\t    tophat_parallel_unSQL.py\n+            ## Change this to accommodate the number of threads you have available.\n+            --num-threads="4"\n+\n+            ## Provide outputs.\n+            -o $outputFileName\n+            ##--junctions-output=$junctions\n+            ##--hits-output=$accepted_hits\n+\n+            ## Handle reference file.\n+            #if $refGenomeSource.genomeSource == "history":\n+                --own-file=$refGenomeSource.ownFile\n+            #else:\n+                --indexes-path="${ filter( lambda x: str( x[0] ) == str( $refGenomeSource.index ), $__app__.tool_data_tables[ \'tophat_indexes\' ].get_fields() )[0][-1] }"\n+            #end if\n+\n+            ## Are reads single-end or paired?\n+            --single-paired=$singlePaired.sPaired\n+\n+            ## First input file always required.\n+            --input1=$input1\n+\n+            ## Set params based on whether reads are single-end or paired.\n+            #if $singlePaired.sPaired == "single":\n+                --settings=$singlePaired.sParams.sSettingsType\n+                #if $singlePaired.sParams.sSettingsType == "full":\n+                    -a $singlePaired.sParams.anchor_length\n+                    -m $singlePaired.sParams.splice_mismatches\n+                    -i $singlePaired.sParams.min_intron_length\n+                    -I $singlePaired.sParams.max_intron_length\n+                    -F $singlePaired.sParams.junction_filter\n+                    -g $singlePaired.sParams.max_multihits\n+                    --min-segment-intron $singlePaired.sParams.min_segment_intron\n+                    --max-segment-intron $singlePaired.sParams.max_segment_intron\n+                    --initial-read-mismatches=$singlePaired.sParams.initial_read_mismatches\n+                    --seg-mismatches=$singlePaired.sParams.seg_mismatches\n+                    --seg-length=$singlePaired.sParams.seg_length\n+                    --library-type=$singlePaired.sParams.library_type\n+                    \n+                    ## Indel search.\n+                    #if $singlePaired.sParams.indel_search.allow_indel_search == "Yes":\n+                        ## --allow-indels\n+                        --max-insertion-length $singlePaired.sParams.indel_search.max_insertion_length\n+                        --max-deletion-length $singlePaired.sParams.indel_search.max_deletion_length\n+                    #else:\n+                        --no-novel-indels\n+                    #end if\n+\n+                    ## Supplying junctions parameters.\n+                    #if $singlePaired.sParams.own_junctions.use_junctions == "Yes":\n+                        #if $singlePaired.sParams.own_junctions.gene_model_ann.use_annotations == "Yes":\n+                            -G $singlePaired.sParams.own_junctions.gene_model_ann.gene_annotation_model\n+                        #end if\n+                        #if $singlePaired.sParams.own_junctions.raw_juncs.use_juncs == "Yes":\n+                            -j $singlePaired.sParams.own_junctions.raw_juncs.raw_juncs\n+                        #end if\n+                        ## TODO: No idea why a string cast is necessary, but it is:\n+                        #if str($singlePaired.sParams.own_junctions.no_novel_juncs) == "Yes":\n+                            --no-novel-juncs\n+                        #end if\n+                    #end if\n+\n+                    #if $singlePaired.sParams.closure_search.use_search == "Yes":\n+                        --closure-search\n+                        --min-closure-exon $singlePaired.sParams.closure_search.min_c'..b'hen such a pair is supported by a split segment alignment of a long read. The default is 500000.\n+  -F/--min-isoform-fraction 0.0-1.0 TopHat filters out junctions supported by too few alignments. Suppose a junction spanning two exons, is supported by S reads. Let the average depth of coverage of \n+                                    exon A be D, and assume that it is higher than B. If S / D is less than the minimum isoform fraction, the junction is not reported. A value of zero disables the \n+                                    filter. The default is 0.15.\n+  -g/--max-multihits INT            Instructs TopHat to allow up to this many alignments to the reference for a given read, and suppresses all alignments for reads with more than this many \n+                                    alignments. The default is 40.\n+  -G/--GTF [GTF 2.2 file]           Supply TopHat with a list of gene model annotations. TopHat will use the exon records in this file to build a set of known splice junctions for each gene, and will attempt to align reads to these junctions even if they would not normally be covered by the initial mapping.\n+  -j/--raw-juncs [juncs file]       Supply TopHat with a list of raw junctions. Junctions are specified one per line, in a tab-delimited format. Records look like: [chrom] [left] [right] [+/-], left and right are zero-based coordinates, and specify the last character of the left sequenced to be spliced to the first character of the right sequence, inclusive.\n+  -no-novel-juncs                   Only look for junctions indicated in the supplied GFF file. (ignored without -G)\n+  --no-closure-search               Disables the mate pair closure-based search for junctions. Currently, has no effect - closure search is off by default.\n+  --closure-search                  Enables the mate pair closure-based search for junctions. Closure-based search should only be used when the expected inner distance between mates is small (about or less than 50bp)\n+  --no-coverage-search              Disables the coverage based search for junctions.\n+  --coverage-search                 Enables the coverage based search for junctions. Use when coverage search is disabled by default (such as for reads 75bp or longer), for maximum sensitivity.\n+  --microexon-search                With this option, the pipeline will attempt to find alignments incident to microexons. Works only for reads 50bp or longer.\n+  --butterfly-search                TopHat will use a slower but potentially more sensitive algorithm to find junctions in addition to its standard search. Consider using this if you expect that your experiment produced a lot of reads from pre-mRNA, that fall within the introns of your transcripts.\n+  --segment-mismatches              Read segments are mapped independently, allowing up to this many mismatches in each segment alignment. The default is 2.\n+  --segment-length                  Each read is cut up into segments, each at least this long. These segments are mapped independently. The default is 25.\n+  --min-closure-exon                During closure search for paired end reads, exonic hops in the potential splice graph must be at least this long. The default is 50.\n+  --min-closure-intron              The minimum intron length that may be found during closure search. The default is 50.\n+  --max-closure-intron              The maximum intron length that may be found during closure search. The default is 5000.\n+  --min-coverage-intron             The minimum intron length that may be found during coverage search. The default is 50.\n+  --max-coverage-intron             The maximum intron length that may be found during coverage search. The default is 20000.\n+  --min-segment-intron              The minimum intron length that may be found during split-segment search. The default is 50.\n+  --max-segment-intron              The maximum intron length that may be found during split-segment search. The default is 500000.\n+    </help>\n+</tool>\n'
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/DiffExpAnal/wrappGSNAP.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/DiffExpAnal/wrappGSNAP.py Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,76 @@
+#! /usr/bin/env python
+
+import os, sys, subprocess,tempfile
+from optparse import OptionParser
+
+def stop_err(msg):
+    sys.stderr.write('%s\n' % msg)
+    sys.exit()
+
+def __main__():
+    #Parse Command Line
+    description = "GMAP/GSNAP version:2012-12-20."
+    parser = OptionParser(description = description)
+    parser.add_option("-d", "--genomeName", dest="genomeName", help="Define the reference genome name.[compulsory]")
+    parser.add_option("-o", "--outputFile", dest="outputfile", help="output[compulsory]")
+    #parser.add_option("-D", "--workingDir", dest="workingdir", help="Define the directory of writing reference genome index.[compulsory]")
+    parser.add_option("-k", "--kmer", dest="kmer", default=12, help="Choose kmer value (<=16), a big kmer value can take more RAM(4Go).[compulsory]")
+    parser.add_option("-i", "--inputFasta", dest="inputFastaFile", help="Reference genome file, fasta format.[compulsory]")
+    parser.add_option("-q", "--inputFastq", dest="inputFastqFile", help="Input fastq file.")
+    parser.add_option("-p", "--pairedEnd", dest="pairedEndFile", default=None, help="Input paired-end fastq file.")
+    parser.add_option("-A", "--outputFormat", dest="outputFormat", default="sam", help="Choose an output format [sam, goby (need to re-compile with appropriate options)].")
+    (options, args) = parser.parse_args()    
+
+    #If workingDir dose not exist, should create before run the job.
+    
+    workingDir = os.path.dirname(options.inputFastaFile)
+    
+    cmds = []
+    cmd_setup = "gmap_setup -d %s -D %s -k %s %s" % (options.genomeName, workingDir, options.kmer, options.inputFastaFile)
+    cmds.append(cmd_setup)
+    cmd_make_coords = "make -f Makefile.%s coords" % options.genomeName 
+    cmds.append(cmd_make_coords)
+    cmd_make_gmapdb = "make -f Makefile.%s gmapdb" % options.genomeName
+    cmds.append(cmd_make_gmapdb)
+    cmd_make_install = "make -f Makefile.%s install" % options.genomeName
+    cmds.append(cmd_make_install)
+    cmd_run = "gsnap -d %s -D %s -A %s %s " % (options.genomeName, workingDir, options.outputFormat, options.inputFastqFile)
+    if options.pairedEndFile != None:
+        cmd_run += "%s" % options.pairedEndFile
+    cmd_run += " > %s" % options.outputfile
+    cmds.append(cmd_run)
+    
+    tmp_files = []
+    for i in range(len(cmds)):
+        try:
+            tmp_out = tempfile.NamedTemporaryFile().name
+            tmp_files.append(tmp_out)
+            tmp_stdout = open(tmp_out, 'wb')
+            tmp_err = tempfile.NamedTemporaryFile().name
+            tmp_files.append(tmp_err)
+            tmp_stderr = open(tmp_err, 'wb')
+            proc = subprocess.Popen(args=cmds[i], shell=True, cwd=".", stdout=tmp_stdout, stderr=tmp_stderr)
+            returncode = proc.wait()
+            tmp_stderr.close()
+            #get stderr, allowing for case where it's very large
+            tmp_stderr = open(tmp_err, 'rb')
+            stderr = ''
+            buffsize = 1048576
+            try:
+                while True:
+                    stderr += tmp_stderr.read(buffsize)
+                    if not stderr or len(stderr) % buffsize != 0:
+                        break
+            except OverflowError:
+                pass
+            tmp_stdout.close()
+            tmp_stderr.close()
+            if returncode != 0:
+                raise Exception, stderr
+        except Exception, e:
+            stop_err('Error in :\n' + str(e))
+    
+    for tmp_file in tmp_files:
+        os.remove(tmp_file)
+    
+if __name__=="__main__":__main__()
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/File.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/File.java Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,55 @@
+/**
+ *
+ * Copyright INRA-URGI 2009-2010
+ * 
+ * This software is governed by the CeCILL license under French law and
+ * abiding by the rules of distribution of free software. You can use,
+ * modify and/ or redistribute the software under the terms of the CeCILL
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ * 
+ * As a counterpart to the access to the source code and rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty and the software's author, the holder of the
+ * economic rights, and the successive licensors have only limited
+ * liability.
+ * 
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading, using, modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean that it is complicated to manipulate, and that also
+ * therefore means that it is reserved for developers and experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and, more generally, to use and operate it in the
+ * same conditions as regards security.
+ * 
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL license and that you accept its terms.
+ *
+ */
+public class File {
+  String name;
+  String formatType;
+  String format;
+
+
+  public File(String name, String type, String format) {
+    this.name       = name;
+    this.formatType = type;
+    this.format     = format;
+  }
+
+  public String getName() {
+    return this.name;
+  }
+
+  public String getFormatType() {
+    return this.formatType;
+  }
+
+  public String getFormat() {
+    return this.format;
+  }
+}
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Files.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Files.java Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,75 @@
+/**
+ *
+ * Copyright INRA-URGI 2009-2010
+ * 
+ * This software is governed by the CeCILL license under French law and
+ * abiding by the rules of distribution of free software. You can use,
+ * modify and/ or redistribute the software under the terms of the CeCILL
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ * 
+ * As a counterpart to the access to the source code and rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty and the software's author, the holder of the
+ * economic rights, and the successive licensors have only limited
+ * liability.
+ * 
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading, using, modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean that it is complicated to manipulate, and that also
+ * therefore means that it is reserved for developers and experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and, more generally, to use and operate it in the
+ * same conditions as regards security.
+ * 
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL license and that you accept its terms.
+ *
+ */
+import java.util.*;
+
+public class Files {
+  HashMap <String, File> files;  
+
+  public Files () {
+    files = new HashMap < String, File> ();
+  }
+
+  public void addFile(String fileName, String type, String format) {
+    this.addFile(new File(fileName, type, format));
+  }
+
+  public void addFile(File file) {
+    files.put(file.name, file);
+  }
+
+  public void clear() {
+    files.clear();
+  }
+
+  public String getType(String fileName) {
+    if (fileName == null) {
+      System.out.println("Error! Looking for format of empty file name!");
+    }
+    if (! files.containsKey(fileName)) {
+      System.out.println("Oops! Format type of file " + fileName + " is not found!");
+      return null;
+    }
+    return files.get(fileName).formatType;
+  }
+
+  public String getFormat(String fileName) {
+    if (fileName == null) {
+      System.out.println("Error! Looking for format of empty file name!");
+    }
+    if (! files.containsKey(fileName)) {
+      System.out.println("Oops! Format of file " + fileName + " is not found!");
+      return null;
+    }
+    return files.get(fileName).format;
+  }
+}
+
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/FormatType.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/FormatType.java Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,64 @@
+/**
+ *
+ * Copyright INRA-URGI 2009-2010
+ * 
+ * This software is governed by the CeCILL license under French law and
+ * abiding by the rules of distribution of free software. You can use,
+ * modify and/ or redistribute the software under the terms of the CeCILL
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ * 
+ * As a counterpart to the access to the source code and rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty and the software's author, the holder of the
+ * economic rights, and the successive licensors have only limited
+ * liability.
+ * 
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading, using, modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean that it is complicated to manipulate, and that also
+ * therefore means that it is reserved for developers and experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and, more generally, to use and operate it in the
+ * same conditions as regards security.
+ * 
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL license and that you accept its terms.
+ *
+ */
+import java.util.*;
+
+public class FormatType {
+  String type;
+  Vector < String > formats;
+
+  public FormatType (String type) {
+    this.type    = type;
+    this.formats = new Vector < String > ();
+  }
+
+  public String getType () {
+    return this.type;
+  }
+
+  public void addFormat (String format) {
+    formats.add(format);
+  }
+
+  public boolean containsFormat (String format) {
+    for (int i = 0; i < formats.size(); i++) {
+      if (((String) formats.get(i)).compareToIgnoreCase(format) == 0) {
+        return true;
+      }
+    }
+    return false;
+  }
+
+  public Vector < String > getFormats () {
+    return formats;
+  }
+}
+
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/FormatsContainer.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/FormatsContainer.java Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,90 @@
+/**
+ *
+ * Copyright INRA-URGI 2009-2010
+ * 
+ * This software is governed by the CeCILL license under French law and
+ * abiding by the rules of distribution of free software. You can use,
+ * modify and/ or redistribute the software under the terms of the CeCILL
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ * 
+ * As a counterpart to the access to the source code and rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty and the software's author, the holder of the
+ * economic rights, and the successive licensors have only limited
+ * liability.
+ * 
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading, using, modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean that it is complicated to manipulate, and that also
+ * therefore means that it is reserved for developers and experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and, more generally, to use and operate it in the
+ * same conditions as regards security.
+ * 
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL license and that you accept its terms.
+ *
+ */
+import java.util.*;
+
+public class FormatsContainer {
+
+  HashMap < String, FormatType > formatTypes;
+
+
+  public FormatsContainer() {
+    this.formatTypes = new HashMap < String, FormatType > ();
+  }
+
+
+  public void addFormat(String type, String format) {
+    FormatType formatType;
+    if (formatTypes.containsKey(type)) {
+      formatType = this.formatTypes.get(type);
+    }
+    else {
+      formatType = new FormatType(type);
+      this.formatTypes.put(type, formatType);
+    }
+    formatType.addFormat(format);
+  }
+
+
+  public Vector < String > getFormatTypes () {
+    Vector < String > v = new Vector < String > ();
+    v.addAll(this.formatTypes.keySet());
+    return v;
+  }
+
+
+  public FormatType getFormats (String type) {
+    if (! formatTypes.containsKey(type)) {
+      System.out.print("Format type " + type + " is unavailable. Got: ");
+      Iterator it = formatTypes.entrySet().iterator();
+      while (it.hasNext()) {
+        Map.Entry pairs = (Map.Entry) it.next();
+        System.out.print(pairs.getKey() + " ");
+      }
+      System.out.println();
+    }
+    return formatTypes.get(type);
+  }
+
+
+  public String getFormatType (String format) {
+    for (Iterator it = formatTypes.keySet().iterator(); it.hasNext(); ) {
+      Object type       =  it.next();
+      Object formatType = formatTypes.get(type);
+      if (((FormatType) formatType).containsFormat(format)) {
+        return (String) type;
+      }
+    }
+    return null;
+  }
+}
+
+
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/FormatsReader.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/FormatsReader.java Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,83 @@
+/**
+ *
+ * Copyright INRA-URGI 2009-2010
+ * 
+ * This software is governed by the CeCILL license under French law and
+ * abiding by the rules of distribution of free software. You can use,
+ * modify and/ or redistribute the software under the terms of the CeCILL
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ * 
+ * As a counterpart to the access to the source code and rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty and the software's author, the holder of the
+ * economic rights, and the successive licensors have only limited
+ * liability.
+ * 
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading, using, modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean that it is complicated to manipulate, and that also
+ * therefore means that it is reserved for developers and experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and, more generally, to use and operate it in the
+ * same conditions as regards security.
+ * 
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL license and that you accept its terms.
+ *
+ */
+import java.util.*;
+import java.io.File;
+import java.io.*;
+
+
+public class FormatsReader {
+
+  String fileName;
+  Vector < FormatType > formatTypes;
+  Vector < String > typeNames;
+
+
+  public FormatsReader(String fileName) {
+    this.fileName    = fileName;  
+    this.formatTypes = new Vector < FormatType > ();
+  }
+
+
+  public boolean read() {
+    File file = new File(this.fileName);
+
+    try {
+      BufferedReader reader = new BufferedReader(new FileReader(file));
+      String     line = null;
+      String[]   lineElements;
+      String[]   formats;
+      String     typeName;
+
+      while ((line = reader.readLine()) != null) {
+        if (line.length() > 0) {
+          lineElements = line.split(":");
+          typeName     = lineElements[0].trim();
+          formats      = lineElements[1].split(",");
+          for (int i = 0; i < formats.length; i++) {
+            Global.formats.addFormat(typeName, formats[i].trim());
+          }
+        }
+      }
+
+      reader.close();
+    }
+    catch (FileNotFoundException e) {
+      return false;
+    }
+    catch (IOException e) {
+      return false;
+    }
+
+    return true;
+  }
+}
+
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Global.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Global.java Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,70 @@
+/**
+ *
+ * Copyright INRA-URGI 2009-2010
+ * 
+ * This software is governed by the CeCILL license under French law and
+ * abiding by the rules of distribution of free software. You can use,
+ * modify and/ or redistribute the software under the terms of the CeCILL
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ * 
+ * As a counterpart to the access to the source code and rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty and the software's author, the holder of the
+ * economic rights, and the successive licensors have only limited
+ * liability.
+ * 
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading, using, modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean that it is complicated to manipulate, and that also
+ * therefore means that it is reserved for developers and experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and, more generally, to use and operate it in the
+ * same conditions as regards security.
+ * 
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL license and that you accept its terms.
+ *
+ */
+import java.util.Vector;
+import java.util.HashMap;
+import javax.swing.DefaultListModel;
+import javax.swing.JButton;
+import javax.swing.JTextField;
+
+public class Global {
+
+  public static int logAreaSize = 100;
+
+  public static String smartConfFileName = "smart.conf";
+
+  public static String smartProgramsFileName = "programs.txt";
+
+  public static String smartFormatsFileName = "formats.txt";
+
+  public static String pythonPath = new String();
+
+  public static String pythonCommand = "python";
+
+  public static String mysqlCommand = "mysql";
+
+  public static String rCommand = "R";
+
+  public static Files files = new Files();
+
+  public static Vector < String > fileNames = new Vector < String >();
+
+  public static FormatsContainer formats = new FormatsContainer();
+
+  public static boolean programRunning = false;
+
+  public static HashMap < JButton, JTextField > otherFilesChooser = new HashMap < JButton, JTextField >();
+
+  public static HashMap < JButton, JTextField > otherDirectoriesChooser = new HashMap < JButton, JTextField >();
+
+  public static HashMap < JButton, JTextField > otherFileConcatenationChooser = new HashMap < JButton, JTextField >();
+
+}
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Installer/Old/PasswordAsker.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Installer/Old/PasswordAsker.java Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,87 @@
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+import java.util.concurrent.CountDownLatch;
+
+public class PasswordAsker {
+
+  static String password;
+  static JFrame frame;
+  static CountDownLatch latch;
+
+
+  public PasswordAsker() {
+    password = null;
+    javax.swing.SwingUtilities.invokeLater(new Runnable() {
+      public void run() {
+        createAndShowGUI();
+      }
+    });
+    latch = new CountDownLatch(1);
+  }
+
+
+  private static void createAndShowGUI() {
+    //Create and set up the window.
+    frame = new JFrame("Password");
+    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+    frame.setContentPane(setMainPane());
+
+    //Display the window.
+    frame.pack();
+    frame.setVisible(true);
+  }
+
+
+  private static JPanel setMainPane() {
+    JPanel rootPanel = new JPanel(false);
+    rootPanel.setLayout(new GridLayout(0, 1));
+
+    JPanel infoPanel = new JPanel(false);
+    JLabel infoLabel = new JLabel("Please write here the password that you entered for the mySQL root account.\r\nNo information is stored nor sent. I promise.");
+    infoPanel.add(infoLabel);
+
+    JPanel passPanel = new JPanel(false);
+    passPanel.setLayout(new GridLayout(1, 0));
+    JLabel passLabel = new JLabel("password");
+    final JTextField passText = new JTextField(20);
+    passLabel.setLabelFor(passText);
+    passPanel.add(passLabel);
+    passPanel.add(passText);
+
+    JPanel  okPanel  = new JPanel(false);
+    JButton okButton = new JButton("OK");
+    okPanel.add(okButton);
+
+    okButton.addActionListener(new ActionListener() {
+      public void actionPerformed(ActionEvent e) {
+        password = passText.getText();
+        frame.setVisible(false);
+        frame.dispose();
+        latch.countDown();
+      }
+    });
+
+    rootPanel.add(infoPanel);
+    rootPanel.add(passPanel);
+    rootPanel.add(okPanel);
+
+    return rootPanel;
+  }
+
+
+  public boolean waitForPassword() {
+    try {
+      latch.await();
+    }
+    catch (InterruptedException e) {
+      return false;
+    }
+    return true;
+  }
+
+
+  public String getPassword() {
+    return password;
+  }
+}
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Installer/Old/SmartInstaller.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Installer/Old/SmartInstaller.java Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,167 @@
+import java.util.*;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.io.*;
+import javax.swing.*;
+import javax.swing.filechooser.*;
+import javax.swing.border.*;
+import javax.swing.SwingUtilities;
+import java.net.*;
+
+public class SmartInstaller extends JPanel implements ActionListener {
+  int       BUFFER = 1024;
+
+  JFrame    mainFrame;
+  JTextArea logArea;
+
+  // configuration chooser buttons
+  String       configurations[] = {"32 bits", "64 bits"};
+  JRadioButton configurationButtons[];
+
+  // program chooser buttons
+  String    programChoosers[] = {"R", "R Color Brewer Package", "R HMisc Package", "MySQL", "MySQL account", "Python 2.6", "Python DB", "S-MART"};
+  JCheckBox programChooserButtons[];
+
+  JButton   goButton;
+
+  // install directory
+  JButton    installDirectoryChooserButton;
+  JTextField installDirectoryChooserTextField;
+
+
+  public SmartInstaller() {
+    super();
+
+    Box box = Box.createVerticalBox();
+
+    // Header
+    JPanel       headerPanel = new JPanel(false);
+    JTextArea    headerArea  = new JTextArea("This is the S-MART installation tool.\r\nIt will download and install the needed softwares, as well as S-MART itself.\r\nYou can unselect the software that you already have installed.\r\nDuring the installation, accept all the default parameters.\r\nPlease remember the root password if you install MySQL!");
+    TitledBorder headerBorder = BorderFactory.createTitledBorder("Wellcome to the S-MART installer!");
+    headerArea.setEditable(false);
+    headerArea.setBackground(headerPanel.getBackground());
+    headerPanel.add(headerArea);
+    headerPanel.setBorder(headerBorder);
+
+
+    // Configuration
+    JPanel configurationPanel = new JPanel(false);
+    configurationPanel.setLayout(new GridLayout(1, 0));
+    configurationButtons = new JRadioButton[configurations.length];
+    ButtonGroup configurationGroup = new ButtonGroup();
+    for (int i = 0; i < configurations.length; i++) {
+      JRadioButton button = new JRadioButton(configurations[i]);
+      configurationPanel.add(button);
+      configurationButtons[i] = button;
+      configurationGroup.add(button);
+    }
+    configurationButtons[0].setSelected(true);
+    TitledBorder configurationBorder = BorderFactory.createTitledBorder("Configuration");
+    configurationPanel.setBorder(configurationBorder);
+
+
+    // Program chooser panel
+    JPanel programPanel = new JPanel(false);
+    programPanel.setLayout(new GridLayout(0, 1));
+
+    JLabel programLabel = new JLabel("Choose which programs to install:");
+    programPanel.add(programLabel);
+    programChooserButtons = new JCheckBox[programChoosers.length];
+    for (int i = 0; i < programChoosers.length; i++) {
+      JCheckBox button = new JCheckBox(programChoosers[i]);
+      button.setSelected(true);
+      programPanel.add(button);
+      programChooserButtons[i] = button;
+    }
+    TitledBorder programBorder = BorderFactory.createTitledBorder("Programs");
+    programPanel.setBorder(programBorder);
+
+    // Install directory chooser
+    JPanel installDirectoryChooserPanel = new JPanel(false);
+    installDirectoryChooserPanel.setLayout(new GridLayout(1, 0));
+    JLabel installDirectoryChooserLabel = new JLabel("Choose a directory to install S-MART: ");
+    installDirectoryChooserTextField = new JTextField();
+    installDirectoryChooserButton = new JButton("Open...");
+    installDirectoryChooserButton.addActionListener(this);
+
+    installDirectoryChooserPanel.add(installDirectoryChooserLabel);
+    installDirectoryChooserPanel.add(installDirectoryChooserTextField);
+    installDirectoryChooserPanel.add(installDirectoryChooserButton);
+    TitledBorder installDirectoryChooserBorder = BorderFactory.createTitledBorder("Installation directory");
+    installDirectoryChooserPanel.setBorder(installDirectoryChooserBorder);
+
+    // GO!
+    JPanel goPanel = new JPanel(false);
+    goButton = new JButton("GO!");
+    goButton.addActionListener(this);
+    goButton.setSelected(true);
+    goPanel.add(goButton);
+    TitledBorder goBorder = BorderFactory.createTitledBorder("Start install");
+    goPanel.setBorder(goBorder);
+
+    // Log
+    logArea = new JTextArea(10, 120);
+    logArea.setFont(new Font("Monospaced", logArea.getFont().getStyle(), logArea.getFont().getSize()));
+    JScrollPane logScroll  = new JScrollPane(logArea, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
+    TitledBorder logBorder = BorderFactory.createTitledBorder("Log");
+    logScroll.setBorder(logBorder);
+
+    GridLayout horizontalLayout = new GridLayout(1, 0);
+
+    box.add(headerPanel);
+    box.add(configurationPanel);
+    box.add(programPanel);
+    box.add(installDirectoryChooserPanel);
+    box.add(goPanel);
+    box.add(logScroll);
+
+    add(box);
+  }
+
+
+  public void actionPerformed(ActionEvent e) {
+
+    // Install directories chooser
+    if (e.getSource() == goButton) {
+      boolean[] selectedPrograms = new boolean[programChoosers.length];
+      for (int i = 0; i < programChoosers.length; i++) {
+        selectedPrograms[i] = programChooserButtons[i].isSelected();
+      }
+      SmartInstallerTask task = new SmartInstallerTask(logArea, selectedPrograms, installDirectoryChooserTextField.getText(), (configurationButtons[0].isSelected())? 0: 1);
+      task.execute();
+    }
+    // Install directories chooser
+    else if (e.getSource() == installDirectoryChooserButton) {
+      JFileChooser chooser = new JFileChooser();
+      chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
+      if (chooser.showOpenDialog(mainFrame) == JFileChooser.APPROVE_OPTION) {
+        installDirectoryChooserTextField.setText(chooser.getSelectedFile().getPath());
+      }
+    }
+  }
+
+  private static void createAndShowGUI() {
+    // Create and set up the window.
+    JFrame mainFrame = new JFrame("S-Mart Installer");
+    mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+
+    //Create and set up the content pane.
+    JComponent newContentPane = new SmartInstaller();
+    newContentPane.setOpaque(true);
+    mainFrame.setContentPane(newContentPane);
+
+    // Display the window.
+    mainFrame.pack();
+    mainFrame.setVisible(true);
+  }
+
+
+  public static void main(String[] args) {
+    javax.swing.SwingUtilities.invokeLater(new Runnable() {
+      public void run() {
+        createAndShowGUI();
+      }
+    });
+  }
+}
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Installer/Old/SmartInstallerTask.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Installer/Old/SmartInstallerTask.java Tue Apr 30 14:33:21 2013 -0400
[
b'@@ -0,0 +1,455 @@\n+import java.util.*;\n+import java.awt.event.ActionEvent;\n+import java.awt.event.ActionListener;\n+import java.io.*;\n+import javax.swing.*;\n+import javax.swing.filechooser.*;\n+import javax.swing.border.*;\n+import javax.swing.SwingUtilities;\n+import java.net.*;\n+import java.util.Stack;\n+import java.util.zip.ZipEntry;\n+import java.util.zip.ZipInputStream;\n+\n+public class SmartInstallerTask extends SwingWorker<Boolean, String> {\n+\n+  int BUFFER = 1024;\n+\n+  int       architecture         = 0;\n+  String    installDirectoryName = null;\n+  JTextArea logArea              = null;\n+  boolean[] selectedPrograms     = null;\n+\n+  // program chooser buttons\n+  String    programChoosers[] = {"R", "R Color Brewer Package", "R HMisc Package", "MySQL", "MySQL account", "Python 2.6", "Python DB", "S-MART"};\n+\n+  // Web addresses for the tools\n+  String packageAddresses[][] = {\n+    {"http://cran.cict.fr/bin/windows/base/R-2.11.0-win32.exe", "http://cran.cict.fr/bin/windows64/base/R-2.11.0-win64.exe"},\n+    {"", ""},\n+    {"", ""},\n+    {"http://mirrors.ircam.fr/pub/mysql/Downloads/MySQL-5.1/mysql-essential-5.1.47-win32.msi", "http://mirrors.ircam.fr/pub/mysql/Downloads/MySQL-5.1/mysql-essential-5.1.47-winx64.msi"},\n+    {"", ""},\n+    {"http://www.python.org/ftp/python/2.6.5/python-2.6.5.msi", "http://www.python.org/ftp/python/2.6.5/python-2.6.5.amd64.msi"},\n+    {"http://www.technicalbard.com/files/MySQL-python-1.2.2.win32-py2.6.exe", "http://www.technicalbard.com/files/MySQL-python-1.2.2.win32-py2.6.exe"},\n+    {"http://urgi.versailles.inra.fr/download/s-mart/s-mart.zip", "http://urgi.versailles.inra.fr/download/s-mart/s-mart.zip"}\n+  };\n+\n+  // Packages to install\n+  String rPackages[] = {"RColorBrewer", "Hmisc"};\n+\n+  // Script lines\n+  String scriptLines[][] = {\n+    {"\\"<INSTALLDIR>\\\\R-2.11.0-win32.exe\\"", "\\"<INSTALLDIR>\\\\R-2.11.0-win64.exe\\""},\n+    {"\\"<RFILE>\\" CMD BATCH \\"<INSTALLDIR>\\\\installRColorBrewer.R\\"", "\\"<RFILE>\\" CMD BATCH \\"<INSTALLDIR>\\\\installRColorBrewer.R\\""},\n+    {"\\"<RFILE>\\" CMD BATCH \\"<INSTALLDIR>\\\\installHmisc.R\\"", "\\"<RFILE>\\" CMD BATCH \\"<INSTALLDIR>\\\\installHmisc.R\\""},\n+    {"msiexec /i \\"<INSTALLDIR>\\\\mysql-essential-5.1.47-win32.msi\\"", "msiexec /i \\"<INSTALLDIR>\\\\mysql-essential-5.1.47-winx64.msi\\""},\n+    {"", ""},\n+    {"msiexec /i \\"<INSTALLDIR>\\\\python-2.6.5.msi\\"", "msiexec /i \\"<INSTALLDIR>\\\\python-2.6.5.amd64.msi\\""},\n+    {"<INSTALLDIR>\\\\MySQL-python-1.2.2.win32-py2.6.exe", "<INSTALLDIR>\\\\MySQL-python-1.2.2.win32-py2.6.exe"},\n+    {"", ""}\n+  };\n+\n+  // Files to uncompress\n+  String compressedFiles[][] = {\n+    {"", ""},\n+    {"", ""},\n+    {"", ""},\n+    {"", ""},\n+    {"", ""},\n+    {"", ""},\n+    {"", ""},\n+    {"<INSTALLDIR>\\\\s-mart.zip", "<INSTALLDIR>\\\\s-mart.zip"}\n+  };\n+\n+\n+  public SmartInstallerTask(JTextArea ta, boolean[] b, String s, int a) {\n+    logArea              = ta;\n+    selectedPrograms     = b;\n+    installDirectoryName = s;\n+    architecture         = a;\n+  }\n+\n+\n+  @Override\n+  public Boolean doInBackground() {\n+    boolean installOk;\n+    publish("Starting install\\n");\n+    writeFiles();\n+    for (int i = 0; i < selectedPrograms.length; i++) {\n+      if (selectedPrograms[i]) {\n+        if (! install(i)) {\n+          return Boolean.FALSE;\n+        }\n+      }\n+    }\n+    removeFiles();\n+    setEnvironmentVariables();\n+    publish("Ending install\\n");\n+    return Boolean.TRUE;\n+  }\n+\n+\n+  @Override\n+  protected void process(List<String> chunks) {\n+    for (String chunk: chunks) {\n+      logArea.append(chunk);\n+    }\n+  }\n+\n+\n+  private boolean launch(String command) {\n+    return realLaunch(new ProcessBuilder(command), command);\n+  }\n+\n+  private boolean launch(String[] command) {\n+    return realLaunch(new ProcessBuilder(command), Arrays.toString(command));\n+  }\n+\n+  private boolean realLaunch(ProcessBuilder pb, String command) {\n+    BufferedReader outputReader;\n+    pb                          = pb.redirectErrorStream(true);\n+    Process        process   '..b' boolean uncompressPackage(int element) {\n+    String file = compressedFiles[element][architecture];\n+    if (! "".equals(file)) {\n+      file = replaceSubstring(file);\n+      publish("    Starting uncompressing file \'" + file + "\'\\n");\n+      try {\n+        FileInputStream     fis = new FileInputStream(file);\n+        BufferedInputStream bis = new BufferedInputStream(fis);\n+        ZipInputStream      zis = new ZipInputStream(bis);\n+        ZipEntry            entry;\n+        while ((entry = zis.getNextEntry()) != null) {\n+          if (! entry.isDirectory()) {\n+            File newFile = new File(installDirectoryName + File.separator + entry.getName());\n+            // create parent directories\n+            File upDirectory = newFile.getParentFile();\n+            while (upDirectory != null){\n+              if (! upDirectory.exists()) {\n+                upDirectory.mkdir();\n+                publish("      Creating directory \'" + upDirectory.getAbsolutePath() + "\'\\n");\n+              }\n+              upDirectory = upDirectory.getParentFile();\n+            }\n+            // write the files to the disk\n+            publish("      Extracting \'" + entry.getName() + "\' to \'" + newFile.getAbsolutePath() + "\'\\n");\n+            int  count;\n+            byte data[] = new byte[BUFFER];\n+            FileOutputStream     fos = new FileOutputStream(newFile);\n+            BufferedOutputStream bos = new BufferedOutputStream(fos, BUFFER);\n+            while ((count = zis.read(data, 0, BUFFER)) != -1){\n+              bos.write(data, 0, count);\n+            }\n+            bos.flush();\n+            bos.close();\n+            fos.close();\n+          }\n+        }\n+        zis.close();\n+        bis.close();\n+        fis.close();\n+      }\n+      catch(FileNotFoundException e) {\n+        publish("    !Cannot find file \'" + file + "\'!\\n");\n+        return false;\n+      }\n+      catch(Exception e){\n+        publish("    !Cannot uncompress file \'" + file + "\'!\\n");\n+        return false;\n+      }\n+      publish("    Ending uncompressing file \'" + file + "\'\\n");\n+    }\n+    return true;\n+  }\n+\n+\n+  private boolean removePackage(int element) {\n+    String packageName = packageAddresses[element][architecture];\n+    if ("".equals(packageName)) {\n+      return true;\n+    }\n+    String fileName = getLocalName(packageAddresses[element][architecture]);\n+    return removeFile(fileName);\n+  }\n+\n+\n+  private boolean postProcess(int element) {\n+    switch (element) {\n+      case 4:\n+        // Create mySQL user\n+        PasswordAsker pa = new PasswordAsker();\n+        if (! pa.waitForPassword()) {\n+          publish("Problem in the password asker!\\n");\n+          return false;\n+        }\n+        String command = "\\"<MYSQLFILE>\\" --user=root --password=" + pa.getPassword() + " -e \\"source <INSTALLDIR>\\\\createUser.sql\\"";\n+        command        = replaceSubstring(command);\n+        if (! launch(command)) {\n+          publish("    !Cannot create SQL accounts!\\n");\n+          return false;\n+        }\n+        return true;\n+      case 7:\n+        // Move S-MART files to parent directory\n+        File installDirectory = new File(installDirectoryName + File.separator + "S-Mart");\n+        for (File file: installDirectory.listFiles()) {\n+          File destinationFile = new File(file.getParentFile().getParentFile(), file.getName());\n+          if (! file.renameTo(destinationFile)) {\n+            publish("     !Cannot move \'" + file.getAbsolutePath() + "\' to \'" + destinationFile.getAbsolutePath() + "\'!\\n");\n+          }\n+        }\n+        if (! installDirectory.delete()) {\n+          publish("     !Cannot remove installation S-MART directory \'" + installDirectory.getAbsolutePath() + "\'!\\n");\n+        }\n+    }\n+    return true;\n+  }\n+\n+\n+  private boolean setEnvironmentVariables() {\n+    String[] command = {"REG", "ADD", "HKCU\\\\Environment", "/v", "PYTHONPATH", "/t", "REG_SZ", "/d", "\\"" + installDirectoryName + "\\\\Python\\"", "/f"};\n+    return launch(command);\n+  }\n+}\n+\n'
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Installer/PasswordAsker.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Installer/PasswordAsker.java Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,87 @@
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+import java.util.concurrent.CountDownLatch;
+
+public class PasswordAsker {
+
+  static String password;
+  static JFrame frame;
+  static CountDownLatch latch;
+
+
+  public PasswordAsker() {
+    password = null;
+    javax.swing.SwingUtilities.invokeLater(new Runnable() {
+      public void run() {
+        createAndShowGUI();
+      }
+    });
+    latch = new CountDownLatch(1);
+  }
+
+
+  private static void createAndShowGUI() {
+    //Create and set up the window.
+    frame = new JFrame("Password");
+    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+    frame.setContentPane(setMainPane());
+
+    //Display the window.
+    frame.pack();
+    frame.setVisible(true);
+  }
+
+
+  private static JPanel setMainPane() {
+    JPanel rootPanel = new JPanel(false);
+    rootPanel.setLayout(new GridLayout(0, 1));
+
+    JPanel infoPanel = new JPanel(false);
+    JLabel infoLabel = new JLabel("Please write here the password that you entered for the mySQL root account.\r\nNo information is stored nor sent. I promise.");
+    infoPanel.add(infoLabel);
+
+    JPanel passPanel = new JPanel(false);
+    passPanel.setLayout(new GridLayout(1, 0));
+    JLabel passLabel = new JLabel("password");
+    final JTextField passText = new JTextField(20);
+    passLabel.setLabelFor(passText);
+    passPanel.add(passLabel);
+    passPanel.add(passText);
+
+    JPanel  okPanel  = new JPanel(false);
+    JButton okButton = new JButton("OK");
+    okPanel.add(okButton);
+
+    okButton.addActionListener(new ActionListener() {
+      public void actionPerformed(ActionEvent e) {
+        password = passText.getText();
+        frame.setVisible(false);
+        frame.dispose();
+        latch.countDown();
+      }
+    });
+
+    rootPanel.add(infoPanel);
+    rootPanel.add(passPanel);
+    rootPanel.add(okPanel);
+
+    return rootPanel;
+  }
+
+
+  public boolean waitForPassword() {
+    try {
+      latch.await();
+    }
+    catch (InterruptedException e) {
+      return false;
+    }
+    return true;
+  }
+
+
+  public String getPassword() {
+    return password;
+  }
+}
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Installer/SmartInstaller.jar
b
Binary file SMART/Java/Installer/SmartInstaller.jar has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Installer/SmartInstaller.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Installer/SmartInstaller.java Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,167 @@
+import java.util.*;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.io.*;
+import javax.swing.*;
+import javax.swing.filechooser.*;
+import javax.swing.border.*;
+import javax.swing.SwingUtilities;
+import java.net.*;
+
+public class SmartInstaller extends JPanel implements ActionListener {
+  int       BUFFER = 1024;
+
+  JFrame    mainFrame;
+  JTextArea logArea;
+
+  // configuration chooser buttons
+  String       configurations[] = {"32 bits", "64 bits"};
+  JRadioButton configurationButtons[];
+
+  // program chooser buttons
+  String    programChoosers[] = {"R", "R Color Brewer Package", "R HMisc Package", "Python 2.6", "S-MART"};
+  JCheckBox programChooserButtons[];
+
+  JButton   goButton;
+
+  // install directory
+  JButton    installDirectoryChooserButton;
+  JTextField installDirectoryChooserTextField;
+
+
+  public SmartInstaller() {
+    super();
+
+    Box box = Box.createVerticalBox();
+
+    // Header
+    JPanel       headerPanel = new JPanel(false);
+    JTextArea    headerArea  = new JTextArea("This is the S-MART installation tool.\r\nIt will download and install the needed softwares, as well as S-MART itself.\r\nYou can unselect the software that you already have installed.\r\nDuring the installation, accept all the default parameters.");
+    TitledBorder headerBorder = BorderFactory.createTitledBorder("Welcome to the S-MART installer!");
+    headerArea.setEditable(false);
+    headerArea.setBackground(headerPanel.getBackground());
+    headerPanel.add(headerArea);
+    headerPanel.setBorder(headerBorder);
+
+
+    // Configuration
+    JPanel configurationPanel = new JPanel(false);
+    configurationPanel.setLayout(new GridLayout(1, 0));
+    configurationButtons = new JRadioButton[configurations.length];
+    ButtonGroup configurationGroup = new ButtonGroup();
+    for (int i = 0; i < configurations.length; i++) {
+      JRadioButton button = new JRadioButton(configurations[i]);
+      configurationPanel.add(button);
+      configurationButtons[i] = button;
+      configurationGroup.add(button);
+    }
+    configurationButtons[0].setSelected(true);
+    TitledBorder configurationBorder = BorderFactory.createTitledBorder("Configuration");
+    configurationPanel.setBorder(configurationBorder);
+
+
+    // Program chooser panel
+    JPanel programPanel = new JPanel(false);
+    programPanel.setLayout(new GridLayout(0, 1));
+
+    JLabel programLabel = new JLabel("Choose which programs to install:");
+    programPanel.add(programLabel);
+    programChooserButtons = new JCheckBox[programChoosers.length];
+    for (int i = 0; i < programChoosers.length; i++) {
+      JCheckBox button = new JCheckBox(programChoosers[i]);
+      button.setSelected(true);
+      programPanel.add(button);
+      programChooserButtons[i] = button;
+    }
+    TitledBorder programBorder = BorderFactory.createTitledBorder("Programs");
+    programPanel.setBorder(programBorder);
+
+    // Install directory chooser
+    JPanel installDirectoryChooserPanel = new JPanel(false);
+    installDirectoryChooserPanel.setLayout(new GridLayout(1, 0));
+    JLabel installDirectoryChooserLabel = new JLabel("Choose a directory to install S-MART: ");
+    installDirectoryChooserTextField = new JTextField();
+    installDirectoryChooserButton = new JButton("Open...");
+    installDirectoryChooserButton.addActionListener(this);
+
+    installDirectoryChooserPanel.add(installDirectoryChooserLabel);
+    installDirectoryChooserPanel.add(installDirectoryChooserTextField);
+    installDirectoryChooserPanel.add(installDirectoryChooserButton);
+    TitledBorder installDirectoryChooserBorder = BorderFactory.createTitledBorder("Installation directory");
+    installDirectoryChooserPanel.setBorder(installDirectoryChooserBorder);
+
+    // GO!
+    JPanel goPanel = new JPanel(false);
+    goButton = new JButton("GO!");
+    goButton.addActionListener(this);
+    goButton.setSelected(true);
+    goPanel.add(goButton);
+    TitledBorder goBorder = BorderFactory.createTitledBorder("Start install");
+    goPanel.setBorder(goBorder);
+
+    // Log
+    logArea = new JTextArea(10, 120);
+    logArea.setFont(new Font("Monospaced", logArea.getFont().getStyle(), logArea.getFont().getSize()));
+    JScrollPane logScroll  = new JScrollPane(logArea, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
+    TitledBorder logBorder = BorderFactory.createTitledBorder("Log");
+    logScroll.setBorder(logBorder);
+
+    GridLayout horizontalLayout = new GridLayout(1, 0);
+
+    box.add(headerPanel);
+    box.add(configurationPanel);
+    box.add(programPanel);
+    box.add(installDirectoryChooserPanel);
+    box.add(goPanel);
+    box.add(logScroll);
+
+    add(box);
+  }
+
+
+  public void actionPerformed(ActionEvent e) {
+
+    // Install directories chooser
+    if (e.getSource() == goButton) {
+      boolean[] selectedPrograms = new boolean[programChoosers.length];
+      for (int i = 0; i < programChoosers.length; i++) {
+        selectedPrograms[i] = programChooserButtons[i].isSelected();
+      }
+      SmartInstallerTask task = new SmartInstallerTask(logArea, selectedPrograms, installDirectoryChooserTextField.getText(), (configurationButtons[0].isSelected())? 0: 1);
+      task.execute();
+    }
+    // Install directories chooser
+    else if (e.getSource() == installDirectoryChooserButton) {
+      JFileChooser chooser = new JFileChooser();
+      chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
+      if (chooser.showOpenDialog(mainFrame) == JFileChooser.APPROVE_OPTION) {
+        installDirectoryChooserTextField.setText(chooser.getSelectedFile().getPath());
+      }
+    }
+  }
+
+  private static void createAndShowGUI() {
+    // Create and set up the window.
+    JFrame mainFrame = new JFrame("S-Mart Installer");
+    mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+
+    //Create and set up the content pane.
+    JComponent newContentPane = new SmartInstaller();
+    newContentPane.setOpaque(true);
+    mainFrame.setContentPane(newContentPane);
+
+    // Display the window.
+    mainFrame.pack();
+    mainFrame.setVisible(true);
+  }
+
+
+  public static void main(String[] args) {
+    javax.swing.SwingUtilities.invokeLater(new Runnable() {
+      public void run() {
+        createAndShowGUI();
+      }
+    });
+  }
+}
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Installer/SmartInstallerTask.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Installer/SmartInstallerTask.java Tue Apr 30 14:33:21 2013 -0400
[
b'@@ -0,0 +1,419 @@\n+import java.util.*;\n+import java.awt.event.ActionEvent;\n+import java.awt.event.ActionListener;\n+import java.io.*;\n+import javax.swing.*;\n+import javax.swing.filechooser.*;\n+import javax.swing.border.*;\n+import javax.swing.SwingUtilities;\n+import java.net.*;\n+import java.util.Stack;\n+import java.util.zip.ZipEntry;\n+import java.util.zip.ZipInputStream;\n+\n+public class SmartInstallerTask extends SwingWorker<Boolean, String> {\n+\n+  int BUFFER = 1024;\n+\n+  int       architecture         = 0;\n+  String    installDirectoryName = null;\n+  JTextArea logArea              = null;\n+  boolean[] selectedPrograms     = null;\n+\n+  // program chooser buttons\n+  String    programChoosers[] = {"R", "R Color Brewer Package", "R HMisc Package", "Python 2.6", "S-MART"};\n+\n+  // Web addresses for the tools\n+  String packageAddresses[][] = {\n+    {"http://cran.cict.fr/bin/windows/base/R-2.11.0-win32.exe", "http://cran.cict.fr/bin/windows64/base/R-2.11.0-win64.exe"},\n+    {"", ""},\n+    {"", ""},\n+    {"http://www.python.org/ftp/python/2.6.5/python-2.6.5.msi", "http://www.python.org/ftp/python/2.6.5/python-2.6.5.amd64.msi"},\n+    {"http://urgi.versailles.inra.fr/content/download/1929/17848/file/s-mart-1.0.15.zip", "http://urgi.versailles.inra.fr/content/download/1929/17848/file/s-mart-1.0.15.zip"}\n+  };\n+\n+  // Packages to install\n+  String rPackages[] = {"RColorBrewer", "Hmisc"};\n+\n+  // Script lines\n+  String scriptLines[][] = {\n+    {"\\"<INSTALLDIR>\\\\R-2.11.0-win32.exe\\"", "\\"<INSTALLDIR>\\\\R-2.11.0-win64.exe\\""},\n+    {"\\"<RFILE>\\" CMD BATCH \\"<INSTALLDIR>\\\\installRColorBrewer.R\\"", "\\"<RFILE>\\" CMD BATCH \\"<INSTALLDIR>\\\\installRColorBrewer.R\\""},\n+    {"\\"<RFILE>\\" CMD BATCH \\"<INSTALLDIR>\\\\installHmisc.R\\"", "\\"<RFILE>\\" CMD BATCH \\"<INSTALLDIR>\\\\installHmisc.R\\""},\n+    {"msiexec /i \\"<INSTALLDIR>\\\\python-2.6.5.msi\\"", "msiexec /i \\"<INSTALLDIR>\\\\python-2.6.5.amd64.msi\\""},\n+    {"", ""}\n+  };\n+\n+  // Files to uncompress\n+  String compressedFiles[][] = {\n+    {"", ""},\n+    {"", ""},\n+    {"", ""},\n+    {"", ""},\n+    {"<INSTALLDIR>\\\\s-mart-1.0.15.zip", "<INSTALLDIR>\\\\s-mart-1.0.15.zip"}\n+  };\n+\n+\n+  public SmartInstallerTask(JTextArea ta, boolean[] b, String s, int a) {\n+    logArea              = ta;\n+    selectedPrograms     = b;\n+    installDirectoryName = s;\n+    architecture         = a;\n+  }\n+\n+\n+  @Override\n+  public Boolean doInBackground() {\n+    boolean installOk;\n+    publish("Starting install\\n");\n+    writeFiles();\n+    for (int i = 0; i < selectedPrograms.length; i++) {\n+      if (selectedPrograms[i]) {\n+        if (! install(i)) {\n+          return Boolean.FALSE;\n+        }\n+      }\n+    }\n+    removeFiles();\n+    setEnvironmentVariables();\n+    publish("Ending install\\n");\n+    return Boolean.TRUE;\n+  }\n+\n+\n+  @Override\n+  protected void process(List<String> chunks) {\n+    for (String chunk: chunks) {\n+      logArea.append(chunk);\n+    }\n+  }\n+\n+\n+  private boolean launch(String command) {\n+    return realLaunch(new ProcessBuilder(command), command);\n+  }\n+\n+  private boolean launch(String[] command) {\n+    return realLaunch(new ProcessBuilder(command), Arrays.toString(command));\n+  }\n+\n+  private boolean realLaunch(ProcessBuilder pb, String command) {\n+    BufferedReader outputReader;\n+    pb                          = pb.redirectErrorStream(true);\n+    Process        process      = null;\n+    publish("      Starting command \'" + command + "\'\\n");\n+    try {\n+      process = pb.start();\n+      BufferedInputStream outputStream = new BufferedInputStream(process.getInputStream());\n+      InputStream is        = process.getInputStream();\n+      InputStreamReader isr = new InputStreamReader(is);\n+      outputReader          = new BufferedReader(isr);\n+    }\n+    catch (Exception exception) {\n+      publish("      !Process cannot be started (command is \'" + command + "\')!\\n");\n+      exception.printStackTrace();\n+      return false;\n+    }\n+    if (outputReader == null) {\n+      publish("      !Problem in the outp'..b'turn false;\n+        }\n+        try {\n+          process.waitFor();\n+        }\n+        catch (InterruptedException e) {\n+          publish("    !Cannot wait for the end of the command \'" + command + "\'!\\n");\n+          return false;\n+        }\n+        int exitValue = process.exitValue();\n+        if (exitValue != 0) {\n+          publish("    !Problem during the execution of the command \'" + command + "\'!\\n");\n+          return false;\n+        }\n+        publish("    Ending command \'" + command + "\'\\n");\n+      }\n+    }\n+    return true;\n+  }\n+\n+\n+  private boolean uncompressPackage(int element) {\n+    String file = compressedFiles[element][architecture];\n+    if (! "".equals(file)) {\n+      file = replaceSubstring(file);\n+      publish("    Starting uncompressing file \'" + file + "\'\\n");\n+      try {\n+        FileInputStream     fis = new FileInputStream(file);\n+        BufferedInputStream bis = new BufferedInputStream(fis);\n+        ZipInputStream      zis = new ZipInputStream(bis);\n+        ZipEntry            entry;\n+        while ((entry = zis.getNextEntry()) != null) {\n+          if (! entry.isDirectory()) {\n+            File newFile = new File(installDirectoryName + File.separator + entry.getName());\n+            // create parent directories\n+            File upDirectory = newFile.getParentFile();\n+            while (upDirectory != null){\n+              if (! upDirectory.exists()) {\n+                upDirectory.mkdir();\n+                publish("      Creating directory \'" + upDirectory.getAbsolutePath() + "\'\\n");\n+              }\n+              upDirectory = upDirectory.getParentFile();\n+            }\n+            // write the files to the disk\n+            publish("      Extracting \'" + entry.getName() + "\' to \'" + newFile.getAbsolutePath() + "\'\\n");\n+            int  count;\n+            byte data[] = new byte[BUFFER];\n+            FileOutputStream     fos = new FileOutputStream(newFile);\n+            BufferedOutputStream bos = new BufferedOutputStream(fos, BUFFER);\n+            while ((count = zis.read(data, 0, BUFFER)) != -1){\n+              bos.write(data, 0, count);\n+            }\n+            bos.flush();\n+            bos.close();\n+            fos.close();\n+          }\n+        }\n+        zis.close();\n+        bis.close();\n+        fis.close();\n+      }\n+      catch(FileNotFoundException e) {\n+        publish("    !Cannot find file \'" + file + "\'!\\n");\n+        return false;\n+      }\n+      catch(Exception e){\n+        publish("    !Cannot uncompress file \'" + file + "\'!\\n");\n+        return false;\n+      }\n+      publish("    Ending uncompressing file \'" + file + "\'\\n");\n+    }\n+    return true;\n+  }\n+\n+\n+  private boolean removePackage(int element) {\n+    String packageName = packageAddresses[element][architecture];\n+    if ("".equals(packageName)) {\n+      return true;\n+    }\n+    String fileName = getLocalName(packageAddresses[element][architecture]);\n+    return removeFile(fileName);\n+  }\n+\n+\n+  private boolean postProcess(int element) {\n+    switch (element) {\n+      case 4:\n+        // Move S-MART files to parent directory\n+        File installDirectory = new File(installDirectoryName + File.separator + "S-Mart");\n+        for (File file: installDirectory.listFiles()) {\n+          File destinationFile = new File(file.getParentFile().getParentFile(), file.getName());\n+          if (! file.renameTo(destinationFile)) {\n+            publish("     !Cannot move \'" + file.getAbsolutePath() + "\' to \'" + destinationFile.getAbsolutePath() + "\'!\\n");\n+          }\n+        }\n+        if (! installDirectory.delete()) {\n+          publish("     !Cannot remove installation S-MART directory \'" + installDirectory.getAbsolutePath() + "\'!\\n");\n+        }\n+    }\n+    return true;\n+  }\n+\n+\n+  private boolean setEnvironmentVariables() {\n+    String[] command = {"REG", "ADD", "HKCU\\\\Environment", "/v", "PYTHONPATH", "/t", "REG_SZ", "/d", "\\"" + installDirectoryName + "\\\\Python\\"", "/f"};\n+    return launch(command);\n+  }\n+}\n+\n'
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Installer/build.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Installer/build.sh Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,5 @@
+#! /bin/sh
+
+rm -rf SmartInstaller.jar
+javac *.java
+jar cvfm SmartInstaller.jar manifest.txt *.class
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Installer/manifest.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Installer/manifest.txt Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Created-By: Matthias Zytnicki
+Main-Class: SmartInstaller
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Installer/s-mart.zip
b
Binary file SMART/Java/Installer/s-mart.zip has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Program.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Program.java Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,175 @@
+/**
+ *
+ * Copyright INRA-URGI 2009-2010
+ * 
+ * This software is governed by the CeCILL license under French law and
+ * abiding by the rules of distribution of free software. You can use,
+ * modify and/ or redistribute the software under the terms of the CeCILL
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ * 
+ * As a counterpart to the access to the source code and rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty and the software's author, the holder of the
+ * economic rights, and the successive licensors have only limited
+ * liability.
+ * 
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading, using, modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean that it is complicated to manipulate, and that also
+ * therefore means that it is reserved for developers and experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and, more generally, to use and operate it in the
+ * same conditions as regards security.
+ * 
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL license and that you accept its terms.
+ *
+ */
+import java.util.*;
+import java.awt.*;
+import javax.swing.*;
+
+
+public class Program {
+  String                 shortName;
+  String                 name;
+  String                 section;
+  String                 description;
+  Vector <ProgramOption> options;
+  JPanel                 panel;
+  JButton                button;
+
+
+  public Program() {
+    this.shortName = null;  
+    this.name      = null;  
+    this.options   = new Vector <ProgramOption> ();  
+  }
+
+
+  public void setShortName(String shortName) {
+    this.shortName = shortName;
+  }
+
+
+  public void setName(String name) {
+    this.name = name;
+  }
+
+
+  public void setSection(String section) {
+    this.section = section;
+  }
+
+  public void setDescription(String description) {
+    this.description = description;
+  }
+
+
+  public void addOption(ProgramOption option) {
+    options.add(option);
+  }
+
+
+  public String getShortName() {
+    return this.shortName;
+  }
+
+
+  public String getName() {
+    return this.name;
+  }
+
+
+  public String getSection() {
+    return this.section;
+  }
+
+  public String getDescription() {
+    return this.description;
+  }
+
+
+  public String checkValues() {
+    for (int i = 0; i < options.size(); i++) {
+      String comment = options.get(i).checkValue();
+      if (comment != null) {
+        return comment;
+      }
+    }
+    return null;
+  }
+
+
+  public LinkedList<String> getCommand() {
+    LinkedList<String> parameterList = new LinkedList<String>();
+    parameterList.add(Global.pythonCommand);
+    parameterList.add("Python" + java.io.File.separator + this.shortName);
+    for (int i = 0; i < options.size(); i++) {
+      ProgramOption option = options.get(i);
+      parameterList.addAll(option.getCommand());
+    }
+    return parameterList;
+  }
+
+
+  public JPanel getPanel() {
+    if (this.panel != null) {
+      return this.panel;
+    }
+    
+    this.panel = new JPanel(false);
+    this.panel.setLayout(new FlowLayout());
+    Box box = Box.createVerticalBox();
+
+    JPanel descriptionPanel = new JPanel(false);
+    JLabel descriptionLabel = new JLabel(this.description);
+    descriptionPanel.add(descriptionLabel);
+    box.add(descriptionPanel);
+
+    for (int i = 0; i < options.size(); i++) {
+      ProgramOption option = options.get(i);
+      JPanel        panel  = option.getPanel();
+      if (panel == null) {
+        System.out.println("Problem with Python program '" + this.shortName + "'.");
+        return null;
+      }
+      box.add(option.getPanel());
+    }
+
+    JPanel buttonPanel = new JPanel(false);
+    this.button = new JButton("GO!");
+
+    buttonPanel.add(button);
+
+    box.add(buttonPanel);
+
+    this.panel.add(box);
+
+    return this.panel;
+  }
+
+
+  public JButton getButton() {
+    if (this.button == null) {
+      this.getPanel();
+    }
+    return this.button;
+  }
+
+  
+  public Vector < File > getOutputFiles() {
+    Vector < File > files = new Vector < File > ();
+    for (int i = 0; i < options.size(); i++) {
+      ProgramOption option = options.get(i);
+      if (! option.isInput()) {
+        files.add(option.getOutputFile());
+      }
+    }
+    return files;
+  }
+}
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/ProgramFileReader.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/ProgramFileReader.java Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,174 @@
+/**
+ *
+ * Copyright INRA-URGI 2009-2010
+ * 
+ * This software is governed by the CeCILL license under French law and
+ * abiding by the rules of distribution of free software. You can use,
+ * modify and/ or redistribute the software under the terms of the CeCILL
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ * 
+ * As a counterpart to the access to the source code and rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty and the software's author, the holder of the
+ * economic rights, and the successive licensors have only limited
+ * liability.
+ * 
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading, using, modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean that it is complicated to manipulate, and that also
+ * therefore means that it is reserved for developers and experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and, more generally, to use and operate it in the
+ * same conditions as regards security.
+ * 
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL license and that you accept its terms.
+ *
+ */
+import java.util.*;
+import java.io.File;
+import java.io.*;
+
+
+public class ProgramFileReader {
+  String fileName;
+  Vector <Program> programs;
+
+
+  public ProgramFileReader(String fileName) {
+    this.fileName = fileName;  
+    this.programs = new Vector <Program> ();
+  }
+
+
+  public boolean read() {
+//  File    file    = new File(this.fileName);
+//  Program program = null;
+//  int     step    = 0;
+//  TreeMap <String, ProgramOption> options = new TreeMap <String, ProgramOption> ();
+
+//  try {
+//    BufferedReader reader = new BufferedReader(new FileReader(file));
+//    String line    = null;
+//    String section = null;
+
+//    while ((line = reader.readLine()) != null) {
+
+//      line = line.trim();
+
+//      if (line.length() == 0) {
+//        if (program != null) {
+//          programs.add(program);
+//        }
+//        program = null;
+//        step = 0;
+//        continue;
+//      }
+
+//      if ((line.charAt(0) == '[') && (line.charAt(line.length() - 1) == ']')) {
+//        section = line.substring(1, line.length() - 1).trim();
+//        continue;
+//      }
+//      switch (step) {
+//        case 0:
+//        program = new Program();
+//          program.setName(line);
+//          if (section == null) {
+//            System.out.println("Error! Section of program '" + line + "' is not set!");
+//          }
+//          program.setSection(section);
+//          step = 1;
+//          break;
+//        case 1:
+//          program.setShortName(line);
+//          step = 2;
+//          break;
+//        case 2:
+//          ProgramOption option = new ProgramOption();
+
+//          String[] elements    = line.split(":");
+//          boolean  input       = elements[0].trim().equalsIgnoreCase("input")? true: false;
+//          String[] subElements = elements[1].split(";");
+//          String   identifier = subElements[0].trim();
+
+//          option.setInput(input);
+
+//          if (input) {
+
+//            if (subElements.length < 4) {
+//              System.out.println("Line '" + line + "' is weird...");
+//            }
+
+//            String   type       = subElements[1].trim();
+//            String   comment    = subElements[2].trim();
+//            boolean  compulsory = subElements[3].trim().equalsIgnoreCase("0")? false: true;
+
+//            option.setIdentifier(identifier);
+//            option.setType(type);
+//            option.setComment(comment);
+//            option.setCompulsory(compulsory);
+
+//            if ("file".compareToIgnoreCase(type) == 0) {
+//              if (subElements.length < 5) {
+//                System.out.println("Line '" + line + "' is weird...");
+//              }
+
+//              String formatIdentifier = subElements[4].trim();
+//              option.setFormatIdentifier(formatIdentifier);
+//            }
+//            else if ("choice".compareToIgnoreCase(type) == 0) {
+//              if (subElements.length < 5) {
+//                System.out.println("Line '" + line + "' is weird...");
+//              }
+
+//              String[] choices = subElements[4].trim().split(",");
+//              for (int i = 0; i < choices.length; i++) {
+//                choices[i] = choices[i].trim();
+//              }
+//              option.setChoices(choices);
+//            }
+//            options.put(identifier, option);
+//          }
+//          else {
+//            String format = subElements[1].trim();
+
+//            option.setFormat(format);
+//            option.setAssociatedOption(options.get(identifier));
+//          }
+
+//          program.addOption(option);
+
+//          break;
+//        default:
+//          return false;
+//      }
+//    }
+
+//    reader.close();
+//  }
+//  catch (FileNotFoundException e) {
+//    return false;
+//  }
+//  catch (IOException e) {
+//    return false;
+//  }
+
+//  if (program != null) {
+//    programs.add(program);
+//  }
+
+    return true;
+  }
+
+  public int getNbPrograms() {
+    return programs.size();
+  }
+
+  public Program getProgram(int i) {
+    return programs.get(i);
+  }
+}
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/ProgramLauncher.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/ProgramLauncher.java Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,209 @@
+/**
+ *
+ * Copyright INRA-URGI 2009-2010
+ * 
+ * This software is governed by the CeCILL license under French law and
+ * abiding by the rules of distribution of free software. You can use,
+ * modify and/ or redistribute the software under the terms of the CeCILL
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ * 
+ * As a counterpart to the access to the source code and rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty and the software's author, the holder of the
+ * economic rights, and the successive licensors have only limited
+ * liability.
+ * 
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading, using, modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean that it is complicated to manipulate, and that also
+ * therefore means that it is reserved for developers and experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and, more generally, to use and operate it in the
+ * same conditions as regards security.
+ * 
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL license and that you accept its terms.
+ *
+ */
+import java.util.*;
+import java.io.*;
+import javax.swing.SwingUtilities;
+import javax.swing.*;
+import java.util.concurrent.CountDownLatch;
+
+public class ProgramLauncher extends SwingWorker<Boolean, String>  {
+
+  String[]     command;
+  JTextArea    logArea;
+  JLabel       messageField;
+  JProgressBar progressBar;
+  JLabel       etaField;
+  int          exitValue;
+  CountDownLatch latch;
+
+  
+
+  public ProgramLauncher (LinkedList <String> c, JTextArea la, JLabel mf, JProgressBar pb, JLabel ef) {
+    command       = new String[c.size()];
+    logArea       = la;
+    messageField  = mf;
+    progressBar   = pb;
+    etaField      = ef;
+    exitValue     = -1;
+    c.toArray(command);
+    latch = new CountDownLatch(1);
+  }
+
+
+  public ProgramLauncher (String[] c, JTextArea la, JLabel mf, JProgressBar pb, JLabel ef) {
+    command       = c;
+    logArea       = la;
+    messageField  = mf;
+    progressBar   = pb;
+    etaField      = ef;
+    exitValue     = -1;
+    latch = new CountDownLatch(1);
+  }
+
+
+  @Override
+  public Boolean doInBackground() {
+    ProcessBuilder pb           = new ProcessBuilder(command);
+    Process process             = null;
+    BufferedReader outputReader = null;
+    pb                          = pb.redirectErrorStream(true);
+    Map<String, String> env     = pb.environment();
+    env.put("PYTHONPATH", System.getProperty("user.dir"));
+    env.put("SMARTPATH", System.getProperty("user.dir") + java.io.File.separator + "SMART" + java.io.File.separator + "Java" + java.io.File.separator + "Python");
+    env.put("SMARTMYSQLPATH", Global.mysqlCommand);
+    env.put("SMARTRPATH", Global.rCommand);
+    String commandJoined = Arrays.toString(command);
+
+    try {
+      publish("=== Starting command '" + commandJoined.trim() + "' ===\n");
+      process = pb.start();
+
+      BufferedInputStream outputStream = new BufferedInputStream(process.getInputStream());
+      InputStream is                   = process.getInputStream();
+      InputStreamReader isr            = new InputStreamReader(is);
+      outputReader                     = new BufferedReader(isr);
+    }
+    catch (Exception exception) {
+      publish("!Process cannot be started (command is '" + commandJoined + "')!\n");
+      exception.printStackTrace();
+      latch.countDown();
+      return Boolean.FALSE;
+    }
+    if (outputReader == null) {
+      publish("!Problem in the output of the command!\n");
+      latch.countDown();
+      return Boolean.FALSE;
+    }
+    else {
+      try {
+        String line;
+        while ((line = outputReader.readLine()) != null) {
+          publish(line + "\n");
+        }
+      }
+      catch (IOException e) {
+        e.printStackTrace();
+        publish("!Cannot get the output of the command!\n");
+        latch.countDown();
+        return Boolean.FALSE;
+      }
+    }
+    try {
+      process.waitFor();
+    }
+    catch (InterruptedException e) {
+      e.printStackTrace();
+      publish("!Cannot wait for the end of the command!\n");
+      latch.countDown();
+      return Boolean.FALSE;
+    }
+    try {
+      exitValue = process.exitValue();
+    }
+    catch (IllegalThreadStateException e) {
+      e.printStackTrace();
+      publish("!Cannot get the exit value of the command!\n");
+      latch.countDown();
+      return Boolean.FALSE;
+    }
+    if (exitValue != 0) {
+      publish("!Problem during the execution of the command '" + commandJoined + "'!\n");
+      latch.countDown();
+      return Boolean.FALSE;
+    }
+    publish("=== Ending command '" + commandJoined.trim() + "' ===\n");
+    latch.countDown();
+    return Boolean.TRUE;
+  }
+
+
+  @Override
+  protected void process(List<String> chunks) {
+    String message = "";
+    String text    = logArea.getText();
+    for (String chunk: chunks) {
+      text += chunk;
+    }
+    for (String lineSeparatedByCarriageReturn: text.split("\n")) {
+      for (String line: lineSeparatedByCarriageReturn.split("\r")) {
+        boolean progressLine = false;
+        if (line.matches(".*\\[=*\\s*\\]\\s*\\d*/\\d*\\s*")) {
+          String[] ratioElements = line.split("\\]")[1].trim().split("/");
+          int      current       = Integer.parseInt(ratioElements[0].trim());
+          int      aim           = Integer.parseInt(ratioElements[1].trim());
+          messageField.setText(line.split("\\[")[0].trim());
+          progressBar.setValue(current * 100 / aim);
+          etaField.setText("");
+          progressLine = true;
+        }
+        else if (line.matches(".*\\[=*\\s*\\]\\s*\\d*/\\d*\\s*ETA:\\s*.*")) {
+          String[] ratioElements = line.split("\\]")[1].split("E")[0].trim().split("/");
+          int      current       = Integer.parseInt(ratioElements[0].trim());
+          int      aim           = Integer.parseInt(ratioElements[1].trim());
+          String   eta           = line.split("ETA:")[1].trim();
+          messageField.setText(line.split("\\[")[0].trim());
+          progressBar.setValue(current * 100 / aim);
+          etaField.setText("ETA: " + eta);
+          progressLine = true;
+        }
+        else if (line.matches(".*\\[=*\\s*\\]\\s*\\d*\\s*completed in.*")) {
+          String nbElements = line.split("\\]")[1].split("completed")[0].trim();
+          String timeSpent  = line.split("completed in")[1].trim();
+          message          += line.split("\\[")[0].trim() + ": " + nbElements + " elements completed in " + timeSpent + "\n";
+          messageField.setText(line.split("\\[")[0].trim());
+          progressLine = true;
+        }
+        if (! progressLine) {
+          message += line + "\n";
+        }
+      }
+    }
+    String lines[]     = message.split("\n");
+    String toBeWritten = "";
+    for (int i = Math.max(0, lines.length - Global.logAreaSize); i < lines.length; i++) {
+      toBeWritten += lines[i] + "\n";
+    }
+    logArea.setText(toBeWritten);
+  }
+
+  public int getExitValue() {
+    try {
+      latch.await();
+    }
+    catch (InterruptedException e) {
+      logArea.append("Cannot wait for the end of the process!\n");
+      e.printStackTrace();
+      return -1;
+    }
+    return exitValue;
+  }
+}
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/ProgramOption.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/ProgramOption.java Tue Apr 30 14:33:21 2013 -0400
[
b'@@ -0,0 +1,358 @@\n+/**\n+ *\n+ * Copyright INRA-URGI 2009-2010\n+ * \n+ * This software is governed by the CeCILL license under French law and\n+ * abiding by the rules of distribution of free software. You can use,\n+ * modify and/ or redistribute the software under the terms of the CeCILL\n+ * license as circulated by CEA, CNRS and INRIA at the following URL\n+ * "http://www.cecill.info".\n+ * \n+ * As a counterpart to the access to the source code and rights to copy,\n+ * modify and redistribute granted by the license, users are provided only\n+ * with a limited warranty and the software\'s author, the holder of the\n+ * economic rights, and the successive licensors have only limited\n+ * liability.\n+ * \n+ * In this respect, the user\'s attention is drawn to the risks associated\n+ * with loading, using, modifying and/or developing or reproducing the\n+ * software by the user in light of its specific status of free software,\n+ * that may mean that it is complicated to manipulate, and that also\n+ * therefore means that it is reserved for developers and experienced\n+ * professionals having in-depth computer knowledge. Users are therefore\n+ * encouraged to load and test the software\'s suitability as regards their\n+ * requirements in conditions enabling the security of their systems and/or\n+ * data to be ensured and, more generally, to use and operate it in the\n+ * same conditions as regards security.\n+ * \n+ * The fact that you are presently reading this means that you have had\n+ * knowledge of the CeCILL license and that you accept its terms.\n+ *\n+ */\n+import java.util.*;\n+import java.awt.*;\n+import java.awt.event.ActionEvent;\n+import java.awt.event.ActionListener;\n+import java.io.*;\n+import javax.swing.*;\n+import javax.swing.filechooser.*;\n+import javax.swing.border.*;\n+import javax.swing.SwingUtilities;\n+\n+\n+public class ProgramOption {\n+  boolean       input;\n+  String        identifier;\n+  String        type;\n+  String        comment;\n+  boolean       compulsory;\n+  String[]      format;\n+  String        formatIdentifier;\n+  ProgramOption associatedOption;\n+  String        defaultValue;\n+  String[]      choices;\n+  JComponent    component;\n+  JPanel        panel;\n+\n+\n+  public ProgramOption() {\n+    this.input            = true;\n+    this.identifier       = null;\n+    this.type             = null;\n+    this.comment          = null;\n+    this.compulsory       = false;\n+    this.format           = null;\n+    this.formatIdentifier = null;\n+    this.associatedOption = null;\n+    this.defaultValue     = "";\n+    this.choices          = null;\n+    this.component        = null;\n+    this.panel            = null;\n+  }\n+\n+\n+  public void setInput(boolean input) {\n+    this.input = input;\n+  }\n+\n+\n+  public void setIdentifier(String identifier) {\n+    this.identifier = identifier;\n+  }\n+\n+\n+  public void setType(String type) {\n+    this.type = type;\n+  }\n+\n+\n+  public void setComment(String comment) {\n+    this.comment = comment;\n+  }\n+\n+\n+  public void setCompulsory(boolean compulsory) {\n+    this.compulsory = compulsory;\n+  }\n+\n+\n+  public void setFormat(String[] format) {\n+    this.format = format;\n+  }\n+\n+\n+  public void setFormat(String format) {\n+    this.format    = new String[1];\n+    this.format[0] = format;\n+  }\n+\n+\n+  public void setFormatIdentifier(String formatIdentifier) {\n+    this.formatIdentifier = formatIdentifier;\n+  }\n+\n+\n+  public void setAssociatedOption(ProgramOption option) {\n+    this.associatedOption = option;\n+  }\n+\n+\n+  public void setChoices(String[] choices) {\n+    this.choices = new String[choices.length+1];\n+    this.choices[0] = "---";\n+    for (int i = 0; i < choices.length; i++) {\n+      this.choices[i+1] = choices[i];\n+    }\n+  }\n+\n+\n+  public void setDefault(String defaultValue) {\n+    this.defaultValue = defaultValue;\n+  }\n+\n+\n+  public boolean isInput() {\n+    return this.input;\n+  }\n+\n+\n+  public boolean checkSettings() {\n+    if (this.identifier == null) {\n+      return false;\n+    }\n+    if (this.type == nul'..b'{\n+      this.component = new JComboBox(this.choices);\n+      label.setLabelFor(this.component);\n+      this.panel.add(label);\n+      this.panel.add(this.component);\n+    }\n+    else {\n+      System.out.println("Do not know how to read type " + this.type);\n+    }\n+\n+    return this.panel;\n+  }\n+\n+\n+  public JComponent getComponent() {\n+    if (component == null) {\n+      this.getPanel();\n+    }\n+    return this.component;\n+  }\n+\n+\n+  private String getValue() {\n+    if (("int".equals(this.type)) || ("float".equals(this.type)) || ("string".equals(this.type)) || (("file".equals(this.type)) && (! this.input)) || ("directory".equals(this.type)) || ("files".equals(this.type)))  {\n+      String s = ((JTextField) this.component).getText();\n+      if ("None".equals(s)) {\n+        return "";\n+      }\n+      return s;\n+    }\n+    if ("file".equals(this.type)) {\n+      return (String) ((JComboBox) this.component).getSelectedItem();\n+    }\n+    if ("boolean".equals(this.type)) {\n+      return ((JCheckBox) this.component).isSelected()? "true": "false";\n+    }\n+    if ("format".equals(this.type)) {\n+      return (String) ((JComboBox) this.component).getSelectedItem();\n+    }\n+    if ("choice".equals(this.type)) {\n+      String s = (String) ((JComboBox) this.component).getSelectedItem();\n+      if ("---".equals(s)) {\n+        return "";\n+      }\n+      return s;\n+    }\n+    System.out.println("Do not know how to get value of \'" + this.type + "\' (" + this.identifier + ").");\n+    return null;\n+  }\n+\n+\n+  public String checkValue() {\n+    String value = this.getValue();\n+    if ((this.compulsory) && ((value == null) || ("".equals(value)))) {\n+      return "Option \'" + this.comment + "\' has no value... Please specify it.\\n";\n+    }\n+    if ("int".equals(this.type)) {\n+      if ((value != null) && (! "".equals(value)) && (! "None".equals(value))) {\n+        try {\n+          int i = Integer.parseInt(value);\n+        }\n+        catch (NumberFormatException e) {\n+          return "Option \'" + this.comment + "\' should be an integer... Please correct it.\\n";\n+        }\n+      }\n+    }\n+    else if ("float".equals(this.type)) {\n+      if ((value != null) && (! "".equals(value))) {\n+        try {\n+          float i = Float.parseFloat(value);\n+        }\n+        catch (NumberFormatException e) {\n+          return "Option \'" + this.comment + "\' should be a float... Please correct it.\\n";\n+        }\n+      }\n+    }\n+    return null;\n+  }\n+\n+\n+  public LinkedList <String> getCommand() {\n+    LinkedList <String> list = new LinkedList <String> ();\n+\n+    if (("int".equals(this.type)) || ("float".equals(this.type)) || ("string".equals(this.type)) || (("file".equals(this.type)) && (! this.input)) || ("format".equals(this.type)) || ("directory".equals(this.type)) || ("files".equals(this.type)) || ("choice".equals(this.type))) {\n+      String value = this.getValue();\n+      if (value.length() == 0) {\n+        return list;\n+      }\n+      list.add(this.identifier);\n+      list.add(value);\n+      return list;\n+    }\n+    if ("file".equals(this.type)) {\n+      String fileName = (String) ((JComboBox) this.component).getSelectedItem();\n+      if (fileName == null) {\n+        return list;\n+      }\n+      list.add(this.identifier);\n+      list.add(this.getValue());\n+      return list;\n+    }\n+    if (("boolean".equals(this.type)) || ("bool".equals(this.type))) {\n+      if ("true".equals(this.getValue())) {\n+        list.add(this.identifier);\n+      }\n+      return list;\n+    }\n+    System.out.println("Cannot get type of option " + this.type + " (" + this.identifier + "): " + this.getValue());\n+    return null;\n+  }\n+\n+\n+  public File getOutputFile() {\n+    if (this.input) return null;\n+    String format = "";\n+    if (this.format != null) {\n+      format = this.format[0];\n+    }\n+    if (this.associatedOption != null) {\n+      format = this.associatedOption.getValue();\n+    }\n+    return new File(this.getValue(), Global.formats.getFormatType(format), format);\n+  }\n+}\n'
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/.RData
b
Binary file SMART/Java/Python/.RData has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/.gitignore
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/.gitignore Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,1 @@
+/CleanTranscriptFile.py
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/100%
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/100% Tue Apr 30 14:33:21 2013 -0400
[
@@ -0,0 +1,152 @@
+
+R version 2.15.1 (2012-06-22) -- "Roasted Marshmallows"
+Copyright (C) 2012 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+Platform: x86_64-pc-linux-gnu (64-bit)
+
+R is free software and comes with ABSOLUTELY NO WARRANTY.
+You are welcome to redistribute it under certain conditions.
+Type 'license()' or 'licence()' for distribution details.
+
+  Natural language support but running in an English locale
+
+R is a collaborative project with many contributors.
+Type 'contributors()' for more information and
+'citation()' on how to cite R or R packages in publications.
+
+Type 'demo()' for some demos, 'help()' for on-line help, or
+'help.start()' for an HTML browser interface to help.
+Type 'q()' to quit R.
+
+[Previously saved workspace restored]
+
+> library(extrafont)
+Registering fonts with R
+There were 50 or more warnings (use warnings() to see the first 50)
+> loadfonts()
+Padauk already registered with pdfFonts().
+Padauk Book already registered with pdfFonts().
+Abyssinica SIL already registered with pdfFonts().
+cmex10 already registered with pdfFonts().
+cmmi10 already registered with pdfFonts().
+cmr10 already registered with pdfFonts().
+cmsy10 already registered with pdfFonts().
+DejaVu Sans already registered with pdfFonts().
+DejaVu Sans Condensed already registered with pdfFonts().
+DejaVu Sans Light already registered with pdfFonts().
+DejaVu Sans Mono already registered with pdfFonts().
+DejaVu Serif already registered with pdfFonts().
+DejaVu Serif Condensed already registered with pdfFonts().
+Droid Arabic Naskh already registered with pdfFonts().
+Droid Sans already registered with pdfFonts().
+Droid Sans Armenian already registered with pdfFonts().
+Droid Sans Ethiopic already registered with pdfFonts().
+Droid Sans Fallback already registered with pdfFonts().
+Droid Sans Georgian already registered with pdfFonts().
+Droid Sans Hebrew already registered with pdfFonts().
+Droid Sans Mono already registered with pdfFonts().
+Droid Sans Thai already registered with pdfFonts().
+Droid Serif already registered with pdfFonts().
+esint10 already registered with pdfFonts().
+eufm10 already registered with pdfFonts().
+FreeMono already registered with pdfFonts().
+FreeSans already registered with pdfFonts().
+FreeSerif already registered with pdfFonts().
+gargi already registered with pdfFonts().
+Garuda already registered with pdfFonts().
+Gentium already registered with pdfFonts().
+GentiumAlt already registered with pdfFonts().
+Gentium Basic already registered with pdfFonts().
+Gentium Book Basic already registered with pdfFonts().
+Junicode already registered with pdfFonts().
+KacstArt already registered with pdfFonts().
+KacstBook already registered with pdfFonts().
+KacstDecorative already registered with pdfFonts().
+KacstDigital already registered with pdfFonts().
+KacstFarsi already registered with pdfFonts().
+KacstLetter already registered with pdfFonts().
+KacstNaskh already registered with pdfFonts().
+KacstOffice already registered with pdfFonts().
+KacstOne already registered with pdfFonts().
+KacstPen already registered with pdfFonts().
+KacstPoster already registered with pdfFonts().
+KacstQurn already registered with pdfFonts().
+KacstScreen already registered with pdfFonts().
+KacstTitle already registered with pdfFonts().
+KacstTitleL already registered with pdfFonts().
+Kedage already registered with pdfFonts().
+Khmer OS already registered with pdfFonts().
+Khmer OS System already registered with pdfFonts().
+LKLUG already registered with pdfFonts().
+Lohit Bengali already registered with pdfFonts().
+Lohit Gujarati already registered with pdfFonts().
+Lohit Hindi already registered with pdfFonts().
+Lohit Punjabi already registered with pdfFonts().
+Lohit Tamil already registered with pdfFonts().
+Loma already registered with pdfFonts().
+Mallige already registered with pdfFonts().
+MarVoSym already registered with pdfFonts().
+Meera already registered with pdfFonts().
+mry_KacstQurn already registered with pdfFonts().
+msam10 already registered with pdfFonts().
+msbm10 already registered with pdfFonts().
+Mukti Narrow already registered with pdfFonts().
+NanumGothic already registered with pdfFonts().
+NanumMyeongjo already registered with pdfFonts().
+OpenSymbol already registered with pdfFonts().
+Phetsarath OT already registered with pdfFonts().
+Pothana2000 already registered with pdfFonts().
+Purisa already registered with pdfFonts().
+Rachana already registered with pdfFonts().
+Rekha already registered with pdfFonts().
+rsfs10 already registered with pdfFonts().
+Saab already registered with pdfFonts().
+Sawasdee already registered with pdfFonts().
+Tibetan Machine Uni already registered with pdfFonts().
+TlwgMono already registered with pdfFonts().
+TlwgTypewriter already registered with pdfFonts().
+Tlwg Typist already registered with pdfFonts().
+Tlwg Typo already registered with pdfFonts().
+Ubuntu already registered with pdfFonts().
+Ubuntu Condensed already registered with pdfFonts().
+Ubuntu Light already registered with pdfFonts().
+Ubuntu Mono already registered with pdfFonts().
+Ume Gothic already registered with pdfFonts().
+Ume Gothic C4 already registered with pdfFonts().
+Ume Gothic C5 already registered with pdfFonts().
+Ume Gothic O5 already registered with pdfFonts().
+Ume Gothic S4 already registered with pdfFonts().
+Ume Gothic S5 already registered with pdfFonts().
+Ume P Gothic already registered with pdfFonts().
+Ume P Gothic C4 already registered with pdfFonts().
+Ume P Gothic C5 already registered with pdfFonts().
+Ume P Gothic O5 already registered with pdfFonts().
+Ume P Gothic S4 already registered with pdfFonts().
+Ume P Gothic S5 already registered with pdfFonts().
+Ume UI Gothic already registered with pdfFonts().
+Ume UI Gothic O5 already registered with pdfFonts().
+UnBatang already registered with pdfFonts().
+UnDotum already registered with pdfFonts().
+UnGraphic already registered with pdfFonts().
+UnGungseo already registered with pdfFonts().
+UnPilgi already registered with pdfFonts().
+utkal already registered with pdfFonts().
+Vemana2000 already registered with pdfFonts().
+VL Gothic already registered with pdfFonts().
+VL PGothic already registered with pdfFonts().
+Waree already registered with pdfFonts().
+wasy10 already registered with pdfFonts().
+There were 26 warnings (use warnings() to see them)
+> library(ggplot2)
+> data <- read.table("tmpFile36240.dat", header = T)
+> data$Sample <- factor(data$Sample, levels=c("Col", "rtl2", "35S::RTL2#1", "35S::RTL2#2", "35S::RTL1#1", "dcl2dcl3dcl4"))
+> data$Size <- factor(data$Size, levels=c(21, 22, 23, 24))
+> png("/home/mzytnick/Desktop/Projects/Vaucheret/RTrna/MiRna/genomicSizes.png", width = 1000, height = 200)
+> ggplot(data, aes(x = Size, y = Count, fill = Size))  + geom_bar(stat = "identity") + facet_grid(. ~ Sample, space="free_x") + xlab("Sizes") + ylab("Count") + scale_fill_manual(values = c("blue", "green", "pink", "red")) + theme(legend.position = "none", panel.grid.major = element_blank(), panel.grid.minor = element_blank(), panel.background = element_blank())
+> dev.off()
+null device 
+          1 
+> 
+> proc.time()
+   user  system elapsed 
+  1.884   0.088   3.163 
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/CompareOverlapping.pyc
b
Binary file SMART/Java/Python/CompareOverlapping.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/CountLoci.py
--- a/SMART/Java/Python/CountLoci.py Mon Apr 29 03:45:52 2013 -0400
+++ b/SMART/Java/Python/CountLoci.py Tue Apr 30 14:33:21 2013 -0400
[
@@ -37,7 +37,7 @@
 from SMART.Java.Python.misc.Progress import Progress
 from SMART.Java.Python.misc.RPlotter import RPlotter
 from SMART.Java.Python.cleanGff import CleanGff
-from SMART.Java.Python.CompareOverlappingSmallRef import CompareOverlappingSmallRef
+from SMART.Java.Python.CompareOverlapping import CompareOverlapping
 from SMART.Java.Python.structure.TranscriptListsComparator import TranscriptListsComparator
 from SMART.Java.Python.GetUpDownStream import GetUpDownStream
 
@@ -85,7 +85,7 @@
                                "five_prime_UTR":            "%sfive.gff3"     % (self.outputBase), \
                                "three_prime_UTR":           "%sthree.gff3"    % (self.outputBase), \
                                "mRNA":                      "%smrna.gff3"     % (self.outputBase), \
-                               "ncRNA":                     "%sncRNA.gff3"    % (self.outputBase), \
+                               "ncRNA":                     "%sncRNA.gff3"     % (self.outputBase), \
                                "transposable_element_gene": "%sTE.gff3"       % (self.outputBase), \
                                "vic":                       "%svicinity.gff3" % (self.outputBase)}
         self.tmpFileNames.extend(self.referenceFiles.values())
@@ -98,14 +98,14 @@
                 self._writeTmpRef([tag], fileName)
 
     def _compare(self, queryFileName, queryFormat, referenceFileName, referenceFormat, outputFileName, exclusion = False):
-        co = CompareOverlappingSmallRef(self.verbosity-1)
-        co.setQueryFile(queryFileName, queryFormat)
-        co.setReferenceFile(referenceFileName, referenceFormat)
-        co.setOutputFile(outputFileName)
+        co = CompareOverlapping(self.verbosity-1)
+        co.setInput(queryFileName, queryFormat, QUERY)
+        co.setInput(referenceFileName, referenceFormat, REFERENCE)
+        co.setOutput(outputFileName)
         if exclusion:
-            co.setInvert(True)
+            co.getInvert(True)
         co.run()
-        return co.nbWritten
+        return co._nbOverlappingQueries
 
     def _copy(self, inputFile, tag):
         parser = GffParser(inputFile, self.verbosity-1)
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/GetFlanking.pyc
b
Binary file SMART/Java/Python/GetFlanking.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/GetIntersection.py
--- a/SMART/Java/Python/GetIntersection.py Mon Apr 29 03:45:52 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,164 +0,0 @@
-#! /usr/bin/env python
-#
-# Copyright INRA-URGI 2009-2011
-# 
-# This software is governed by the CeCILL license under French law and
-# abiding by the rules of distribution of free software. You can use,
-# modify and/ or redistribute the software under the terms of the CeCILL
-# license as circulated by CEA, CNRS and INRIA at the following URL
-# "http://www.cecill.info".
-# 
-# As a counterpart to the access to the source code and rights to copy,
-# modify and redistribute granted by the license, users are provided only
-# with a limited warranty and the software's author, the holder of the
-# economic rights, and the successive licensors have only limited
-# liability.
-# 
-# In this respect, the user's attention is drawn to the risks associated
-# with loading, using, modifying and/or developing or reproducing the
-# software by the user in light of its specific status of free software,
-# that may mean that it is complicated to manipulate, and that also
-# therefore means that it is reserved for developers and experienced
-# professionals having in-depth computer knowledge. Users are therefore
-# encouraged to load and test the software's suitability as regards their
-# requirements in conditions enabling the security of their systems and/or
-# data to be ensured and, more generally, to use and operate it in the
-# same conditions as regards security.
-# 
-# The fact that you are presently reading this means that you have had
-# knowledge of the CeCILL license and that you accept its terms.
-#
-from optparse import OptionParser
-from commons.core.parsing.ParserChooser import ParserChooser
-from commons.core.writer.TranscriptWriter import TranscriptWriter
-from SMART.Java.Python.structure.Interval import Interval
-from SMART.Java.Python.structure.Transcript import Transcript
-from SMART.Java.Python.structure.Mapping import Mapping
-from SMART.Java.Python.misc.Progress import Progress
-from SMART.Java.Python.misc.UnlimitedProgress import UnlimitedProgress
-
-MINBIN = 3
-MAXBIN = 7
-REFERENCE = 0
-QUERY = 1
-
-def getBin(start, end):
- for i in range(MINBIN, MAXBIN + 1):
- binLevel = 10 ** i
- if int(start / binLevel) == int(end / binLevel):
- return int(i * 10 ** (MAXBIN + 1) + int(start / binLevel))
- return int((MAXBIN + 1) * 10 ** (MAXBIN + 1))
-
-def getOverlappingBins(start, end):
- array = []
- bigBin = int((MAXBIN + 1) * 10 ** (MAXBIN + 1))
- for i in range(MINBIN, MAXBIN + 1):
- binLevel = 10 ** i
- array.append((int(i * 10 ** (MAXBIN + 1) + int(start / binLevel)), int(i * 10 ** (MAXBIN + 1) + int(end / binLevel))))
- array.append((bigBin, bigBin))
- return array
-
-
-class GetIntersection(object):
-
- def __init__(self, verbosity):
- self.verbosity              = verbosity
- self.nbQueries              = 0
- self.nbRefs                 = 0
- self.nbWritten              = 0
- self.bins                 = {}
-
- def setReferenceFile(self, fileName, format):
- chooser = ParserChooser(self.verbosity)
- chooser.findFormat(format)
- self.refParser = chooser.getParser(fileName)
-
- def setQueryFile(self, fileName, format):
- chooser = ParserChooser(self.verbosity)
- chooser.findFormat(format)
- self.queryParser = chooser.getParser(fileName)
-
- def setOutputFile(self, fileName):
- self.writer = TranscriptWriter(fileName, "gff3", self.verbosity)
-
- def loadRef(self):
- progress = UnlimitedProgress(10000, "Reading references", self.verbosity)
- for transcript in self.refParser.getIterator():
- if transcript.__class__.__name__ == "Mapping":
- transcript = transcript.getTranscript()
- chromosome = transcript.getChromosome()
- bin    = getBin(transcript.getStart(), transcript.getEnd())
- if chromosome not in self.bins:
- self.bins[chromosome] = {}
- if bin not in self.bins[chromosome]:
- self.bins[chromosome][bin] = []
- self.bins[chromosome][bin].append(transcript)
- self.nbRefs += 1
- progress.inc()
- progress.done()
-
- def _compareTranscript(self, queryTranscript):
- queryChromosome = queryTranscript.getChromosome()
- if queryChromosome not in self.bins:
- return None
- queryStart = queryTranscript.getStart()
- queryEnd   = queryTranscript.getEnd()
- bins    = getOverlappingBins(queryStart, queryEnd)
- overlaps   = []
- for binRange in bins:
- for bin in range(binRange[0], binRange[1]+1):
- if bin not in self.bins[queryChromosome]:
- continue
- for refTranscript in self.bins[queryChromosome][bin]:
- newTranscript = queryTranscript.getIntersection(refTranscript)
- if newTranscript != None:
- overlaps.append(newTranscript)
- if not overlaps:
- return None
- newTranscript = overlaps[0]
- for transcript in overlaps[1:]:
- newTranscript.merge(transcript)
- return newTranscript
-
- def compare(self):
- progress = UnlimitedProgress(10000, "Comparing queries", self.verbosity)
- for queryTranscript in self.queryParser.getIterator():
- if queryTranscript.__class__.__name__ == "Mapping":
- queryTranscript = queryTranscript.getTranscript()
- progress.inc()
- self.nbQueries += 1
- newTranscript = self._compareTranscript(queryTranscript)
- if newTranscript != None:
- self.writer.addTranscript(queryTranscript)
- self.nbWritten += 1
- progress.done()
- self.writer.close()
-
- def displayResults(self):
- print "# queries:  %d" % (self.nbQueries)
- print "# refs:     %d" % (self.nbRefs)
- print "# written:  %d" % (self.nbWritten)
-
- def run(self):
- self.loadRef()
- self.compare()
- self.displayResults()
-
-if __name__ == "__main__":
-
- description = "Get Intersection v1.0.0: Shrink the first data set so that all bases covered by the first data set is also covered by the second data set. [Category: Data Comparison]"
-
- parser = OptionParser(description = description)
- parser.add_option("-i", "--input1",         dest="inputFileName1", action="store",            type="string", help="query input file [compulsory] [format: file in transcript format given by -f]")
- parser.add_option("-f", "--format1",        dest="format1",   action="store",            type="string", help="format of previous file [compulsory] [format: transcript file format]")
- parser.add_option("-j", "--input2",         dest="inputFileName2", action="store",            type="string", help="reference input file [compulsory] [format: file in transcript format given by -g]")
- parser.add_option("-g", "--format2",        dest="format2",   action="store",            type="string", help="format of previous file [compulsory] [format: transcript file format]")
- parser.add_option("-o", "--output",         dest="outputFileName", action="store",            type="string", help="output file [format: output file in GFF3 format]")
- parser.add_option("-v", "--verbosity",      dest="verbosity",    action="store",      default=1,     type="int",  help="trace level [format: int]")
- (options, args) = parser.parse_args()
-
- gi = GetIntersection(options.verbosity)
- gi.setQueryFile(options.inputFileName1, options.format1)
- gi.setReferenceFile(options.inputFileName2, options.format2)
- gi.setOutputFile(options.outputFileName)
- gi.run()
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/GetUpDownStream.pyc
b
Binary file SMART/Java/Python/GetUpDownStream.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/Helitrons.fasta
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/Helitrons.fasta Tue Apr 30 14:33:21 2013 -0400
b
b'@@ -0,0 +1,2378 @@\n+>HELITRON1\n+TCTACATATACATTTTTGGGAACGATTTTGAGTTGAAAAATCATTTATCAATTTCTGATA\n+TTGTATGTTTAGTCCCTACAAAATCAATCAGACAAGATAGTCTTCTGCGTTAGGACAATG\n+ACCAAATTTTTGATGAACTATTTACGTTTTGCACTAATTACTTACCTAAACATATAAATT\n+GTTTTGCACTATCCTCATAAATTGCACACATTGACTCCCTTAAAACTCTACGAATTCAAT\n+ATTACACGAAATAATATTTCCTAATTAGCAAAAATCCGATACAACCAATCACTTAACTAA\n+CCATATCTATAAAATTACTTGATTCGAAAATCTCCGATATTTTTGCTACAATCTTACCAA\n+ATATTCATATTCTCTATATCACATTTCTATAAGTTAAATCAGTTATTAAAGTTGCTTTAA\n+TTCCGTTTACCTCAAACAAACACTTAATATATCATATGATCTTACATTTGGTATAGTAAA\n+TATATTTTGAAATATACTACAAATCATCATCATACTCAAAATTCTTCCTATATATCGGTA\n+TTGTGTTATCAATCTTTACCAAGTACTATATTCTCCATCTAATTTAAAATGTAAAGTAAT\n+CTTGCATTCCAAAGATATTTTCCGATTTGAATCGCATCATCAATTCCCTCCATTCCTCAT\n+TTATAGCAATGCAGTTTCCTGTTTCCAAACATAGCACATCACATTAGCTAGAATATCTCC\n+AAAATTTTGCTTGAGAATCAAAGCAAAATCTAAATACTCATGCAATATTCCATCTTCTAA\n+ACCATCCAAATCATTCTGTTTTGAATGTACAAGCGTAAAAATAAGGGCAAATGCATCTAC\n+CATATCTCGACAGTTTGATTCAGAATCAAATCAAAATCTAAATACGGCATTTCGATAATT\n+ATTTTGCACTTATGATACTCAAGCATATTCCTATTTTAAAACCATTCCAAATTGTCTGTT\n+TCTATTGAGCTGCGCTTAGAATCTTTTATACGGTGTGAAAATTTAGGTTTACTAACTTAG\n+TGCACCCACTATAAATAAGGTTGCTCATATCATTCCATTTCATCATCACCTACACAGCAA\n+ACTATCTACACATTTCACTTCTACTTCTACAACTTTGTTATTTGAGAAATGGCTGCTACA\n+TTCGCATACCTTAAAGACGTGAGGCCTTACAAAAACGCATGGAGAGTCCAGGTCAAGATT\n+CTTCACTCTTGGAAGCAGTACACAAGCAACACCCGTGAAACCATTGAGTTGGTCATCTCT\n+GATGAATATGAAAAAAGTAAACTTACCATTTTAATTCTTTGCAATCGTAAATTATTATGT\n+CTTGCTAATGCCCAAATGAAAACGTCTATTCTATACTAATATGCTATGACTTCTCTTGGT\n+GGTAAGGGGAAAAAAATGCATGCTACCGTGAAGAAGGAGTTGGTTTCTAAGTTTGTTCAC\n+AAGCTTATTGTTGGCGAATGGGTCTTCATTGAGATTTTTGGTCTTACCTATGCGTCTGGC\n+CAGTTTCGCCCAACCAACCATCTATACAAGATGGCGTTCCAGGTTAGAACTGAAGTCATG\n+GGTTGTGCTTCTGTCTCTGACTCCAACTTCTTGACTTTGGCGCCATTTTCAAAAATCCAG\n+AGTGGTGAGCTTAACCCTCACATGTTGGTTGGTGAGGGCTATATCTCTCAAAGATCCGTG\n+TATTTTAATTGTCATGTTATTCAAGAAACTTTATAGCCATTACGTTTTTTTGAATCTGTG\n+ATTCGTTTTTGTATTAGATGCTATTGGCCAAATCATTACTGTTGGTGAGTTGGAGGAACT\n+CGAGGCTAACAATAAGCCTACAACAAAGATTGACTTTGAGATCAGAGATCAAATGTAAGT\n+TGCTTATTCTCTGATTTTTGGTCCTCAAGAATGCAAACTATATCCAACAATTTATCTTAT\n+AGTAATTGTTTTAGTAAATTTTAAAACTAACATTAAAGTTAACTATTATAAGGATGAGAG\n+AATGCAAGTTACTTTGTGGGGAACATACGCTCAGCAGGTTTACAGAGCATGTCAGGAATC\n+TGAGGGAAAGAATGTGATTTTTCTCATTCGTTTTGCCAAAATTAAGAGTTACAAGGGTAT\n+ATTCAGTTTCTTTGTACCTATTCCTTTTCTTTCCATACTGCATGATCTATGGTCACTTAA\n+ATGTTATGAGACTGCAGGTGTGAAGAGTTTATCCAACTCATTTGATGCATCGCAAGTACA\n+TGTCAATCCGGACTTCCCTGAAGCTCACCATTTCAGTCAAACGTACGAAGATGTCATATT\n+TTCTATAGATTGTAAAGTGCTTACTTTTATAATATGTGATCTATGGTAACTTAACCGTTT\n+ATAAAATTGCTGGTGTGAAAAGTTTATCCAACTCTTTTGATGCATCTCAAGTACATGTCA\n+ATCCTAACTTCCTCGAAGTTGTGGCTTTCAGTCAATCGTAAATTTAGTAATATGATTCTC\n+AAAAAGGATATGCTCATATTGAATTTTGCTTTTTTTGTAATGTATATGAATACCGGTTTA\n+ACTCACTTTCCGTTTATATGTTATTTAACAGACTTCCAAATGATGGTGCTATTTGTGTGT\n+TCCGTGCAAGAGTCCCACGTTTTGAGATGGTTGCAGTTAAAAGGATTGACTACAGTGAGT\n+ACACAAGGAATACCATTGAAGATCTGCTTAGCTCGACTGAGGATTGTTTTTAATCAGATA\n+CTTTGTAATATGCACTTAAAGACATTAAGACTATATACTCATTTATGCTAATACATTGTA\n+TTTACTATATGTTTGTATAATTTCATTTAGGTTGGTAAAGTCAGAGTTTTGTGCACAATC\n+TATGCAATTGATACGGATTGGGCTTGGTATTACATCAGCTGCAAGACATGTAATAAGAAA\n+GTGAATCATATTCATGCTGGTGTTAATGGAGTAAACAACAAGGGTAAGAAGCCTAGATTC\n+TGGTGTGATACATGCAAGTCTGTTGTAACCAATGTGGTCTCTAGGTGCATATGCACTCCC\n+TATGCGTCATTAGTAGTTGCAGAGTATTTAATACATTCAAAAATGTTTATGGATTTTCTC\n+AAACGGTCTTACTTATAATTTATAATCTAAGTGGTTTTGCAAAAAAATGTGACCTATACA\n+ACTCAGTACATGATCTATGCAAAGGTTATGGATAGCACTGGTGAAGCCAAATTGCTTCTG\n+TTTGATTCAATTTGCTCTGAGATCATTGGCGAGTCTGCAACCTCTGTTCTTAATGGATCT\n+GTTGATGAGGTTTGTTTCTTAAAGTTTTCCCGTGTCTACTTTATGTCTTATTCTGATATA\n+TATTAATCTAGATTTTAAATACTATATTATATTACCCTGTTGCAGATTGAGGATCCAGAA\n+GATCTTCCTGATTCTGTAAAGAATCTGATTGGTAAGACATTTCTGTTTCTGGTGTGGGTT\n+GAGAAAGACAACATCTCGGATGGAAAAGAAATCTATAAGGTTTCAAAGGTGCTTCTGAAG\n+GATGGACTACTAGAGGAACAATTACTAGAGGATTCTGCTGAACATGTGAACCCTGCATCC\n+ATTGTGTCTGGTGATCAGGTAATATATACTATAAACATATATCATTAATCATAACACTTA\n+TAATAATTTGTATTTATTGTGCTTCCATTCATATGTCTAATCTTTAATCGTGTATTATAA\n+TACAATAGGTTCTACTTATGCTGGAGAATGGTAATGGATCGCCAGACTCTACGACTCCAT\n+CTTCAAAGCGTGTTTACGCTAGAGAAACGAGTGGCTCTGAAGGTTCTTCAAGTTCAAAGA\n+AGGTGTGTGTTGTACCATTAGACTTGGAAAAGTCTTTATCTGAGAATGCTGAACATGGAG\n'..b'\n+TATAAGATTTTATATGACTTATTTTTTTTTTTGAACCGACATATAAGATCTTTAGTCAAG\n+TTAGAGGGTTTTTCATTGAAAGTTATCTTAAATCGTAGGCTTTAAATTTTTAAATGTGAA\n+GAAGGTTCATCTATTGTTTTGACTTTCAAGAAAATTGGTAATACATGCATTTGCATTTTT\n+ACAAAAAAAAAAACTGAATAATTTATGTTTATTTTTTAATATATAGTAAAACATACTGTT\n+TTTACAAAAAAAAATAAAAAAAAATTGAATGCAAACTTTTAATCAACTAAAATGTCTTTG\n+TAAAAAAATCATAATTTTTAAACATCAAAATTACTATTATTAATTATTTTGATCGATATA\n+TTAACAATTATAAATAAGTTTTTTAAATAATTTAATTTAAATATTATTTTATATTCAAAA\n+CTAAAACCGAATATAAAATCCACGCATCGCGTGGACAACTTCTAG\n+>HELITRONY3A\n+TCTACTTAACAATTTTTAAGTACATTTTAAGGAATTTAATCGGATTGGTTTTTTTTTATG\n+GGTTTAACCCTCTTTTTTTTCTGTTTTTTTCGGCCCATTTGTTGAATCTCTTTACTATTT\n+GGTCCACATCCTATAATTTTAAATGTTAATCAAATCTTACCAAAATTTACAAATCGCTTT\n+AAATACTAATTAGTTACAATTAATTATTTCCGTTCAGCAAAGTAAATCCGACTTATATGG\n+AATCGAATATGTAACATTGCAAAACAAATCCGACTCATATGGTAATTTAGTATTTATCCG\n+TTCAGCAAAGTAATTACTTGAGTAAATATTCTATTAACTACAAAATCTTCAAGTTAAACG\n+AAATCAAAATCTGCATTCCACTACATAATTTTCGGAGATCTTAAGAACTAAATTAAAGCA\n+TATTCCTTAAACATCCTCTATTCAATTCCTATAACTTTTGAAAAATATACTTTTCAAAGA\n+ATTCTAACAATCATTATGAAACAACCTAACGAGATACTTTTTCCATAACAACTAATCATT\n+CAATTCATTTTCTAATTCTAGCCAATAAGAAAATAGAAAAAAATATTGCTTGCACACAAA\n+GATATTTTTTTATTCGAAATCAAAACTAACCCTAATTGTGTATGAGCTACTATATATACT\n+CTCTCATTAGCAAGCCAAATATCACATCTTCATTGTTTTTTTCATTACCTGCACCTATAT\n+ATAACATCTCTCATCTTCATCTTCATCGTTTTGTTTTTGTTTTCTGTTATAAGAATTTTC\n+ATATTTTATGTTTTTAGTTAGAAAATATACTAAACATTTAATCTGTTTTGCAGCTAATCT\n+TACAAACATATCAACAAATACACTCTCAAATCTGGTGAGTTATTGAAATGGTCCATAGTC\n+TTTTATTATCTTCATAAATATGATTCTAAATTCTTTTATTATTTACTAACTAAATATGTT\n+CTATATCTTTATAGTTAAAGATTACTTTTTCAATTTCAATCTTCATCTCTATGGTATGGA\n+TGTATCTCTTCAAACTTTGATAGCTCAATCTGCATCAAAACTCCTAGATAATTCATTTGA\n+GCAGTGTTCAAATGTACAAAATTTTATTTTTTATGATGATATAAGAGTTGTATTTCTTAT\n+ACAATTTCTGCTCATCTTTTCTTTGTTAATAACTACAAAATATTAAATATATAGGAATAA\n+ATTTTGCAATATATTGAAAAATATAGCCTTGAATATCAAATCCTACTAATAAGGAAAGTT\n+AAAATTTATTCCTTTAACAACTTATATACTCGCTTACATCTTCTCTAATAAGGCAAATTA\n+CGAAATATTCTCTAAACATTTAATACACGATAGCTAAACGTTATCTATTCCTATTAAAAA\n+AAAAAAAATCTAACAAGAGAAAGTTGCAATTTCGGTAAGATTGAGTACTATATTATGTAT\n+AACTAATATTGTAAACAATCTAACCTTATTTGTATTTTTAAATCTCATAGAATATGCTTC\n+ATATAAACCCTAACATAAAGACCTAACCATAAACACTATAAATATAACCTTCACTATTTT\n+ACCGTAAGTCATAACCAAAAACTAACTATATTTATTTGCCTACACAATTACATTAGATTT\n+TATGTTTAATGACTAGGAAAACTTTGCTTGCTAACCGGATATGGTTGCTCTAAAATATTC\n+ATTGATCCTAATTTCAGATGTTTGGATAAAAAGAACTACATGTAAGTCACTCTCTTTACT\n+TAATTTTCCTAAATGTATAAAAAAAATTAAGGTTTACTTAATGATTTTTTTTGTTGTTTT\n+ATAGGAATGCATTTAAAGGTGATGATGATGACGACTATGAGCTTTATGAGGAGATTGTTG\n+AAACAAACTTCCAAATGTTTTTTAGTATCAAAAAATAGCAAACATTCATGTTTGATTGTC\n+CTTTCGTTTTTTTTTTTGTTTTGTACTTATGACTTATCAACATCGTACATTTTGTTATAT\n+TTCTACTAATCAAACTATCAAGTTATTAAAACAAGTTATAAGATTTTATGTTGGTGGTTT\n+ATTAATTTATTATTACTCAATTACGAGACATACATTCTAACAATATATTTTACAGTTCTA\n+ATACTTACTACTATAATTATATTTGTACTTTATGACAATTAAGTATAAGTATTGATCCCA\n+ACTAACCTTATAAATAGCGATTTATCCTTCACGTGCTCTTCAATCATAGTAATCAACTTC\n+CATCTACCAAATAATTATTTTGGAAATAAATTATGAAGGATGACATTATAACAATGATAT\n+AGTAAAAGGAATAAAATATTACAAAACTCTAATTTAGGTAAATATAATCATTAAGATCTT\n+TTCAAATAAACATAAATCAAAACAGAAGATTTTGGTAATATTAAATATAGGCCTCGATTA\n+CATTAGAAAACTTAACTAAGCAGTGATTATAGGGATTCTGTAAAGAAAATAACACGCATG\n+TTACTTTTTCTTTTTGGTTTTGTCATTACTCTCAACCATTTATCTTTCGACACATATTCA\n+CCTCTTAACTCTAAAATAACATCTTAGCTAAGATACATTTCTTAGATTAAGATTGTTAGT\n+TTGATTTAATTTAATCATTTTTAATCCTAAAATTTTGTTAAGATACTAAGCTAAGATATG\n+GGCTAAGATGCACCAATGGAGATGCTCTTAGAAACTAGAGGTAAATGTTTTGTTTCAAAA\n+GTATATATGAATAAATCATATAAAAACTTATAAAACTGAATCGTATATACTCCCGCGGGA\n+CGAATCTAGCATGGCTAGGCGGATTTATTAAAACACTATAACTATTAACTTATTTCAAAT\n+ATTATAGGGTGATCATATTTTAGAACTAATTAACTTACAAATTATATCCATATTTATTAT\n+ATGAACTACAAAATTTAAACCTATTAACACCTTCTTACTTTCAAAACAATTAATTTAAAT\n+TGGTACATTTTCAAATAAATATTTAATTTGTATTTACATCAAACAAACAACTGAGTGTAC\n+TAATTTATAGTATCGTTACATTGCATAATTAAAATAAATGAGTGTACTAATTTATAAACT\n+CGATCGCTTAATAAAATGTCATATATAATATACACACAACAAAAGATATAGTTTTCATAT\n+AAGAAAATGAAATATCAACAATAATTTGAAATCATATGCTTACAGAGATAGACACATTGT\n+ATAGAATAATTTTTATAAATCCGTAGAATAACCAATATTATCGTTACCTTAAATACGTGT\n+CATTTAATTCTACATACAACGGAACATATAATTTGCCAGTAATAAAAAATACAACAATCA\n+TACTATACATATACTACATTGTCAAAACCCAAAAAACCAAAACTATAAACAAACAAAAAT\n+CCTGCGGTGTACCGCGGGTCATATCCTAG\n'
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/Rplots.pdf
b
Binary file SMART/Java/Python/Rplots.pdf has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/S1_S3_blast.blast
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/S1_S3_blast.blast Tue Apr 30 14:33:21 2013 -0400
b
b'@@ -0,0 +1,5405 @@\n+chr1_5531278_5531960_ms1762_Ath_TAIR10_Ath_Chr1_ms1606_Ath_TAIR10_Ath_Chr1_ms1401_Ath_TAIR10_Ath_Chr1_ms20168_Ath_TAIR10_Ath_Chr3_DHX-incomp_At_Col-B-G1463-Map16\tHELITRON5\t83.33\t72\t12\t0\t20\t91\t1\t72\t3e-07\t48.1\n+chr1_5531278_5531960_ms1762_Ath_TAIR10_Ath_Chr1_ms1606_Ath_TAIR10_Ath_Chr1_ms1401_Ath_TAIR10_Ath_Chr1_ms20168_Ath_TAIR10_Ath_Chr3_DHX-incomp_At_Col-B-G1463-Map16\tHELITRON5\t96.15\t26\t1\t0\t256\t281\t356\t381\t5e-06\t44.1\n+chr1_5531278_5531960_ms1762_Ath_TAIR10_Ath_Chr1_ms1606_Ath_TAIR10_Ath_Chr1_ms1401_Ath_TAIR10_Ath_Chr1_ms20168_Ath_TAIR10_Ath_Chr3_DHX-incomp_At_Col-B-G1463-Map16\tHELITRON5\t96.00\t25\t1\t0\t251\t275\t431\t455\t2e-05\t42.1\n+chr1_5531278_5531960_ms1762_Ath_TAIR10_Ath_Chr1_ms1606_Ath_TAIR10_Ath_Chr1_ms1401_Ath_TAIR10_Ath_Chr1_ms20168_Ath_TAIR10_Ath_Chr3_DHX-incomp_At_Col-B-G1463-Map16\tHELITRON5\t91.67\t24\t2\t0\t588\t611\t13064\t13087\t0.019\t32.2\n+chr1_5531278_5531960_ms1762_Ath_TAIR10_Ath_Chr1_ms1606_Ath_TAIR10_Ath_Chr1_ms1401_Ath_TAIR10_Ath_Chr1_ms20168_Ath_TAIR10_Ath_Chr3_DHX-incomp_At_Col-B-G1463-Map16\tHELITRON5\t100.00\t13\t0\t0\t529\t541\t7340\t7328\t1.2\t26.3\n+chr1_5531278_5531960_ms1762_Ath_TAIR10_Ath_Chr1_ms1606_Ath_TAIR10_Ath_Chr1_ms1401_Ath_TAIR10_Ath_Chr1_ms20168_Ath_TAIR10_Ath_Chr3_DHX-incomp_At_Col-B-G1463-Map16\tHELITRON5\t100.00\t12\t0\t0\t81\t92\t785\t796\t4.6\t24.3\n+chr1_5531278_5531960_ms1762_Ath_TAIR10_Ath_Chr1_ms1606_Ath_TAIR10_Ath_Chr1_ms1401_Ath_TAIR10_Ath_Chr1_ms20168_Ath_TAIR10_Ath_Chr3_DHX-incomp_At_Col-B-G1463-Map16\tHELITRON5\t100.00\t12\t0\t0\t222\t233\t3878\t3889\t4.6\t24.3\n+chr1_5531278_5531960_ms1762_Ath_TAIR10_Ath_Chr1_ms1606_Ath_TAIR10_Ath_Chr1_ms1401_Ath_TAIR10_Ath_Chr1_ms20168_Ath_TAIR10_Ath_Chr3_DHX-incomp_At_Col-B-G1463-Map16\tHELITRON5\t100.00\t12\t0\t0\t31\t42\t4243\t4232\t4.6\t24.3\n+chr1_5531278_5531960_ms1762_Ath_TAIR10_Ath_Chr1_ms1606_Ath_TAIR10_Ath_Chr1_ms1401_Ath_TAIR10_Ath_Chr1_ms20168_Ath_TAIR10_Ath_Chr3_DHX-incomp_At_Col-B-G1463-Map16\tHELITRON5\t100.00\t12\t0\t0\t535\t546\t6279\t6290\t4.6\t24.3\n+chr1_5531278_5531960_ms1762_Ath_TAIR10_Ath_Chr1_ms1606_Ath_TAIR10_Ath_Chr1_ms1401_Ath_TAIR10_Ath_Chr1_ms20168_Ath_TAIR10_Ath_Chr3_DHX-incomp_At_Col-B-G1463-Map16\tHELITRON5\t100.00\t12\t0\t0\t135\t146\t9265\t9254\t4.6\t24.3\n+chr1_5531278_5531960_ms1762_Ath_TAIR10_Ath_Chr1_ms1606_Ath_TAIR10_Ath_Chr1_ms1401_Ath_TAIR10_Ath_Chr1_ms20168_Ath_TAIR10_Ath_Chr3_DHX-incomp_At_Col-B-G1463-Map16\tHELITRON5\t100.00\t12\t0\t0\t164\t175\t12561\t12550\t4.6\t24.3\n+chr1_5531278_5531960_ms1762_Ath_TAIR10_Ath_Chr1_ms1606_Ath_TAIR10_Ath_Chr1_ms1401_Ath_TAIR10_Ath_Chr1_ms20168_Ath_TAIR10_Ath_Chr3_DHX-incomp_At_Col-B-G1463-Map16\tHELITRON5\t93.75\t16\t1\t0\t225\t240\t12716\t12701\t4.6\t24.3\n+chr1_5531278_5531960_ms1762_Ath_TAIR10_Ath_Chr1_ms1606_Ath_TAIR10_Ath_Chr1_ms1401_Ath_TAIR10_Ath_Chr1_ms20168_Ath_TAIR10_Ath_Chr3_DHX-incomp_At_Col-B-G1463-Map16\tHELITRON5\t100.00\t12\t0\t0\t376\t387\t12884\t12873\t4.6\t24.3\n+chr1_5531278_5531960_ms1762_Ath_TAIR10_Ath_Chr1_ms1606_Ath_TAIR10_Ath_Chr1_ms1401_Ath_TAIR10_Ath_Chr1_ms20168_Ath_TAIR10_Ath_Chr3_DHX-incomp_At_Col-B-G1463-Map16\tHELITRON5\t100.00\t12\t0\t0\t217\t228\t13045\t13056\t4.6\t24.3\n+chr1_5531278_5531960_ms1762_Ath_TAIR10_Ath_Chr1_ms1606_Ath_TAIR10_Ath_Chr1_ms1401_Ath_TAIR10_Ath_Chr1_ms20168_Ath_TAIR10_Ath_Chr3_DHX-incomp_At_Col-B-G1463-Map16\tHELITRONY1E\t95.83\t24\t1\t0\t588\t611\t1649\t1672\t8e-05\t40.1\n+chr1_5531278_5531960_ms1762_Ath_TAIR10_Ath_Chr1_ms1606_Ath_TAIR10_Ath_Chr1_ms1401_Ath_TAIR10_Ath_Chr1_ms20168_Ath_TAIR10_Ath_Chr3_DHX-incomp_At_Col-B-G1463-Map16\tHELITRONY1E\t90.91\t22\t2\t0\t550\t571\t1170\t1149\t0.30\t28.2\n+chr1_5531278_5531960_ms1762_Ath_TAIR10_Ath_Chr1_ms1606_Ath_TAIR10_Ath_Chr1_ms1401_Ath_TAIR10_Ath_Chr1_ms20168_Ath_TAIR10_Ath_Chr3_DHX-incomp_At_Col-B-G1463-Map16\tHELITRONY1E\t100.00\t14\t0\t0\t430\t443\t1650\t1663\t0.30\t28.2\n+chr1_5531278_5531960_ms1762_Ath_TAIR10_Ath_Chr1_ms1606_Ath_TAIR10_Ath_Chr1_ms1401_Ath_TAIR10_Ath_Chr1_ms20168_Ath_TAIR10_Ath_Chr3_DHX-incomp_At_Col-B-G1463-Map16\tHELITRONY1E\t100.00\t12\t0\t0\t130\t141\t199\t188\t4.6\t24.3\n+chr1_5531278_5531960_ms1762_Ath_TAIR10_Ath_Chr1_ms1606_Ath_TAIR10_Ath_Chr1_ms1401_Ath_TAIR10_Ath_Chr1_ms20168_Ath_TAIR10_A'..b'882_Ath_TAIR10_Ath_Chr5_ms43998_Ath_TAIR10_Ath_Chr5_DHX-incomp_At_Col-B-P65.35-Map20_reversed\tHELITRONY1E\t100.00\t12\t0\t0\t10\t21\t58\t47\t1.2\t24.3\n+chr5_9819093_9819279_ms68665_Ath_TAIR10_Ath_Chr5_ms58761_Ath_TAIR10_Ath_Chr5_ms52882_Ath_TAIR10_Ath_Chr5_ms43998_Ath_TAIR10_Ath_Chr5_DHX-incomp_At_Col-B-P65.35-Map20_reversed\tHELITRONY1E\t100.00\t12\t0\t0\t10\t21\t291\t280\t1.2\t24.3\n+chr5_9819093_9819279_ms68665_Ath_TAIR10_Ath_Chr5_ms58761_Ath_TAIR10_Ath_Chr5_ms52882_Ath_TAIR10_Ath_Chr5_ms43998_Ath_TAIR10_Ath_Chr5_DHX-incomp_At_Col-B-P65.35-Map20_reversed\tHELITRON4\t100.00\t12\t0\t0\t66\t77\t4914\t4903\t1.2\t24.3\n+chr5_9819093_9819279_ms68665_Ath_TAIR10_Ath_Chr5_ms58761_Ath_TAIR10_Ath_Chr5_ms52882_Ath_TAIR10_Ath_Chr5_ms43998_Ath_TAIR10_Ath_Chr5_DHX-incomp_At_Col-B-P65.35-Map20_reversed\tHELITRON4\t100.00\t11\t0\t0\t5\t15\t7896\t7886\t4.8\t22.3\n+chr5_9819093_9819279_ms68665_Ath_TAIR10_Ath_Chr5_ms58761_Ath_TAIR10_Ath_Chr5_ms52882_Ath_TAIR10_Ath_Chr5_ms43998_Ath_TAIR10_Ath_Chr5_DHX-incomp_At_Col-B-P65.35-Map20_reversed\tHELITRON4\t100.00\t11\t0\t0\t121\t131\t9920\t9910\t4.8\t22.3\n+chr5_9819093_9819279_ms68665_Ath_TAIR10_Ath_Chr5_ms58761_Ath_TAIR10_Ath_Chr5_ms52882_Ath_TAIR10_Ath_Chr5_ms43998_Ath_TAIR10_Ath_Chr5_DHX-incomp_At_Col-B-P65.35-Map20_reversed\tHELITRON4\t100.00\t11\t0\t0\t123\t133\t9977\t9967\t4.8\t22.3\n+chr5_9819093_9819279_ms68665_Ath_TAIR10_Ath_Chr5_ms58761_Ath_TAIR10_Ath_Chr5_ms52882_Ath_TAIR10_Ath_Chr5_ms43998_Ath_TAIR10_Ath_Chr5_DHX-incomp_At_Col-B-P65.35-Map20_reversed\tHELITRON4\t100.00\t11\t0\t0\t20\t30\t20090\t20100\t4.8\t22.3\n+chr5_9819093_9819279_ms68665_Ath_TAIR10_Ath_Chr5_ms58761_Ath_TAIR10_Ath_Chr5_ms52882_Ath_TAIR10_Ath_Chr5_ms43998_Ath_TAIR10_Ath_Chr5_DHX-incomp_At_Col-B-P65.35-Map20_reversed\tHELITRON3\t100.00\t12\t0\t0\t5\t16\t7568\t7557\t1.2\t24.3\n+chr5_9819093_9819279_ms68665_Ath_TAIR10_Ath_Chr5_ms58761_Ath_TAIR10_Ath_Chr5_ms52882_Ath_TAIR10_Ath_Chr5_ms43998_Ath_TAIR10_Ath_Chr5_DHX-incomp_At_Col-B-P65.35-Map20_reversed\tHELITRON3\t100.00\t11\t0\t0\t65\t75\t1998\t2008\t4.8\t22.3\n+chr5_9819093_9819279_ms68665_Ath_TAIR10_Ath_Chr5_ms58761_Ath_TAIR10_Ath_Chr5_ms52882_Ath_TAIR10_Ath_Chr5_ms43998_Ath_TAIR10_Ath_Chr5_DHX-incomp_At_Col-B-P65.35-Map20_reversed\tHELITRONY3\t100.00\t11\t0\t0\t141\t151\t3832\t3822\t4.8\t22.3\n+chr5_9819093_9819279_ms68665_Ath_TAIR10_Ath_Chr5_ms58761_Ath_TAIR10_Ath_Chr5_ms52882_Ath_TAIR10_Ath_Chr5_ms43998_Ath_TAIR10_Ath_Chr5_DHX-incomp_At_Col-B-P65.35-Map20_reversed\tHELITRONY1D\t100.00\t11\t0\t0\t16\t26\t217\t207\t4.8\t22.3\n+chr5_9819093_9819279_ms68665_Ath_TAIR10_Ath_Chr5_ms58761_Ath_TAIR10_Ath_Chr5_ms52882_Ath_TAIR10_Ath_Chr5_ms43998_Ath_TAIR10_Ath_Chr5_DHX-incomp_At_Col-B-P65.35-Map20_reversed\tHELITRONY1D\t100.00\t11\t0\t0\t127\t137\t1692\t1702\t4.8\t22.3\n+chr5_9819093_9819279_ms68665_Ath_TAIR10_Ath_Chr5_ms58761_Ath_TAIR10_Ath_Chr5_ms52882_Ath_TAIR10_Ath_Chr5_ms43998_Ath_TAIR10_Ath_Chr5_DHX-incomp_At_Col-B-P65.35-Map20_reversed\tHELITRONY1D\t100.00\t11\t0\t0\t124\t134\t2354\t2344\t4.8\t22.3\n+chr5_9819093_9819279_ms68665_Ath_TAIR10_Ath_Chr5_ms58761_Ath_TAIR10_Ath_Chr5_ms52882_Ath_TAIR10_Ath_Chr5_ms43998_Ath_TAIR10_Ath_Chr5_DHX-incomp_At_Col-B-P65.35-Map20_reversed\tHELITRONY1D\t100.00\t11\t0\t0\t124\t134\t2502\t2492\t4.8\t22.3\n+chr5_9819093_9819279_ms68665_Ath_TAIR10_Ath_Chr5_ms58761_Ath_TAIR10_Ath_Chr5_ms52882_Ath_TAIR10_Ath_Chr5_ms43998_Ath_TAIR10_Ath_Chr5_DHX-incomp_At_Col-B-P65.35-Map20_reversed\tHELITRON5\t100.00\t11\t0\t0\t108\t118\t11817\t11807\t4.8\t22.3\n+chr5_9819093_9819279_ms68665_Ath_TAIR10_Ath_Chr5_ms58761_Ath_TAIR10_Ath_Chr5_ms52882_Ath_TAIR10_Ath_Chr5_ms43998_Ath_TAIR10_Ath_Chr5_DHX-incomp_At_Col-B-P65.35-Map20_reversed\tHELITRON1\t100.00\t11\t0\t0\t146\t156\t9667\t9677\t4.8\t22.3\n+chr5_9819093_9819279_ms68665_Ath_TAIR10_Ath_Chr5_ms58761_Ath_TAIR10_Ath_Chr5_ms52882_Ath_TAIR10_Ath_Chr5_ms43998_Ath_TAIR10_Ath_Chr5_DHX-incomp_At_Col-B-P65.35-Map20_reversed\tHELITRON1\t100.00\t11\t0\t0\t136\t146\t13674\t13664\t4.8\t22.3\n+chr5_9819093_9819279_ms68665_Ath_TAIR10_Ath_Chr5_ms58761_Ath_TAIR10_Ath_Chr5_ms52882_Ath_TAIR10_Ath_Chr5_ms43998_Ath_TAIR10_Ath_Chr5_DHX-incomp_At_Col-B-P65.35-Map20_reversed\tHELITRON1\t100.00\t11\t0\t0\t123\t133\t18664\t18654\t4.8\t22.3\n'
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/SR1.fastq
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/SR1.fastq Tue Apr 30 14:33:21 2013 -0400
b
b'@@ -0,0 +1,5000 @@\n+@HWI-EAS337_3:7:1:415:1217/1\n+GATGTGCAGACTTTTCACGCAGGACTACATCACTGT\n++HWI-EAS337_3:7:1:415:1217/1\n+WWWVVVWPWWWVWWWWVVVVKVPWWVVWVWUUQUTQ\n+@HWI-EAS337_3:7:1:208:1489/1\n+GGAAACATATGCACATAAACGTTGAAATCATGCTTA\n++HWI-EAS337_3:7:1:208:1489/1\n+WWWWWWWWWWWWWWWWWVWWVWWVWWWWWWUUUUUU\n+@HWI-EAS337_3:7:1:278:1153/1\n+GAGAAAACCTGTAATAAATACTGAGAGAAAGTAGGG\n++HWI-EAS337_3:7:1:278:1153/1\n+WWWWWWWWWWWWWWWWWWWWWWVWVVVWWVUUUUUR\n+@HWI-EAS337_3:7:1:1178:755/1\n+GGTGAGAGTGGTTGGTTGATGGTAAAACCATTGAAT\n++HWI-EAS337_3:7:1:1178:755/1\n+WWWWWWWWWVWWWVVWWVVWVVVVWVWVVVUUUUUU\n+@HWI-EAS337_3:7:1:277:1259/1\n+GGGTGACAAAGAAAACAAAAGGGACATGGTACTTGG\n++HWI-EAS337_3:7:1:277:1259/1\n+WWWWWWWWWWWWWWWWWWWWWWVWWWWWWVUUUUUU\n+@HWI-EAS337_3:7:1:447:1231/1\n+GACTTGTGGAAGAGTTGGAATGGAAAGCTGGAGCCT\n++HWI-EAS337_3:7:1:447:1231/1\n+WWWWWWWWWWWVWVWWWVWWWVVVVVVVVVURUSUU\n+@HWI-EAS337_3:7:1:300:1199/1\n+GTTTTTGCATATAGATCTCTTTGTAAAGATATCCAT\n++HWI-EAS337_3:7:1:300:1199/1\n+WVWWWWWWWWWWWVWWWWWWWWQWVVVTWWUUUURU\n+@HWI-EAS337_3:7:1:247:1210/1\n+GATAGCTTTGACTATAGGACTTTTATGTATGTGTTG\n++HWI-EAS337_3:7:1:247:1210/1\n+WWWWWWWWWWWWVWWWVVWWWWWWWWTVVWRULUUR\n+@HWI-EAS337_3:7:1:1154:1517/1\n+GAATGTTGCAGACCTTACTCCTACCTATGAAGCACA\n++HWI-EAS337_3:7:1:1154:1517/1\n+WWWWWWWVWWVWWWWWWWWWWWWWVWVWVWUSUUUU\n+@HWI-EAS337_3:7:1:164:1869/1\n+GTTTGATAGGAATTTATTTCTTCTTCGACATCCACC\n++HWI-EAS337_3:7:1:164:1869/1\n+WWWWWWWWVVWWWWWWWWWWWWWWWWQWWWUUUUUU\n+@HWI-EAS337_3:7:1:415:1194/1\n+GATGGTTGACACATTAAGAACATTCTCACCGGTCTC\n++HWI-EAS337_3:7:1:415:1194/1\n+WWWWWWWWWWWWWWWWWVWVWVWWWWWWWVSUUUUU\n+@HWI-EAS337_3:7:1:645:1892/1\n+GATAGTAAGCACCCCTCACTTCCAACCCAAAGATTG\n++HWI-EAS337_3:7:1:645:1892/1\n+WWWWWWWWWWWWWWWWWVWWWWWVVWVWWVUUUUUU\n+@HWI-EAS337_3:7:1:33:1446/1\n+GTTATTCTTTCTTTCTCAAATGGATGCAGTAATGCA\n++HWI-EAS337_3:7:1:33:1446/1\n+WWWWWWWWWWWWWWWWWWWWWUQWWVVWQWUUUSUU\n+@HWI-EAS337_3:7:1:1194:1427/1\n+GAAAAATCACATTTTTTTGTTTGATAAAAACCCAGA\n++HWI-EAS337_3:7:1:1194:1427/1\n+WWWWWWWWVWVWWWWWWWVWWWUWWWWWWWUUUUSU\n+@HWI-EAS337_3:7:1:624:1913/1\n+GACATCTTCAACTCCGGAGTTTTGAGTAACATTATA\n++HWI-EAS337_3:7:1:624:1913/1\n+WWWWWWWWWWVWWWWVVVVWWWWVVVWWVWUUUUUU\n+@HWI-EAS337_3:7:1:437:1202/1\n+GTACTTATGATGAAACTGAGATCAACTACCACCTCC\n++HWI-EAS337_3:7:1:437:1202/1\n+WWWWWVWWWVWVWWWWWWWWVWWWWVWVVVUUUUUU\n+@HWI-EAS337_3:7:1:1386:1787/1\n+GTTTAGCTAGTATTAAGGCTAGAAATGGATATGATG\n++HWI-EAS337_3:7:1:1386:1787/1\n+WWWWWWWWWWWWWWWWVVWWWVWVVWVVVWUUSUUO\n+@HWI-EAS337_3:7:1:227:1155/1\n+GATAGCAGCAAGGTTATTGGAATCTAAGCAATCTAC\n++HWI-EAS337_3:7:1:227:1155/1\n+WWVWWVWWVVWVVIWVWVVUWVVVVWVTVVUUUUSU\n+@HWI-EAS337_3:7:1:472:1025/1\n+GAAGTGATACTCATAAAACTATTTAGAAAGTTAATT\n++HWI-EAS337_3:7:1:472:1025/1\n+WWWWWWWWWWWWWWWVWVWWWWWWVVWWWVUUUUUU\n+@HWI-EAS337_3:7:1:220:1482/1\n+GCTATATGAGAATTCAGGCCACTTGTAGTTCGATAA\n++HWI-EAS337_3:7:1:220:1482/1\n+WWWWWWWWWVWWWWWWWVWWWWWWWWVVWWURUUUU\n+@HWI-EAS337_3:7:1:1699:1966/1\n+GATGAAGGATACTACAAAAAAAAGGGTTATTTTGTG\n++HWI-EAS337_3:7:1:1699:1966/1\n+WWWWWWWWWWWWWWWWVWVWWWWWWWVWWWUUUSUR\n+@HWI-EAS337_3:7:1:547:1084/1\n+GTGGTCAGGTCCTCTTCAAGTGATACAATGTTCCCC\n++HWI-EAS337_3:7:1:547:1084/1\n+WWWWWWWWWWWWWWWWWWVVWVWWWWWWWVUUUUSU\n+@HWI-EAS337_3:7:1:464:1097/1\n+GAAATTGAAGCTAGTTATTGACAGTTTACCAAGTTA\n++HWI-EAS337_3:7:1:464:1097/1\n+WWWWWWWWWWWVWWVWWWWWWWWVVWWWWVUUUUUR\n+@HWI-EAS337_3:7:1:171:1480/1\n+GATAATACTATTAGCACATCAGCCTCTAGATGAGAC\n++HWI-EAS337_3:7:1:171:1480/1\n+WWWWWWWWWWWWWVWWWWWWWVWWWWWWTVUUUUUU\n+@HWI-EAS337_3:7:1:293:1251/1\n+GTGGTAGTGAGCTCCGTGGTGAACAAGATGACGGAA\n++HWI-EAS337_3:7:1:293:1251/1\n+WWWWWWWVWVWWWWVVWWVVVVVVWVVVVVRPUURR\n+@HWI-EAS337_3:7:1:647:1863/1\n+GGGTTTCAGATTAGTAAGTTATAGTGAAAAAATATA\n++HWI-EAS337_3:7:1:647:1863/1\n+WWVWWWWWVWWWWVWWVVWWWWWWWVWVVWUUUUUU\n+@HWI-EAS337_3:7:1:263:1275/1\n+GCTACGTCTGCTCTAACTCCTAATATGATCCTGTAT\n++HWI-EAS337_3:7:1:263:1275/1\n+WWWWWWWWWWWWWWWWWWWWWVWWWWQVWWUUOUUU\n+@HWI-EAS337_3:7:1:1112:215/1\n+GGTGTTGATTTCACAAGGAGGAATACTCATCTAAAA\n++HWI-EAS337_3:7:1:1112:215/1\n+WWVWWVVWVVWWWVWWVUWVVVWWWVWTVWUUUUUU\n+@HWI-EAS337_3:7:1:319:1275/1\n+GTTATAGTTCTTGACAACAAAGTACAGAGGTGGTCC\n++HWI-EAS337_3:7:1:319:1275/1\n+WWWWWWWWWWWWVWWWWWWWWWWWWWVWVWUUSUUU\n+@HWI-EAS337_3:7:1:1310:1480/1'..b'A\n++HWI-EAS337_3:7:1:986:591/1\n+WWWWWWWWWVWWWWWWWWWWWWWVWVVWVVUUUUUR\n+@HWI-EAS337_3:7:1:181:1099/1\n+GGTCGACGTAAGAGATCTGCAGGGCTATTACTCATT\n++HWI-EAS337_3:7:1:181:1099/1\n+WWWWWWWWWWWWWVWWWWWWWVVWWWVWWVUUUUUU\n+@HWI-EAS337_3:7:1:509:832/1\n+GTGAAGTATGGGTGGAAATGCTTGCGTATGCTGCTA\n++HWI-EAS337_3:7:1:509:832/1\n+WWWWVWWWWVVWWWWWWVWVWWWVVVVVWVSUUUUR\n+@HWI-EAS337_3:7:1:510:597/1\n+GGGTCTGGAATAGTAATGCGCTGATTCTAGTAAAGT\n++HWI-EAS337_3:7:1:510:597/1\n+VWWWVWWWWWWWWWWWWVWWWWWVWWWWVVUUUUUU\n+@HWI-EAS337_3:7:1:1765:1489/1\n+GTCAATTTTTTCTTTGTTTAAATCCGGGGAGGCTAG\n++HWI-EAS337_3:7:1:1765:1489/1\n+WVWWVWWWWWWWWWWVWWWWWWWWWQQVTVUSUUUR\n+@HWI-EAS337_3:7:1:417:1560/1\n+GTAACCTTCCCAGTGTCTCCTTAAGAAAGACTTGGA\n++HWI-EAS337_3:7:1:417:1560/1\n+WWWWVWWSWSVWVVVVWWWWWWWWVSWWWWUQUUQU\n+@HWI-EAS337_3:7:1:1047:854/1\n+GTTGAAATTCCTGATTTTCCATGTGCATCATAAGCC\n++HWI-EAS337_3:7:1:1047:854/1\n+WWWWWVWWWWWWWWUWWWWWVWVWVVVWVVUUUUUU\n+@HWI-EAS337_3:7:1:1296:202/1\n+GGTGTTGGAGTTGGATTTGTTTCTGCTTTGATATCC\n++HWI-EAS337_3:7:1:1296:202/1\n+WWWWWWWVWVWWWVVWWWWWWWWWVVWWWTUUUUUF\n+@HWI-EAS337_3:7:1:502:642/1\n+GATGATTCTTGCTGGTTAAGTTGAGATGGGTTATAA\n++HWI-EAS337_3:7:1:502:642/1\n+WWWWWVPVVVWWWVVVWWWVWWSVVVWVVVUUUUUR\n+@HWI-EAS337_3:7:1:82:1651/1\n+GGCATCCTGTTCATCCTTCTCTTCATTTTTAGGCGT\n++HWI-EAS337_3:7:1:82:1651/1\n+WWWWWWWWVWWWWWWWWVWWWWWWVWWWWWUKJUQU\n+@HWI-EAS337_3:7:1:1505:1274/1\n+GAAACTTTTCAAAAAAAAAGTTGCATGAGAAATAAG\n++HWI-EAS337_3:7:1:1505:1274/1\n+WWWWWWWWWWWWVWWWWWWWVWWWWWWVWWSUUUUR\n+@HWI-EAS337_3:7:1:5:1770/1\n+GTGTGAAAAAGTATTTCATTCACATATTGAGTTGTT\n++HWI-EAS337_3:7:1:5:1770/1\n+WWWWWWWWWWVWWWWWWWWWWWWWWWWWVVSUUQUU\n+@HWI-EAS337_3:7:1:115:1005/1\n+GATTTTACTGGAATGGGGAAGGGTGAGGCATGGGTG\n++HWI-EAS337_3:7:1:115:1005/1\n+WWWWWWWWWVVWWWVVVVWWVVVWWWVVWVUUUUUU\n+@HWI-EAS337_3:7:1:354:1708/1\n+GCATCCGACAGTGACTTAGACGATGAGGAATACGAG\n++HWI-EAS337_3:7:1:354:1708/1\n+WWWWWWWWWWWWVWWWWWVWWVWWVWWVWWUUUUUR\n+@HWI-EAS337_3:7:1:1639:1500/1\n+GTGATTATTATCTAACTCTGCAACAGCATCCAGGGA\n++HWI-EAS337_3:7:1:1639:1500/1\n+WWWWWWVVWWWWWVVWVVWUVVVVVVVVWVUUUUUR\n+@HWI-EAS337_3:7:1:766:243/1\n+GTGGCATCTATGGAAGATAAATTGGAGATTGTTGCT\n++HWI-EAS337_3:7:1:766:243/1\n+WWVWWWWWWWWVVWWVWWWWWWWVVVTVWWRUUJSU\n+@HWI-EAS337_3:7:1:920:144/1\n+GTGCGATCACACTGTTTATGTTGTTGTTGATCATTG\n++HWI-EAS337_3:7:1:920:144/1\n+WWVVWWWWWVWPWVWWVWWSWVSWWHWWLVUCPUUH\n+@HWI-EAS337_3:7:1:389:268/1\n+GGTCAATTAGAGAGGGCAACCACCCTCAAAGAATTT\n++HWI-EAS337_3:7:1:389:268/1\n+WWWWWWWWWVWWWWVVWWWWWWWWWWWWVVSUUUUU\n+@HWI-EAS337_3:7:1:294:1868/1\n+GAAAAAAAATTGTTTGTCTTGAATTAATGTTTCAAT\n++HWI-EAS337_3:7:1:294:1868/1\n+VWVWWWWWWWWVQWWWWOWVVWWVWVVWQWUURULU\n+@HWI-EAS337_3:7:1:1147:62/1\n+GAATTCCCCTCAGGTTGGAGTTGTGCACTTGGCACT\n++HWI-EAS337_3:7:1:1147:62/1\n+WWWWWWWWWWWWVWWWWWWVWWVWVVWVVWUUUUUU\n+@HWI-EAS337_3:7:1:787:1759/1\n+GGTTTTATTAGAATTGGTAGCTGTTCTGATTTTCTG\n++HWI-EAS337_3:7:1:787:1759/1\n+WVVWWWWVWWWWWWWVUWWUWWUVWVVTVVUUUUUH\n+@HWI-EAS337_3:7:1:425:1939/1\n+GCTAATTGTGGTGTCTGGGTCTATGTGGCTAAACTT\n++HWI-EAS337_3:7:1:425:1939/1\n+WWWWVWWVWWWWVWWWVVVVWWWVVWVVVWUUUUUU\n+@HWI-EAS337_3:7:1:187:1132/1\n+GTGGGAGAGGCAAGGGGCTTGGCTCATATCCTCTTC\n++HWI-EAS337_3:7:1:187:1132/1\n+WVWWWWWWWWWWWWWWWWWWWTVWVWWWVVUUUUUU\n+@HWI-EAS337_3:7:1:1739:1840/1\n+GGAGGGGTGAAATCGTTTCTGAAAAATAATGAAATG\n++HWI-EAS337_3:7:1:1739:1840/1\n+WWVWWWWWWWWWWWWWWVTWWWVVVWWWWWUUUUUU\n+@HWI-EAS337_3:7:1:1505:1876/1\n+GAAAGATCAAGTGTTGTCAAGTTCACTAGTTTAGAG\n++HWI-EAS337_3:7:1:1505:1876/1\n+WWWWWWWWWWWWWWWWWWWWVWWVWWWVVVUUUSUR\n+@HWI-EAS337_3:7:1:447:192/1\n+GACTATGCCTAGCAGCTGAAATCACCACAACAAGTT\n++HWI-EAS337_3:7:1:447:192/1\n+WWWWWWWWWWWWWWWTWWWVVWWVWWWWWVUUUUUU\n+@HWI-EAS337_3:7:1:21:2019/1\n+GTATGAGGTAAAAGATGATAACCTGTCTTCCAGCCC\n++HWI-EAS337_3:7:1:21:2019/1\n+VWWVVWWVVWWWWWWWWWWWWWWWQVVWWWUURUUU\n+@HWI-EAS337_3:7:1:1593:652/1\n+GTGATGAGTAAAACATCATCATATGAACTTGAAGAG\n++HWI-EAS337_3:7:1:1593:652/1\n+WWWVWVWWVWVWWVWWWWWWVVWWVWWVWWUUUSUU\n+@HWI-EAS337_3:7:1:1254:1660/1\n+GAAGTTTGTAATTCCTTTTAGGATTGTGGTTAACAT\n++HWI-EAS337_3:7:1:1254:1660/1\n+WWWVVWWWWWWWWWWWVWVWVUWWWTWVQWUUUUMU\n+@HWI-EAS337_3:7:1:291:629/1\n+GTAGAGGAGGTAGGCTTGGTGGTCCCTCTATGGTAA\n++HWI-EAS337_3:7:1:291:629/1\n+WWWWWWWWWWVVVWVWVVWTWWKOVVTRVSUSSMFR\n'
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/Wig/chr1.wig
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/Wig/chr1.wig Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,9 @@
+fixedStep  chrom=chr1  start=11  step=1
+1.1
+1.2
+fixedStep  chrom=chr1  start=14  step=1
+1.4
+1.5
+variableStep chrom=chr1
+17  1.7
+19  1.9
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/adress.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/adress.txt Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,7 @@
+0
+58
+115
+173
+231
+289
+347
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/clusterize_default_expected.gff3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/clusterize_default_expected.gff3 Tue Apr 30 14:33:21 2013 -0400
b
b'@@ -0,0 +1,1790 @@\n+chr4\tS-MART\ttranscript\t1\t50000\t.\t+\t.\tnbElements=0;ID=region1;Name=region1\n+chr4\tS-MART\ttranscript\t49951\t99950\t.\t+\t.\tnbElements=0;ID=region2;Name=region2\n+chr4\tS-MART\ttranscript\t99901\t149900\t.\t+\t.\tnbElements=0;ID=region3;Name=region3\n+chr4\tS-MART\ttranscript\t149851\t199850\t.\t+\t.\tnbElements=0;ID=region4;Name=region4\n+chr4\tS-MART\ttranscript\t199801\t249800\t.\t+\t.\tnbElements=0;ID=region5;Name=region5\n+chr4\tS-MART\ttranscript\t249751\t299750\t.\t+\t.\tnbElements=0;ID=region6;Name=region6\n+chr4\tS-MART\ttranscript\t299701\t349700\t.\t+\t.\tnbElements=0;ID=region7;Name=region7\n+chr4\tS-MART\ttranscript\t349651\t399650\t.\t+\t.\tnbElements=0;ID=region8;Name=region8\n+chr4\tS-MART\ttranscript\t399601\t449600\t.\t+\t.\tnbElements=0;ID=region9;Name=region9\n+chr4\tS-MART\ttranscript\t449551\t499550\t.\t+\t.\tnbElements=0;ID=region10;Name=region10\n+chr4\tS-MART\ttranscript\t499501\t549500\t.\t+\t.\tnbElements=0;ID=region11;Name=region11\n+chr4\tS-MART\ttranscript\t549451\t599450\t.\t+\t.\tnbElements=0;ID=region12;Name=region12\n+chr4\tS-MART\ttranscript\t599401\t649400\t.\t+\t.\tnbElements=0;ID=region13;Name=region13\n+chr4\tS-MART\ttranscript\t649351\t699350\t.\t+\t.\tnbElements=0;ID=region14;Name=region14\n+chr4\tS-MART\ttranscript\t699301\t749300\t.\t+\t.\tnbElements=0;ID=region15;Name=region15\n+chr4\tS-MART\ttranscript\t749251\t799250\t.\t+\t.\tnbElements=0;ID=region16;Name=region16\n+chr4\tS-MART\ttranscript\t799201\t849200\t.\t+\t.\tnbElements=0;ID=region17;Name=region17\n+chr4\tS-MART\ttranscript\t849151\t899150\t.\t+\t.\tnbElements=0;ID=region18;Name=region18\n+chr4\tS-MART\ttranscript\t899101\t949100\t.\t+\t.\tnbElements=0;ID=region19;Name=region19\n+chr4\tS-MART\ttranscript\t949051\t999050\t.\t+\t.\tnbElements=0;ID=region20;Name=region20\n+chr4\tS-MART\ttranscript\t999001\t1049000\t.\t+\t.\tnbElements=0;ID=region21;Name=region21\n+chr4\tS-MART\ttranscript\t1048951\t1098950\t.\t+\t.\tnbElements=0;ID=region22;Name=region22\n+chr4\tS-MART\ttranscript\t1098901\t1148900\t.\t+\t.\tnbElements=0;ID=region23;Name=region23\n+chr4\tS-MART\ttranscript\t1148851\t1198850\t.\t+\t.\tnbElements=0;ID=region24;Name=region24\n+chr4\tS-MART\ttranscript\t1198801\t1248800\t.\t+\t.\tnbElements=0;ID=region25;Name=region25\n+chr4\tS-MART\ttranscript\t1248751\t1298750\t.\t+\t.\tnbElements=0;ID=region26;Name=region26\n+chr4\tS-MART\ttranscript\t1298701\t1348700\t.\t+\t.\tnbElements=0;ID=region27;Name=region27\n+chr4\tS-MART\ttranscript\t1348651\t1398650\t.\t+\t.\tnbElements=0;ID=region28;Name=region28\n+chr4\tS-MART\ttranscript\t1398601\t1448600\t.\t+\t.\tnbElements=0;ID=region29;Name=region29\n+chr4\tS-MART\ttranscript\t1448551\t1498550\t.\t+\t.\tnbElements=0;ID=region30;Name=region30\n+chr4\tS-MART\ttranscript\t1498501\t1548500\t.\t+\t.\tnbElements=0;ID=region31;Name=region31\n+chr4\tS-MART\ttranscript\t1548451\t1598450\t.\t+\t.\tnbElements=0;ID=region32;Name=region32\n+chr4\tS-MART\ttranscript\t1598401\t1648400\t.\t+\t.\tnbElements=0;ID=region33;Name=region33\n+chr4\tS-MART\ttranscript\t1648351\t1698350\t.\t+\t.\tnbElements=0;ID=region34;Name=region34\n+chr4\tS-MART\ttranscript\t1698301\t1748300\t.\t+\t.\tnbElements=0;ID=region35;Name=region35\n+chr4\tS-MART\ttranscript\t1748251\t1798250\t.\t+\t.\tnbElements=0;ID=region36;Name=region36\n+chr4\tS-MART\ttranscript\t1798201\t1848200\t.\t+\t.\tnbElements=0;ID=region37;Name=region37\n+chr4\tS-MART\ttranscript\t1848151\t1898150\t.\t+\t.\tnbElements=0;ID=region38;Name=region38\n+chr4\tS-MART\ttranscript\t1898101\t1948100\t.\t+\t.\tnbElements=0;ID=region39;Name=region39\n+chr4\tS-MART\ttranscript\t1948051\t1998050\t.\t+\t.\tnbElements=0;ID=region40;Name=region40\n+chr4\tS-MART\ttranscript\t1998001\t2048000\t.\t+\t.\tnbElements=0;ID=region41;Name=region41\n+chr4\tS-MART\ttranscript\t2047951\t2097950\t.\t+\t.\tnbElements=0;ID=region42;Name=region42\n+chr4\tS-MART\ttranscript\t2097901\t2147900\t.\t+\t.\tnbElements=0;ID=region43;Name=region43\n+chr4\tS-MART\ttranscript\t2147851\t2197850\t.\t+\t.\tnbElements=0;ID=region44;Name=region44\n+chr4\tS-MART\ttranscript\t2197801\t2247800\t.\t+\t.\tnbElements=0;ID=region45;Name=region45\n+chr4\tS-MART\ttranscript\t2247751\t2297750\t.\t+\t.\tnbElements=0;ID=region46;Name=region46\n+chr4\tS-MART\ttranscript\t2297701\t2347700\t.\t+\t.\tnbElements=0;ID=region47;Name=region47\n+chr4\tS-MART\ttranscript\t2347651\t2397650\t.\t+\t.\tnbEleme'..b'MART\ttranscript\t3946051\t3996050\t.\t+\t.\tnbElements=0;ID=region1746;Name=region1746\n+chr1\tS-MART\ttranscript\t3996001\t4046000\t.\t+\t.\tnbElements=0;ID=region1747;Name=region1747\n+chr1\tS-MART\ttranscript\t4045951\t4095950\t.\t+\t.\tnbElements=0;ID=region1748;Name=region1748\n+chr1\tS-MART\ttranscript\t4095901\t4145900\t.\t+\t.\tnbElements=0;ID=region1749;Name=region1749\n+chr1\tS-MART\ttranscript\t4145851\t4195850\t.\t+\t.\tnbElements=0;ID=region1750;Name=region1750\n+chr1\tS-MART\ttranscript\t4195801\t4245800\t.\t+\t.\tnbElements=0;ID=region1751;Name=region1751\n+chr1\tS-MART\ttranscript\t4245751\t4295750\t.\t+\t.\tnbElements=0;ID=region1752;Name=region1752\n+chr1\tS-MART\ttranscript\t4295701\t4345700\t.\t+\t.\tnbElements=0;ID=region1753;Name=region1753\n+chr1\tS-MART\ttranscript\t4345651\t4395650\t.\t+\t.\tnbElements=0;ID=region1754;Name=region1754\n+chr1\tS-MART\ttranscript\t4395601\t4445600\t.\t+\t.\tnbElements=0;ID=region1755;Name=region1755\n+chr1\tS-MART\ttranscript\t4445551\t4495550\t.\t+\t.\tnbElements=0;ID=region1756;Name=region1756\n+chr1\tS-MART\ttranscript\t4495501\t4545500\t.\t+\t.\tnbElements=0;ID=region1757;Name=region1757\n+chr1\tS-MART\ttranscript\t4545451\t4595450\t.\t+\t.\tnbElements=0;ID=region1758;Name=region1758\n+chr1\tS-MART\ttranscript\t4595401\t4645400\t.\t+\t.\tnbElements=0;ID=region1759;Name=region1759\n+chr1\tS-MART\ttranscript\t4645351\t4695350\t.\t+\t.\tnbElements=0;ID=region1760;Name=region1760\n+chr1\tS-MART\ttranscript\t4695301\t4745300\t.\t+\t.\tnbElements=0;ID=region1761;Name=region1761\n+chr1\tS-MART\ttranscript\t4745251\t4795250\t.\t+\t.\tnbElements=0;ID=region1762;Name=region1762\n+chr1\tS-MART\ttranscript\t4795201\t4845200\t.\t+\t.\tnbElements=0;ID=region1763;Name=region1763\n+chr1\tS-MART\ttranscript\t4845151\t4895150\t.\t+\t.\tnbElements=0;ID=region1764;Name=region1764\n+chr1\tS-MART\ttranscript\t4895101\t4945100\t.\t+\t.\tnbElements=0;ID=region1765;Name=region1765\n+chr1\tS-MART\ttranscript\t4945051\t4995050\t.\t+\t.\tnbElements=0;ID=region1766;Name=region1766\n+chr1\tS-MART\ttranscript\t4995001\t5045000\t.\t+\t.\tnbElements=0;ID=region1767;Name=region1767\n+chr1\tS-MART\ttranscript\t5044951\t5094950\t.\t+\t.\tnbElements=0;ID=region1768;Name=region1768\n+chr1\tS-MART\ttranscript\t5094901\t5144900\t.\t+\t.\tnbElements=0;ID=region1769;Name=region1769\n+chr1\tS-MART\ttranscript\t5144851\t5194850\t.\t+\t.\tnbElements=0;ID=region1770;Name=region1770\n+chr1\tS-MART\ttranscript\t5194801\t5244800\t.\t+\t.\tnbElements=0;ID=region1771;Name=region1771\n+chr1\tS-MART\ttranscript\t5244751\t5294750\t.\t+\t.\tnbElements=0;ID=region1772;Name=region1772\n+chr1\tS-MART\ttranscript\t5294701\t5344700\t.\t+\t.\tnbElements=0;ID=region1773;Name=region1773\n+chr1\tS-MART\ttranscript\t5344651\t5394650\t.\t+\t.\tnbElements=0;ID=region1774;Name=region1774\n+chr1\tS-MART\ttranscript\t5394601\t5444600\t.\t+\t.\tnbElements=0;ID=region1775;Name=region1775\n+chr1\tS-MART\ttranscript\t5444551\t5494550\t.\t+\t.\tnbElements=0;ID=region1776;Name=region1776\n+chr1\tS-MART\ttranscript\t5494501\t5544500\t.\t+\t.\tnbElements=0;ID=region1777;Name=region1777\n+chr1\tS-MART\ttranscript\t5544451\t5594450\t.\t+\t.\tnbElements=0;ID=region1778;Name=region1778\n+chr1\tS-MART\ttranscript\t5594401\t5644400\t.\t+\t.\tnbElements=0;ID=region1779;Name=region1779\n+chr1\tS-MART\ttranscript\t5644351\t5694350\t.\t+\t.\tnbElements=0;ID=region1780;Name=region1780\n+chr1\tS-MART\ttranscript\t5694301\t5744300\t.\t+\t.\tnbElements=0;ID=region1781;Name=region1781\n+chr1\tS-MART\ttranscript\t5744251\t5794250\t.\t+\t.\tnbElements=0;ID=region1782;Name=region1782\n+chr1\tS-MART\ttranscript\t5794201\t5844200\t.\t+\t.\tnbElements=0;ID=region1783;Name=region1783\n+chr1\tS-MART\ttranscript\t5844151\t5894150\t.\t+\t.\tnbElements=0;ID=region1784;Name=region1784\n+chr1\tS-MART\ttranscript\t5894101\t5944100\t.\t+\t.\tnbElements=0;ID=region1785;Name=region1785\n+chr1\tS-MART\ttranscript\t5944051\t5994050\t.\t+\t.\tnbElements=0;ID=region1786;Name=region1786\n+chr1\tS-MART\ttranscript\t5994001\t6044000\t.\t+\t.\tnbElements=0;ID=region1787;Name=region1787\n+chr1\tS-MART\ttranscript\t6043951\t6093950\t.\t+\t.\tnbElements=0;ID=region1788;Name=region1788\n+chr1\tS-MART\ttranscript\t6093901\t6143900\t.\t+\t.\tnbElements=0;ID=region1789;Name=region1789\n+chr1\tS-MART\ttranscript\t6143851\t6193850\t.\t+\t.\tnbElements=1.0;ID=region1790;Name=region1790\n'
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/clusterize_default_expected.map
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/clusterize_default_expected.map Tue Apr 30 14:33:21 2013 -0400
b
b'@@ -0,0 +1,1790 @@\n+region1\tchr4\t1\t50001\n+region2\tchr4\t49951\t99951\n+region3\tchr4\t99901\t149901\n+region4\tchr4\t149851\t199851\n+region5\tchr4\t199801\t249801\n+region6\tchr4\t249751\t299751\n+region7\tchr4\t299701\t349701\n+region8\tchr4\t349651\t399651\n+region9\tchr4\t399601\t449601\n+region10\tchr4\t449551\t499551\n+region11\tchr4\t499501\t549501\n+region12\tchr4\t549451\t599451\n+region13\tchr4\t599401\t649401\n+region14\tchr4\t649351\t699351\n+region15\tchr4\t699301\t749301\n+region16\tchr4\t749251\t799251\n+region17\tchr4\t799201\t849201\n+region18\tchr4\t849151\t899151\n+region19\tchr4\t899101\t949101\n+region20\tchr4\t949051\t999051\n+region21\tchr4\t999001\t1049001\n+region22\tchr4\t1048951\t1098951\n+region23\tchr4\t1098901\t1148901\n+region24\tchr4\t1148851\t1198851\n+region25\tchr4\t1198801\t1248801\n+region26\tchr4\t1248751\t1298751\n+region27\tchr4\t1298701\t1348701\n+region28\tchr4\t1348651\t1398651\n+region29\tchr4\t1398601\t1448601\n+region30\tchr4\t1448551\t1498551\n+region31\tchr4\t1498501\t1548501\n+region32\tchr4\t1548451\t1598451\n+region33\tchr4\t1598401\t1648401\n+region34\tchr4\t1648351\t1698351\n+region35\tchr4\t1698301\t1748301\n+region36\tchr4\t1748251\t1798251\n+region37\tchr4\t1798201\t1848201\n+region38\tchr4\t1848151\t1898151\n+region39\tchr4\t1898101\t1948101\n+region40\tchr4\t1948051\t1998051\n+region41\tchr4\t1998001\t2048001\n+region42\tchr4\t2047951\t2097951\n+region43\tchr4\t2097901\t2147901\n+region44\tchr4\t2147851\t2197851\n+region45\tchr4\t2197801\t2247801\n+region46\tchr4\t2247751\t2297751\n+region47\tchr4\t2297701\t2347701\n+region48\tchr4\t2347651\t2397651\n+region49\tchr4\t2397601\t2447601\n+region50\tchr4\t2447551\t2497551\n+region51\tchr4\t2497501\t2547501\n+region52\tchr4\t2547451\t2597451\n+region53\tchr4\t2597401\t2647401\n+region54\tchr4\t2647351\t2697351\n+region55\tchr4\t2697301\t2747301\n+region56\tchr4\t2747251\t2797251\n+region57\tchr4\t2797201\t2847201\n+region58\tchr4\t2847151\t2897151\n+region59\tchr4\t2897101\t2947101\n+region60\tchr4\t2947051\t2997051\n+region61\tchr4\t2997001\t3047001\n+region62\tchr4\t3046951\t3096951\n+region63\tchr4\t3096901\t3146901\n+region64\tchr4\t3146851\t3196851\n+region65\tchr4\t3196801\t3246801\n+region66\tchr4\t3246751\t3296751\n+region67\tchr4\t3296701\t3346701\n+region68\tchr4\t3346651\t3396651\n+region69\tchr4\t3396601\t3446601\n+region70\tchr4\t3446551\t3496551\n+region71\tchr4\t3496501\t3546501\n+region72\tchr4\t3546451\t3596451\n+region73\tchr4\t3596401\t3646401\n+region74\tchr4\t3646351\t3696351\n+region75\tchr4\t3696301\t3746301\n+region76\tchr4\t3746251\t3796251\n+region77\tchr4\t3796201\t3846201\n+region78\tchr4\t3846151\t3896151\n+region79\tchr4\t3896101\t3946101\n+region80\tchr4\t3946051\t3996051\n+region81\tchr4\t3996001\t4046001\n+region82\tchr4\t4045951\t4095951\n+region83\tchr4\t4095901\t4145901\n+region84\tchr4\t4145851\t4195851\n+region85\tchr4\t4195801\t4245801\n+region86\tchr4\t4245751\t4295751\n+region87\tchr4\t4295701\t4345701\n+region88\tchr4\t4345651\t4395651\n+region89\tchr4\t4395601\t4445601\n+region90\tchr4\t4445551\t4495551\n+region91\tchr4\t4495501\t4545501\n+region92\tchr4\t4545451\t4595451\n+region93\tchr4\t4595401\t4645401\n+region94\tchr4\t4645351\t4695351\n+region95\tchr4\t4695301\t4745301\n+region96\tchr4\t4745251\t4795251\n+region97\tchr4\t4795201\t4845201\n+region98\tchr4\t4845151\t4895151\n+region99\tchr4\t4895101\t4945101\n+region100\tchr4\t4945051\t4995051\n+region101\tchr4\t4995001\t5045001\n+region102\tchr4\t5044951\t5094951\n+region103\tchr4\t5094901\t5144901\n+region104\tchr4\t5144851\t5194851\n+region105\tchr4\t5194801\t5244801\n+region106\tchr4\t5244751\t5294751\n+region107\tchr4\t5294701\t5344701\n+region108\tchr4\t5344651\t5394651\n+region109\tchr4\t5394601\t5444601\n+region110\tchr4\t5444551\t5494551\n+region111\tchr4\t5494501\t5544501\n+region112\tchr4\t5544451\t5594451\n+region113\tchr4\t5594401\t5644401\n+region114\tchr4\t5644351\t5694351\n+region115\tchr4\t5694301\t5744301\n+region116\tchr4\t5744251\t5794251\n+region117\tchr4\t5794201\t5844201\n+region118\tchr4\t5844151\t5894151\n+region119\tchr4\t5894101\t5944101\n+region120\tchr4\t5944051\t5994051\n+region121\tchr4\t5994001\t6044001\n+region122\tchr4\t6043951\t6093951\n+region123\tchr4\t6093901\t6143901\n+region124\tchr4\t6143851\t6193851\n+region125\tchr4\t6193801\t6243801\n+region126\tchr4\t6243751\t6293751\n+region127\tchr4\t6293701\t6343701\n+region128\tchr4\t6343651\t6393651\n+region129\tchr4\t6393601\t6443601\n+region130'..b'9951\t99951\n+region1669\tchr1\t99901\t149901\n+region1670\tchr1\t149851\t199851\n+region1671\tchr1\t199801\t249801\n+region1672\tchr1\t249751\t299751\n+region1673\tchr1\t299701\t349701\n+region1674\tchr1\t349651\t399651\n+region1675\tchr1\t399601\t449601\n+region1676\tchr1\t449551\t499551\n+region1677\tchr1\t499501\t549501\n+region1678\tchr1\t549451\t599451\n+region1679\tchr1\t599401\t649401\n+region1680\tchr1\t649351\t699351\n+region1681\tchr1\t699301\t749301\n+region1682\tchr1\t749251\t799251\n+region1683\tchr1\t799201\t849201\n+region1684\tchr1\t849151\t899151\n+region1685\tchr1\t899101\t949101\n+region1686\tchr1\t949051\t999051\n+region1687\tchr1\t999001\t1049001\n+region1688\tchr1\t1048951\t1098951\n+region1689\tchr1\t1098901\t1148901\n+region1690\tchr1\t1148851\t1198851\n+region1691\tchr1\t1198801\t1248801\n+region1692\tchr1\t1248751\t1298751\n+region1693\tchr1\t1298701\t1348701\n+region1694\tchr1\t1348651\t1398651\n+region1695\tchr1\t1398601\t1448601\n+region1696\tchr1\t1448551\t1498551\n+region1697\tchr1\t1498501\t1548501\n+region1698\tchr1\t1548451\t1598451\n+region1699\tchr1\t1598401\t1648401\n+region1700\tchr1\t1648351\t1698351\n+region1701\tchr1\t1698301\t1748301\n+region1702\tchr1\t1748251\t1798251\n+region1703\tchr1\t1798201\t1848201\n+region1704\tchr1\t1848151\t1898151\n+region1705\tchr1\t1898101\t1948101\n+region1706\tchr1\t1948051\t1998051\n+region1707\tchr1\t1998001\t2048001\n+region1708\tchr1\t2047951\t2097951\n+region1709\tchr1\t2097901\t2147901\n+region1710\tchr1\t2147851\t2197851\n+region1711\tchr1\t2197801\t2247801\n+region1712\tchr1\t2247751\t2297751\n+region1713\tchr1\t2297701\t2347701\n+region1714\tchr1\t2347651\t2397651\n+region1715\tchr1\t2397601\t2447601\n+region1716\tchr1\t2447551\t2497551\n+region1717\tchr1\t2497501\t2547501\n+region1718\tchr1\t2547451\t2597451\n+region1719\tchr1\t2597401\t2647401\n+region1720\tchr1\t2647351\t2697351\n+region1721\tchr1\t2697301\t2747301\n+region1722\tchr1\t2747251\t2797251\n+region1723\tchr1\t2797201\t2847201\n+region1724\tchr1\t2847151\t2897151\n+region1725\tchr1\t2897101\t2947101\n+region1726\tchr1\t2947051\t2997051\n+region1727\tchr1\t2997001\t3047001\n+region1728\tchr1\t3046951\t3096951\n+region1729\tchr1\t3096901\t3146901\n+region1730\tchr1\t3146851\t3196851\n+region1731\tchr1\t3196801\t3246801\n+region1732\tchr1\t3246751\t3296751\n+region1733\tchr1\t3296701\t3346701\n+region1734\tchr1\t3346651\t3396651\n+region1735\tchr1\t3396601\t3446601\n+region1736\tchr1\t3446551\t3496551\n+region1737\tchr1\t3496501\t3546501\n+region1738\tchr1\t3546451\t3596451\n+region1739\tchr1\t3596401\t3646401\n+region1740\tchr1\t3646351\t3696351\n+region1741\tchr1\t3696301\t3746301\n+region1742\tchr1\t3746251\t3796251\n+region1743\tchr1\t3796201\t3846201\n+region1744\tchr1\t3846151\t3896151\n+region1745\tchr1\t3896101\t3946101\n+region1746\tchr1\t3946051\t3996051\n+region1747\tchr1\t3996001\t4046001\n+region1748\tchr1\t4045951\t4095951\n+region1749\tchr1\t4095901\t4145901\n+region1750\tchr1\t4145851\t4195851\n+region1751\tchr1\t4195801\t4245801\n+region1752\tchr1\t4245751\t4295751\n+region1753\tchr1\t4295701\t4345701\n+region1754\tchr1\t4345651\t4395651\n+region1755\tchr1\t4395601\t4445601\n+region1756\tchr1\t4445551\t4495551\n+region1757\tchr1\t4495501\t4545501\n+region1758\tchr1\t4545451\t4595451\n+region1759\tchr1\t4595401\t4645401\n+region1760\tchr1\t4645351\t4695351\n+region1761\tchr1\t4695301\t4745301\n+region1762\tchr1\t4745251\t4795251\n+region1763\tchr1\t4795201\t4845201\n+region1764\tchr1\t4845151\t4895151\n+region1765\tchr1\t4895101\t4945101\n+region1766\tchr1\t4945051\t4995051\n+region1767\tchr1\t4995001\t5045001\n+region1768\tchr1\t5044951\t5094951\n+region1769\tchr1\t5094901\t5144901\n+region1770\tchr1\t5144851\t5194851\n+region1771\tchr1\t5194801\t5244801\n+region1772\tchr1\t5244751\t5294751\n+region1773\tchr1\t5294701\t5344701\n+region1774\tchr1\t5344651\t5394651\n+region1775\tchr1\t5394601\t5444601\n+region1776\tchr1\t5444551\t5494551\n+region1777\tchr1\t5494501\t5544501\n+region1778\tchr1\t5544451\t5594451\n+region1779\tchr1\t5594401\t5644401\n+region1780\tchr1\t5644351\t5694351\n+region1781\tchr1\t5694301\t5744301\n+region1782\tchr1\t5744251\t5794251\n+region1783\tchr1\t5794201\t5844201\n+region1784\tchr1\t5844151\t5894151\n+region1785\tchr1\t5894101\t5944101\n+region1786\tchr1\t5944051\t5994051\n+region1787\tchr1\t5994001\t6044001\n+region1788\tchr1\t6043951\t6093951\n+region1789\tchr1\t6093901\t6143901\n+region1790\tchr1\t6143851\t6193851\n'
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/clusterize_normalize_expected.gff3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/clusterize_normalize_expected.gff3 Tue Apr 30 14:33:21 2013 -0400
b
b'@@ -0,0 +1,1790 @@\n+chr4\tS-MART\ttranscript\t1\t50000\t.\t+\t.\tnbElements=0;ID=region1;Name=region1\n+chr4\tS-MART\ttranscript\t49951\t99950\t.\t+\t.\tnbElements=0;ID=region2;Name=region2\n+chr4\tS-MART\ttranscript\t99901\t149900\t.\t+\t.\tnbElements=0;ID=region3;Name=region3\n+chr4\tS-MART\ttranscript\t149851\t199850\t.\t+\t.\tnbElements=0;ID=region4;Name=region4\n+chr4\tS-MART\ttranscript\t199801\t249800\t.\t+\t.\tnbElements=0;ID=region5;Name=region5\n+chr4\tS-MART\ttranscript\t249751\t299750\t.\t+\t.\tnbElements=0;ID=region6;Name=region6\n+chr4\tS-MART\ttranscript\t299701\t349700\t.\t+\t.\tnbElements=0;ID=region7;Name=region7\n+chr4\tS-MART\ttranscript\t349651\t399650\t.\t+\t.\tnbElements=0;ID=region8;Name=region8\n+chr4\tS-MART\ttranscript\t399601\t449600\t.\t+\t.\tnbElements=0;ID=region9;Name=region9\n+chr4\tS-MART\ttranscript\t449551\t499550\t.\t+\t.\tnbElements=0;ID=region10;Name=region10\n+chr4\tS-MART\ttranscript\t499501\t549500\t.\t+\t.\tnbElements=0;ID=region11;Name=region11\n+chr4\tS-MART\ttranscript\t549451\t599450\t.\t+\t.\tnbElements=0;ID=region12;Name=region12\n+chr4\tS-MART\ttranscript\t599401\t649400\t.\t+\t.\tnbElements=0;ID=region13;Name=region13\n+chr4\tS-MART\ttranscript\t649351\t699350\t.\t+\t.\tnbElements=0;ID=region14;Name=region14\n+chr4\tS-MART\ttranscript\t699301\t749300\t.\t+\t.\tnbElements=0;ID=region15;Name=region15\n+chr4\tS-MART\ttranscript\t749251\t799250\t.\t+\t.\tnbElements=0;ID=region16;Name=region16\n+chr4\tS-MART\ttranscript\t799201\t849200\t.\t+\t.\tnbElements=0;ID=region17;Name=region17\n+chr4\tS-MART\ttranscript\t849151\t899150\t.\t+\t.\tnbElements=0;ID=region18;Name=region18\n+chr4\tS-MART\ttranscript\t899101\t949100\t.\t+\t.\tnbElements=0;ID=region19;Name=region19\n+chr4\tS-MART\ttranscript\t949051\t999050\t.\t+\t.\tnbElements=0;ID=region20;Name=region20\n+chr4\tS-MART\ttranscript\t999001\t1049000\t.\t+\t.\tnbElements=0;ID=region21;Name=region21\n+chr4\tS-MART\ttranscript\t1048951\t1098950\t.\t+\t.\tnbElements=0;ID=region22;Name=region22\n+chr4\tS-MART\ttranscript\t1098901\t1148900\t.\t+\t.\tnbElements=0;ID=region23;Name=region23\n+chr4\tS-MART\ttranscript\t1148851\t1198850\t.\t+\t.\tnbElements=0;ID=region24;Name=region24\n+chr4\tS-MART\ttranscript\t1198801\t1248800\t.\t+\t.\tnbElements=0;ID=region25;Name=region25\n+chr4\tS-MART\ttranscript\t1248751\t1298750\t.\t+\t.\tnbElements=0;ID=region26;Name=region26\n+chr4\tS-MART\ttranscript\t1298701\t1348700\t.\t+\t.\tnbElements=0;ID=region27;Name=region27\n+chr4\tS-MART\ttranscript\t1348651\t1398650\t.\t+\t.\tnbElements=0;ID=region28;Name=region28\n+chr4\tS-MART\ttranscript\t1398601\t1448600\t.\t+\t.\tnbElements=0;ID=region29;Name=region29\n+chr4\tS-MART\ttranscript\t1448551\t1498550\t.\t+\t.\tnbElements=0;ID=region30;Name=region30\n+chr4\tS-MART\ttranscript\t1498501\t1548500\t.\t+\t.\tnbElements=0;ID=region31;Name=region31\n+chr4\tS-MART\ttranscript\t1548451\t1598450\t.\t+\t.\tnbElements=0;ID=region32;Name=region32\n+chr4\tS-MART\ttranscript\t1598401\t1648400\t.\t+\t.\tnbElements=0;ID=region33;Name=region33\n+chr4\tS-MART\ttranscript\t1648351\t1698350\t.\t+\t.\tnbElements=0;ID=region34;Name=region34\n+chr4\tS-MART\ttranscript\t1698301\t1748300\t.\t+\t.\tnbElements=0;ID=region35;Name=region35\n+chr4\tS-MART\ttranscript\t1748251\t1798250\t.\t+\t.\tnbElements=0;ID=region36;Name=region36\n+chr4\tS-MART\ttranscript\t1798201\t1848200\t.\t+\t.\tnbElements=0;ID=region37;Name=region37\n+chr4\tS-MART\ttranscript\t1848151\t1898150\t.\t+\t.\tnbElements=0;ID=region38;Name=region38\n+chr4\tS-MART\ttranscript\t1898101\t1948100\t.\t+\t.\tnbElements=0;ID=region39;Name=region39\n+chr4\tS-MART\ttranscript\t1948051\t1998050\t.\t+\t.\tnbElements=0;ID=region40;Name=region40\n+chr4\tS-MART\ttranscript\t1998001\t2048000\t.\t+\t.\tnbElements=0;ID=region41;Name=region41\n+chr4\tS-MART\ttranscript\t2047951\t2097950\t.\t+\t.\tnbElements=0;ID=region42;Name=region42\n+chr4\tS-MART\ttranscript\t2097901\t2147900\t.\t+\t.\tnbElements=0;ID=region43;Name=region43\n+chr4\tS-MART\ttranscript\t2147851\t2197850\t.\t+\t.\tnbElements=0;ID=region44;Name=region44\n+chr4\tS-MART\ttranscript\t2197801\t2247800\t.\t+\t.\tnbElements=0;ID=region45;Name=region45\n+chr4\tS-MART\ttranscript\t2247751\t2297750\t.\t+\t.\tnbElements=0;ID=region46;Name=region46\n+chr4\tS-MART\ttranscript\t2297701\t2347700\t.\t+\t.\tnbElements=0;ID=region47;Name=region47\n+chr4\tS-MART\ttranscript\t2347651\t2397650\t.\t+\t.\tnbEleme'..b'MART\ttranscript\t3946051\t3996050\t.\t+\t.\tnbElements=0;ID=region1746;Name=region1746\n+chr1\tS-MART\ttranscript\t3996001\t4046000\t.\t+\t.\tnbElements=0;ID=region1747;Name=region1747\n+chr1\tS-MART\ttranscript\t4045951\t4095950\t.\t+\t.\tnbElements=0;ID=region1748;Name=region1748\n+chr1\tS-MART\ttranscript\t4095901\t4145900\t.\t+\t.\tnbElements=0;ID=region1749;Name=region1749\n+chr1\tS-MART\ttranscript\t4145851\t4195850\t.\t+\t.\tnbElements=0;ID=region1750;Name=region1750\n+chr1\tS-MART\ttranscript\t4195801\t4245800\t.\t+\t.\tnbElements=0;ID=region1751;Name=region1751\n+chr1\tS-MART\ttranscript\t4245751\t4295750\t.\t+\t.\tnbElements=0;ID=region1752;Name=region1752\n+chr1\tS-MART\ttranscript\t4295701\t4345700\t.\t+\t.\tnbElements=0;ID=region1753;Name=region1753\n+chr1\tS-MART\ttranscript\t4345651\t4395650\t.\t+\t.\tnbElements=0;ID=region1754;Name=region1754\n+chr1\tS-MART\ttranscript\t4395601\t4445600\t.\t+\t.\tnbElements=0;ID=region1755;Name=region1755\n+chr1\tS-MART\ttranscript\t4445551\t4495550\t.\t+\t.\tnbElements=0;ID=region1756;Name=region1756\n+chr1\tS-MART\ttranscript\t4495501\t4545500\t.\t+\t.\tnbElements=0;ID=region1757;Name=region1757\n+chr1\tS-MART\ttranscript\t4545451\t4595450\t.\t+\t.\tnbElements=0;ID=region1758;Name=region1758\n+chr1\tS-MART\ttranscript\t4595401\t4645400\t.\t+\t.\tnbElements=0;ID=region1759;Name=region1759\n+chr1\tS-MART\ttranscript\t4645351\t4695350\t.\t+\t.\tnbElements=0;ID=region1760;Name=region1760\n+chr1\tS-MART\ttranscript\t4695301\t4745300\t.\t+\t.\tnbElements=0;ID=region1761;Name=region1761\n+chr1\tS-MART\ttranscript\t4745251\t4795250\t.\t+\t.\tnbElements=0;ID=region1762;Name=region1762\n+chr1\tS-MART\ttranscript\t4795201\t4845200\t.\t+\t.\tnbElements=0;ID=region1763;Name=region1763\n+chr1\tS-MART\ttranscript\t4845151\t4895150\t.\t+\t.\tnbElements=0;ID=region1764;Name=region1764\n+chr1\tS-MART\ttranscript\t4895101\t4945100\t.\t+\t.\tnbElements=0;ID=region1765;Name=region1765\n+chr1\tS-MART\ttranscript\t4945051\t4995050\t.\t+\t.\tnbElements=0;ID=region1766;Name=region1766\n+chr1\tS-MART\ttranscript\t4995001\t5045000\t.\t+\t.\tnbElements=0;ID=region1767;Name=region1767\n+chr1\tS-MART\ttranscript\t5044951\t5094950\t.\t+\t.\tnbElements=0;ID=region1768;Name=region1768\n+chr1\tS-MART\ttranscript\t5094901\t5144900\t.\t+\t.\tnbElements=0;ID=region1769;Name=region1769\n+chr1\tS-MART\ttranscript\t5144851\t5194850\t.\t+\t.\tnbElements=0;ID=region1770;Name=region1770\n+chr1\tS-MART\ttranscript\t5194801\t5244800\t.\t+\t.\tnbElements=0;ID=region1771;Name=region1771\n+chr1\tS-MART\ttranscript\t5244751\t5294750\t.\t+\t.\tnbElements=0;ID=region1772;Name=region1772\n+chr1\tS-MART\ttranscript\t5294701\t5344700\t.\t+\t.\tnbElements=0;ID=region1773;Name=region1773\n+chr1\tS-MART\ttranscript\t5344651\t5394650\t.\t+\t.\tnbElements=0;ID=region1774;Name=region1774\n+chr1\tS-MART\ttranscript\t5394601\t5444600\t.\t+\t.\tnbElements=0;ID=region1775;Name=region1775\n+chr1\tS-MART\ttranscript\t5444551\t5494550\t.\t+\t.\tnbElements=0;ID=region1776;Name=region1776\n+chr1\tS-MART\ttranscript\t5494501\t5544500\t.\t+\t.\tnbElements=0;ID=region1777;Name=region1777\n+chr1\tS-MART\ttranscript\t5544451\t5594450\t.\t+\t.\tnbElements=0;ID=region1778;Name=region1778\n+chr1\tS-MART\ttranscript\t5594401\t5644400\t.\t+\t.\tnbElements=0;ID=region1779;Name=region1779\n+chr1\tS-MART\ttranscript\t5644351\t5694350\t.\t+\t.\tnbElements=0;ID=region1780;Name=region1780\n+chr1\tS-MART\ttranscript\t5694301\t5744300\t.\t+\t.\tnbElements=0;ID=region1781;Name=region1781\n+chr1\tS-MART\ttranscript\t5744251\t5794250\t.\t+\t.\tnbElements=0;ID=region1782;Name=region1782\n+chr1\tS-MART\ttranscript\t5794201\t5844200\t.\t+\t.\tnbElements=0;ID=region1783;Name=region1783\n+chr1\tS-MART\ttranscript\t5844151\t5894150\t.\t+\t.\tnbElements=0;ID=region1784;Name=region1784\n+chr1\tS-MART\ttranscript\t5894101\t5944100\t.\t+\t.\tnbElements=0;ID=region1785;Name=region1785\n+chr1\tS-MART\ttranscript\t5944051\t5994050\t.\t+\t.\tnbElements=0;ID=region1786;Name=region1786\n+chr1\tS-MART\ttranscript\t5994001\t6044000\t.\t+\t.\tnbElements=0;ID=region1787;Name=region1787\n+chr1\tS-MART\ttranscript\t6043951\t6093950\t.\t+\t.\tnbElements=0;ID=region1788;Name=region1788\n+chr1\tS-MART\ttranscript\t6093901\t6143900\t.\t+\t.\tnbElements=0;ID=region1789;Name=region1789\n+chr1\tS-MART\ttranscript\t6143851\t6193850\t.\t+\t.\tnbElements=1.0;ID=region1790;Name=region1790\n'
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/clusterize_output_tag_expected.gff3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/clusterize_output_tag_expected.gff3 Tue Apr 30 14:33:21 2013 -0400
b
b'@@ -0,0 +1,1790 @@\n+chr4\tS-MART\ttranscript\t1\t50000\t.\t+\t.\tnbElements=0;newTag=0;ID=region1;Name=region1\n+chr4\tS-MART\ttranscript\t49951\t99950\t.\t+\t.\tnbElements=0;newTag=0;ID=region2;Name=region2\n+chr4\tS-MART\ttranscript\t99901\t149900\t.\t+\t.\tnbElements=0;newTag=0;ID=region3;Name=region3\n+chr4\tS-MART\ttranscript\t149851\t199850\t.\t+\t.\tnbElements=0;newTag=0;ID=region4;Name=region4\n+chr4\tS-MART\ttranscript\t199801\t249800\t.\t+\t.\tnbElements=0;newTag=0;ID=region5;Name=region5\n+chr4\tS-MART\ttranscript\t249751\t299750\t.\t+\t.\tnbElements=0;newTag=0;ID=region6;Name=region6\n+chr4\tS-MART\ttranscript\t299701\t349700\t.\t+\t.\tnbElements=0;newTag=0;ID=region7;Name=region7\n+chr4\tS-MART\ttranscript\t349651\t399650\t.\t+\t.\tnbElements=0;newTag=0;ID=region8;Name=region8\n+chr4\tS-MART\ttranscript\t399601\t449600\t.\t+\t.\tnbElements=0;newTag=0;ID=region9;Name=region9\n+chr4\tS-MART\ttranscript\t449551\t499550\t.\t+\t.\tnbElements=0;newTag=0;ID=region10;Name=region10\n+chr4\tS-MART\ttranscript\t499501\t549500\t.\t+\t.\tnbElements=0;newTag=0;ID=region11;Name=region11\n+chr4\tS-MART\ttranscript\t549451\t599450\t.\t+\t.\tnbElements=0;newTag=0;ID=region12;Name=region12\n+chr4\tS-MART\ttranscript\t599401\t649400\t.\t+\t.\tnbElements=0;newTag=0;ID=region13;Name=region13\n+chr4\tS-MART\ttranscript\t649351\t699350\t.\t+\t.\tnbElements=0;newTag=0;ID=region14;Name=region14\n+chr4\tS-MART\ttranscript\t699301\t749300\t.\t+\t.\tnbElements=0;newTag=0;ID=region15;Name=region15\n+chr4\tS-MART\ttranscript\t749251\t799250\t.\t+\t.\tnbElements=0;newTag=0;ID=region16;Name=region16\n+chr4\tS-MART\ttranscript\t799201\t849200\t.\t+\t.\tnbElements=0;newTag=0;ID=region17;Name=region17\n+chr4\tS-MART\ttranscript\t849151\t899150\t.\t+\t.\tnbElements=0;newTag=0;ID=region18;Name=region18\n+chr4\tS-MART\ttranscript\t899101\t949100\t.\t+\t.\tnbElements=0;newTag=0;ID=region19;Name=region19\n+chr4\tS-MART\ttranscript\t949051\t999050\t.\t+\t.\tnbElements=0;newTag=0;ID=region20;Name=region20\n+chr4\tS-MART\ttranscript\t999001\t1049000\t.\t+\t.\tnbElements=0;newTag=0;ID=region21;Name=region21\n+chr4\tS-MART\ttranscript\t1048951\t1098950\t.\t+\t.\tnbElements=0;newTag=0;ID=region22;Name=region22\n+chr4\tS-MART\ttranscript\t1098901\t1148900\t.\t+\t.\tnbElements=0;newTag=0;ID=region23;Name=region23\n+chr4\tS-MART\ttranscript\t1148851\t1198850\t.\t+\t.\tnbElements=0;newTag=0;ID=region24;Name=region24\n+chr4\tS-MART\ttranscript\t1198801\t1248800\t.\t+\t.\tnbElements=0;newTag=0;ID=region25;Name=region25\n+chr4\tS-MART\ttranscript\t1248751\t1298750\t.\t+\t.\tnbElements=0;newTag=0;ID=region26;Name=region26\n+chr4\tS-MART\ttranscript\t1298701\t1348700\t.\t+\t.\tnbElements=0;newTag=0;ID=region27;Name=region27\n+chr4\tS-MART\ttranscript\t1348651\t1398650\t.\t+\t.\tnbElements=0;newTag=0;ID=region28;Name=region28\n+chr4\tS-MART\ttranscript\t1398601\t1448600\t.\t+\t.\tnbElements=0;newTag=0;ID=region29;Name=region29\n+chr4\tS-MART\ttranscript\t1448551\t1498550\t.\t+\t.\tnbElements=0;newTag=0;ID=region30;Name=region30\n+chr4\tS-MART\ttranscript\t1498501\t1548500\t.\t+\t.\tnbElements=0;newTag=0;ID=region31;Name=region31\n+chr4\tS-MART\ttranscript\t1548451\t1598450\t.\t+\t.\tnbElements=0;newTag=0;ID=region32;Name=region32\n+chr4\tS-MART\ttranscript\t1598401\t1648400\t.\t+\t.\tnbElements=0;newTag=0;ID=region33;Name=region33\n+chr4\tS-MART\ttranscript\t1648351\t1698350\t.\t+\t.\tnbElements=0;newTag=0;ID=region34;Name=region34\n+chr4\tS-MART\ttranscript\t1698301\t1748300\t.\t+\t.\tnbElements=0;newTag=0;ID=region35;Name=region35\n+chr4\tS-MART\ttranscript\t1748251\t1798250\t.\t+\t.\tnbElements=0;newTag=0;ID=region36;Name=region36\n+chr4\tS-MART\ttranscript\t1798201\t1848200\t.\t+\t.\tnbElements=0;newTag=0;ID=region37;Name=region37\n+chr4\tS-MART\ttranscript\t1848151\t1898150\t.\t+\t.\tnbElements=0;newTag=0;ID=region38;Name=region38\n+chr4\tS-MART\ttranscript\t1898101\t1948100\t.\t+\t.\tnbElements=0;newTag=0;ID=region39;Name=region39\n+chr4\tS-MART\ttranscript\t1948051\t1998050\t.\t+\t.\tnbElements=0;newTag=0;ID=region40;Name=region40\n+chr4\tS-MART\ttranscript\t1998001\t2048000\t.\t+\t.\tnbElements=0;newTag=0;ID=region41;Name=region41\n+chr4\tS-MART\ttranscript\t2047951\t2097950\t.\t+\t.\tnbElements=0;newTag=0;ID=region42;Name=region42\n+chr4\tS-MART\ttranscript\t2097901\t2147900\t.\t+\t.\tnbElements=0;newTag=0;ID=region43;Name=region43\n+chr4\t'..b'851\t4195850\t.\t+\t.\tnbElements=0;newTag=0;ID=region1750;Name=region1750\n+chr1\tS-MART\ttranscript\t4195801\t4245800\t.\t+\t.\tnbElements=0;newTag=0;ID=region1751;Name=region1751\n+chr1\tS-MART\ttranscript\t4245751\t4295750\t.\t+\t.\tnbElements=0;newTag=0;ID=region1752;Name=region1752\n+chr1\tS-MART\ttranscript\t4295701\t4345700\t.\t+\t.\tnbElements=0;newTag=0;ID=region1753;Name=region1753\n+chr1\tS-MART\ttranscript\t4345651\t4395650\t.\t+\t.\tnbElements=0;newTag=0;ID=region1754;Name=region1754\n+chr1\tS-MART\ttranscript\t4395601\t4445600\t.\t+\t.\tnbElements=0;newTag=0;ID=region1755;Name=region1755\n+chr1\tS-MART\ttranscript\t4445551\t4495550\t.\t+\t.\tnbElements=0;newTag=0;ID=region1756;Name=region1756\n+chr1\tS-MART\ttranscript\t4495501\t4545500\t.\t+\t.\tnbElements=0;newTag=0;ID=region1757;Name=region1757\n+chr1\tS-MART\ttranscript\t4545451\t4595450\t.\t+\t.\tnbElements=0;newTag=0;ID=region1758;Name=region1758\n+chr1\tS-MART\ttranscript\t4595401\t4645400\t.\t+\t.\tnbElements=0;newTag=0;ID=region1759;Name=region1759\n+chr1\tS-MART\ttranscript\t4645351\t4695350\t.\t+\t.\tnbElements=0;newTag=0;ID=region1760;Name=region1760\n+chr1\tS-MART\ttranscript\t4695301\t4745300\t.\t+\t.\tnbElements=0;newTag=0;ID=region1761;Name=region1761\n+chr1\tS-MART\ttranscript\t4745251\t4795250\t.\t+\t.\tnbElements=0;newTag=0;ID=region1762;Name=region1762\n+chr1\tS-MART\ttranscript\t4795201\t4845200\t.\t+\t.\tnbElements=0;newTag=0;ID=region1763;Name=region1763\n+chr1\tS-MART\ttranscript\t4845151\t4895150\t.\t+\t.\tnbElements=0;newTag=0;ID=region1764;Name=region1764\n+chr1\tS-MART\ttranscript\t4895101\t4945100\t.\t+\t.\tnbElements=0;newTag=0;ID=region1765;Name=region1765\n+chr1\tS-MART\ttranscript\t4945051\t4995050\t.\t+\t.\tnbElements=0;newTag=0;ID=region1766;Name=region1766\n+chr1\tS-MART\ttranscript\t4995001\t5045000\t.\t+\t.\tnbElements=0;newTag=0;ID=region1767;Name=region1767\n+chr1\tS-MART\ttranscript\t5044951\t5094950\t.\t+\t.\tnbElements=0;newTag=0;ID=region1768;Name=region1768\n+chr1\tS-MART\ttranscript\t5094901\t5144900\t.\t+\t.\tnbElements=0;newTag=0;ID=region1769;Name=region1769\n+chr1\tS-MART\ttranscript\t5144851\t5194850\t.\t+\t.\tnbElements=0;newTag=0;ID=region1770;Name=region1770\n+chr1\tS-MART\ttranscript\t5194801\t5244800\t.\t+\t.\tnbElements=0;newTag=0;ID=region1771;Name=region1771\n+chr1\tS-MART\ttranscript\t5244751\t5294750\t.\t+\t.\tnbElements=0;newTag=0;ID=region1772;Name=region1772\n+chr1\tS-MART\ttranscript\t5294701\t5344700\t.\t+\t.\tnbElements=0;newTag=0;ID=region1773;Name=region1773\n+chr1\tS-MART\ttranscript\t5344651\t5394650\t.\t+\t.\tnbElements=0;newTag=0;ID=region1774;Name=region1774\n+chr1\tS-MART\ttranscript\t5394601\t5444600\t.\t+\t.\tnbElements=0;newTag=0;ID=region1775;Name=region1775\n+chr1\tS-MART\ttranscript\t5444551\t5494550\t.\t+\t.\tnbElements=0;newTag=0;ID=region1776;Name=region1776\n+chr1\tS-MART\ttranscript\t5494501\t5544500\t.\t+\t.\tnbElements=0;newTag=0;ID=region1777;Name=region1777\n+chr1\tS-MART\ttranscript\t5544451\t5594450\t.\t+\t.\tnbElements=0;newTag=0;ID=region1778;Name=region1778\n+chr1\tS-MART\ttranscript\t5594401\t5644400\t.\t+\t.\tnbElements=0;newTag=0;ID=region1779;Name=region1779\n+chr1\tS-MART\ttranscript\t5644351\t5694350\t.\t+\t.\tnbElements=0;newTag=0;ID=region1780;Name=region1780\n+chr1\tS-MART\ttranscript\t5694301\t5744300\t.\t+\t.\tnbElements=0;newTag=0;ID=region1781;Name=region1781\n+chr1\tS-MART\ttranscript\t5744251\t5794250\t.\t+\t.\tnbElements=0;newTag=0;ID=region1782;Name=region1782\n+chr1\tS-MART\ttranscript\t5794201\t5844200\t.\t+\t.\tnbElements=0;newTag=0;ID=region1783;Name=region1783\n+chr1\tS-MART\ttranscript\t5844151\t5894150\t.\t+\t.\tnbElements=0;newTag=0;ID=region1784;Name=region1784\n+chr1\tS-MART\ttranscript\t5894101\t5944100\t.\t+\t.\tnbElements=0;newTag=0;ID=region1785;Name=region1785\n+chr1\tS-MART\ttranscript\t5944051\t5994050\t.\t+\t.\tnbElements=0;newTag=0;ID=region1786;Name=region1786\n+chr1\tS-MART\ttranscript\t5994001\t6044000\t.\t+\t.\tnbElements=0;newTag=0;ID=region1787;Name=region1787\n+chr1\tS-MART\ttranscript\t6043951\t6093950\t.\t+\t.\tnbElements=0;newTag=0;ID=region1788;Name=region1788\n+chr1\tS-MART\ttranscript\t6093901\t6143900\t.\t+\t.\tnbElements=0;newTag=0;ID=region1789;Name=region1789\n+chr1\tS-MART\ttranscript\t6143851\t6193850\t.\t+\t.\tnbElements=1.0;newTag=1.000000;ID=region1790;Name=region1790\n'
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/clusterize_strands_expected.gff3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/clusterize_strands_expected.gff3 Tue Apr 30 14:33:21 2013 -0400
b
b'@@ -0,0 +1,3580 @@\n+chr4\tS-MART\ttranscript\t1\t50000\t.\t-\t.\tnbElements=0;ID=region1;Name=region1\n+chr4\tS-MART\ttranscript\t49951\t99950\t.\t-\t.\tnbElements=0;ID=region2;Name=region2\n+chr4\tS-MART\ttranscript\t99901\t149900\t.\t-\t.\tnbElements=0;ID=region3;Name=region3\n+chr4\tS-MART\ttranscript\t149851\t199850\t.\t-\t.\tnbElements=0;ID=region4;Name=region4\n+chr4\tS-MART\ttranscript\t199801\t249800\t.\t-\t.\tnbElements=0;ID=region5;Name=region5\n+chr4\tS-MART\ttranscript\t249751\t299750\t.\t-\t.\tnbElements=0;ID=region6;Name=region6\n+chr4\tS-MART\ttranscript\t299701\t349700\t.\t-\t.\tnbElements=0;ID=region7;Name=region7\n+chr4\tS-MART\ttranscript\t349651\t399650\t.\t-\t.\tnbElements=0;ID=region8;Name=region8\n+chr4\tS-MART\ttranscript\t399601\t449600\t.\t-\t.\tnbElements=0;ID=region9;Name=region9\n+chr4\tS-MART\ttranscript\t449551\t499550\t.\t-\t.\tnbElements=0;ID=region10;Name=region10\n+chr4\tS-MART\ttranscript\t499501\t549500\t.\t-\t.\tnbElements=0;ID=region11;Name=region11\n+chr4\tS-MART\ttranscript\t549451\t599450\t.\t-\t.\tnbElements=0;ID=region12;Name=region12\n+chr4\tS-MART\ttranscript\t599401\t649400\t.\t-\t.\tnbElements=0;ID=region13;Name=region13\n+chr4\tS-MART\ttranscript\t649351\t699350\t.\t-\t.\tnbElements=0;ID=region14;Name=region14\n+chr4\tS-MART\ttranscript\t699301\t749300\t.\t-\t.\tnbElements=0;ID=region15;Name=region15\n+chr4\tS-MART\ttranscript\t749251\t799250\t.\t-\t.\tnbElements=0;ID=region16;Name=region16\n+chr4\tS-MART\ttranscript\t799201\t849200\t.\t-\t.\tnbElements=0;ID=region17;Name=region17\n+chr4\tS-MART\ttranscript\t849151\t899150\t.\t-\t.\tnbElements=0;ID=region18;Name=region18\n+chr4\tS-MART\ttranscript\t899101\t949100\t.\t-\t.\tnbElements=0;ID=region19;Name=region19\n+chr4\tS-MART\ttranscript\t949051\t999050\t.\t-\t.\tnbElements=0;ID=region20;Name=region20\n+chr4\tS-MART\ttranscript\t999001\t1049000\t.\t-\t.\tnbElements=0;ID=region21;Name=region21\n+chr4\tS-MART\ttranscript\t1048951\t1098950\t.\t-\t.\tnbElements=0;ID=region22;Name=region22\n+chr4\tS-MART\ttranscript\t1098901\t1148900\t.\t-\t.\tnbElements=0;ID=region23;Name=region23\n+chr4\tS-MART\ttranscript\t1148851\t1198850\t.\t-\t.\tnbElements=0;ID=region24;Name=region24\n+chr4\tS-MART\ttranscript\t1198801\t1248800\t.\t-\t.\tnbElements=0;ID=region25;Name=region25\n+chr4\tS-MART\ttranscript\t1248751\t1298750\t.\t-\t.\tnbElements=0;ID=region26;Name=region26\n+chr4\tS-MART\ttranscript\t1298701\t1348700\t.\t-\t.\tnbElements=0;ID=region27;Name=region27\n+chr4\tS-MART\ttranscript\t1348651\t1398650\t.\t-\t.\tnbElements=0;ID=region28;Name=region28\n+chr4\tS-MART\ttranscript\t1398601\t1448600\t.\t-\t.\tnbElements=0;ID=region29;Name=region29\n+chr4\tS-MART\ttranscript\t1448551\t1498550\t.\t-\t.\tnbElements=0;ID=region30;Name=region30\n+chr4\tS-MART\ttranscript\t1498501\t1548500\t.\t-\t.\tnbElements=0;ID=region31;Name=region31\n+chr4\tS-MART\ttranscript\t1548451\t1598450\t.\t-\t.\tnbElements=0;ID=region32;Name=region32\n+chr4\tS-MART\ttranscript\t1598401\t1648400\t.\t-\t.\tnbElements=0;ID=region33;Name=region33\n+chr4\tS-MART\ttranscript\t1648351\t1698350\t.\t-\t.\tnbElements=0;ID=region34;Name=region34\n+chr4\tS-MART\ttranscript\t1698301\t1748300\t.\t-\t.\tnbElements=0;ID=region35;Name=region35\n+chr4\tS-MART\ttranscript\t1748251\t1798250\t.\t-\t.\tnbElements=0;ID=region36;Name=region36\n+chr4\tS-MART\ttranscript\t1798201\t1848200\t.\t-\t.\tnbElements=0;ID=region37;Name=region37\n+chr4\tS-MART\ttranscript\t1848151\t1898150\t.\t-\t.\tnbElements=0;ID=region38;Name=region38\n+chr4\tS-MART\ttranscript\t1898101\t1948100\t.\t-\t.\tnbElements=0;ID=region39;Name=region39\n+chr4\tS-MART\ttranscript\t1948051\t1998050\t.\t-\t.\tnbElements=0;ID=region40;Name=region40\n+chr4\tS-MART\ttranscript\t1998001\t2048000\t.\t-\t.\tnbElements=0;ID=region41;Name=region41\n+chr4\tS-MART\ttranscript\t2047951\t2097950\t.\t-\t.\tnbElements=0;ID=region42;Name=region42\n+chr4\tS-MART\ttranscript\t2097901\t2147900\t.\t-\t.\tnbElements=0;ID=region43;Name=region43\n+chr4\tS-MART\ttranscript\t2147851\t2197850\t.\t-\t.\tnbElements=0;ID=region44;Name=region44\n+chr4\tS-MART\ttranscript\t2197801\t2247800\t.\t-\t.\tnbElements=0;ID=region45;Name=region45\n+chr4\tS-MART\ttranscript\t2247751\t2297750\t.\t-\t.\tnbElements=0;ID=region46;Name=region46\n+chr4\tS-MART\ttranscript\t2297701\t2347700\t.\t-\t.\tnbElements=0;ID=region47;Name=region47\n+chr4\tS-MART\ttranscript\t2347651\t2397650\t.\t-\t.\tnbEleme'..b'MART\ttranscript\t3946051\t3996050\t.\t+\t.\tnbElements=0;ID=region3536;Name=region3536\n+chr1\tS-MART\ttranscript\t3996001\t4046000\t.\t+\t.\tnbElements=0;ID=region3537;Name=region3537\n+chr1\tS-MART\ttranscript\t4045951\t4095950\t.\t+\t.\tnbElements=0;ID=region3538;Name=region3538\n+chr1\tS-MART\ttranscript\t4095901\t4145900\t.\t+\t.\tnbElements=0;ID=region3539;Name=region3539\n+chr1\tS-MART\ttranscript\t4145851\t4195850\t.\t+\t.\tnbElements=0;ID=region3540;Name=region3540\n+chr1\tS-MART\ttranscript\t4195801\t4245800\t.\t+\t.\tnbElements=0;ID=region3541;Name=region3541\n+chr1\tS-MART\ttranscript\t4245751\t4295750\t.\t+\t.\tnbElements=0;ID=region3542;Name=region3542\n+chr1\tS-MART\ttranscript\t4295701\t4345700\t.\t+\t.\tnbElements=0;ID=region3543;Name=region3543\n+chr1\tS-MART\ttranscript\t4345651\t4395650\t.\t+\t.\tnbElements=0;ID=region3544;Name=region3544\n+chr1\tS-MART\ttranscript\t4395601\t4445600\t.\t+\t.\tnbElements=0;ID=region3545;Name=region3545\n+chr1\tS-MART\ttranscript\t4445551\t4495550\t.\t+\t.\tnbElements=0;ID=region3546;Name=region3546\n+chr1\tS-MART\ttranscript\t4495501\t4545500\t.\t+\t.\tnbElements=0;ID=region3547;Name=region3547\n+chr1\tS-MART\ttranscript\t4545451\t4595450\t.\t+\t.\tnbElements=0;ID=region3548;Name=region3548\n+chr1\tS-MART\ttranscript\t4595401\t4645400\t.\t+\t.\tnbElements=0;ID=region3549;Name=region3549\n+chr1\tS-MART\ttranscript\t4645351\t4695350\t.\t+\t.\tnbElements=0;ID=region3550;Name=region3550\n+chr1\tS-MART\ttranscript\t4695301\t4745300\t.\t+\t.\tnbElements=0;ID=region3551;Name=region3551\n+chr1\tS-MART\ttranscript\t4745251\t4795250\t.\t+\t.\tnbElements=0;ID=region3552;Name=region3552\n+chr1\tS-MART\ttranscript\t4795201\t4845200\t.\t+\t.\tnbElements=0;ID=region3553;Name=region3553\n+chr1\tS-MART\ttranscript\t4845151\t4895150\t.\t+\t.\tnbElements=0;ID=region3554;Name=region3554\n+chr1\tS-MART\ttranscript\t4895101\t4945100\t.\t+\t.\tnbElements=0;ID=region3555;Name=region3555\n+chr1\tS-MART\ttranscript\t4945051\t4995050\t.\t+\t.\tnbElements=0;ID=region3556;Name=region3556\n+chr1\tS-MART\ttranscript\t4995001\t5045000\t.\t+\t.\tnbElements=0;ID=region3557;Name=region3557\n+chr1\tS-MART\ttranscript\t5044951\t5094950\t.\t+\t.\tnbElements=0;ID=region3558;Name=region3558\n+chr1\tS-MART\ttranscript\t5094901\t5144900\t.\t+\t.\tnbElements=0;ID=region3559;Name=region3559\n+chr1\tS-MART\ttranscript\t5144851\t5194850\t.\t+\t.\tnbElements=0;ID=region3560;Name=region3560\n+chr1\tS-MART\ttranscript\t5194801\t5244800\t.\t+\t.\tnbElements=0;ID=region3561;Name=region3561\n+chr1\tS-MART\ttranscript\t5244751\t5294750\t.\t+\t.\tnbElements=0;ID=region3562;Name=region3562\n+chr1\tS-MART\ttranscript\t5294701\t5344700\t.\t+\t.\tnbElements=0;ID=region3563;Name=region3563\n+chr1\tS-MART\ttranscript\t5344651\t5394650\t.\t+\t.\tnbElements=0;ID=region3564;Name=region3564\n+chr1\tS-MART\ttranscript\t5394601\t5444600\t.\t+\t.\tnbElements=0;ID=region3565;Name=region3565\n+chr1\tS-MART\ttranscript\t5444551\t5494550\t.\t+\t.\tnbElements=0;ID=region3566;Name=region3566\n+chr1\tS-MART\ttranscript\t5494501\t5544500\t.\t+\t.\tnbElements=0;ID=region3567;Name=region3567\n+chr1\tS-MART\ttranscript\t5544451\t5594450\t.\t+\t.\tnbElements=0;ID=region3568;Name=region3568\n+chr1\tS-MART\ttranscript\t5594401\t5644400\t.\t+\t.\tnbElements=0;ID=region3569;Name=region3569\n+chr1\tS-MART\ttranscript\t5644351\t5694350\t.\t+\t.\tnbElements=0;ID=region3570;Name=region3570\n+chr1\tS-MART\ttranscript\t5694301\t5744300\t.\t+\t.\tnbElements=0;ID=region3571;Name=region3571\n+chr1\tS-MART\ttranscript\t5744251\t5794250\t.\t+\t.\tnbElements=0;ID=region3572;Name=region3572\n+chr1\tS-MART\ttranscript\t5794201\t5844200\t.\t+\t.\tnbElements=0;ID=region3573;Name=region3573\n+chr1\tS-MART\ttranscript\t5844151\t5894150\t.\t+\t.\tnbElements=0;ID=region3574;Name=region3574\n+chr1\tS-MART\ttranscript\t5894101\t5944100\t.\t+\t.\tnbElements=0;ID=region3575;Name=region3575\n+chr1\tS-MART\ttranscript\t5944051\t5994050\t.\t+\t.\tnbElements=0;ID=region3576;Name=region3576\n+chr1\tS-MART\ttranscript\t5994001\t6044000\t.\t+\t.\tnbElements=0;ID=region3577;Name=region3577\n+chr1\tS-MART\ttranscript\t6043951\t6093950\t.\t+\t.\tnbElements=0;ID=region3578;Name=region3578\n+chr1\tS-MART\ttranscript\t6093901\t6143900\t.\t+\t.\tnbElements=0;ID=region3579;Name=region3579\n+chr1\tS-MART\ttranscript\t6143851\t6193850\t.\t+\t.\tnbElements=1.0;ID=region3580;Name=region3580\n'
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/expOutputGff.gff3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/expOutputGff.gff3 Tue Apr 30 14:33:21 2013 -0400
b
b'@@ -0,0 +1,2292 @@\n+C02HBa0185P07_LR40\tS-MART\ttranscript\t3889\t3924\t.\t-\t.\tquality=60;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0.000000;ID=HWI-EAS337_3:7:1:415:1217;identity=100.000000;Name=HWI-EAS337_3:7:1:415:1217\n+C02HBa0185P07_LR40\tS-MART\ttranscript\t3830\t3865\t.\t+\t.\tquality=60;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0.000000;ID=HWI-EAS337_3:7:1:415:1217;identity=100.000000;Name=HWI-EAS337_3:7:1:415:1217\n+C11SLe0053P22_LR298\tS-MART\ttranscript\t2130\t2165\t.\t-\t.\tquality=60;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0.000000;ID=HWI-EAS337_3:7:1:1178:755;identity=100.000000;Name=HWI-EAS337_3:7:1:1178:755\n+C11SLe0053P22_LR298\tS-MART\ttranscript\t1980\t2015\t.\t+\t.\tquality=60;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0.000000;ID=HWI-EAS337_3:7:1:1178:755;identity=100.000000;Name=HWI-EAS337_3:7:1:1178:755\n+C06HBa0144J05_LR355\tS-MART\ttranscript\t1\t36\t.\t+\t.\tquality=60;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0.000000;ID=HWI-EAS337_3:7:1:277:1259;identity=100.000000;Name=HWI-EAS337_3:7:1:277:1259\n+C06HBa0144J05_LR355\tS-MART\ttranscript\t101\t136\t.\t-\t.\tquality=60;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0.000000;ID=HWI-EAS337_3:7:1:277:1259;identity=100.000000;Name=HWI-EAS337_3:7:1:277:1259\n+C08HBa0165B06_LR218\tS-MART\ttranscript\t3619\t3654\t.\t-\t.\tquality=60;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0.000000;ID=HWI-EAS337_3:7:1:447:1231;identity=100.000000;Name=HWI-EAS337_3:7:1:447:1231\n+C08HBa0165B06_LR218\tS-MART\ttranscript\t3575\t3610\t.\t+\t.\tquality=60;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0.000000;ID=HWI-EAS337_3:7:1:447:1231;identity=100.000000;Name=HWI-EAS337_3:7:1:447:1231\n+C02HBa0329G05_LR52\tS-MART\ttranscript\t4746\t4781\t.\t-\t.\tquality=60;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0.000000;ID=HWI-EAS337_3:7:1:1154:1517;identity=100.000000;Name=HWI-EAS337_3:7:1:1154:1517\n+C02HBa0329G05_LR52\tS-MART\ttranscript\t4680\t4715\t.\t+\t.\tquality=60;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0.000000;ID=HWI-EAS337_3:7:1:1154:1517;identity=100.000000;Name=HWI-EAS337_3:7:1:1154:1517\n+C04HBa80D3_LR100\tS-MART\ttranscript\t423\t458\t.\t-\t.\tquality=60;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0.000000;ID=HWI-EAS337_3:7:1:164:1869;identity=100.000000;Name=HWI-EAS337_3:7:1:164:1869\n+C04HBa80D3_LR100\tS-MART\ttranscript\t397\t432\t.\t+\t.\tquality=60;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0.000000;ID=HWI-EAS337_3:7:1:164:1869;identity=100.000000;Name=HWI-EAS337_3:7:1:164:1869\n+C01HBa0216G16_LR11\tS-MART\ttranscript\t648\t683\t.\t-\t.\tquality=60;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0.000000;ID=HWI-EAS337_3:7:1:415:1194;identity=100.000000;Name=HWI-EAS337_3:7:1:415:1194\n+C01HBa0216G16_LR11\tS-MART\ttranscript\t511\t546\t.\t+\t.\tquality=60;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=1.000000;ID=HWI-EAS337_3:7:1:415:1194;identity=97.222222;Name=HWI-EAS337_3:7:1:415:1194\n+C05HBa0145P19_LR136\tS-MART\ttranscript\t3686\t3721\t.\t-\t.\tquality=60;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=2.000000;ID=HWI-EAS337_3:7:1:645:1892;identity=94.444444;Name=HWI-EAS337_3:7:1:645:1892\n+C05HBa0145P19_LR136\tS-MART\ttranscript\t3573\t3608\t.\t+\t.\tquality=60;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0.000000;ID=HWI-EAS337_3:7:1:645:1892;identity=100.000000;Name=HWI-EAS337_3:7:1:645:1892\n+C08HBa0012O06_LR211\tS-MART\ttranscript\t1768\t1803\t.\t-\t.\tquality=60;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=1.000000;ID=HWI-EAS337_3:7:1:33:1446;identity=97.222222;Name=HWI-EAS337_3:7:1:33:1446\n+C08HBa0012O06_LR211\tS-MART\ttranscript\t1649\t1684\t.\t+\t.\tquality=60;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0.000000;ID=HWI-EAS337_3:7:1:33:1446;identity=100.000000;Name=HWI-EAS337_3:7:1:33:1446\n+C09HBa0194K19_LR362\tS-MART\ttranscript\t9168\t9203\t.\t+\t.\tquality=60;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0.000000;ID=HWI-EAS337_3:7:1:1194:1427;identity=100.000000;Name=HWI-EAS337_3:7:1:1194:1427'..b':1:1147:62\n+C02HBa0204D01_LR334\tS-MART\ttranscript\t6704\t6739\t.\t-\t.\tquality=60;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0.000000;ID=HWI-EAS337_3:7:1:1147:62;identity=100.000000;Name=HWI-EAS337_3:7:1:1147:62\n+C02SLe0018B07_LR335\tS-MART\ttranscript\t8378\t8413\t.\t-\t.\tquality=0;bestRegion=(self);nbGaps=0;nbOccurrences=2;nbMismatches=0.000000;ID=HWI-EAS337_3:7:1:787:1759;identity=100.000000;Name=HWI-EAS337_3:7:1:787:1759\n+C02SLe0018B07_LR335\tS-MART\ttranscript\t8208\t8243\t.\t+\t.\tquality=0;bestRegion=(self);nbGaps=0;nbOccurrences=2;nbMismatches=0.000000;ID=HWI-EAS337_3:7:1:787:1759;identity=100.000000;Name=HWI-EAS337_3:7:1:787:1759\n+C09SLm0143I09_LR365\tS-MART\ttranscript\t1546\t1581\t.\t-\t.\tquality=0;bestRegion=(self);nbGaps=0;nbOccurrences=2;nbMismatches=0.000000;ID=HWI-EAS337_3:7:1:425:1939;identity=100.000000;Name=HWI-EAS337_3:7:1:425:1939\n+C09SLm0143I09_LR365\tS-MART\ttranscript\t1490\t1525\t.\t+\t.\tquality=0;bestRegion=(self);nbGaps=0;nbOccurrences=2;nbMismatches=0.000000;ID=HWI-EAS337_3:7:1:425:1939;identity=100.000000;Name=HWI-EAS337_3:7:1:425:1939\n+C02SLe0018B07_LR335\tS-MART\ttranscript\t9178\t9213\t.\t-\t.\tquality=0;bestRegion=(self);nbGaps=0;nbOccurrences=2;nbMismatches=1.000000;ID=HWI-EAS337_3:7:1:187:1132;identity=97.222222;Name=HWI-EAS337_3:7:1:187:1132\n+C02SLe0018B07_LR335\tS-MART\ttranscript\t9065\t9100\t.\t+\t.\tquality=0;bestRegion=(self);nbGaps=0;nbOccurrences=2;nbMismatches=0.000000;ID=HWI-EAS337_3:7:1:187:1132;identity=100.000000;Name=HWI-EAS337_3:7:1:187:1132\n+C02HBa0072A04_LR26\tS-MART\ttranscript\t2868\t2903\t.\t+\t.\tquality=60;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0.000000;ID=HWI-EAS337_3:7:1:1739:1840;identity=100.000000;Name=HWI-EAS337_3:7:1:1739:1840\n+C02HBa0072A04_LR26\tS-MART\ttranscript\t3189\t3224\t.\t-\t.\tquality=60;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=1.000000;ID=HWI-EAS337_3:7:1:1739:1840;identity=97.222222;Name=HWI-EAS337_3:7:1:1739:1840\n+C07SLe0111B06_LR194\tS-MART\ttranscript\t8673\t8708\t.\t+\t.\tquality=60;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0.000000;ID=HWI-EAS337_3:7:1:1505:1876;identity=100.000000;Name=HWI-EAS337_3:7:1:1505:1876\n+C07SLe0111B06_LR194\tS-MART\ttranscript\t8677\t8712\t.\t-\t.\tquality=60;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0.000000;ID=HWI-EAS337_3:7:1:1505:1876;identity=100.000000;Name=HWI-EAS337_3:7:1:1505:1876\n+C09SLm0143I09_LR365\tS-MART\ttranscript\t6957\t6992\t.\t+\t.\tquality=0;bestRegion=(self);nbGaps=0;nbOccurrences=2;nbMismatches=0.000000;ID=HWI-EAS337_3:7:1:447:192;identity=100.000000;Name=HWI-EAS337_3:7:1:447:192\n+C09SLm0143I09_LR365\tS-MART\ttranscript\t7039\t7074\t.\t-\t.\tquality=0;bestRegion=(self);nbGaps=0;nbOccurrences=2;nbMismatches=0.000000;ID=HWI-EAS337_3:7:1:447:192;identity=100.000000;Name=HWI-EAS337_3:7:1:447:192\n+C09SLm0037I08_LR367\tS-MART\ttranscript\t1298\t1333\t.\t-\t.\tquality=60;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0.000000;ID=HWI-EAS337_3:7:1:21:2019;identity=100.000000;Name=HWI-EAS337_3:7:1:21:2019\n+C09SLm0037I08_LR367\tS-MART\ttranscript\t955\t990\t.\t+\t.\tquality=60;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0.000000;ID=HWI-EAS337_3:7:1:21:2019;identity=100.000000;Name=HWI-EAS337_3:7:1:21:2019\n+C04HBa8K13_LR338\tS-MART\ttranscript\t2175\t2210\t.\t+\t.\tquality=60;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=1.000000;ID=HWI-EAS337_3:7:1:1593:652;identity=97.222222;Name=HWI-EAS337_3:7:1:1593:652\n+C04HBa8K13_LR338\tS-MART\ttranscript\t2226\t2261\t.\t-\t.\tquality=60;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0.000000;ID=HWI-EAS337_3:7:1:1593:652;identity=100.000000;Name=HWI-EAS337_3:7:1:1593:652\n+C12HBa326K10_LR306\tS-MART\ttranscript\t8100\t8135\t.\t+\t.\tquality=60;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0.000000;ID=HWI-EAS337_3:7:1:1254:1660;identity=100.000000;Name=HWI-EAS337_3:7:1:1254:1660\n+C12HBa326K10_LR306\tS-MART\ttranscript\t8243\t8278\t.\t-\t.\tquality=60;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0.000000;ID=HWI-EAS337_3:7:1:1254:1660;identity=100.000000;Name=HWI-EAS337_3:7:1:1254:1660\n'
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/expRef.fasta
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/expRef.fasta Tue Apr 30 14:33:21 2013 -0400
b
b'@@ -0,0 +1,33148 @@\n+>C10HBa0111D09_LR276\n+GAACAAACAACCCCTTTTTGGAGGTGTTGGCGCGTCGTGCAGCTTACACTCAAAAGTTAA\n+AAAGTTGCCTTGCGATGCGGTCATGTTACAAACCTCTCTGCCTTAAATTAAATTCCATAA\n+CCAAGATTTGGAGGTGCCTCAACGATGCGCAGCCATGTCCCATATTTGGTCGCCTCGTTT\n+AAAAGTCAAGTTAGACTTAATTAAGAGGTCCAACTAGTGTAGGGGCGTTTTGAGTACTTG\n+TGGGATTTATTATAAACGGTTTTGAGTCACTTTAAACCCACTTCACCAATTAAAACAAAA\n+TCCTCAAGTTAAAACTCAATATCTTTCCATTCTCTCTCTCTAAAACCTTCATTGGAGATA\n+TTTGAAGCTCCACGGAAGAAGGTTAATTTTCCAAGGTTTCAATGAAAATTTCGTGTATAG\n+GTCTTCAATAAGGTATGGTGATTTCATCCTTGATTCTTCTATCATTCAAGGATCCAATTC\n+AAAGGTTTTTCAAAAGATCTCAAAAATCCTATTTCGAATTCTAAGTATGGGTTCTTCCAT\n+TTAAAGGTTTAAATGGATGAATTATGATGTTTTCAATGTTAGTTGATGTTTTTATGATAA\n+AAAAACTCCATGAACCCATGAGCATCCTAATTCTCTAATTTTGTCTTGTAAATTGAGTTT\n+GATAATTGTGATTGGTTATGGATGGAATTGTATTTAGATTGCTCTATATTGTTGATTCTT\n+ATTGTTAACCTATCTCTATATATGTAGAATTGAGATTGTAAGGATGAGTTAGTAATCTTG\n+GCTTTATGGGCTTTCGAATCCGGGTTTACCCCCTGGATGTAACCGGCATCCTCGCCCTTT\n+TTCAAGGACTAAGACCAACCTTTTAGTCTCATGTCATTACATTCATAGGTTGACAAATGC\n+GGAAAAATTTAAAACTTTCATTATCACTACTTGGAGGTTTACATAGACCTCTACATACAC\n+ATAAGATATATTCATATAGAGTATACATAGACCCTTCGTATAGGAAGGTTACATAGCCAT\n+CTACTTTTATTACACATACATATATATAAAATATAAAAATAGTCTAACGATTGTCTCATC\n+TCATACCCTCTAAACGATTATCACAATATGGGCATAACCCTTACATCAATCAAACAAGAG\n+CACATATAGGTCATACAAAAGTATAGTACTCAATTAAAAAGGAAAGAAATGAAAGAGTCT\n+TTAAGCTCATAACAAGTCCATAAGCTAGATTATGGCATTGACCTCAAAAGTTGAGGACCT\n+TATGTGCGTACACAAGCAAAACATGCTAAAAAGGGACTTTTTAGTCAAAACATGCCCATT\n+TATCCCTTTAAGAACCTACTACAAAGCCAACAAGTCATACCAACCAACCAAACATGCTTA\n+CTATCTCAACAAGTAATACTTATCCCAACATACTTGAAACCATGATTTACTACAACCCTA\n+TCACCAAGGAAAAATATCACAAGAATGAATAAGAGTCAATCATATCATGATAGAGAGACA\n+ACTATTCATGAATCCTTATCAACTCAACAAGTGCAATAACCAAGCAAAGCCTCATAACCT\n+TACTCAATCAAGTATCCTCAAAAAGAAACCATGACCAATGTCCAACTTTACCTAACATAG\n+CATTTAGGTTTACATTTTATCATATATTAACATTATGACCCAAGGCATACTCATTAGTAA\n+ACTAATTAATATATAATATCAACAATGTGCCATAGTAATCATATATACATAATATATCAT\n+CATAACATAAACATATATAAAAACCTCCTTCTAAGACTCCCCTCAAGGCTAACTAGTGAA\n+ATGTTTAGGTAGAGCCCCATACCCCTACCTAGATTAAGCTAGACCCCTTAGGTTATCCAA\n+GTTAGAGTTCAAGTCCTTTAATTCGTTTTACCTTTTGGGAACATCTTGCCCTAACCGACA\n+TAGACCACATGAGCTAGTGTGGGATACGGTTCCAAAAAACCCTACACAGAAAGAAGGCGG\n+ACTACTTGCCAAAGTATTACCAAAACATGAAACATAGCAACTACGTTGATCCACTAGCAA\n+GTATTTCTATAGGGGCAACATAGTTCAAGAACTCTGAGATATACTTGAGACCCTCTTTAT\n+GCGCCATGCATTATAGTCTCCAACCTCAAGAGTAATGTAGTGTTCCTACCTTCCCCATGT\n+GAGAAAGGACACTCCTCAATCTAGTTCACTCGGTGCTAAGCTAGAGACCCTTTTTGAAAT\n+GTCTTTAAGCCTTTAATTATCAATCATAGCTTAGCTTAGGTCATAGGGTATATCTCTTGT\n+ATAATCATCATCATCAATAGCTCAATAATAATTGTATGAGTATAAGTCCTTTCATCACAA\n+TTCATATAAGTGAGGTTAACATGTTAGCATTTCATTGCATATCAAGAAACATTGATGATT\n+CTTACCATCCTTGTATCACATACACCTTAATCAATCTCACAACATAGTCAGGACATATCA\n+ATTCAACATCATACCACCCTATAATCCTAATATAAGGCATACTCCAATATAACTTCACGT\n+CTTAACAAAAATTTATCACAATTGGAATTAAAGATAGAGATTCTAAGACTTAACAAGTCT\n+TCCTTGTAGTTCATCATCAAGGTCTTACCATCAACCCATAACTCAACCAAGTTTGGGGAG\n+TAACATCATCACACAATGATAATCAATAGGATAACAAGGCTAATTTCATCTCTATAACAC\n+AATTCAACACTAGATCATAACTTAAGACAAGATACATAGGCTAATTTCACACTATAATTC\n+ATAACCTAAATCACATCTCAAGAAATAGCATTATAGTCCTATAATTCATATTAATTTGTT\n+CATAATAACACAATAGGATAGTAATTTAATCAATAACCAAGTCAATTGAATGATCACAAT\n+ACAATATACATCAATATCACAAGCTAGGGTTAGGGATGAAGGATCATATTCTTCAATTTA\n+GACCAAACCACTAACAATTACCATAATAAAGTTTAAATTCATGTAAATGTATTCAATATA\n+ACCTAAATAAATCATTAACAACTCAATCCATAACTTCAATTTCGTAATTGAATGAAACCC\n+ATAAGAAAATTCACCTTTTGAAATCCATTTTAAAGAAACCCTTTGAGGAAAGAGCCTCAA\n+AGGTGAATTAGATCCCATATATTAATGTTTGATGATGAATTCGCCCCTTTCCATCCCCCA\n+AACCCTTATCCTTGCTAGTTTTTAATGGTGAGTTCAAGTAGAGAGAGAAATAAGAGAGAA\n+GGAAGAGAGTTTTTGTCTTAGAGTTCTAATTAATTTAATTGGGGTTGGGGATTTTATATG\n+CGTTTTAAGTTAGTTAATTAGTCACCCCTCAATACCTAACTAACCCCTGAACCACCTAAT\n+TAATTAAATGAATCAATATAAAAACATACAGGAAATTTGACCTTCACAGACGAGACCCCG\n+AACGACGGGCCATCTGTGAGTCAACGGTCCCTCACCCCTCCGTCCTGCACTCTATCGATC\n+AGTTCATAGACTGTGCAGGCAGATCAATTCTTCAACTTGTCTAAGTATGGGATGACGGTG\n+GTATCGACTCCCCGTCAGTCCACACACGGACCGTAGGTGGTCCCATCGATGCGCATTGTC\n+TAGTCCTTGTTTGTTCAAACACAAGGGCCTCAAGGGCCCTTGGTTGGTGCTTGGGGAGTC\n+GTACCCATACGTTTCAATCATGAAACAACTCAAAAACCTATAATCTATCCTTCCACCAAT\n+TTTTGTACCTTTCCGACTCTTAAAAGGTAGTCAAATAGGCTAAGGCACGCTAACACCCCT\n+TTGAACCAACTTCCTGGACGTTCTTATACATTTTGGTTCTTAAACTTCCT'..b'CAATATTCCATATTGATCGCCAGCTTCCATTGCTACAAAAGA\n+TGCATATAGTATCAGCTTCTTTAGACAAAGCTATAAGAAGTATCAGTTGACCCAATTGAC\n+AAGTCACACGTGCTATAACAAGATATCACTTGACGCAAGTGACAAGTGTGAAGCTGACAG\n+GAAAATAGGCAATAGAATCCCTCATTCTTTGTTTATATATAGCAACCTATTACTTCAGTA\n+TCTGTTTACAAGTTCTGCACCACGATAAGTATAACTATTTAGAAATTATGAAGGGAGTGT\n+TGCACAAATTAGTCAGGGTTAGAATTTTAATAATCCAACACACCAGAAATTCTGAGGACT\n+ATGCCTAGCAGCTGAAATCACCACAACAAGTTCAAAGTCAAATCCTGGCTCTTCCACATC\n+CTTTCCCTTCGTACAGTAAACTGAACAGATGCCTTTTGGATATGTTTCACTCACATACTT\n+CATAATTTCAGCATCCATGGCAGACCTACACAAGAATTACCATGAATAGGAGAATTTGGC\n+AAGCAACGGTAATCACAAAGTCAGTACTCATAAACCAAGCCTCTGATGAGAAGAACTAAC\n+CATGTTAAGAAGGGAACTACTCACATAAAACAAAAACATGATTTTTATAATCTGCATGCC\n+AAGCATTAGGAACTATTGAAGAATTCACTGCGATCTCAGAATATAATCCTTTCATACTCT\n+TAATGCCTCCCAATTATACCAAATTTAGGTGTCTTACTACCATTTTAGTATCTGACATTG\n+ATGTCATTACCCATTAATTTGGAGACACTGGTTCCTCACCGATAAAGATGAACAAAAAGG\n+TAAACCAGTGTATTATGAATCAGATCTCTTTATGGAATAAAAACACACATGAATCATGAT\n+GTAGGATCTTATTAACACTTGAGGACTGAGGCGAAGATTACTAAGAATATCCCGAAAGAT\n+AAGACATAGAATGTAATATAGAAGGACAGAGAACAAATGATACTGATTAAGAAGAAGAGC\n+ATCTATATAGGAGAGATTAGCCTAAACTATTTATTTTCAGACTGATTTCGGTGAGCGCAG\n+ACCAAAACATGCAGCTTTTTTTTCAATTAAGCCGGAAAGACAATTTCCACAAGAAATGCA\n+ACTGTTCTAGCATATCTTAAACTATAATCTGAGTGCTGTCTGAGAACTGAGGTTGAATTT\n+GCAAGTCTTGTTGAGCATGGTTAAAAAATAAGTCCAATTAGGCAAAATAATTGTGAATGT\n+CATAATATAGAAGAACTTCAACATCTCAATGGGAAAAACAGAAAGTGAGTAGCTAAAAAG\n+GGGAGCAATACCAAAGATATTAAACTGAGAAATATATCTCATACCCTACAGATGCATACC\n+TATACTCTTCCACGAAAGCAGATGGAAGTTCTTCATCTCTTGCTGGCCTAACGTCTTTAC\n+AAACCTAGAATGCAGACATACCATGAGCTTACAAGAAGGGAGCATAAATTATTACACGGC\n+AACAATAACTAGGAAAAAAAGAGAGAGAGGAAATACATTTAATTTCACAGCCCTTGAATT\n+ATGAATAAAACCATGCACTTGTTATATTAAGCAGAGACTACTTCCACTTTTCCAATCTAT\n+TTACATCTACTTCATCACATTAACAAGAATAGAAAAGAAATGCATGTTATGTGACATTCA\n+GCACTGTAGACTAATGAGGATTAATTTACAACCATGGACCAGCTATAGCAGAAGAGACCT\n+TATTTTACTTTTCCAAAATTGGTATTTACTCCATCACCATTAACAAGAATAAAAAATGCA\n+TCTTATGTGAAGTTCATAACTATTGAATAATGAGGTTAATCAAGAGCTTGCTATATCAAA\n+GCACATTTTTCAAGTTTACAATTTCTTCATTCTTGGTATCCACTTCTATCATGAAAACCA\n+ACCTAACAGTTAACACAATTCACTCTGGTGTTTTGTTCTTTATCCCTAATGCCTGAGTGT\n+GTTTAACTAATCAAGTTCCAATCAGCCAGAAGATGTCTAAACATACTAAACTATAGATAA\n+ACAACATGAGCATAAAACCAGTTTATGTAGAGATTTTTAATTGCACAGCATAAAAAGGAG\n+TACCCCCGGCACTATATGTGCTTCTCTTTCTTTTTTTCTTACTTCGTCCTGATCTTTTTA\n+CTTTTCTTTTCCTTTCTTTCAGAATAAGCACATTTTTGGATATAGTCCCACCATCTCTAC\n+CAGGTTTATGTCTGTCCATATTATTGCTTTTTTGAATTACCTTCTAAACAAAATACTCAT\n+CCTTACAAACCTGCTTCCTCTTCTATGGATCCCACCACTCCATGCCCCGAAAAAAAAGAA\n+AGAAAAAGATAAGTTTTTCATAGTCACTTTAGATTATCATTTATTAAATTCTGTCGGCTC\n+AACTGATAGGAACAGTGAAATGGACTTTTCAATCATAAAAAGATAATAGAAGTTATTAAA\n+TGATTCCCTTCAAGATTATGAGCTTTTAAACTTACATATCATGCAACTATTGGGGAATTA\n+AGGGACTGGGGATTTGATGATAAATTCCAGCACCATTTTTGGTGCTTTTGTGTTTTTGCA\n+AGGTAGTTTGTTAGTGGCACATGGAAGGAGGTGCCTCATCCAATGAAATTATTAATCTTA\n+TCAACAAGAAGAAAGTCAAAACACCAAACTGTAAAAAATCCAAAAATAGCATTTTGCATT\n+GTGTACTAACTGAACAACGTACTTGCTTGACATGGTCAACTCTGGCAACCTGCGCAGTCC\n+GGGGATCAAGATACTCATCCTTATGAACCTCACTAAATGATGTAATCAGTACCTACAAAT\n+TAGTGAACAGCAACTTTACACAGCTAGATCATGAAAAATAGCTTCCAAGTGTCCATTACT\n+ACATAAATGAAAAGCATTATACTTTCTTTTTAGAAGAGGGGAACAAAATCTTAGACTTCA\n+TAAGGAACAGTTCTCCGGAAAGTTTTCTTTTCTATATTGAAGAAGTAATCATTTATTGAA\n+GTGGTGGAAATTCCCTAAGCTTTAAACAGATGTAGAGAACTTGTCCATAAACATGGTGCT\n+CAACAAACAACACCCAACTCATTCATATATAGTAGCGCCAGCATCCAAGTACCATGAAGT\n+ATATCTCTATCCTAAAAGCTTTACTTGAAGACTTATTAGATTAATCTTACTTATTTCTCA\n+TGCAACTTTTTTTTTGAAAAGTTTCTCAAGCATAACTTTTATCCTTTGTTTTCATTCAGT\n+CTTTGAGCTCTAAAGGATGCCTAGAGAGGTCATGAACCAAGTAAGGAAATTGCAACATCA\n+TATTGCTTCCAATTTACCTCATTTTTTATCTTCAACTACCGAAAACTACCAAATCTGAAA\n+TTATCAACTAAGGAAAATTACAACATCAGTACAATAAGTATTGCTTACAGTTCACTTAAT\n+ATTTCAATCTTCGACTACGGAAAACTGTCAAATCTGAAATTATCAATTTGAATGACACGA\n+TTAGTCTAACTTACATTTTCAAAGATCTAACTTACCCAATGAAAAAAGAAAACAAGAGAG\n+AGACTTACATCGCCACTTCTGTTTGGGAATTCGAGACAAATCAAGTGAGATTTGTTGTAC\n+GAAGGAAATGACTCCTCGGCCGCTTTCTTATATATATTTTCGTCCTTTAAAATAGCTCTA\n+ACATCTGCAAATCCAACCAAATGACGCTCAAAACCAAAAATGTAAAAAATAAACTGCCGA\n+TCGCAAATGAACACCAATGCGGTCACATTTTCAAGCACGAAAAAAGCTTCAAAATACAAA\n+AAACTTTAGCGCAGAAAATAAACGAAAGAGAAGAAGAAGAAGACCTTTGGCGACGTACTG\n+AATTTCGCCGGCTGGGGCATTAAGAAGGAACCATTTGGCAATCTCAAT\n'
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/inputCR.gff3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/inputCR.gff3 Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,6 @@
+chr1 test match 6155418 6155441 24 + . Name=test1/1;occurrence=1;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0;ID=test1/1;identity=100
+chr2 test match 26303950 26303981 32 + . Name=test2/1;occurrence=1;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=3;nbMismatches=2;ID=test2/1-1;identity=93
+chr3 test match 28320540 28320574 35 + . Name=test2/1;occurrence=2;bestRegion=chr2:26303950-26303981;nbGaps=0;nbOccurrences=3;nbMismatches=2;ID=test2/1-2;identity=94
+chr4 test match 28565007 28565041 35 + . Name=test2/1;occurrence=3;rank=3;bestRegion=chr2:26303950-26303981;nbGaps=0;nbOccurrences=3;nbMismatches=4;ID=test2/1-3;identity=88
+chr1 test match 6155418 6155441 24 + . Name=test3/1;occurrence=2;rank=2;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=1;ID=test3/1;identity=50
+chr1 test match 6155418 6155441 24 - . Name=test3/1;occurrence=2;rank=2;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=1;ID=test3/1;identity=50
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/inputFileTest1.bed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/inputFileTest1.bed Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,5 @@
+track name=reads description="Reads" useScore=0 visibility=full offset=0
+arm_X 1000 2000 test1.1 1000 + 1000 2000 0 1 1000, 0,
+arm_X 1000 2000 test1.2 1000 - 1000 2000 0 1 1000, 0,
+arm_X 100 200 test1.3 1000 + 100 200 0 1 100, 0,
+arm_X 100 3200 test1.4 1000 + 100 3200 0 1 3100, 0,
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/inputFileTest2.bed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/inputFileTest2.bed Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,2 @@
+track name=reads454Relaxed description="reads454Relaxed" useScore=0 visibility=full offset=0
+arm_X 1000 2000 test2.1 1000 + 1000 2000 0 1 1000, 0,
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/inputMSWC1.gff3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/inputMSWC1.gff3 Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,5 @@
+chr1 test match 6155418 6155441 24 + . Name=test1/1;occurrence=1;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0;ID=test1/1;identity=100
+chr2 test match 26303950 26303981 32 + . Name=test2/1;occurrence=1;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=3;nbMismatches=2;ID=test2/1-1;identity=93
+chr3 test match 28320540 28320574 35 + . Name=test2/1;occurrence=2;bestRegion=chr2:26303950-26303981;nbGaps=0;nbOccurrences=3;nbMismatches=2;ID=test2/1-2;identity=94
+chr4 test match 28565007 28565041 35 + . Name=test2/1;occurrence=3;rank=3;bestRegion=chr2:26303950-26303981;nbGaps=0;nbOccurrences=3;nbMismatches=4;ID=test2/1-3;identity=88
+chr6 test match 48565007 48565041 35 + . Name=test2/1;occurrence=3;rank=3;bestRegion=chr2:26303950-26303981;nbGaps=0;nbOccurrences=3;nbMismatches=3;ID=test2/1-4;identity=80
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/inputMSWC2.gff3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/inputMSWC2.gff3 Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,5 @@
+chr1 test match 6155418 6155441 24 + . Name=test1/1;occurrence=1;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0;ID=test1/1;identity=100
+chr2 test match 26303990 26304021 32 + . Name=test2/1;occurrence=1;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=3;nbMismatches=2;ID=test2/1-1;identity=93
+chr3 test match 28320540 28320574 35 + . Name=test2/1;occurrence=2;bestRegion=chr2:26303950-26303981;nbGaps=0;nbOccurrences=3;nbMismatches=2;ID=test2/1-2;identity=94
+chr4 test match 28565017 28565051 35 + . Name=test2/1;occurrence=3;rank=3;bestRegion=chr2:26303950-26303981;nbGaps=0;nbOccurrences=3;nbMismatches=4;ID=test2/1-3;identity=88
+chr5 test match 30000000 30000050 50 + . Name=test3/1;occurrence=3;rank=3;bestRegion=chr2:26303950-26303981;nbGaps=0;nbOccurrences=3;nbMismatches=1;ID=test3/1-4;identity=50
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/inputMTC.sam
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/inputMTC.sam Tue Apr 30 14:33:21 2013 -0400
b
b'@@ -0,0 +1,2698 @@\n+@SQ\tSN:C10HBa0111D09_LR276\tLN:9300\n+@SQ\tSN:C11HBa0029C01_LR281\tLN:10969\n+@SQ\tSN:C11HBa0034I10_LR282\tLN:9056\n+@SQ\tSN:C11HBa0054I23_LR283\tLN:10301\n+@SQ\tSN:C11HBa0062I24_LR284\tLN:10050\n+@SQ\tSN:C11HBa0064J13_LR285\tLN:9385\n+@SQ\tSN:C11HBa0072I13_LR286\tLN:9556\n+@SQ\tSN:C11HBa0089M02_LR287\tLN:9244\n+@SQ\tSN:C11HBa0096D22_LR288\tLN:9184\n+@SQ\tSN:C11HBa0107K14_LR289\tLN:9115\n+@SQ\tSN:C11HBa0139J14_LR291\tLN:10002\n+@SQ\tSN:C11HBa0143O06_LR374\tLN:10785\n+@SQ\tSN:C11HBa0161D01_LR292\tLN:9057\n+@SQ\tSN:C11HBa0168B23_LR293\tLN:9826\n+@SQ\tSN:C11HBa0190J03_LR294\tLN:10992\n+@SQ\tSN:C11HBa0249E07_LR279\tLN:10008\n+@SQ\tSN:C11HBa0303G16_LR296\tLN:9430\n+@SQ\tSN:C11HBa0323E19_LR297\tLN:9657\n+@SQ\tSN:C11SLe0053P22_LR298\tLN:9827\n+@SQ\tSN:C11SLm0052K14_LR376\tLN:10013\n+@SQ\tSN:C12HBa115G22_LR301\tLN:10021\n+@SQ\tSN:C12HBa120K4_LR313\tLN:10271\n+@SQ\tSN:C12HBa144B17_LR302\tLN:9247\n+@SQ\tSN:C12HBa149G24_LR381\tLN:9271\n+@SQ\tSN:C12HBa165B12_LR303\tLN:9257\n+@SQ\tSN:C12HBa183M6_LR379\tLN:9473\n+@SQ\tSN:C12HBa221M9_LR377\tLN:10755\n+@SQ\tSN:C12HBa224N6_LR382\tLN:9130\n+@SQ\tSN:C12HBa26C13_LR299\tLN:9139\n+@SQ\tSN:C12HBa326K10_LR306\tLN:10414\n+@SQ\tSN:C12HBa90D9_LR311\tLN:9638\n+@SQ\tSN:C12HBa93P12_LR312\tLN:9510\n+@SQ\tSN:C12SLe124D18_LR385\tLN:10545\n+@SQ\tSN:C12SLeRI72J6_LR378\tLN:9337\n+@SQ\tSN:C12SLm103K8_LR380\tLN:10118\n+@SQ\tSN:C01HBa0003D15_LR7\tLN:10776\n+@SQ\tSN:C01HBa0163B20_LR10\tLN:9321\n+@SQ\tSN:C01HBa0216G16_LR11\tLN:10332\n+@SQ\tSN:C01HBa0256E08_LR13\tLN:9024\n+@SQ\tSN:C01HBa0329A12_LR14\tLN:9536\n+@SQ\tSN:BAC19_LR16\tLN:9760\n+@SQ\tSN:C02HBa0008G02_LR67\tLN:9205\n+@SQ\tSN:C02HBa0011O23_LR68\tLN:9399\n+@SQ\tSN:C02HBa0016A12_LR19\tLN:9822\n+@SQ\tSN:C02HBa0027B01_LR21\tLN:9222\n+@SQ\tSN:C02HBa0030A21_LR22\tLN:9147\n+@SQ\tSN:C02HBa0046M08_LR23\tLN:10763\n+@SQ\tSN:C02HBa0072A04_LR26\tLN:9766\n+@SQ\tSN:C02HBa0075D08_LR28\tLN:10744\n+@SQ\tSN:C02HBa0124N09_LR31\tLN:9335\n+@SQ\tSN:C02HBa0155D20_LR36\tLN:10743\n+@SQ\tSN:C02HBa0155E05_LR37\tLN:10417\n+@SQ\tSN:C02HBa0164H08_LR38\tLN:10279\n+@SQ\tSN:C02HBa0167J21_LR39\tLN:9925\n+@SQ\tSN:C02HBa0185P07_LR40\tLN:9818\n+@SQ\tSN:C02HBa0190N21_LR41\tLN:10835\n+@SQ\tSN:C02HBa0190P16_LR331\tLN:10808\n+@SQ\tSN:C02HBa0194L19_LR42\tLN:10280\n+@SQ\tSN:C02HBa0204A09_LR332\tLN:10029\n+@SQ\tSN:C02HBa0204D01_LR334\tLN:9746\n+@SQ\tSN:C02HBa0214B22_LR325\tLN:9581\n+@SQ\tSN:C02HBa0215M12_LR319\tLN:9918\n+@SQ\tSN:C02HBa0228I09_LR329\tLN:10933\n+@SQ\tSN:C02HBa0236E02_LR326\tLN:9822\n+@SQ\tSN:C02HBa0284G15_LR47\tLN:9034\n+@SQ\tSN:C02HBa0291P19_LR48\tLN:9826\n+@SQ\tSN:C02HBa0329G05_LR52\tLN:9637\n+@SQ\tSN:C02SLe0010H16_LR53\tLN:10744\n+@SQ\tSN:C02SLe0018B07_LR335\tLN:9222\n+@SQ\tSN:C02SLe0034H10_LR327\tLN:10833\n+@SQ\tSN:C02SLe0127J16_LR59\tLN:10965\n+@SQ\tSN:C02SLe0132D01_LR60\tLN:10524\n+@SQ\tSN:C02SLm0057H03_LR336\tLN:9514\n+@SQ\tSN:C02SLm0057H03_LR64\tLN:9170\n+@SQ\tSN:C02SLm0057H03_LR65\tLN:9532\n+@SQ\tSN:C03HBa0012D06_LR72\tLN:10645\n+@SQ\tSN:C03HBa0030O03_LR74\tLN:10569\n+@SQ\tSN:C03HBa0034B23_LR76\tLN:10005\n+@SQ\tSN:C03HBa0040F22_LR77\tLN:10227\n+@SQ\tSN:C03HBa0054O21_LR78\tLN:9044\n+@SQ\tSN:C03HBa0076J13_LR79\tLN:10097\n+@SQ\tSN:C03HBa0233O20_LR82\tLN:9753\n+@SQ\tSN:C03HBa0295I12_LR83\tLN:10258\n+@SQ\tSN:C03HBa0318C22_LR84\tLN:10004\n+@SQ\tSN:C03HBa0323D22_LR85\tLN:9222\n+@SQ\tSN:C04HBa127N12_LR346\tLN:10533\n+@SQ\tSN:C04HBa132O11_LR104\tLN:10306\n+@SQ\tSN:C04HBa164O3_LR344\tLN:9345\n+@SQ\tSN:C04HBa190C13_LR106\tLN:10719\n+@SQ\tSN:C04HBa198I15_LR107\tLN:10673\n+@SQ\tSN:C04HBa219H8_LR109\tLN:10174\n+@SQ\tSN:C04HBa239P14_LR111\tLN:10483\n+@SQ\tSN:C04HBa255I2_LR112\tLN:10650\n+@SQ\tSN:C04HBa27G19_LR337\tLN:9788\n+@SQ\tSN:C04HBa2G1_LR120\tLN:9322\n+@SQ\tSN:C04HBa331L22_LR115\tLN:10697\n+@SQ\tSN:C04HBa35C16_LR339\tLN:9494\n+@SQ\tSN:C04HBa36C23_LR91\tLN:10103\n+@SQ\tSN:C04HBa50I18_LR341\tLN:10825\n+@SQ\tSN:C04HBa58E11_LR93\tLN:9927\n+@SQ\tSN:C04HBa66O12_LR94\tLN:9355\n+@SQ\tSN:C04HBa68N5_LR343\tLN:9886\n+@SQ\tSN:C04HBa6E18_LR87\tLN:9265\n+@SQ\tSN:C04HBa6O16_LR123\tLN:10386\n+@SQ\tSN:C04HBa78E4_LR98\tLN:9994\n+@SQ\tSN:C04HBa78J4_LR99\tLN:9165\n+@SQ\tSN:C04HBa80D3_LR100\tLN:9781\n+@SQ\tSN:C04HBa8K13_LR338\tLN:9345\n+@SQ\tSN:C04HBa96I8_LR101\tLN:9693\n+@SQ\tSN:C04SLm14G22_LR116\tLN:10306\n+@SQ\tSN:C04SLm39E17_LR117\tLN:9105\n+@SQ\tSN:C05HBa0003C20_LR126\tLN:9460\n+@SQ\tSN:C05HBa0006N20_LR128\tLN:101'..b'018B07_LR335,+8208,36M,0;\n+HWI-EAS337_3:7:1:425:1939\t83\tC09SLm0143I09_LR365\t1546\t0\t36M\t=\t1490\t-92\tAAGTTTAGCCACATAGACCCAGACACCACAATTAGC\tUUUUUUWVVVWVVWWWVVVVWWWVWWWWVWWVWWWW\tXT:A:R\tNM:i:0\tSM:i:0\tAM:i:0\tX0:i:2\tX1:i:0\tXM:i:0\tXO:i:0\tXG:i:0\tMD:Z:36\tXA:Z:C09SLe0076N09_LR363,-1546,36M,0;\n+HWI-EAS337_3:7:1:425:1939\t163\tC09SLm0143I09_LR365\t1490\t0\t36M\t=\t1546\t92\tTAACTTTTCTATCTGGTTTCTATGTTTTCCAGCTCT\tWVWWWWWWWWWWWWVVVWWWWWWUVWVWVVTQTTTS\tXT:A:R\tNM:i:0\tSM:i:0\tAM:i:0\tX0:i:2\tX1:i:0\tXM:i:0\tXO:i:0\tXG:i:0\tMD:Z:36\tXA:Z:C09SLm0143I09_LR365,+1490,36M,0;\n+HWI-EAS337_3:7:1:187:1132\t83\tC02SLe0018B07_LR335\t9178\t0\t36M\t=\t9065\t-149\tGAAGAGGATATGAGCCAAGCCCCTTGCCTCTCCCAC\tUUUUUUVVWWWVWVTWWWWWWWWWWWWWWWWWWWVW\tXT:A:R\tNM:i:1\tSM:i:0\tAM:i:0\tX0:i:2\tX1:i:0\tXM:i:1\tXO:i:0\tXG:i:0\tMD:Z:14A21\tXA:Z:C02SLe0018B07_LR335,-9178,36M,1;\n+HWI-EAS337_3:7:1:187:1132\t163\tC02SLe0018B07_LR335\t9065\t0\t36M\t=\t9178\t149\tGAATAAAAAAAGACAACAACATATCAAGATACAAAG\tWWWVWVWWWWWVWWVWWWVWWVWWWVWWVWTTTTTR\tXT:A:R\tNM:i:0\tSM:i:0\tAM:i:0\tX0:i:2\tX1:i:0\tXM:i:0\tXO:i:0\tXG:i:0\tMD:Z:36\tXA:Z:C02SLe0018B07_LR335,+9065,36M,0;\n+HWI-EAS337_3:7:1:1739:1840\t99\tC02HBa0072A04_LR26\t2868\t60\t36M\t=\t3189\t357\tGGAGGGGTGAAATCGTTTCTGAAAAATAATGAAATG\tWWVWWWWWWWWWWWWWWVTWWWVVVWWWWWUUUUUU\tXT:A:U\tNM:i:0\tSM:i:37\tAM:i:37\tX0:i:1\tX1:i:0\tXM:i:0\tXO:i:0\tXG:i:0\tMD:Z:36\n+HWI-EAS337_3:7:1:1739:1840\t147\tC02HBa0072A04_LR26\t3189\t60\t36M\t=\t2868\t-357\tCTTTTGACCCAAAAGTTTGACGGGAAGGACAGTTTT\tRTTTTTVVVVWWCVWVVWWWVWWWWWWWWWWWWVWW\tXT:A:U\tNM:i:1\tSM:i:37\tAM:i:37\tX0:i:1\tX1:i:0\tXM:i:1\tXO:i:0\tXG:i:0\tMD:Z:12T23\n+HWI-EAS337_3:7:1:1505:1876\t99\tC07SLe0111B06_LR194\t8673\t60\t36M\t=\t8677\t40\tGAAAGATCAAGTGTTGTCAAGTTCACTAGTTTAGAG\tWWWWWWWWWWWWWWWWWWWWVWWVWWWVVVUUUSUR\tXT:A:U\tNM:i:0\tSM:i:37\tAM:i:37\tX0:i:1\tX1:i:0\tXM:i:0\tXO:i:0\tXG:i:0\tMD:Z:36\n+HWI-EAS337_3:7:1:1505:1876\t147\tC07SLe0111B06_LR194\t8677\t60\t36M\t=\t8673\t-40\tGATCAAGTGTTGTCAAGTTCACTAGTTTAGAGAATG\tSTTTTTVVVWVVWVWWWWWVWWWWWWWWWWWWWWWW\tXT:A:U\tNM:i:0\tSM:i:37\tAM:i:37\tX0:i:1\tX1:i:0\tXM:i:0\tXO:i:0\tXG:i:0\tMD:Z:36\n+HWI-EAS337_3:7:1:447:192\t99\tC09SLm0143I09_LR365\t6957\t0\t36M\t=\t7039\t118\tGACTATGCCTAGCAGCTGAAATCACCACAACAAGTT\tWWWWWWWWWWWWWWWTWWWVVWWVWWWWWVUUUUUU\tXT:A:R\tNM:i:0\tSM:i:0\tAM:i:0\tX0:i:2\tX1:i:0\tXM:i:0\tXO:i:0\tXG:i:0\tMD:Z:36\tXA:Z:C09SLm0143I09_LR365,+6957,36M,0;\n+HWI-EAS337_3:7:1:447:192\t147\tC09SLm0143I09_LR365\t7039\t0\t36M\t=\t6957\t-118\tAACTGAACAGATGCCTTTTGGATATGTTTCACTCAC\tSTTTTTWVVWVWWVVVVVWWWVVWVWWWWWVWWWVW\tXT:A:R\tNM:i:0\tSM:i:0\tAM:i:0\tX0:i:2\tX1:i:0\tXM:i:0\tXO:i:0\tXG:i:0\tMD:Z:36\tXA:Z:C09SLe0076N09_LR363,-7039,36M,0;\n+HWI-EAS337_3:7:1:21:2019\t83\tC09SLm0037I08_LR367\t1298\t60\t36M\t=\t955\t-379\tGGGCTGGAAGACAGGTTATCATCTTTTACCTCATAC\tUUURUUWWWVVQWWWWWWWWWWWWWWWVVWWVVWWV\tXT:A:U\tNM:i:0\tSM:i:37\tAM:i:37\tX0:i:1\tX1:i:0\tXM:i:0\tXO:i:0\tXG:i:0\tMD:Z:36\n+HWI-EAS337_3:7:1:21:2019\t163\tC09SLm0037I08_LR367\t955\t60\t36M\t=\t1298\t379\tATTATGTTTACGGGACAATTGTATGTTCCATTATCT\tVWVWWWWWWWWWWWWWWWWWVWVWUWVVWWTTTTTR\tXT:A:U\tNM:i:0\tSM:i:37\tAM:i:37\tX0:i:1\tX1:i:0\tXM:i:0\tXO:i:0\tXG:i:0\tMD:Z:36\n+HWI-EAS337_3:7:1:1593:652\t99\tC04HBa8K13_LR338\t2175\t60\t36M\t=\t2226\t87\tGTGATGAGTAAAACATCATCATATGAACTTGAAGAG\tWWWVWVWWVWVWWVWWWWWWVVWWVWWVWWUUUSUU\tXT:A:U\tNM:i:1\tSM:i:37\tAM:i:37\tX0:i:1\tX1:i:0\tXM:i:1\tXO:i:0\tXG:i:0\tMD:Z:28A7\n+HWI-EAS337_3:7:1:1593:652\t147\tC04HBa8K13_LR338\t2226\t60\t36M\t=\t2175\t-87\tTATGCTTAAAACAAGAGGAATTATACAGCTAAATAA\tSTTTKTWWWWWVWWWWVWVVVWVWWWWWWWVWVVWW\tXT:A:U\tNM:i:0\tSM:i:37\tAM:i:37\tX0:i:1\tX1:i:0\tXM:i:0\tXO:i:0\tXG:i:0\tMD:Z:36\n+HWI-EAS337_3:7:1:1254:1660\t99\tC12HBa326K10_LR306\t8100\t60\t36M\t=\t8243\t179\tGAAGTTTGTAATTCCTTTTAGGATTGTGGTTAACAT\tWWWVVWWWWWWWWWWWVWVWVUWWWTWVQWUUUUMU\tXT:A:U\tNM:i:0\tSM:i:37\tAM:i:37\tX0:i:1\tX1:i:0\tXM:i:0\tXO:i:0\tXG:i:0\tMD:Z:36\n+HWI-EAS337_3:7:1:1254:1660\t147\tC12HBa326K10_LR306\t8243\t60\t36M\t=\t8100\t-179\tTGTACATTTTTCCTACCCATATGTGATGCCATTACT\tSTTTTTWVVVVWWVVWWVWWWVWVVWVWVWVWWWVW\tXT:A:U\tNM:i:0\tSM:i:37\tAM:i:37\tX0:i:1\tX1:i:0\tXM:i:0\tXO:i:0\tXG:i:0\tMD:Z:36\n+HWI-EAS337_3:7:1:291:629\t77\t*\t0\t0\t*\t*\t0\t0\tGTAGAGGAGGTAGGCTTGGTGGTCCCTCTATGGTAA\tWWWWWWWWWWVVVWVWVVWTWWKOVVTRVSUSSMFR\n+HWI-EAS337_3:7:1:291:629\t141\t*\t0\t0\t*\t*\t0\t0\tATGAAGGGTTTTTTTGTTCTCTAATGTCATCTTATT\tWWWWVVWWWWWWWWWVWWVWVWVVVQWVVWTTTTTS\n'
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/inputMapping.map
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/inputMapping.map Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,21 @@
+BlastclustCluster1Mb1 dmel 44957 60589
+BlastclustCluster2Mb1 dmel 441296 453986
+BlastclustCluster3Mb1 dmel 1263264 1272001
+BlastclustCluster4Mb1 dmel 691910 700435
+BlastclustCluster5Mb1 dmel 4887 13246
+BlastclustCluster6Mb1 dmel 340294 348412
+BlastclustCluster7Mb1 dmel 802363 809343
+BlastclustCluster8Mb1 dmel 303029 309770
+BlastclustCluster9Mb1 dmel 34275 40713
+BlastclustCluster10Mb1 dmel 976199 981423
+BlastclustCluster11Mb1 dmel 231806 236301
+BlastclustCluster12Mb1 dmel 323712 327988
+BlastclustCluster13Mb1 dmel 1011279 1014955
+BlastclustCluster14Mb1 dmel 474293 477597
+BlastclustCluster15Mb1 dmel 930649 933730
+BlastclustCluster16Mb1 dmel 1241523 1244351
+BlastclustCluster17Mb1 dmel 532049 534729
+BlastclustCluster18Mb1 dmel 335473 337381
+BlastclustCluster19Mb1 dmel 686181 687792
+BlastclustCluster20Mb1 dmel 1239136 1240579
+BlastclustCluster21Mb1 dmel 1261233 1262370
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/mapperAnalyzerExpected.gff3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/mapperAnalyzerExpected.gff3 Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,4 @@
+chr1 test match 6155418 6155441 24 + . Name=test1/1;occurrence=1;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0;ID=test1/1;identity=100
+chr2 test match 26303950 26303981 32 + . Name=test2/1;occurrence=1;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=3;nbMismatches=2;ID=test2/1-1;identity=93
+chr3 test match 28320540 28320574 35 + . Name=test2/1;occurrence=2;bestRegion=chr2:26303950-26303981;nbGaps=0;nbOccurrences=3;nbMismatches=2;ID=test2/1-2;identity=94
+chr4 test match 28565007 28565041 35 + . Name=test2/1;occurrence=3;rank=3;bestRegion=chr2:26303950-26303981;nbGaps=0;nbOccurrences=3;nbMismatches=4;ID=test2/1-3;identity=88
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/mapperAnalyzerMappings.axt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/mapperAnalyzerMappings.axt Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,12 @@
+1 chr1 6155418 6155441 test1/1 1 24 + 66
+GTAACAGATTCAGAACATTAGCAG
+GTAACAGATTCAGAACATTAGCAG
+2 chr2 26303950 26303981 test2/1 3 36 + 0
+AT-ATT-AAAAAAAAAAAAAAAAAAAAAAAAAAA
+ATGATTGAAAAAAAAAAAAAAAAAAAAAAAAAAA
+3 chr3 28320540 28320574 test2/1 3 36 + 0
+ATGTTTGACAAAAAAAAAAAAAAAAAAAAAAAAAA
+ATGATTGA-AAAAAAAAAAAAAAAAAAAAAAAAAA
+4 chr4 28565007 28565041 test2/1 1 36 + 0
+ATAAGATT-AAAAAAAAAAAAAAAAAAAAGGAAAAA
+ATATGATTGAAAAAAAAAAAAAAAAAAAAAAAAAAA
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/mapperAnalyzerOutput.gff3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/mapperAnalyzerOutput.gff3 Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,4 @@
+chr1 test match 6155418 6155441 24 + . Name=test1/1;occurrence=1;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0;ID=test1/1;identity=100
+chr2 test match 26303950 26303981 32 + . Name=test2/1;occurrence=1;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=3;nbMismatches=2;ID=test2/1-1;identity=93
+chr3 test match 28320540 28320574 35 + . Name=test2/1;occurrence=2;bestRegion=chr2:26303950-26303981;nbGaps=0;nbOccurrences=3;nbMismatches=2;ID=test2/1-2;identity=94
+chr4 test match 28565007 28565041 35 + . Name=test2/1;occurrence=3;rank=3;bestRegion=chr2:26303950-26303981;nbGaps=0;nbOccurrences=3;nbMismatches=4;ID=test2/1-3;identity=88
\ No newline at end of file
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/mapperAnalyzerSequences.mfq
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/mapperAnalyzerSequences.mfq Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,12 @@
+@test1/1
+GTAACAGATTCAGAACATTAGCAG
++test1/1
+bb`b_bbbbb_bbbbababbbbb^
+@test2/1
+ATATGATTGAAAAAAAAAAAAAAAAAAAAAAAAAAA
++test2/1
+BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
+@test3/1
+TTTGAATAAAACGGGAGGATATA
++test3/1
+X^_Y`_____\R^BBBBBBBBBB
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/sorted_file_oneline.gff3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/sorted_file_oneline.gff3 Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,1 @@
+chr1 test test2.1 0 1000 1001 + . ID=test2.1;Name=test2.1
\ No newline at end of file
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/sorted_query.gff3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/sorted_query.gff3 Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,6 @@
+chr1 query test1.1 25 150 126 + . ID=query_1;Name=test1.1
+chr1 query test1.2 70 850 781 + . ID=query_2;Name=test1.2
+chr1 query test1.3 550 850 201 + . ID=query_3;Name=test1.3
+chr1 query test1.4 925 1025 101 + . ID=query_4;Name=test1.4
+chr1 query test1.5 1201 1210 10 + . ID=query_5;Name=test1.5
+chr1 query test1.6 1500 1600 101 + . ID=query_6;Name=test1.6
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/sorted_query_wig.wig
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/sorted_query_wig.wig Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,1040 @@
+track type=wiggle_0 name="SMART"
+variableStep chrom=chr1
+25 1
+26 1
+27 1
+28 1
+29 1
+30 1
+31 1
+32 1
+33 1
+34 1
+35 1
+36 1
+37 1
+38 1
+39 1
+40 1
+41 1
+42 1
+43 1
+44 1
+45 1
+46 1
+47 1
+48 1
+49 1
+50 1
+51 1
+52 1
+53 1
+54 1
+55 1
+56 1
+57 1
+58 1
+59 1
+60 1
+61 1
+62 1
+63 1
+64 1
+65 1
+66 1
+67 1
+68 1
+69 1
+70 2
+71 2
+72 2
+73 2
+74 2
+75 2
+76 2
+77 2
+78 2
+79 2
+80 2
+81 2
+82 2
+83 2
+84 2
+85 2
+86 2
+87 2
+88 2
+89 2
+90 2
+91 2
+92 2
+93 2
+94 2
+95 2
+96 2
+97 2
+98 2
+99 2
+100 2
+101 2
+102 2
+103 2
+104 2
+105 2
+106 2
+107 2
+108 2
+109 2
+110 2
+111 2
+112 2
+113 2
+114 2
+115 2
+116 2
+117 2
+118 2
+119 2
+120 2
+121 2
+122 2
+123 2
+124 2
+125 2
+126 2
+127 2
+128 2
+129 2
+130 2
+131 2
+132 2
+133 2
+134 2
+135 2
+136 2
+137 2
+138 2
+139 2
+140 2
+141 2
+142 2
+143 2
+144 2
+145 2
+146 2
+147 2
+148 2
+149 2
+150 2
+151 1
+152 1
+153 1
+154 1
+155 1
+156 1
+157 1
+158 1
+159 1
+160 1
+161 1
+162 1
+163 1
+164 1
+165 1
+166 1
+167 1
+168 1
+169 1
+170 1
+171 1
+172 1
+173 1
+174 1
+175 1
+176 1
+177 1
+178 1
+179 1
+180 1
+181 1
+182 1
+183 1
+184 1
+185 1
+186 1
+187 1
+188 1
+189 1
+190 1
+191 1
+192 1
+193 1
+194 1
+195 1
+196 1
+197 1
+198 1
+199 1
+200 1
+201 1
+202 1
+203 1
+204 1
+205 1
+206 1
+207 1
+208 1
+209 1
+210 1
+211 1
+212 1
+213 1
+214 1
+215 1
+216 1
+217 1
+218 1
+219 1
+220 1
+221 1
+222 1
+223 1
+224 1
+225 1
+226 1
+227 1
+228 1
+229 1
+230 1
+231 1
+232 1
+233 1
+234 1
+235 1
+236 1
+237 1
+238 1
+239 1
+240 1
+241 1
+242 1
+243 1
+244 1
+245 1
+246 1
+247 1
+248 1
+249 1
+250 1
+251 1
+252 1
+253 1
+254 1
+255 1
+256 1
+257 1
+258 1
+259 1
+260 1
+261 1
+262 1
+263 1
+264 1
+265 1
+266 1
+267 1
+268 1
+269 1
+270 1
+271 1
+272 1
+273 1
+274 1
+275 1
+276 1
+277 1
+278 1
+279 1
+280 1
+281 1
+282 1
+283 1
+284 1
+285 1
+286 1
+287 1
+288 1
+289 1
+290 1
+291 1
+292 1
+293 1
+294 1
+295 1
+296 1
+297 1
+298 1
+299 1
+300 1
+301 1
+302 1
+303 1
+304 1
+305 1
+306 1
+307 1
+308 1
+309 1
+310 1
+311 1
+312 1
+313 1
+314 1
+315 1
+316 1
+317 1
+318 1
+319 1
+320 1
+321 1
+322 1
+323 1
+324 1
+325 1
+326 1
+327 1
+328 1
+329 1
+330 1
+331 1
+332 1
+333 1
+334 1
+335 1
+336 1
+337 1
+338 1
+339 1
+340 1
+341 1
+342 1
+343 1
+344 1
+345 1
+346 1
+347 1
+348 1
+349 1
+350 1
+351 1
+352 1
+353 1
+354 1
+355 1
+356 1
+357 1
+358 1
+359 1
+360 1
+361 1
+362 1
+363 1
+364 1
+365 1
+366 1
+367 1
+368 1
+369 1
+370 1
+371 1
+372 1
+373 1
+374 1
+375 1
+376 1
+377 1
+378 1
+379 1
+380 1
+381 1
+382 1
+383 1
+384 1
+385 1
+386 1
+387 1
+388 1
+389 1
+390 1
+391 1
+392 1
+393 1
+394 1
+395 1
+396 1
+397 1
+398 1
+399 1
+400 1
+401 1
+402 1
+403 1
+404 1
+405 1
+406 1
+407 1
+408 1
+409 1
+410 1
+411 1
+412 1
+413 1
+414 1
+415 1
+416 1
+417 1
+418 1
+419 1
+420 1
+421 1
+422 1
+423 1
+424 1
+425 1
+426 1
+427 1
+428 1
+429 1
+430 1
+431 1
+432 1
+433 1
+434 1
+435 1
+436 1
+437 1
+438 1
+439 1
+440 1
+441 1
+442 1
+443 1
+444 1
+445 1
+446 1
+447 1
+448 1
+449 1
+450 1
+451 1
+452 1
+453 1
+454 1
+455 1
+456 1
+457 1
+458 1
+459 1
+460 1
+461 1
+462 1
+463 1
+464 1
+465 1
+466 1
+467 1
+468 1
+469 1
+470 1
+471 1
+472 1
+473 1
+474 1
+475 1
+476 1
+477 1
+478 1
+479 1
+480 1
+481 1
+482 1
+483 1
+484 1
+485 1
+486 1
+487 1
+488 1
+489 1
+490 1
+491 1
+492 1
+493 1
+494 1
+495 1
+496 1
+497 1
+498 1
+499 1
+500 1
+501 1
+502 1
+503 1
+504 1
+505 1
+506 1
+507 1
+508 1
+509 1
+510 1
+511 1
+512 1
+513 1
+514 1
+515 1
+516 1
+517 1
+518 1
+519 1
+520 1
+521 1
+522 1
+523 1
+524 1
+525 1
+526 1
+527 1
+528 1
+529 1
+530 1
+531 1
+532 1
+533 1
+534 1
+535 1
+536 1
+537 1
+538 1
+539 1
+540 1
+541 1
+542 1
+543 1
+544 1
+545 1
+546 1
+547 1
+548 1
+549 1
+550 2
+551 2
+552 2
+553 2
+554 2
+555 2
+556 2
+557 2
+558 2
+559 2
+560 2
+561 2
+562 2
+563 2
+564 2
+565 2
+566 2
+567 2
+568 2
+569 2
+570 2
+571 2
+572 2
+573 2
+574 2
+575 2
+576 2
+577 2
+578 2
+579 2
+580 2
+581 2
+582 2
+583 2
+584 2
+585 2
+586 2
+587 2
+588 2
+589 2
+590 2
+591 2
+592 2
+593 2
+594 2
+595 2
+596 2
+597 2
+598 2
+599 2
+600 2
+601 2
+602 2
+603 2
+604 2
+605 2
+606 2
+607 2
+608 2
+609 2
+610 2
+611 2
+612 2
+613 2
+614 2
+615 2
+616 2
+617 2
+618 2
+619 2
+620 2
+621 2
+622 2
+623 2
+624 2
+625 2
+626 2
+627 2
+628 2
+629 2
+630 2
+631 2
+632 2
+633 2
+634 2
+635 2
+636 2
+637 2
+638 2
+639 2
+640 2
+641 2
+642 2
+643 2
+644 2
+645 2
+646 2
+647 2
+648 2
+649 2
+650 2
+651 2
+652 2
+653 2
+654 2
+655 2
+656 2
+657 2
+658 2
+659 2
+660 2
+661 2
+662 2
+663 2
+664 2
+665 2
+666 2
+667 2
+668 2
+669 2
+670 2
+671 2
+672 2
+673 2
+674 2
+675 2
+676 2
+677 2
+678 2
+679 2
+680 2
+681 2
+682 2
+683 2
+684 2
+685 2
+686 2
+687 2
+688 2
+689 2
+690 2
+691 2
+692 2
+693 2
+694 2
+695 2
+696 2
+697 2
+698 2
+699 2
+700 2
+701 2
+702 2
+703 2
+704 2
+705 2
+706 2
+707 2
+708 2
+709 2
+710 2
+711 2
+712 2
+713 2
+714 2
+715 2
+716 2
+717 2
+718 2
+719 2
+720 2
+721 2
+722 2
+723 2
+724 2
+725 2
+726 2
+727 2
+728 2
+729 2
+730 2
+731 2
+732 2
+733 2
+734 2
+735 2
+736 2
+737 2
+738 2
+739 2
+740 2
+741 2
+742 2
+743 2
+744 2
+745 2
+746 2
+747 2
+748 2
+749 2
+750 2
+751 2
+752 2
+753 2
+754 2
+755 2
+756 2
+757 2
+758 2
+759 2
+760 2
+761 2
+762 2
+763 2
+764 2
+765 2
+766 2
+767 2
+768 2
+769 2
+770 2
+771 2
+772 2
+773 2
+774 2
+775 2
+776 2
+777 2
+778 2
+779 2
+780 2
+781 2
+782 2
+783 2
+784 2
+785 2
+786 2
+787 2
+788 2
+789 2
+790 2
+791 2
+792 2
+793 2
+794 2
+795 2
+796 2
+797 2
+798 2
+799 2
+800 2
+801 2
+802 2
+803 2
+804 2
+805 2
+806 2
+807 2
+808 2
+809 2
+810 2
+811 2
+812 2
+813 2
+814 2
+815 2
+816 2
+817 2
+818 2
+819 2
+820 2
+821 2
+822 2
+823 2
+824 2
+825 2
+826 2
+827 2
+828 2
+829 2
+830 2
+831 2
+832 2
+833 2
+834 2
+835 2
+836 2
+837 2
+838 2
+839 2
+840 2
+841 2
+842 2
+843 2
+844 2
+845 2
+846 2
+847 2
+848 2
+849 2
+850 2
+925 1
+926 1
+927 1
+928 1
+929 1
+930 1
+931 1
+932 1
+933 1
+934 1
+935 1
+936 1
+937 1
+938 1
+939 1
+940 1
+941 1
+942 1
+943 1
+944 1
+945 1
+946 1
+947 1
+948 1
+949 1
+950 1
+951 1
+952 1
+953 1
+954 1
+955 1
+956 1
+957 1
+958 1
+959 1
+960 1
+961 1
+962 1
+963 1
+964 1
+965 1
+966 1
+967 1
+968 1
+969 1
+970 1
+971 1
+972 1
+973 1
+974 1
+975 1
+976 1
+977 1
+978 1
+979 1
+980 1
+981 1
+982 1
+983 1
+984 1
+985 1
+986 1
+987 1
+988 1
+989 1
+990 1
+991 1
+992 1
+993 1
+994 1
+995 1
+996 1
+997 1
+998 1
+999 1
+1000 1
+1001 1
+1002 1
+1003 1
+1004 1
+1005 1
+1006 1
+1007 1
+1008 1
+1009 1
+1010 1
+1011 1
+1012 1
+1013 1
+1014 1
+1015 1
+1016 1
+1017 1
+1018 1
+1019 1
+1020 1
+1021 1
+1022 1
+1023 1
+1024 1
+1025 1
+1201 1
+1202 1
+1203 1
+1204 1
+1205 1
+1206 1
+1207 1
+1208 1
+1209 1
+1210 1
+1500 1
+1501 1
+1502 1
+1503 1
+1504 1
+1505 1
+1506 1
+1507 1
+1508 1
+1509 1
+1510 1
+1511 1
+1512 1
+1513 1
+1514 1
+1515 1
+1516 1
+1517 1
+1518 1
+1519 1
+1520 1
+1521 1
+1522 1
+1523 1
+1524 1
+1525 1
+1526 1
+1527 1
+1528 1
+1529 1
+1530 1
+1531 1
+1532 1
+1533 1
+1534 1
+1535 1
+1536 1
+1537 1
+1538 1
+1539 1
+1540 1
+1541 1
+1542 1
+1543 1
+1544 1
+1545 1
+1546 1
+1547 1
+1548 1
+1549 1
+1550 1
+1551 1
+1552 1
+1553 1
+1554 1
+1555 1
+1556 1
+1557 1
+1558 1
+1559 1
+1560 1
+1561 1
+1562 1
+1563 1
+1564 1
+1565 1
+1566 1
+1567 1
+1568 1
+1569 1
+1570 1
+1571 1
+1572 1
+1573 1
+1574 1
+1575 1
+1576 1
+1577 1
+1578 1
+1579 1
+1580 1
+1581 1
+1582 1
+1583 1
+1584 1
+1585 1
+1586 1
+1587 1
+1588 1
+1589 1
+1590 1
+1591 1
+1592 1
+1593 1
+1594 1
+1595 1
+1596 1
+1597 1
+1598 1
+1599 1
+1600 1
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/sorted_ref.gff3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/sorted_ref.gff3 Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,7 @@
+chr1 test test2.1 9 1000 1001 + . ID=test2.1;Name=test2.1
+chr1 test test2.2 50 350 301 + . ID=test2.2;Name=test2.2
+chr1 test test2.3 100 600 501 + . ID=test2.3;Name=test2.3
+chr1 test test2.4 200 450 251 + . ID=test2.4;Name=test2.4
+chr1 test test2.5 700 950 251 + . ID=test2.5;Name=test2.5
+chr1 test test2.6 800 900 101 + . ID=test2.6;Name=test2.6
+chr1 test test2.7 1200 1300 101 + . ID=test2.7;Name=test2.7
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/testBedParser1.bed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/testBedParser1.bed Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,2 @@
+track name=reads description="Reads" useScore=0 visibility=full offset=0
+arm_X 1000 3000 test1.1 1000 + 1000 3000 0 2 100,1000, 0,1000,
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/testC2S.fa
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/testC2S.fa Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,100 @@
+>chr1
+CAACATTAGCGCCATGCCCACTGTGGGGAATTTACCAGCAGCCCGCACAC
+TTAGCCGGCCTGCTGCAAAGCGGGATTTATTTAATTCATCCTCCAAGAGC
+CCAAACGAGCATCCTATGAGTTTCTCGGAAGTGGTAGCTGGAGCAGGTCC
+AGTTTCTATGGCACCCCCTAATCCGGCACCACTGACGAAAACCCCAGGAA
+AGCGGACAAACGACGATCTGGATTGCTCAAATTTTAAGACGCCCAATAAA
+AAATTATGCGCGACATCCAATTTTGTAACTCCCTGCATTTTTCCCCCGCT
+CATCACACCAGTTTTCAAAAGCAAGGCAGCTCAATCTGTTTATGAGGAAT
+CAAAAGCCAGAAACGGACCCACCCGCCAGCCGTTACCCTGTAGCATCAAT
+GTCTCTGCTTGCAGCGCAGCGGCGCCACCCGTTATCGCCCCCCTACCCCC
+TCAAAATACAGATGCACAGCTGCCTCCATGGAAAATCGTGCCCCAGAGCC
+GTAGAGCACCCCCTATACTCGTCAATGATGTGAAGGAAATTGTCCCTCTC
+CTGGAAAAGCTAAATTATACAGCAGGAGTATCCAGCTACACCACCAGAGC
+AATAGAAGGAAACGGGGTCAGGATCCAGGCCAAGGATATGACCGCCTACA
+ACAAAATTAAAGAAGTCCTGGTGGCCAACGGATTTCCTTTATTCACCAAC
+CAGCCCAAGTCTGAGAGAGGCTTCCGAGTCATCATCAGACACCTCCATCA
+TTCCACACCATGCTCGTGGATAGTCGAGGAGCTGCTGAAGCTCGGTCTCC
+AAGCGCGCTTCGTCAGAAACATGACGAATCCAGCTACAGGTGGCCCCATG
+CGAATGTTTGAAGTGGAGATCGTCATGGCCAAAGATGGCAGCCACGATAA
+AATTCTCTCACTCAAACAAATCGGTGGGCAAAAGGTGGATATTGAAAGGA
+AAAATAGGACACAGGAGCCGGTTCAGTGCTACAGATGCCAGGGCTTCAGA
+CATGCCAAAAATTCATGCATGAGGACGCCTAAATGCATGAAATGCGCTGG
+CGATCACCTGTCATCCTGCTGCACCAAGCCAAAATCCACCCCCGCCACCT
+GCATCAACTGCTCTGGGGAACATATCAGCGCTTATAAAGGATGCCCCGCC
+TACAAGGCCGAAAAACGAAAGCTGGCGGCTAACATTATTGACACAAACAA
+AATAAGGACAATCAAAGACGCAACTAATCACTTTTATAAACGACAAGGCC
+CCCCTCCACGTAATAATACCCCTCGACTACCGCACAGCTCAGCAATCCTG
+ACCAAGTCAATCGCTGAAGCTCGCCAGGAAGCCGCCAAAAAGTCGATGCT
+AAATCCTTATTGGCAAAGCTCGAACGACAGAAGGCCACGTTTCTCCTCCC
+ATGACACTGCCATTCAAAAACGGCTAAACAAATGGCGCCGAAACTCTAAT
+AAGATACCCAAAAAGGGTAGGATATCCTCAAAGGACAATGCAAAGCCAAG
+ACCGGCATCCAAGACAAGCAACCCAGCGCAAAGACATCTGGAAAAATACC
+AGGACATGCTCCGAAACGAAAGGAGTGAAGAAATTGACCATGAACCTGAA
+AAAGGTACTCCTAATCCCAGCCGAGTCGGCAACGACAGCCCTCCGACCAC
+CAGCAGAGCCGCCAGAGCTAACTTTAAGCCAAGAATTATCGATGAAGCTA
+CGCCATCGCCAAGAAACTCCAATCCTTACCTACAGAAGAGCTTCTCGGAC
+GACCCCACCATTAATCTAGCTAATAGAGTCGATAATTTAGAAAAGAAAAT
+TGACATTTTAATGGCTTTAATCATACAAGGAACCAATAACAATAATCTTG
+ACATTGATACATCAATCTAAATTTACATTACACTTATTTATATTTATACC
+TATTATAAATATATATATCCGACACAAAAGCGCACGTCTGCCCACCCTTA
+TAATGTTCTAATTATTATCACCTTCCTCGACGCAAAGCTTAAACCTCTGT
+TGAAAAACAAATCAATTAGATGGATGACATAAAAACGTAAATAAATAATC
+TTCTCACCTCAAGCATCCGGATAAAAAAGGCAATACGCACTCCAACTCCT
+GATGAAGCTATGTGAAGAAAACTACACCAGGATTCAAAAGTCGAATCGGA
+GGATGGACATGAGAAGAATCTGTGCGGCAGAAGCATGATGAATAGAGGCG
+ACTCGCTGCAGCAAAATATGCACTACGCCACTTACCTGAATCTTCTGCGG
+CGCAGTCTTTTTATGTACCATCATCTCCGCCGCAACCGCTTCACACAGCT
+CCACAACATAAGATGCGCCACCAAAGCTGCCTCCGTACTGAACTGGACAT
+CATGCGTTGCGCTGCAAATCCTATCCTATTGACGAGCGCCAACAGCGGGT
+CTGCGCTAAAAACCTAAAAACAAAACAAAACAAAACAATTAATCAACAAC
+AAATTGAACATAACAATCAAACAATAACAATCACTTACCTCCTTGACTGC
+ATCCAATCGCTGACCCAAATCCAACACAACCGACAACAGGAGACGGGCTT
+CGCAAATGCAAAACAAAATCGCCAACTTTTGCGATTATAAATACAAAAAA
+TTGACAATTTTCTGATGCCATCTCCATCCTTTGATCCCACTGCCCAAATA
+AGGATCATTAGCGCGGAGCTGAAGCCACATTAATAAGCTGTAAAATTGAT
+CCCCAAAATGTATATTTCTCCTCAATACCGTATCTTCAACGAACTTTCCG
+CCAACCTGCAATGAAAGGGAAATTAATAATAATGCTATACAGAATTAATC
+AGCGACACATAGAAAATAGCAAACCAGACAGGCAAAGTAGTAGATGCAAA
+CAGGCGACTCCATCCCGCCGACGACAAGCATTCAAATCCTTCATACTGAA
+ACAAGGAAGCACAAGCCAATACTGGGAATTATTTACTCAAACAAAATACT
+TATCTAATTACCAACTCGACGACTCCAAATACGCGGCACACCGGCTGCGA
+TAGCTCTTAAATAAAGGGCCTCCTAATTAACTACAAAACGTACCTGAAAA
+ATAAAACAATTAACGCAATCGTAAATAATTACAATTATAATACTCACCTC
+CAGATTAGCCTAATGTACCTGAAAAACAAAAACAAAAATTAATGCAATAA
+TTATAAAAACAAATAAATACAAACACAATACTTACCTCCAAATTACCTCC
+CAGCCAAAGCACCTGAAATACAAAAACAAAGAATTAATGCAATAAATAAA
+TCAAATAAATACAAATACAATACTCACCCCAAATAACCTCCCAGCTAATT
+TACCTGAAAAAACAAAAATTAATACAATATTAAAAACGAATAACAAATGT
+AATACTTACCAAATTTTAACTTTGTATTCATTTCCATGGCCCAAATCGTT
+GCGACGGTCCTCGGCAACAAATCATGTTCCGGCGGCTCCTAGCTGCCAAT
+CCCGACGCATTGGCCACAAGACGCGGCGCTCCTGGCAACTCTCGATGAAT
+AACCGAGCTCCAATTTCCACGACGACTCTTCTGCCAAACGAGTCAGATTA
+CACCAACATAATGCCAGCAGCTCCCAAACAATGCAATGACGGCTGCGCGG
+GATCCATCTTCAGATTTTCTTCTTCCTGACGACCGGCTAAGCTGCCCTGC
+AATTTAAGAAATTTTATTAAACAATTGCAAATATCTACCACTGAGGGTGG
+TAGAGACAACCACCAAATGACAGCGGCGCGGGATACACCCACCACGAATA
+GGCTTTCTGCAGCGCTGGCCGGACATGCATGTTGCGACGCGCATTCAGCG
+TCCACAACAAGCCCCAGCCAGAATACAACAAACACTCACCTGCAATGTTT
+CCTGAGGCTTCCAGCGACTCGGTGCTTCCGTCCTTCTGGCGGGGGTACCT
+GAAAAGAATTAATTCAAATTATGTTAGTCTTAAATTCCAATGTTTCTTGT
+TAAATAATTCAAATTATCAAATGTAAACATAACATACAATGTGATAATGT
+TACCAGTCCATGTTACTGCCAAAAACCTAAGTTTACAAAAAAATACTTAC
+CTCTTAATATTAATACTAAATCTATGTCCAATCCCCAAACTCACCCCACG
+TAATGTACACCTCAAAAATTCAAATAATTGTACCTACATATTGCATTCTA
+TGTAATCAAAGGCAAAATAAATTGTGGATGCGGAACAGAATTCATTCTGT
+CTCCGTACCTCCACCAGCAAAGTTAAAAATGAAATATCCCTCATCACCGC
+TGCAATCTACATACATGGATACAGCGCAAAAGACGGTCAACCACGTCGTC
+TCCGAGTCGTTCAGGACACCTTGCTGCTCTCAATAACCTCCAGCCTGACG
+AGCGCCAACAGCGAGTTGACGCTAAAACCTAAAAACAAACAACAACAAAT
+TAAATACAAACAAATAAAATAAAATCAAACAAAACACTTACTTCACTGAC
+AACAGCCAATTGCTGATCCACATTCAACGCAACAGACAACAGGAGACGGG
+CCCCGCAAACGCAAAACAAAATCGCCAATTTTTGCGATTTTAAATACAAA
+AAATCGACAATTTTACTAAGCCCTCTCCATCTCCTGATGCCACCGCCACA
+ATAAGGATCACTAGCGCGGCGCTGATGCCACATCAATAAACCGCAATATT
+TGTCCTCAAAACGTATACTTCTTCTCAGTATCGCAACTTCTACGAATTTC
+CCGCTAACCTACAATGAAAGGAAAATCAATAAGAATGTGATACAAAAAAT
+TAATCAAGGGCAAATAGAAAATAGCTTACCGGACAGGCATACTAGCAGAT
+GCTAATATGCAACTCCATCCTTCTGAGACAAATACGCAACTCCTTTTTTC
+CAAGATTGCAAATACTGAAACAAGGAAGCACAAGCCAATACTGGGAATTA
+TTTAATTAAACAAAATACTTATCTAATTGCCAATTCGACGACTCCAAATC
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/testC2S.gff3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/testC2S.gff3 Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,3 @@
+chr1 S-MART SMART 1 10 . + . Name=region0
+chr1 S-MART SMART 51 60 . + . Name=region1
+chr1 S-MART SMART 51 60 . - . Name=region2
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/testCompareTranscriptListDistanceAntisense1.gff3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/testCompareTranscriptListDistanceAntisense1.gff3 Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,1 @@
+chr1 test test1.1 1000 2000 1001 + . ID=test1.1;Name=test1.1
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/testCompareTranscriptListDistanceAntisense2.gff3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/testCompareTranscriptListDistanceAntisense2.gff3 Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,2 @@
+chr1 test test2.1 1500 2500 1001 + . ID=test2.1;Name=test2.1
+chr1 test test2.2 3000 4000 1001 - . ID=test2.2;Name=test2.2
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/testCompareTranscriptListDistanceSimple1.gff3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/testCompareTranscriptListDistanceSimple1.gff3 Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,1 @@
+chr1 test test1.1 1000 2000 1001 + . ID=test1.1;Name=test1.1
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/testCompareTranscriptListDistanceSimple2.gff3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/testCompareTranscriptListDistanceSimple2.gff3 Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,2 @@
+chr1 test test2.1 1500 2500 1001 + . ID=test2.1;Name=test2.1
+chr1 test test2.2 3000 4000 1001 + . ID=test2.2;Name=test2.2
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/testDifferentialExpressionExpected.gff3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/testDifferentialExpressionExpected.gff3 Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,2 @@
+chr1 S-MART S-MART_transcript 100 200 101 + . Name=test3.1;nbReadsCond1=15;regulation=equal;nbReadsCond2=15;pValue=1.0;ID=test3.1
+chr1 S-MART S-MART_transcript 200 300 101 + . Name=test3.2;nbReadsCond1=30;regulation=equal;nbReadsCond2=30;pValue=1.0;ID=test3.2
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/testDifferentialExpressionOutput.gff3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/testDifferentialExpressionOutput.gff3 Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,2 @@
+chr1 S-MART S-MART_transcript 100 200 101 + . Name=test3.1;nbReadsCond1=15;regulation=equal;nbReadsCond2=15;pValue=1.0;ID=test3.1
+chr1 S-MART S-MART_transcript 200 300 101 + . Name=test3.2;nbReadsCond1=30;regulation=equal;nbReadsCond2=30;pValue=1.0;ID=test3.2
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/testDifferentialExpressionReference.gff3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/testDifferentialExpressionReference.gff3 Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,2 @@
+chr1 S-MART transcript 100 200 100 + . Name=test3.1
+chr1 S-MART transcript 200 300 100 + . Name=test3.2
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/testDifferentialExpressionSample1.gff3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/testDifferentialExpressionSample1.gff3 Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,2 @@
+chr1 S-MART S-MART_transcript 100 200 100 + . Name=test1.1;nbElements=10
+chr1 S-MART S-MART_transcript 200 300 100 + . Name=test1.2;nbElements=20
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/testDifferentialExpressionSample2.gff3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/testDifferentialExpressionSample2.gff3 Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,2 @@
+chr1 S-MART S-MART_transcript 100 200 100 + . Name=test2.1;nbElements=20
+chr1 S-MART S-MART_transcript 200 300 100 + . Name=test2.2;nbElements=40
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/testGffParser1.gff3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/testGffParser1.gff3 Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,7 @@
+arm_X test test_transcript 1000 2000 1 + . ID=id1-1;Name=test1;field=value1
+arm_X test test_exon 1000 2000 1 + . ID=id1-1-exon1;Name=test1-exon1;Parent=id1-1
+arm_X test test_transcript 10000 20000 1 - . ID=id2-1;Name=test2;field=value2
+arm_X test test_exon 10000 10100 1 - . ID=id2-1-exon1;Name=test2-exon1;Parent=id2-1
+arm_X test test_exon 10500 20000 1 - . ID=id2-1-exon2;Name=test2-exon2;Parent=id2-1
+arm_X test test_transcript 1000 2000 1 + . ID=test1.1-1;Name=test1.1
+arm_X test test_exon 1000 2000 1 + . ID=test1.1-1-exon1;Name=test1.1-exon1;Parent=test1.1-1
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/testPlot.gff3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/testPlot.gff3 Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,6 @@
+chr1 S-MART SMART 100 200 . + . value2=6;value3=1
+chr1 S-MART SMART 200 300 . + . value1=2;value2=5;value3=2
+chr1 S-MART SMART 300 400 . + . value1=3;value2=4;value3=3
+chr1 S-MART SMART 400 500 . + . value1=4;value2=3;value3=4
+chr1 S-MART SMART 500 600 . + . value1=5;value2=2;value3=5
+chr1 S-MART SMART 600 700 . + . value1=6;value3=6
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/testSW.gff3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/testSW.gff3 Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,4 @@
+chr1 S-MART SMART 101 111 . + . value1=1
+chr1 S-MART SMART 111 121 . + . value1=2
+chr1 S-MART SMART 201 211 . + . value1=10
+chr1 S-MART SMART 211 221 . + . value1=12
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptList1.bed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptList1.bed Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,4 @@
+arm_X 1000 2000 test1.1 1000 + 1000 2000 0 1 1000, 0,
+arm_X 1000 2000 test1.2 1000 - 1000 2000 0 1 1000, 0,
+arm_X 100 200 test1.3 1000 + 100 200 0 1 100, 0,
+arm_X 100 3200 test1.4 1000 + 100 3200 0 2 100,100, 0,3000,
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptList2.bed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptList2.bed Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,1 @@
+arm_X 1000 2000 test2.1 1000 + 1000 2000 0 1 1000, 0,
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListGetDifference1.gff3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListGetDifference1.gff3 Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,1 @@
+arm_X test test_transcript 1000 4000 1 + . ID=id1-1;Name=test1;field=value1;nbElements=2
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListGetDifference2.gff3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListGetDifference2.gff3 Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,1 @@
+arm_X test test_transcript 2000 3000 1 + . ID=id2;Name=test2;field=value1
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListMergeAggregation1.bed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListMergeAggregation1.bed Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,2 @@
+arm_X 10000100 10000200 test1.1 100 - 10000100 10000200 0 1 100, 0,
+arm_X 10000000 10000100 test1.2 100 - 10000000 10000100 0 1 100, 0,
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListMergeAggregation2.bed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListMergeAggregation2.bed Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,1 @@
+arm_X 10000050 10000150 test2.1 100 - 10000050 10000150 0 1 100, 0,
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListMergeSenseAntiSenseAway1.bed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListMergeSenseAntiSenseAway1.bed Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,7 @@
+arm_X 10000100 10000200 test1.1 100 + 10000100 10000200 0 1 100, 0,
+arm_X 10000100 10000200 test1.2 100 - 10000100 10000200 0 1 100, 0,
+arm_2R 10000100 10000200 test1.3 100 + 10000100 10000200 0 1 100, 0,
+arm_X 10000000 10000100 test1.4 100 + 10000000 10000100 0 1 100, 0,
+arm_X 10000200 10000300 test1.5 100 + 10000200 10000300 0 1 100, 0,
+arm_X 9999900 9999950 test1.6 100 + 9999900 9999950 0 1 50, 0,
+arm_X 10000000 10000050 test1.7 100 - 10000000 10000050 0 1 50, 0,
\ No newline at end of file
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListMergeSenseAntiSenseAway1_modif.bed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListMergeSenseAntiSenseAway1_modif.bed Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,112 @@
+arm_X 10000100 10000200 test1.1 100 + 10000100 10000200 0 1 100, 0,
+arm_X 10000100 10000200 test1.2 100 - 10000100 10000200 0 1 100, 0,
+arm_2R 10000100 10000200 test1.3 100 + 10000100 10000200 0 1 100, 0,
+arm_X 10000000 10000100 test1.4 100 + 10000000 10000100 0 1 100, 0,
+arm_X 10000200 10000300 test1.5 100 + 10000200 10000300 0 1 100, 0,
+arm_X 9999900 9999950 test1.6 100 + 9999900 9999950 0 1 50, 0,
+arm_X 10000000 10000050 test1.7 100 - 10000000 10000050 0 1 50, 0,
+arm_X 10000100 10000200 test1.1 100 + 10000100 10000200 0 1 100, 0,
+arm_X 10000100 10000200 test1.2 100 - 10000100 10000200 0 1 100, 0,
+arm_2R 10000100 10000200 test1.3 100 + 10000100 10000200 0 1 100, 0,
+arm_X 10000000 10000100 test1.4 100 + 10000000 10000100 0 1 100, 0,
+arm_X 10000200 10000300 test1.5 100 + 10000200 10000300 0 1 100, 0,
+arm_X 9999900 9999950 test1.6 100 + 9999900 9999950 0 1 50, 0,
+arm_X 10000000 10000050 test1.7 100 - 10000000 10000050 0 1 50, 0,
+arm_X 10000100 10000200 test1.1 100 + 10000100 10000200 0 1 100, 0,
+arm_X 10000100 10000200 test1.2 100 - 10000100 10000200 0 1 100, 0,
+arm_2R 10000100 10000200 test1.3 100 + 10000100 10000200 0 1 100, 0,
+arm_X 10000000 10000100 test1.4 100 + 10000000 10000100 0 1 100, 0,
+arm_X 10000200 10000300 test1.5 100 + 10000200 10000300 0 1 100, 0,
+arm_X 9999900 9999950 test1.6 100 + 9999900 9999950 0 1 50, 0,
+arm_X 10000000 10000050 test1.7 100 - 10000000 10000050 0 1 50, 0,
+arm_X 10000100 10000200 test1.1 100 + 10000100 10000200 0 1 100, 0,
+arm_X 10000100 10000200 test1.2 100 - 10000100 10000200 0 1 100, 0,
+arm_2R 10000100 10000200 test1.3 100 + 10000100 10000200 0 1 100, 0,
+arm_X 10000000 10000100 test1.4 100 + 10000000 10000100 0 1 100, 0,
+arm_X 10000200 10000300 test1.5 100 + 10000200 10000300 0 1 100, 0,
+arm_X 9999900 9999950 test1.6 100 + 9999900 9999950 0 1 50, 0,
+arm_X 10000000 10000050 test1.7 100 - 10000000 10000050 0 1 50, 0,
+arm_X 10000100 10000200 test1.1 100 + 10000100 10000200 0 1 100, 0,
+arm_X 10000100 10000200 test1.2 100 - 10000100 10000200 0 1 100, 0,
+arm_2R 10000100 10000200 test1.3 100 + 10000100 10000200 0 1 100, 0,
+arm_X 10000000 10000100 test1.4 100 + 10000000 10000100 0 1 100, 0,
+arm_X 10000200 10000300 test1.5 100 + 10000200 10000300 0 1 100, 0,
+arm_X 9999900 9999950 test1.6 100 + 9999900 9999950 0 1 50, 0,
+arm_X 10000000 10000050 test1.7 100 - 10000000 10000050 0 1 50, 0,
+arm_X 10000100 10000200 test1.1 100 + 10000100 10000200 0 1 100, 0,
+arm_X 10000100 10000200 test1.2 100 - 10000100 10000200 0 1 100, 0,
+arm_2R 10000100 10000200 test1.3 100 + 10000100 10000200 0 1 100, 0,
+arm_X 10000000 10000100 test1.4 100 + 10000000 10000100 0 1 100, 0,
+arm_X 10000200 10000300 test1.5 100 + 10000200 10000300 0 1 100, 0,
+arm_X 9999900 9999950 test1.6 100 + 9999900 9999950 0 1 50, 0,
+arm_X 10000000 10000050 test1.7 100 - 10000000 10000050 0 1 50, 0,
+arm_X 10000100 10000200 test1.1 100 + 10000100 10000200 0 1 100, 0,
+arm_X 10000100 10000200 test1.2 100 - 10000100 10000200 0 1 100, 0,
+arm_2R 10000100 10000200 test1.3 100 + 10000100 10000200 0 1 100, 0,
+arm_X 10000000 10000100 test1.4 100 + 10000000 10000100 0 1 100, 0,
+arm_X 10000200 10000300 test1.5 100 + 10000200 10000300 0 1 100, 0,
+arm_X 9999900 9999950 test1.6 100 + 9999900 9999950 0 1 50, 0,
+arm_X 10000000 10000050 test1.7 100 - 10000000 10000050 0 1 50, 0,
+arm_X 10000100 10000200 test1.1 100 + 10000100 10000200 0 1 100, 0,
+arm_X 10000100 10000200 test1.2 100 - 10000100 10000200 0 1 100, 0,
+arm_2R 10000100 10000200 test1.3 100 + 10000100 10000200 0 1 100, 0,
+arm_X 10000000 10000100 test1.4 100 + 10000000 10000100 0 1 100, 0,
+arm_X 10000200 10000300 test1.5 100 + 10000200 10000300 0 1 100, 0,
+arm_X 9999900 9999950 test1.6 100 + 9999900 9999950 0 1 50, 0,
+arm_X 10000000 10000050 test1.7 100 - 10000000 10000050 0 1 50, 0,
+arm_X 10000100 10000200 test1.1 100 + 10000100 10000200 0 1 100, 0,
+arm_X 10000100 10000200 test1.2 100 - 10000100 10000200 0 1 100, 0,
+arm_2R 10000100 10000200 test1.3 100 + 10000100 10000200 0 1 100, 0,
+arm_X 10000000 10000100 test1.4 100 + 10000000 10000100 0 1 100, 0,
+arm_X 10000200 10000300 test1.5 100 + 10000200 10000300 0 1 100, 0,
+arm_X 9999900 9999950 test1.6 100 + 9999900 9999950 0 1 50, 0,
+arm_X 10000000 10000050 test1.7 100 - 10000000 10000050 0 1 50, 0,
+arm_X 10000100 10000200 test1.1 100 + 10000100 10000200 0 1 100, 0,
+arm_X 10000100 10000200 test1.2 100 - 10000100 10000200 0 1 100, 0,
+arm_2R 10000100 10000200 test1.3 100 + 10000100 10000200 0 1 100, 0,
+arm_X 10000000 10000100 test1.4 100 + 10000000 10000100 0 1 100, 0,
+arm_X 10000200 10000300 test1.5 100 + 10000200 10000300 0 1 100, 0,
+arm_X 9999900 9999950 test1.6 100 + 9999900 9999950 0 1 50, 0,
+arm_X 10000000 10000050 test1.7 100 - 10000000 10000050 0 1 50, 0,
+arm_X 10000100 10000200 test1.1 100 + 10000100 10000200 0 1 100, 0,
+arm_X 10000100 10000200 test1.2 100 - 10000100 10000200 0 1 100, 0,
+arm_2R 10000100 10000200 test1.3 100 + 10000100 10000200 0 1 100, 0,
+arm_X 10000000 10000100 test1.4 100 + 10000000 10000100 0 1 100, 0,
+arm_X 10000200 10000300 test1.5 100 + 10000200 10000300 0 1 100, 0,
+arm_X 9999900 9999950 test1.6 100 + 9999900 9999950 0 1 50, 0,
+arm_X 10000000 10000050 test1.7 100 - 10000000 10000050 0 1 50, 0,
+arm_X 10000100 10000200 test1.1 100 + 10000100 10000200 0 1 100, 0,
+arm_X 10000100 10000200 test1.2 100 - 10000100 10000200 0 1 100, 0,
+arm_2R 10000100 10000200 test1.3 100 + 10000100 10000200 0 1 100, 0,
+arm_X 10000000 10000100 test1.4 100 + 10000000 10000100 0 1 100, 0,
+arm_X 10000200 10000300 test1.5 100 + 10000200 10000300 0 1 100, 0,
+arm_X 9999900 9999950 test1.6 100 + 9999900 9999950 0 1 50, 0,
+arm_X 10000000 10000050 test1.7 100 - 10000000 10000050 0 1 50, 0,
+arm_X 10000100 10000200 test1.1 100 + 10000100 10000200 0 1 100, 0,
+arm_X 10000100 10000200 test1.2 100 - 10000100 10000200 0 1 100, 0,
+arm_2R 10000100 10000200 test1.3 100 + 10000100 10000200 0 1 100, 0,
+arm_X 10000000 10000100 test1.4 100 + 10000000 10000100 0 1 100, 0,
+arm_X 10000200 10000300 test1.5 100 + 10000200 10000300 0 1 100, 0,
+arm_X 9999900 9999950 test1.6 100 + 9999900 9999950 0 1 50, 0,
+arm_X 10000000 10000050 test1.7 100 - 10000000 10000050 0 1 50, 0,
+arm_X 10000100 10000200 test1.1 100 + 10000100 10000200 0 1 100, 0,
+arm_X 10000100 10000200 test1.2 100 - 10000100 10000200 0 1 100, 0,
+arm_2R 10000100 10000200 test1.3 100 + 10000100 10000200 0 1 100, 0,
+arm_X 10000000 10000100 test1.4 100 + 10000000 10000100 0 1 100, 0,
+arm_X 10000200 10000300 test1.5 100 + 10000200 10000300 0 1 100, 0,
+arm_X 9999900 9999950 test1.6 100 + 9999900 9999950 0 1 50, 0,
+arm_X 10000000 10000050 test1.7 100 - 10000000 10000050 0 1 50, 0,
+arm_X 10000100 10000200 test1.1 100 + 10000100 10000200 0 1 100, 0,
+arm_X 10000100 10000200 test1.2 100 - 10000100 10000200 0 1 100, 0,
+arm_2R 10000100 10000200 test1.3 100 + 10000100 10000200 0 1 100, 0,
+arm_X 10000000 10000100 test1.4 100 + 10000000 10000100 0 1 100, 0,
+arm_X 10000200 10000300 test1.5 100 + 10000200 10000300 0 1 100, 0,
+arm_X 9999900 9999950 test1.6 100 + 9999900 9999950 0 1 50, 0,
+arm_X 10000000 10000050 test1.7 100 - 10000000 10000050 0 1 50, 0,
+arm_X 10000100 10000200 test1.1 100 + 10000100 10000200 0 1 100, 0,
+arm_X 10000100 10000200 test1.2 100 - 10000100 10000200 0 1 100, 0,
+arm_2R 10000100 10000200 test1.3 100 + 10000100 10000200 0 1 100, 0,
+arm_X 10000000 10000100 test1.4 100 + 10000000 10000100 0 1 100, 0,
+arm_X 10000200 10000300 test1.5 100 + 10000200 10000300 0 1 100, 0,
+arm_X 9999900 9999950 test1.6 100 + 9999900 9999950 0 1 50, 0,
+arm_X 10000000 10000050 test1.7 100 - 10000000 10000050 0 1 50, 0,
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListMergeSenseAntiSenseAway2.bed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListMergeSenseAntiSenseAway2.bed Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,2 @@
+arm_X 10000000 10000050 test2.1 50 - 10000000 10000050 0 1 50, 0,
+arm_3R 10000000 10000050 test2.2 50 - 10000000 10000050 0 1 50, 0,
\ No newline at end of file
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListMergeSimple1.bed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListMergeSimple1.bed Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,1 @@
+arm_X 1000 3000 test1.1 1000 + 1000 3000 0 1 2000, 0,
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListMergeSimple2.bed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListMergeSimple2.bed Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,1 @@
+arm_X 2000 4000 test1.2 1000 + 2000 4000 0 1 2000, 0,
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListSelfMerge1.gff3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListSelfMerge1.gff3 Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,4 @@
+arm_X test test_transcript 1000 2000 1 + . ID=id1-1;Name=test1;field=value1;nbElements=2
+arm_X test test_exon 1000 2000 1 + . ID=id1-1-exon1;Name=test1-exon1;Parent=id1-1
+arm_X test test_transcript 1000 2000 1 + . ID=id2-1;Name=test2;field=value2
+arm_X test test_exon 1000 2000 1 + . ID=id2-1-exon1;Name=test2-exon1;Parent=id2-1
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListSelfMergeDifferentClusters1.bed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListSelfMergeDifferentClusters1.bed Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,2 @@
+arm_X 1010 1110 test1.1 1000 + 1010 1110 0 1 100, 0,
+arm_X 100 100100 test1.2 1000 + 100 100100 0 1 100000, 0,
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListSelfMergeSense1.bed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListSelfMergeSense1.bed Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,2 @@
+arm_X 1000 6000 test1.1 1000 + 1000 6000 0 2 1000,1000, 0,4000,
+arm_X 1000 4000 test1.2 1000 + 1000 4000 0 2 1000,1000, 0,2000,
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/testTranscriptNormalize.gff3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/testTranscriptNormalize.gff3 Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,2 @@
+chr1 S-MART transcript 1000 2000 1000 + . Name=test1;nbOccurrences=2
+chr1 S-MART transcript 1500 2500 1000 + . Name=test2;nbOccurrences=2
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/test_distance.bed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/test_distance.bed Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,3 @@
+arm_X 1000 2000 test2.1 1000 + 1000 2000 0 1 1000, 0,
+arm_X 250 350 test2.2 1000 + 250 350 0 1 100, 0,
+arm_X 150 250 test2.3 1000 + 150 250 0 1 100, 0,
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/TestFiles/test_minoverlapp.bed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/TestFiles/test_minoverlapp.bed Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,6 @@
+track name=reads description="Reads" useScore=0 visibility=full offset=0
+arm_X 1000 2000 test1.1 1000 + 1000 2000 0 1 1000, 0,
+arm_X 1000 2000 test1.2 1000 - 1000 2000 0 1 1000, 0,
+arm_X 100 200 test1.3 1000 + 100 200 0 1 100, 0,
+arm_X 100 3200 test1.4 1000 + 100 3200 0 2 100,100, 0,3000,
+arm_X 1500 2000 test1.5 1000 + 1500 2000 0 1 500, 0,
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/__init__.pyc
b
Binary file SMART/Java/Python/__init__.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/cleanGff.pyc
b
Binary file SMART/Java/Python/cleanGff.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/cleaning/CleanerChooser.pyc
b
Binary file SMART/Java/Python/cleaning/CleanerChooser.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/cleaning/DefaultCleaner.pyc
b
Binary file SMART/Java/Python/cleaning/DefaultCleaner.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/cleaning/GffCleaner.pyc
b
Binary file SMART/Java/Python/cleaning/GffCleaner.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/cleaning/GtfCleaner.pyc
b
Binary file SMART/Java/Python/cleaning/GtfCleaner.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/cleaning/TranscriptListCleaner.pyc
b
Binary file SMART/Java/Python/cleaning/TranscriptListCleaner.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/cleaning/__init__.pyc
b
Binary file SMART/Java/Python/cleaning/__init__.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/compare_TAIR10_Reiterative4th.gff3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/compare_TAIR10_Reiterative4th.gff3 Tue Apr 30 14:33:21 2013 -0400
b
b'@@ -0,0 +1,18028 @@\n+chr5\tS-MART\tgene\t4308129\t4310181\t.\t-\t.\tNote=protein_coding_gene;ID=AT5G13440;Name=AT5G13440\n+chr4\tS-MART\tgene\t10398918\t10399512\t.\t+\t.\tNote=protein_coding_gene;ID=AT4G18980;Name=AT4G18980\n+chr3\tS-MART\tgene\t22678151\t22680379\t.\t+\t.\tNote=protein_coding_gene;ID=AT3G61270;Name=AT3G61270\n+chr3\tS-MART\tgene\t5705662\t5707023\t.\t+\t.\tNote=protein_coding_gene;ID=AT3G16770;Name=AT3G16770\n+chr5\tS-MART\tgene\t4523520\t4525863\t.\t-\t.\tNote=protein_coding_gene;ID=AT5G14020;Name=AT5G14020\n+chr3\tS-MART\tgene\t5708925\t5710579\t.\t+\t.\tNote=protein_coding_gene;ID=AT3G16780;Name=AT3G16780\n+chr5\tS-MART\tgene\t26151421\t26157099\t.\t+\t.\tNote=protein_coding_gene;ID=AT5G65440;Name=AT5G65440\n+chr3\tS-MART\tgene\t5711082\t5719023\t.\t+\t.\tNote=protein_coding_gene;ID=AT3G16785;Name=AT3G16785\n+chr3\tS-MART\tgene\t2100189\t2100983\t.\t+\t.\tNote=protein_coding_gene;ID=AT3G36659;Name=AT3G36659\n+chr1\tS-MART\tgene\t8664153\t8665289\t.\t+\t.\tNote=protein_coding_gene;ID=AT1G24450;Name=AT1G24450\n+chr5\tS-MART\tgene\t4530643\t4533070\t.\t-\t.\tNote=protein_coding_gene;ID=AT5G14040;Name=AT5G14040\n+chr1\tS-MART\tgene\t8665874\t8672651\t.\t+\t.\tNote=protein_coding_gene;ID=AT1G24460;Name=AT1G24460\n+chr5\tS-MART\tgene\t4533261\t4535301\t.\t+\t.\tNote=protein_coding_gene;ID=AT5G14050;Name=AT5G14050\n+chr5\tS-MART\tgene\t4535401\t4539193\t.\t+\t.\tNote=protein_coding_gene;ID=AT5G14060;Name=AT5G14060\n+chr1\tS-MART\tgene\t8676360\t8677159\t.\t-\t.\tNote=protein_coding_gene;ID=AT1G24480;Name=AT1G24480\n+chr3\tS-MART\tpseudogene\t14227679\t14228304\t.\t-\t.\tNote=pseudogene;ID=AT3G42047;Name=AT3G42047\n+chr3\tS-MART\tgene\t14228495\t14233245\t.\t-\t.\tNote=protein_coding_gene;ID=AT3G42050;Name=AT3G42050\n+chr5\tS-MART\tgene\t4315759\t4318360\t.\t+\t.\tNote=protein_coding_gene;ID=AT5G13460;Name=AT5G13460\n+chr2\tS-MART\tgene\t14990325\t14990935\t.\t-\t.\tNote=protein_coding_gene;ID=AT2G35658;Name=AT2G35658\n+chr2\tS-MART\tgene\t14996713\t14999085\t.\t-\t.\tNote=protein_coding_gene;ID=AT2G35680;Name=AT2G35680\n+chr2\tS-MART\tgene\t14999754\t15003066\t.\t+\t.\tNote=protein_coding_gene;ID=AT2G35690;Name=AT2G35690\n+chr1\tS-MART\tgene\t8682234\t8685271\t.\t+\t.\tNote=protein_coding_gene;ID=AT1G24490;Name=AT1G24490\n+chr2\tS-MART\tgene\t15005205\t15005789\t.\t+\t.\tNote=protein_coding_gene;ID=AT2G35700;Name=AT2G35700\n+chr5\tS-MART\tgene\t4547202\t4549417\t.\t+\t.\tNote=protein_coding_gene;ID=AT5G14090;Name=AT5G14090\n+chr2\tS-MART\tgene\t15022676\t15022867\t.\t-\t.\tNote=protein_coding_gene;ID=AT2G35733;Name=AT2G35733\n+chr3\tS-MART\tgene\t5752258\t5752410\t.\t+\t.\tNote=protein_coding_gene;ID=AT3G16851;Name=AT3G16851\n+chr2\tS-MART\tgene\t15027589\t15027668\t.\t-\t.\tNote=snoRNA;ID=AT2G35742;Name=AT2G35742\n+chr2\tS-MART\tgene\t15024489\t15026414\t.\t-\t.\tNote=protein_coding_gene;ID=AT2G35740;Name=AT2G35740\n+chr2\tS-MART\tpseudogene\t15027810\t15027989\t.\t-\t.\tNote=pseudogene;ID=AT2G35743;Name=AT2G35743\n+chr2\tS-MART\tgene\t15029712\t15029790\t.\t-\t.\tNote=snoRNA;ID=AT2G35744;Name=AT2G35744\n+chr2\tS-MART\tgene\t15059337\t15061100\t.\t-\t.\tNote=other_RNA;ID=AT2G35859;Name=AT2G35859\n+chr1\tS-MART\tgene\t8688629\t8689268\t.\t+\t.\tNote=protein_coding_gene;ID=AT1G24520;Name=AT1G24520\n+chr2\tS-MART\tgene\t15031923\t15033307\t.\t+\t.\tNote=protein_coding_gene;ID=AT2G35760;Name=AT2G35760\n+chr2\tS-MART\tgene\t15033595\t15034091\t.\t+\t.\tNote=protein_coding_gene;ID=AT2G35765;Name=AT2G35765\n+chr2\tS-MART\tgene\t15034037\t15036518\t.\t-\t.\tNote=protein_coding_gene;ID=AT2G35770;Name=AT2G35770\n+chr2\tS-MART\tgene\t15040679\t15042123\t.\t+\t.\tNote=protein_coding_gene;ID=AT2G35790;Name=AT2G35790\n+chr3\tS-MART\tgene\t5759375\t5762235\t.\t-\t.\tNote=protein_coding_gene;ID=AT3G16860;Name=AT3G16860\n+chr2\tS-MART\tgene\t15042175\t15043575\t.\t+\t.\tNote=protein_coding_gene;ID=AT2G35795;Name=AT2G35795\n+chr5\tS-MART\tgene\t4553806\t4554382\t.\t-\t.\tNote=protein_coding_gene;ID=AT5G14110;Name=AT5G14110\n+chr2\tS-MART\tgene\t15049150\t15050323\t.\t+\t.\tNote=protein_coding_gene;ID=AT2G35810;Name=AT2G35810\n+chr2\tS-MART\tgene\t15050912\t15052239\t.\t+\t.\tNote=protein_coding_gene;ID=AT2G35820;Name=AT2G35820\n+chr5\tS-MART\tgene\t4318524\t4319924\t.\t+\t.\tNote=protein_coding_gene;ID=AT5G13470;Name=AT5G13470\n+chr3\tS-MART\tgene\t5763586\t5764654\t.\t-\t.\tNote=protein_coding_gene;ID=AT3'..b'ne;ID=AT1G60540;Name=AT1G60540\n+chr1\tS-MART\tgene\t22302492\t22305156\t.\t+\t.\tNote=other_RNA;ID=AT1G60545;Name=AT1G60545\n+chr5\tS-MART\tgene\t4473089\t4474402\t.\t-\t.\tNote=protein_coding_gene;ID=AT5G13860;Name=AT5G13860\n+chr1\tS-MART\tgene\t22305831\t22308229\t.\t-\t.\tNote=protein_coding_gene;ID=AT1G60550;Name=AT1G60550\n+chr3\tS-MART\ttransposable_element_gene\t14106869\t14107511\t.\t+\t.\tNote=transposable_element_gene;ID=AT3G33230;Derives_from=AT3TE57780;Name=AT3G33230\n+chr1\tS-MART\tgene\t22324645\t22327359\t.\t-\t.\tNote=protein_coding_gene;ID=AT1G60600;Name=AT1G60600\n+chr1\tS-MART\tgene\t22327912\t22330276\t.\t-\t.\tNote=protein_coding_gene;ID=AT1G60610;Name=AT1G60610\n+chr1\tS-MART\tgene\t22333916\t22334161\t.\t+\t.\tNote=protein_coding_gene;ID=AT1G60625;Name=AT1G60625\n+chr1\tS-MART\tgene\t8609445\t8612580\t.\t+\t.\tNote=protein_coding_gene;ID=AT1G24280;Name=AT1G24280\n+chr1\tS-MART\tgene\t22334662\t22336908\t.\t-\t.\tNote=protein_coding_gene;ID=AT1G60630;Name=AT1G60630\n+chr1\tS-MART\tgene\t22337375\t22339672\t.\t-\t.\tNote=protein_coding_gene;ID=AT1G60640;Name=AT1G60640\n+chr5\tS-MART\tgene\t4477354\t4478109\t.\t-\t.\tNote=protein_coding_gene;ID=AT5G13880;Name=AT5G13880\n+chr1\tS-MART\tgene\t22347622\t22349297\t.\t-\t.\tNote=protein_coding_gene;ID=AT1G60680;Name=AT1G60680\n+chr1\tS-MART\tgene\t8612505\t8614277\t.\t-\t.\tNote=protein_coding_gene;ID=AT1G24290;Name=AT1G24290\n+chr1\tS-MART\tgene\t22354753\t22356761\t.\t-\t.\tNote=protein_coding_gene;ID=AT1G60710;Name=AT1G60710\n+chr1\tS-MART\tgene\t19859267\t19860976\t.\t-\t.\tNote=protein_coding_gene;ID=AT1G53260;Name=AT1G53260\n+chr3\tS-MART\tgene\t14093656\t14095549\t.\t-\t.\tNote=protein_coding_gene;ID=AT3G33520;Name=AT3G33520\n+chr5\tS-MART\tgene\t4478843\t4480928\t.\t-\t.\tNote=protein_coding_gene;ID=AT5G13890;Name=AT5G13890\n+chr1\tS-MART\tgene\t22366701\t22368714\t.\t-\t.\tNote=protein_coding_gene;ID=AT1G60770;Name=AT1G60770\n+chr1\tS-MART\tgene\t22368953\t22372159\t.\t-\t.\tNote=protein_coding_gene;ID=AT1G60780;Name=AT1G60780\n+chr3\tS-MART\tgene\t5669373\t5670842\t.\t-\t.\tNote=protein_coding_gene;ID=AT3G16640;Name=AT3G16640\n+chr5\tS-MART\tgene\t4481232\t4481889\t.\t-\t.\tNote=protein_coding_gene;ID=AT5G13900;Name=AT5G13900\n+chr5\tS-MART\tgene\t4301792\t4304312\t.\t-\t.\tNote=protein_coding_gene;ID=AT5G13420;Name=AT5G13420\n+chr1\tS-MART\tgene\t8626315\t8630971\t.\t-\t.\tNote=protein_coding_gene;ID=AT1G24320;Name=AT1G24320\n+chr1\tS-MART\tgene\t27982131\t27982280\t.\t-\t.\tNote=protein_coding_gene;ID=AT1G74448;Name=AT1G74448\n+chr5\tS-MART\tgene\t4482450\t4483085\t.\t-\t.\tNote=protein_coding_gene;ID=AT5G13910;Name=AT5G13910\n+chr1\tS-MART\tgene\t8631440\t8635055\t.\t+\t.\tNote=protein_coding_gene;ID=AT1G24330;Name=AT1G24330\n+chr5\tS-MART\tgene\t4485168\t4485311\t.\t-\t.\tNote=protein_coding_gene;ID=AT5G13917;Name=AT5G13917\n+chr1\tS-MART\tgene\t8635209\t8638986\t.\t+\t.\tNote=protein_coding_gene;ID=AT1G24340;Name=AT1G24340\n+chr5\tS-MART\tgene\t4485931\t4487433\t.\t-\t.\tNote=protein_coding_gene;ID=AT5G13920;Name=AT5G13920\n+chr4\tS-MART\tgene\t10325965\t10326036\t.\t-\t.\tNote=tRNA;ID=AT4G18815;Name=AT4G18815\n+chr1\tS-MART\tgene\t8638520\t8640825\t.\t-\t.\tNote=protein_coding_gene;ID=AT1G24350;Name=AT1G24350\n+chr5\tS-MART\tgene\t4488688\t4490264\t.\t+\t.\tNote=protein_coding_gene;ID=AT5G13930;Name=AT5G13930\n+chr1\tS-MART\tgene\t8640582\t8643478\t.\t+\t.\tNote=protein_coding_gene;ID=AT1G24360;Name=AT1G24360\n+chr5\tS-MART\tgene\t4305125\t4307513\t.\t-\t.\tNote=protein_coding_gene;ID=AT5G13430;Name=AT5G13430\n+chr1\tS-MART\tgene\t27982509\t27984280\t.\t+\t.\tNote=protein_coding_gene;ID=AT1G74450;Name=AT1G74450\n+chr5\tS-MART\tgene\t4495971\t4500725\t.\t-\t.\tNote=protein_coding_gene;ID=AT5G13950;Name=AT5G13950\n+chr4\tS-MART\tgene\t1311198\t1312154\t.\t+\t.\tNote=protein_coding_gene;ID=AT4G02950;Name=AT4G02950\n+chr5\tS-MART\tgene\t4501447\t4506188\t.\t+\t.\tNote=protein_coding_gene;ID=AT5G13960;Name=AT5G13960\n+chr5\tS-MART\tgene\t4506232\t4507842\t.\t-\t.\tNote=protein_coding_gene;ID=AT5G13970;Name=AT5G13970\n+chr5\tS-MART\tgene\t4508496\t4514666\t.\t+\t.\tNote=protein_coding_gene;ID=AT5G13980;Name=AT5G13980\n+chr2\tS-MART\tgene\t17167279\t17170407\t.\t-\t.\tNote=protein_coding_gene;ID=AT2G41190;Name=AT2G41190\n+chr5\tS-MART\tgene\t4514568\t4516892\t.\t-\t.\tNote=protein_coding_gene;ID=AT5G13990;Name=AT5G13990\n'
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/fo.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/fo.py Tue Apr 30 14:33:21 2013 -0400
[
b'@@ -0,0 +1,341 @@\n+#! /usr/bin/env python\n+#\n+# Copyright INRA-URGI 2009-2012\n+# \n+# This software is governed by the CeCILL license under French law and\n+# abiding by the rules of distribution of free software. You can use,\n+# modify and/ or redistribute the software under the terms of the CeCILL\n+# license as circulated by CEA, CNRS and INRIA at the following URL\n+# "http://www.cecill.info".\n+# \n+# As a counterpart to the access to the source code and rights to copy,\n+# modify and redistribute granted by the license, users are provided only\n+# with a limited warranty and the software\'s author, the holder of the\n+# economic rights, and the successive licensors have only limited\n+# liability.\n+# \n+# In this respect, the user\'s attention is drawn to the risks associated\n+# with loading, using, modifying and/or developing or reproducing the\n+# software by the user in light of its specific status of free software,\n+# that may mean that it is complicated to manipulate, and that also\n+# therefore means that it is reserved for developers and experienced\n+# professionals having in-depth computer knowledge. Users are therefore\n+# encouraged to load and test the software\'s suitability as regards their\n+# requirements in conditions enabling the security of their systems and/or\n+# data to be ensured and, more generally, to use and operate it in the\n+# same conditions as regards security.\n+# \n+# The fact that you are presently reading this means that you have had\n+# knowledge of the CeCILL license and that you accept its terms.\n+#\n+\n+import os, struct, time, shutil\n+from optparse import OptionParser\n+from pyRepetUnit.commons.parsing.ParserChooser import ParserChooser\n+from pyRepetUnit.commons.writer.Gff3Writer import Gff3Writer\n+from SMART.Java.Python.structure.Transcript import Transcript\n+from SMART.Java.Python.structure.Interval import Interval\n+from SMART.Java.Python.ncList.NCList import NCList\n+from SMART.Java.Python.ncList.ConvertToNCList import ConvertToNCList\n+from SMART.Java.Python.ncList.NCListParser import NCListParser\n+from SMART.Java.Python.ncList.NCListCursor import NCListCursor\n+from SMART.Java.Python.ncList.NCListFilePickle import NCListFilePickle, NCListFileUnpickle\n+from SMART.Java.Python.ncList.FileSorter import FileSorter\n+from SMART.Java.Python.ncList.NCListHandler import NCListHandler\n+from SMART.Java.Python.misc.Progress import Progress\n+from SMART.Java.Python.misc.UnlimitedProgress import UnlimitedProgress\n+try:\n+   import cPickle as pickle\n+except:\n+   import pickle\n+\n+REFERENCE = 0\n+QUERY = 1\n+TYPES = (REFERENCE, QUERY)\n+TYPETOSTRING = {0: "reference", 1: "query"}\n+\n+class FindOverlapsOptim(object):\n+\t\n+\tdef __init__(self, verbosity = 1):\n+\t\tself._parsers\t\t\t\t  = {}\n+\t\tself._sortedFileNames\t\t  = {}\n+\t\tself._outputFileName\t\t  = "outputOverlaps.gff3"\n+\t\tself._iWriter\t\t\t\t  = None\n+\t\tself._inputFileNames\t\t  = {REFERENCE: None,  QUERY: None}\n+\t\tself._convertedFileNames      = {REFERENCE: False, QUERY: False}\n+\t\tself._inputFileFormats\t\t  = {REFERENCE: None,  QUERY: None}\n+\t\tself._converted\t\t\t      = {REFERENCE: False, QUERY: False}\n+\t\tself._ncListHandlers          = {REFERENCE: None,  QUERY: None}\n+\t\tself._splittedFileNames\t      = {REFERENCE: {},\tQUERY: {}}\n+\t\tself._nbOverlappingQueries\t  = 0\n+\t\tself._nbOverlaps\t\t\t  = 0\n+\t\tself._nbLines\t\t\t\t  = {REFERENCE: 0, QUERY: 0}\n+\t\tself._verbosity\t\t\t      = verbosity\n+\t\tself._ncLists\t\t\t\t  = {}\n+\t\tself._cursors\t\t\t\t  = {}\n+\t\tself._nbElementsPerChromosome = {}\n+\t\tself._tmpDirectories\t\t  = {REFERENCE: False, QUERY: False}\n+\t\t\n+\tdef close(self):\n+\t\tself._iWriter.close()\n+\t\tfor fileName in (self._sortedFileNames.values()):\n+\t\t\tif os.path.exists(fileName):\n+\t\t\t\tos.remove(fileName)\n+\t\tfor fileName in self._convertedFileNames.values():\n+\t\t\tif fileName:\n+\t\t\t\tos.remove(fileName)\n+\t\t\n+\tdef setRefFileName(self, fileName, format):\n+\t\tself.setFileName(fileName, format, REFERENCE)\n+\t\t\n+\tdef setQueryFileName(self, fileName, format):\n+\t\tself.setFileName(fileName, format, QUERY)\n+\n+\tdef setFileNam'..b'eak\n+\t\t\t\t\telse:\n+\t\t\t\t\t\tcursor.moveDown()\n+\t\t\t#In case: Query is on the left of the RefInterval and does not overlap.\t\t\n+\t\t\telse:\n+\t\t\t\t#print "choice 3"\n+\t\t\t\tif firstOverlapLAddr.isOut() or firstOverlapLAddr.compare(parentCursor):\n+\t\t\t\t\t#print "changing nfo 2"\n+\t\t\t\t\tfirstOverlapLAddr.copy(cursor)\n+\t\t\t\t\tnextDone = False # new\n+\t\t\t\t#print "break 2"\n+\t\t\t\tbreak\n+\t\t\t\n+\t\t\tdone = False\n+\t\t\tif cursor.isOut():\n+\t\t\t\t#print "break 3"\n+\t\t\t\tbreak\n+\t\tself._writeIntervalInNewGFF3(queryTranscript, overlappingNames)\n+\t\treturn firstOverlapLAddr, nextDone, not overlappingNames\n+\t\n+\tdef isOverlapping(self, queryTranscript, refTranscript):\n+\t\tif (queryTranscript.getStart() <= refTranscript.getEnd() and queryTranscript.getEnd() >= refTranscript.getStart()):\n+\t\t\treturn 0   \n+\t\tif queryTranscript.getEnd() < refTranscript.getStart():\n+\t\t\treturn 1\n+\t\treturn -1\n+\n+\tdef checkIndex(self, transcript, cursor):\n+\t\tchromosome = transcript.getChromosome()\n+\t\tnextLIndex = self._indices[REFERENCE][chromosome].getIndex(transcript)\n+\t\tif nextLIndex == None:\n+\t\t\treturn None\n+\t\tncList\t\t = self._ncLists[REFERENCE][chromosome]\n+\t\tnextGffAddress = ncList.getRefGffAddr(nextLIndex)\n+\t\tthisGffAddress = cursor.getGffAddress()\n+\t\tif nextGffAddress > thisGffAddress:\n+\t\t\treturn nextLIndex\n+\t\treturn None\n+\t\t\n+\tdef _writeIntervalInNewGFF3(self, transcript, names):\n+\t\tnbOverlaps = 0\n+\t\tfor cpt in names.values():\n+\t\t\tnbOverlaps += cpt\n+\t\tif not names:\n+\t\t\treturn\n+\t\ttranscript.setTagValue("overlapsWith", "--".join(sorted(names.keys())))\n+\t\ttranscript.setTagValue("nbOverlaps", nbOverlaps)\n+\t\tself._iWriter.addTranscript(transcript)\n+\t\tself._iWriter.write()\n+\t\tself._nbOverlappingQueries += 1\n+\t\tself._nbOverlaps\t\t   += nbOverlaps\n+\t\t\n+\tdef _extractID(self, transcript):\n+\t\tnbElements = float(transcript.getTagValue("nbElements")) if "nbElements" in transcript.getTagNames() else 1\n+\t\tid\t\t   = transcript.getTagValue("ID")\t\t\t\t if "ID"\t\t in transcript.getTagNames() else transcript.getUniqueName()\n+\t\treturn {id: nbElements}\n+\t\t\n+\tdef run(self):\n+\t\tself.createNCLists()\n+\t\tself.compare()\n+\t\tself.close()\n+\t\tif self._verbosity > 0:\n+\t\t\tprint "# queries: %d" % (self._nbLines[QUERY])\n+\t\t\tprint "# refs:    %d" % (self._nbLines[REFERENCE])\n+\t\t\tprint "# written: %d (%d overlaps)" % (self._nbOverlappingQueries, self._nbOverlaps)\n+\t\t\tprint "time:      %.2gs" % (self._timeSpent)\n+\n+\n+if __name__ == "__main__":\n+\tdescription = "Find Overlaps Optim v1.0.0: Finds overlaps with several query intervals. [Category: Data Comparison]"\n+\n+\tparser = OptionParser(description = description)\n+\tparser.add_option("-i", "--query",\t     dest="inputQueryFileName", action="store",\t\t\t   type="string",  help="Query input file [compulsory] [format: file in transcript or other format given by -f]")\n+\tparser.add_option("-f", "--queryFormat", dest="queryFormat",\t\taction="store",\t\t\t   type="string",  help="format of previous file (possibly in NCL format) [compulsory] [format: transcript or other file format]")\n+\tparser.add_option("-j", "--ref",\t\t dest="inputRefFileName",   action="store",\t\t\t   type="string",  help="Reference input file [compulsory] [format: file in transcript or other format given by -g]")\n+\tparser.add_option("-g", "--refFormat",   dest="refFormat",\t\t    action="store",\t\t\t   type="string",  help="format of previous file (possibly in NCL format) [compulsory] [format: transcript or other file format]")\n+\tparser.add_option("-o", "--output",\t     dest="outputFileName",\t    action="store",\t\t\t   type="string",  help="Output file [compulsory] [format: output file in GFF3 format]")\n+\tparser.add_option("-v", "--verbosity",   dest="verbosity",\t\t    action="store", default=1, type="int",\t   help="Trace level [format: int] [default: 1]")\n+\t(options, args) = parser.parse_args()\n+\t\n+\tiFOO = FindOverlapsOptim(options.verbosity)\n+\tiFOO.setRefFileName(options.inputRefFileName, options.refFormat)\n+\tiFOO.setQueryFileName(options.inputQueryFileName, options.queryFormat)\n+\tiFOO.setOutputFileName(options.outputFileName)\n+\tiFOO.run()\n'
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/genes.gtf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/genes.gtf Tue Apr 30 14:33:21 2013 -0400
b
b'@@ -0,0 +1,27989 @@\n+I\tprotein_coding\tCDS\t335\t646\t.\t+\t0\tgene_id "YAL069W"; transcript_id "YAL069W"; exon_number "1"; gene_name "YAL069W"; p_id "P1273"; protein_id "YAL069W"; transcript_name "YAL069W"; tss_id "TSS1127";\n+I\tprotein_coding\texon\t335\t649\t.\t+\t.\tgene_id "YAL069W"; transcript_id "YAL069W"; exon_number "1"; gene_name "YAL069W"; p_id "P1273"; seqedit "false"; transcript_name "YAL069W"; tss_id "TSS1127";\n+I\tprotein_coding\tstart_codon\t335\t337\t.\t+\t0\tgene_id "YAL069W"; transcript_id "YAL069W"; exon_number "1"; gene_name "YAL069W"; p_id "P1273"; transcript_name "YAL069W"; tss_id "TSS1127";\n+I\tprotein_coding\tCDS\t538\t789\t.\t+\t0\tgene_id "YAL068W-A"; transcript_id "YAL068W-A"; exon_number "1"; gene_name "YAL068W-A"; p_id "P3278"; protein_id "YAL068W-A"; transcript_name "YAL068W-A"; tss_id "TSS5440";\n+I\tprotein_coding\texon\t538\t792\t.\t+\t.\tgene_id "YAL068W-A"; transcript_id "YAL068W-A"; exon_number "1"; gene_name "YAL068W-A"; p_id "P3278"; seqedit "false"; transcript_name "YAL068W-A"; tss_id "TSS5440";\n+I\tprotein_coding\tstart_codon\t538\t540\t.\t+\t0\tgene_id "YAL068W-A"; transcript_id "YAL068W-A"; exon_number "1"; gene_name "YAL068W-A"; p_id "P3278"; transcript_name "YAL068W-A"; tss_id "TSS5440";\n+I\tprotein_coding\tstop_codon\t647\t649\t.\t+\t0\tgene_id "YAL069W"; transcript_id "YAL069W"; exon_number "1"; gene_name "YAL069W"; p_id "P1273"; transcript_name "YAL069W"; tss_id "TSS1127";\n+I\tprotein_coding\tstop_codon\t790\t792\t.\t+\t0\tgene_id "YAL068W-A"; transcript_id "YAL068W-A"; exon_number "1"; gene_name "YAL068W-A"; p_id "P3278"; transcript_name "YAL068W-A"; tss_id "TSS5440";\n+I\tprotein_coding\texon\t1807\t2169\t.\t-\t.\tgene_id "YAL068C"; transcript_id "YAL068C"; exon_number "1"; gene_name "PAU8"; p_id "P3469"; seqedit "false"; transcript_name "PAU8"; tss_id "TSS248";\n+I\tprotein_coding\tstop_codon\t1807\t1809\t.\t-\t0\tgene_id "YAL068C"; transcript_id "YAL068C"; exon_number "1"; gene_name "PAU8"; p_id "P3469"; transcript_name "PAU8"; tss_id "TSS248";\n+I\tprotein_coding\tCDS\t1810\t2169\t.\t-\t0\tgene_id "YAL068C"; transcript_id "YAL068C"; exon_number "1"; gene_name "PAU8"; p_id "P3469"; protein_id "YAL068C"; transcript_name "PAU8"; tss_id "TSS248";\n+I\tprotein_coding\tstart_codon\t2167\t2169\t.\t-\t0\tgene_id "YAL068C"; transcript_id "YAL068C"; exon_number "1"; gene_name "PAU8"; p_id "P3469"; transcript_name "PAU8"; tss_id "TSS248";\n+I\tprotein_coding\tCDS\t2480\t2704\t.\t+\t0\tgene_id "YAL067W-A"; transcript_id "YAL067W-A"; exon_number "1"; gene_name "YAL067W-A"; p_id "P5000"; protein_id "YAL067W-A"; transcript_name "YAL067W-A"; tss_id "TSS1247";\n+I\tprotein_coding\texon\t2480\t2707\t.\t+\t.\tgene_id "YAL067W-A"; transcript_id "YAL067W-A"; exon_number "1"; gene_name "YAL067W-A"; p_id "P5000"; seqedit "false"; transcript_name "YAL067W-A"; tss_id "TSS1247";\n+I\tprotein_coding\tstart_codon\t2480\t2482\t.\t+\t0\tgene_id "YAL067W-A"; transcript_id "YAL067W-A"; exon_number "1"; gene_name "YAL067W-A"; p_id "P5000"; transcript_name "YAL067W-A"; tss_id "TSS1247";\n+I\tprotein_coding\tstop_codon\t2705\t2707\t.\t+\t0\tgene_id "YAL067W-A"; transcript_id "YAL067W-A"; exon_number "1"; gene_name "YAL067W-A"; p_id "P5000"; transcript_name "YAL067W-A"; tss_id "TSS1247";\n+I\tprotein_coding\texon\t7235\t9016\t.\t-\t.\tgene_id "YAL067C"; transcript_id "YAL067C"; exon_number "1"; gene_name "SEO1"; p_id "P6606"; seqedit "false"; transcript_name "SEO1"; tss_id "TSS5465";\n+I\tprotein_coding\tstop_codon\t7235\t7237\t.\t-\t0\tgene_id "YAL067C"; transcript_id "YAL067C"; exon_number "1"; gene_name "SEO1"; p_id "P6606"; transcript_name "SEO1"; tss_id "TSS5465";\n+I\tprotein_coding\tCDS\t7238\t9016\t.\t-\t0\tgene_id "YAL067C"; transcript_id "YAL067C"; exon_number "1"; gene_name "SEO1"; p_id "P6606"; protein_id "YAL067C"; transcript_name "SEO1"; tss_id "TSS5465";\n+I\tprotein_coding\tstart_codon\t9014\t9016\t.\t-\t0\tgene_id "YAL067C"; transcript_id "YAL067C"; exon_number "1"; gene_name "SEO1"; p_id "P6606"; transcript_name "SEO1"; tss_id "TSS5465";\n+I\tprotein_coding\tCDS\t10091\t10396\t.\t+\t0\tgene_id "YAL066W"; transcript_id "YAL066W"; exon_number "1"; gene_name "YAL066W"; p_'..b'203";\n+XVI\tprotein_coding\tstart_codon\t939922\t939924\t.\t+\t0\tgene_id "YPR201W"; transcript_id "YPR201W"; exon_number "1"; gene_name "ARR3"; p_id "P1664"; transcript_name "ARR3"; tss_id "TSS5203";\n+XVI\tprotein_coding\tstop_codon\t941134\t941136\t.\t+\t0\tgene_id "YPR201W"; transcript_id "YPR201W"; exon_number "1"; gene_name "ARR3"; p_id "P1664"; transcript_name "ARR3"; tss_id "TSS5203";\n+XVI\tprotein_coding\tCDS\t943032\t943050\t.\t+\t0\tgene_id "YPR202W"; transcript_id "YPR202W"; exon_number "1"; gene_name "YPR202W"; p_id "P3577"; protein_id "YPR202W"; transcript_name "YPR202W"; tss_id "TSS6873";\n+XVI\tprotein_coding\texon\t943032\t943050\t.\t+\t.\tgene_id "YPR202W"; transcript_id "YPR202W"; exon_number "1"; gene_name "YPR202W"; p_id "P3577"; seqedit "false"; transcript_name "YPR202W"; tss_id "TSS6873";\n+XVI\tprotein_coding\tstart_codon\t943032\t943034\t.\t+\t0\tgene_id "YPR202W"; transcript_id "YPR202W"; exon_number "1"; gene_name "YPR202W"; p_id "P3577"; transcript_name "YPR202W"; tss_id "TSS6873";\n+XVI\tprotein_coding\tCDS\t943199\t943893\t.\t+\t1\tgene_id "YPR202W"; transcript_id "YPR202W"; exon_number "2"; gene_name "YPR202W"; p_id "P3577"; protein_id "YPR202W"; transcript_name "YPR202W"; tss_id "TSS6873";\n+XVI\tprotein_coding\texon\t943199\t943896\t.\t+\t.\tgene_id "YPR202W"; transcript_id "YPR202W"; exon_number "2"; gene_name "YPR202W"; p_id "P3577"; seqedit "false"; transcript_name "YPR202W"; tss_id "TSS6873";\n+XVI\tprotein_coding\tCDS\t943880\t944185\t.\t+\t0\tgene_id "YPR203W"; transcript_id "YPR203W"; exon_number "1"; gene_name "YPR203W"; p_id "P4951"; protein_id "YPR203W"; transcript_name "YPR203W"; tss_id "TSS2481";\n+XVI\tprotein_coding\texon\t943880\t944188\t.\t+\t.\tgene_id "YPR203W"; transcript_id "YPR203W"; exon_number "1"; gene_name "YPR203W"; p_id "P4951"; seqedit "false"; transcript_name "YPR203W"; tss_id "TSS2481";\n+XVI\tprotein_coding\tstart_codon\t943880\t943882\t.\t+\t0\tgene_id "YPR203W"; transcript_id "YPR203W"; exon_number "1"; gene_name "YPR203W"; p_id "P4951"; transcript_name "YPR203W"; tss_id "TSS2481";\n+XVI\tprotein_coding\tstop_codon\t943894\t943896\t.\t+\t0\tgene_id "YPR202W"; transcript_id "YPR202W"; exon_number "2"; gene_name "YPR202W"; p_id "P3577"; transcript_name "YPR202W"; tss_id "TSS6873";\n+XVI\tprotein_coding\tstop_codon\t944186\t944188\t.\t+\t0\tgene_id "YPR203W"; transcript_id "YPR203W"; exon_number "1"; gene_name "YPR203W"; p_id "P4951"; transcript_name "YPR203W"; tss_id "TSS2481";\n+XVI\tprotein_coding\tCDS\t944603\t947698\t.\t+\t0\tgene_id "YPR204W"; transcript_id "YPR204W"; exon_number "1"; gene_name "YPR204W"; p_id "P2697"; protein_id "YPR204W"; transcript_name "YPR204W"; tss_id "TSS839";\n+XVI\tprotein_coding\texon\t944603\t947701\t.\t+\t.\tgene_id "YPR204W"; transcript_id "YPR204W"; exon_number "1"; gene_name "YPR204W"; p_id "P2697"; seqedit "false"; transcript_name "YPR204W"; tss_id "TSS839";\n+XVI\tprotein_coding\tstart_codon\t944603\t944605\t.\t+\t0\tgene_id "YPR204W"; transcript_id "YPR204W"; exon_number "1"; gene_name "YPR204W"; p_id "P2697"; transcript_name "YPR204W"; tss_id "TSS839";\n+XVI\tprotein_coding\texon\t946856\t947338\t.\t-\t.\tgene_id "YPR204C-A"; transcript_id "YPR204C-A"; exon_number "1"; gene_name "YPR204C-A"; p_id "P6072"; seqedit "false"; transcript_name "YPR204C-A"; tss_id "TSS5621";\n+XVI\tprotein_coding\tstop_codon\t946856\t946858\t.\t-\t0\tgene_id "YPR204C-A"; transcript_id "YPR204C-A"; exon_number "1"; gene_name "YPR204C-A"; p_id "P6072"; transcript_name "YPR204C-A"; tss_id "TSS5621";\n+XVI\tprotein_coding\tCDS\t946859\t947338\t.\t-\t0\tgene_id "YPR204C-A"; transcript_id "YPR204C-A"; exon_number "1"; gene_name "YPR204C-A"; p_id "P6072"; protein_id "YPR204C-A"; transcript_name "YPR204C-A"; tss_id "TSS5621";\n+XVI\tprotein_coding\tstart_codon\t947336\t947338\t.\t-\t0\tgene_id "YPR204C-A"; transcript_id "YPR204C-A"; exon_number "1"; gene_name "YPR204C-A"; p_id "P6072"; transcript_name "YPR204C-A"; tss_id "TSS5621";\n+XVI\tprotein_coding\tstop_codon\t947699\t947701\t.\t+\t0\tgene_id "YPR204W"; transcript_id "YPR204W"; exon_number "1"; gene_name "YPR204W"; p_id "P2697"; transcript_name "YPR204W"; tss_id "TSS839";\n'
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/genome.fasta
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/genome.fasta Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,92 @@
+>chr1
+GTAATCAACTACCAATTCCAGCTCTCTTTTGACAACTGGTCTTATACCCACTTCCGTACACTTGCAACCC
+TCGTAAGACAATTGCAAATGAGTAATGGCCTTCCAATTAGCATTGGACGCCCTTGCACCCACGACTCACA
+GAGATCCCTCTCTGCACCCGATTCTCGAATCCACAGTGGATTCAATTCGCTCCTCGATACAGACCTACCC
+ATGGTCCATTCCGAAGGAACTTCTACCCCTACTCAACTCCTACGGCATCCCAACATCTGGTTTGGGAACC
+TCCCACCACCCCCACGCCGCCCACAAGACAATCGAGACTTTTCTCCTTTGCACCCACTGGTCTTTCCAGG
+CCACCACTCCCAGCTCCGTCATGTTCATGAAACCCAGCAAGTTCAACAAACTTGCCCAGGTAAACTCAAA
+CTTTCGGGAGCTGAAGAACTACCGCCTGCACCCCAACGACAGCACTCGTTACCCCTTCACATCACCAGAC
+CTTCCCGTTTTCCCCACCATTTTCATGCACGACGCCCTGATGTATTACCATCCGTCCCAGATCATGGACC
+TGTTCTTRCGGAAACCAAACCTCGAACGTCTGTACGCCAGCCTCGTAGTGCCACCCGAGGCCCATCTTTC
+CGACCAATCCTTCTACCCAAAGTTGTACACGTACACGACGACCCGCCACACTCTTCACTACGTCCCAGAG
+GGTCACGAAGCCGGCAGCTACAACCAACCGTCCGACGCCCACTCTTGGCTCCGAATCAATTCCATTCGCC
+TCGGCAACCACCACCTCTCAGTGACGATCCTGGAATCCTGGGGCCCCGTCCACTCGCTCCTCATTCAACG
+AGGGACCCCCCCCCCCGACCCATCACTCCAGGCCCCTCCAACACTCATGRCCTCAGACCTCTTTCGGTCT
+TACCAAGARCCTCGCCTCGACGTGGTCTCCTTCCGAATCCCCGACGCCATCGAACTTCCACAGGCCACAT
+TCCTCCAACAACCACTTCGAGACCGACTGGTCCCCCGAGCCGTCTACAACGCCCTGTTCACCTATACCAG
+AGCAGTCCGCACACTCCGAACTTCAGACCCAGCAGCATTCGTAAGGATGCACTCCTCCAAACCGGACCAC
+GATTGGGTCACCTCGAACGCCTGGGACAACCTGCAAACCTTCGCACTTCTGAACGTTCCCCTCCGACCAA
+ACGTCGTCTACCACGTTCTTCAGAGCCCAATCGCCTCCCTAAGCCTTTACCTGAGGCAACATTGGCGCCG
+TCTTACCGCCACCGCCGTCCCTATCCTCTCCTTCCTAACCCTCCTGCAGCGCTTCCTTCCATTGCCTATA
+CCTCTAGCAGAGGTAAAATCCATCACAGCCTTCCGAAGGGAGCTTTACCGAAAGAAGGAGCCCCACCACC
+CCCTCGACGTCTTCCATCTCCAGCACCGCGTCCGCAACTACCACTCCGCGATCTCGGCCGTACGCCCGGC
+TTCCCCACCCCACCAAAAACTCCCACACGCACTCCAGAAAGCCGCATTACTGCTTCTCCGACCGATATCG
+CCCCTCTTGACAGCGACCCCGTTCTTTCGGTCCGAACAGAAGTCCATGCTCCCGAACGCCGAACTTTCAT
+GGACCCTGAAGCGCTTCGCTCTGCCCTGGCAAGCCTCCCTAGTCCTCCTCGCTCTGTCGGAATCATCCAT
+ACTGCTCCACAAACTGTTCTCCCCGCCAACCCTCCAAGCCCAACACGACACCTACCACCGACATCTCCAC
+CCTGGATCCTACAGTCTCCAGTGGGAGAGGACGCCATTGTCGATTCCGAGGACGACAGCATTTCTTCCTT
+TCACTCCCACGACTTCGACAGCCCCTCCGGACCGCTCCGAAGCCAGTCTCCCTCCCGCTTTCGCCTCCAC
+CTTCGTTCCCCGTCCACCTCCAGCGGCATCGAGCCCTGGAGCCCAGCCTCCTACGACTACGGCAGCGCCC
+CCGACACCGATTGAACCCACCCAACGCACCCATCAAAATTCTGACCTCGCGCTCGAAAGTTCAACCTCAA
+CCGAACCTCCCCCACCCCCCATCCGATCCCCCGACAYGACGCCCTCCGCCCCCGTCCTTTTCCCAGAAAT
+CAACTCACCTCGTCGTTTTCCCCCCCAACTTCCCGCCACGCCCGATCTCGAACCCGCCCACACTCCACCC
+CCTCTTTCCATCCCGCACCAAGATCCGACTGACTCAGCGGACCCCCTCATGGGCTCCCACCTTTTGCACC
+ATTCACTGCCTGCACCCCCCACCCACCCCCTTCCATCTTCACAGCTGTTACCCGCACCTTTAACGAACGA
+CCCCACTGCGATCGGCCCGGTGCTCCCCTTTGAAGAACTCCACCCACGCAGGTACCCTGAAAACACCGCC
+ACTTTCCTCACGAGGCTCCGTTCACTCCCATCAAACCATCTTCCACAACCCACCTTGAATTGTCTTCTCT
+CCGCTGTCTCCGACCAAACCAAGGTTTCCGAGGAGCACCTCTGGGAGTCCCTACAGACAATTCTCCCAGA
+CAGCCAACTCAGCAATGAAGAGACCAACACTCTCGGGCTTTCAACTGAACACCTCACTGCGTTGGCCCAC
+CTTTACAACTTCCAGGCAACCGTTTACTCCGATCGCGGCCCCATCCTCTTCGGCCCCTCCGACACCATCA
+AGAGGATAGACATCACCCACACCACCGGACCGCCATCCCACTTTTCACCCGGCAAAAGACTCCTAGGCAG
+CCAACCCTCCGCTAAGGGCCATCCCTCCGACCCACTCATCAGAGCCATGAAGTCTTTCAAAGTATCCGGC
+AACTACCTTCCCTTCTCTGAGGCCCACAACCATCCCACCTCCATCTCACACGCCAAGAACTTGATTTCAA
+ACATGAAGAATGGTTTCGACGGCGTCCTCTCCCTCCTCGACGTCTCCACGGGCCAACGAACCGGACCCRC
+CCCCAAAGAACGGATCATCCAGATAGACCACTACCTTGACACCAACCCCGGCAAAACCACTCCTGTGGTG
+CATTTCGCTGGCTTCGCTGGCTGTGGGAAGACATATCCGATCCAACAGCTCCTCAAAACCAAACTGTTCA
+AAGACTTCCGGGTCTCTTGCCCTACCACAGAACTCAGAACCGAATGGAAGACAGCGATGGAACTCCACGG
+CTCCCAGTCATGGCGCTTTAACACTTGGGAGTCTTCCATTCTCAAGTCATCCAGAATCCTGGTCATTGAT
+GAGATCTACAAAATGCCAAGAGGGTACCTCGACCTTTCCATCCTCGCCGACCCCGCCCTCGAGCTCGTCA
+TAATTCTCGGCGATCCTCTMCAGGGCGAGTACCACTCCCAATCGAAAGACTCATCCAACCACCGCCTTCC
+CTCTGAAACTCTCAGGCTGCTACCATACATCGACATGTACTGCTGGTGGAGTTACCGCATTCCTCAATGC
+ATCGCCCGACTCTTCCAAATTCACAGCTTCAATGCCTGGCAAGGAGTTATCGGGTCCGTTTCCACTCCCC
+ATGATCAATCCCCCGTCCTCACCAACAGTCATGCCTCATCTCTTACCTTCAACAGCCTGGGATATCGCTC
+CTGCACGATCAGCTCTAGCCAAGGCCTCACATTCTGCGACCCCGCCATAATCGTCCTGGACAACTACACC
+AAGTGGCTCTCCTCGGCTAACGGCCTCGTCGCCCTCACTCGATCCAGATCAGGCGTCCAATTCATGKGCC
+CCTCTTCCTACGTCGGGGGAACCAACGGCTCTTCCGCCATGTTTTCCGACGCCTTCAACAACAGCCTCAT
+CATCATGGATCGCTACTTCCCATCCCTGTTCCCGCAACTCAAGCTCATCACCTCCCCCCTCACAACTCGC
+GGCCCCAAACTCAACGGGGCCACCCCCAGCGCATCCCCCACCCACCGTTCGCCAAACTTCCACCTTCCCC
+CACACATTCCGCTCTCCTATGATCGTGATTTTGTTACGGTGAACCCAACTCTCCCCGACCAAGGACCCGA
+AACAAGACTCGACACCCACTTTCTCCCACCGTCTCGGCTCCCTCTCCATTTCGATCTCCCACCGGCTATC
+ACCCCACCCCCGGTTTCCACAAGCGTCGACCCGCCACAAGCGAAAGCTAGCCCCGTCTACCCAGGCGAGT
+TCTTCGATTCTCTGGCGGCGTTCTTCTTACCAGCACACGACCCATCAACAAGGGAAATACTCCACAAAGA
+TCAATCTAGCAACCAGTTCCCCTGGTTCGACCGACCCTTCAGCCTGTCCTGCCAGCCCTCAAGTCTGATT
+TCCGCCAAGCATGCACCCAACCATGATCCGACCCTTCTACCGGCCTCCATCAACAAACGCTTGCGATTCA
+GACCCAGTGACTCACCGCACCAAATCACCGCGGACGACGTGGTCCTAGGCCTGCAACTCTTTCACTCTCT
+TTGTCGCGCCTACTCACGTCAACCCAACAGCACCGTTCCATTCAACCCTGAACTTTTCGCAGAATGCATC
+TCTCTGAATGAGTACGCACAGCTCAGTTCCAAAACCCAATCCACCATAGTGGCCAACGCTTCACGCTCCG
+ACCCAGACTGGCGACACACCACCGTCAAGATCTTCGCGAAAGCCCAACACAAAGTCAACGACGGCTCCAT
+CTTCGGCTCGTGGAAAGCCTGCCAGACCCTCGCACTCATGCACGACTACGTGATTCTGGTTCTTGGACCC
+GTCAAGAAATACCAGAGAATCTTCGACAACGCTGACCGGCCACCTAACATCTACTCACACTGCGGCAAGA
+CACCCAACCAACTTCGAGATTGGTGCCAGGAACATCTCACTCATTCCACCCCCAAAATCGCAAACGACTA
+CACCGCTTTCGACCAGTCCCAGCATGGAGAATCCGTGGTCCTTGAAGCCCTCAAAATGAAGAGACTGAAC
+ATTCCRAGCCATCTGATTCAGCTCCACGTCCACCTCAAGACCAACGTCTCCACCCAGTTCGGCCCCCTCA
+CATGCATGCGCCTAACCGGGGAACCCGGAACTTACGACGACAACACTGACTATAACCTCGCAGTCATCTA
+CTCCCAGTATGACGTCGGTTCCTGCCCCATCATGGTTTCTGGCGACGACTCACTCATAGACCACCCCCTT
+CCCACTCGCCACGACTGGCCATCCGTTCTCAAACGCCTCCACCTCCGCTTCAAACTTGAACTCACCTCTC
+ACCCCCTCTTCTGTGGCTACTACGTCGGTCCAGCCGGCTGCATCCGCAACCCCCTGGCCCTTTTCTGCAA
+GCTCATGATCGCCGTGGACGACGACGCCCTCGACGACCGACGACTCAGCTACCTCACCGAGTTCACCACC
+GGACACCTCCTTGGCGAATCACTGTGGCACCTCCTCCCTGAAACCCATGTTCAGTATCAGTCAGCCTGCT
+TTGACTTCTTCTGCAGGCGGTGCCCAAGACACGAGAAAATGCTCCTCGACGACTCCACACCCGCACTCAG
+CCTCCTCGAACGAATCACTTCTTCGCCGAGGTGGCTCACCAAAAATGCCATGTACCTCCTCCCTGCCAAG
+CTACGACTGGCCATCACCTCTCTATCTCAAACGCAGTCCTTCCCAGAATCCATCGAGGTTTCCCACGCTG
+AGTCTGAATTGCTTCACTACGTCCAATAGCAATCAGCCCCAACATGGAAATCGACAAAGAACTCGCCCCC
+CAAGACCGCACCGTCACCGTCGCCACCGTCCTACCAGCTGTCCCCGGCCCATCACCTCTCACCATCAAAC
+AACCGTTYCAGTCTGAAGTTCTATTTGCTGGAACCAAAGATGCCGAGGCTTCTCTCACCATCGCCAACAT
+CGACAGCGTTTCCACCCTCACCACCTTCTACCGTCATGCATCTCTGGAATCACTCTGGGTCACTATCCAT
+CCCACCTTGCAAGCCCCAGCTTTCCCGACCACGGTCGGTGTCTGCTGGGTACCCGCCAATTCTCCAGTCA
+CTCCCGCCCAAATCACCAAGACCTATGGTGGCCAGATCTTCTGCATTGGCGGCGCCATCAACACCCTCTC
+ACCTCTCATCGTCAAGTGCCCACTTGAAATGATGAACCCCCGGGTCAAGGATTCGATTCAGTACCTTGAC
+TCGCCCAAACTCCTCATCTCCATCACCGCTCAACCCACCGCTCCCCCCGCATCGACCTGCATAATAACTG
+TATCAGGAACTCTCTCGATGCACTCTCCGCTCATCACGGACACTTCCACCTAAGTTCTCGATCTTTAAAA
+TCGTTAGCTCGCCAGTTAGCGAGGTCTGTCCCCACACGACAGATAATCGGGTGCAACTCCCGCCCCTCTT
+CCGAGGGTCATCGGAACC
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/gf.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/gf.py Tue Apr 30 14:33:21 2013 -0400
[
b'@@ -0,0 +1,231 @@\n+#! /usr/bin/env python\n+#\n+# Copyright INRA-URGI 2009-2011\n+# \n+# This software is governed by the CeCILL license under French law and\n+# abiding by the rules of distribution of free software. You can use,\n+# modify and/ or redistribute the software under the terms of the CeCILL\n+# license as circulated by CEA, CNRS and INRIA at the following URL\n+# "http://www.cecill.info".\n+# \n+# As a counterpart to the access to the source code and rights to copy,\n+# modify and redistribute granted by the license, users are provided only\n+# with a limited warranty and the software\'s author, the holder of the\n+# economic rights, and the successive licensors have only limited\n+# liability.\n+# \n+# In this respect, the user\'s attention is drawn to the risks associated\n+# with loading, using, modifying and/or developing or reproducing the\n+# software by the user in light of its specific status of free software,\n+# that may mean that it is complicated to manipulate, and that also\n+# therefore means that it is reserved for developers and experienced\n+# professionals having in-depth computer knowledge. Users are therefore\n+# encouraged to load and test the software\'s suitability as regards their\n+# requirements in conditions enabling the security of their systems and/or\n+# data to be ensured and, more generally, to use and operate it in the\n+# same conditions as regards security.\n+# \n+# The fact that you are presently reading this means that you have had\n+# knowledge of the CeCILL license and that you accept its terms.\n+#\n+from optparse import OptionParser\n+from commons.core.parsing.ParserChooser import ParserChooser\n+from commons.core.writer.TranscriptWriter import TranscriptWriter\n+from SMART.Java.Python.structure.Transcript import Transcript\n+from SMART.Java.Python.structure.Interval import Interval\n+from SMART.Java.Python.misc.Progress import Progress\n+\n+QUERY        = 0\n+REFERENCE    = 1\n+INPUTS       = (QUERY, REFERENCE)\n+STRANDS      = (-1, 1)\n+TAG_DISTANCE = "distance_"\n+TAG_SENSE    = "_sense"\n+TAG_REGION   = "_region"\n+TAGS_REGION  = {-1: "_upstream", 0: "", 1: "_downstream"}\n+TAGS_RREGION = {-1: "upstream", 0: "overlapping", 1: "downstream"}\n+TAGS_SENSE   = {-1: "antisense", 0: "", 1: "colinear"}\n+STRANDSTOSTR = {-1: "(-)", 0: "", 1: "(+)"}\n+\n+\n+def getOrderKey(transcript, direction):\n+    if direction == 1:\n+        return transcript.getEnd()\n+    return - transcript.getStart()\n+\n+def isInGoodRegion(transcriptRef, transcriptQuery, direction):\n+    if direction == 1:\n+        return transcriptQuery.getEnd() > transcriptRef.getEnd()\n+    return transcriptQuery.getStart() < transcriptRef.getStart()\n+\n+\n+class GetFlanking(object):\n+\n+    def __init__(self, verbosity):\n+        self.verbosity   = verbosity\n+        self.transcripts = dict([id, {}] for id in INPUTS)\n+        self.directions  = []\n+        self.noOverlap   = False\n+        self.colinear    = False\n+        self.antisense   = False\n+        self.distance    = None\n+        self.minDistance = None\n+        self.maxDistance = None\n+        self.tagName     = "flanking"\n+\n+    def setInputFile(self, fileName, format, id):\n+        chooser = ParserChooser(self.verbosity)\n+        chooser.findFormat(format)\n+        parser = chooser.getParser(fileName)\n+        for transcript in parser.getIterator():\n+            chromosome = transcript.getChromosome()\n+            if chromosome not in self.transcripts[id]:\n+                self.transcripts[id][chromosome] = []\n+            self.transcripts[id][chromosome].append(transcript)\n+\n+    def setOutputFile(self, fileName):\n+        self.writer = TranscriptWriter(fileName, "gff3", self.verbosity)\n+\n+    def addUpstreamDirection(self, upstream):\n+        if upstream:\n+            self.directions.append(-1)\n+\n+    def addDownstreamDirection(self, downstream):\n+        if downstream:\n+            self.directions.append(1)\n+\n+    def setColinear(self, colinear):\n+        self.colinear = colinear\n+\n+    def setAntisense(self,'..b'    progress.inc()\n+        for transcript in sorted(list(outputs), key = lambda flanking: (flanking.getChromosome(), flanking.getStart(), flanking.getEnd())):\n+            self.writer.addTranscript(transcript)\n+        self.writer.close()\n+        progress.done()\n+\n+    def run(self):\n+        self.flankings = {}\n+        for direction in STRANDS:\n+            self.getFlanking(direction)\n+        self.write()\n+\n+if __name__ == "__main__":\n+    \n+    description = "Get Flanking v1.0.1: Get the flanking regions of a set of reference. [Category: Data Selection]"\n+\n+    parser = OptionParser(description = description)\n+    parser.add_option("-i", "--input1",      dest="inputFileName1", action="store",                          type="string", help="query input file [compulsory] [format: file in transcript format given by -f]")\n+    parser.add_option("-f", "--format1",     dest="format1",        action="store",                          type="string", help="format of previous file [compulsory] [format: transcript file format]")\n+    parser.add_option("-j", "--input2",      dest="inputFileName2", action="store",                          type="string", help="reference input file [compulsory] [format: file in transcript format given by -g]")\n+    parser.add_option("-g", "--format2",     dest="format2",        action="store",                          type="string", help="format of previous file [compulsory] [format: transcript file format]")\n+    parser.add_option("-5", "--upstream",    dest="upstream",       action="store_true", default=False,                     help="output upstream elements [format: boolean] [default: False]")\n+    parser.add_option("-3", "--downstream",  dest="downstream",     action="store_true", default=False,                     help="output downstream elements [format: boolean] [default: False]")\n+    parser.add_option("-c", "--colinear",    dest="colinear",       action="store_true", default=False,                     help="find first colinear element [format: boolean] [default: False]")\n+    parser.add_option("-a", "--antisense",   dest="antisense",      action="store_true", default=False,                     help="find first anti-sense element [format: boolean] [default: False]")\n+    parser.add_option("-e", "--noOverlap",   dest="noOverlap",      action="store_true", default=False,                     help="do not consider elements which are overlapping reference elements [format: boolean] [default: False]")\n+    parser.add_option("-d", "--minDistance", dest="minDistance",    action="store",      default=None,       type="int",    help="minimum distance between 2 elements [format: int]")\n+    parser.add_option("-D", "--maxDistance", dest="maxDistance",    action="store",      default=None,       type="int",    help="maximum distance between 2 elements [format: int]")\n+    parser.add_option("-t", "--tag",         dest="tagName",        action="store",      default="flanking", type="string", help="name of the new tag [format: string] [default: flanking]")\n+    parser.add_option("-o", "--output",      dest="outputFileName", action="store",                          type="string", help="output file [format: output file in GFF3 format]")\n+    parser.add_option("-v", "--verbosity",   dest="verbosity",      action="store",      default=1,          type="int",    help="trace level [format: int]")\n+    (options, args) = parser.parse_args()\n+\n+    gf = GetFlanking(options.verbosity)\n+    gf.setInputFile(options.inputFileName1, options.format1, QUERY)\n+    gf.setInputFile(options.inputFileName2, options.format2, REFERENCE)\n+    gf.setOutputFile(options.outputFileName)\n+    gf.addUpstreamDirection(options.upstream)\n+    gf.addDownstreamDirection(options.downstream)\n+    gf.setColinear(options.colinear)\n+    gf.setAntisense(options.antisense)\n+    gf.setNoOverlap(options.noOverlap)\n+    gf.setMinDistance(options.minDistance)\n+    gf.setMaxDistance(options.maxDistance)\n+    gf.setNewTagName(options.tagName)\n+    gf.run()\n'
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/misc/MultipleRPlotter.pyc
b
Binary file SMART/Java/Python/misc/MultipleRPlotter.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/misc/Progress.pyc
b
Binary file SMART/Java/Python/misc/Progress.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/misc/RPlotter.py
--- a/SMART/Java/Python/misc/RPlotter.py Mon Apr 29 03:45:52 2013 -0400
+++ b/SMART/Java/Python/misc/RPlotter.py Tue Apr 30 14:33:21 2013 -0400
b
@@ -639,7 +639,6 @@
         if self.minimumY != None:
             yMin = self.minimumY
         yMax = self.getNewYMaxWithTopMargin()
-        yMax += min(1, yMax / 100.0)
         if self.maximumY != None:
             yMax = self.maximumY
 
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/misc/RPlotter.pyc
b
Binary file SMART/Java/Python/misc/RPlotter.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/misc/UnlimitedProgress.pyc
b
Binary file SMART/Java/Python/misc/UnlimitedProgress.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/misc/Utils.pyc
b
Binary file SMART/Java/Python/misc/Utils.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/misc/__init__.pyc
b
Binary file SMART/Java/Python/misc/__init__.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/mySql/MySqlConnection.pyc
b
Binary file SMART/Java/Python/mySql/MySqlConnection.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/mySql/MySqlExonTable.pyc
b
Binary file SMART/Java/Python/mySql/MySqlExonTable.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/mySql/MySqlQuery.pyc
b
Binary file SMART/Java/Python/mySql/MySqlQuery.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/mySql/MySqlTable.pyc
b
Binary file SMART/Java/Python/mySql/MySqlTable.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/mySql/MySqlTranscriptTable.pyc
b
Binary file SMART/Java/Python/mySql/MySqlTranscriptTable.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/mySql/__init__.pyc
b
Binary file SMART/Java/Python/mySql/__init__.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/ncList/.NCList.py.swp
b
Binary file SMART/Java/Python/ncList/.NCList.py.swp has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/ncList/.NCListCursor.py.swp
b
Binary file SMART/Java/Python/ncList/.NCListCursor.py.swp has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/ncList/Benchmark.py
--- a/SMART/Java/Python/ncList/Benchmark.py Mon Apr 29 03:45:52 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,357 +0,0 @@\n-import os, os.path, random, glob, subprocess, threading, time, resource\n-from optparse import OptionParser\n-from SMART.Java.Python.misc.Progress import *\n-from SMART.Java.Python.getRandomRegions import RandomRegionsGenerator\n-from commons.core.writer.TranscriptWriter import TranscriptWriter\n-from SMART.Java.Python.structure.Transcript import Transcript\n-from commons.core.parsing.GffParser import GffParser\n-\n-#TYPES = ("bin", "has", "seg", "fj", "nc", "new")\n-TYPES = ("new", )\n-\n-class RunCmd(threading.Thread):\n-\tdef __init__(self, cmd, out, err, time, memory):\n-\t\tthreading.Thread.__init__(self)\n-\t\tself._cmd    = cmd\n-\t\tself._out    = out\n-\t\tself._err    = err\n-\t\tself._time   = time\n-\t\tself._memory = memory\n-\t\tself._id\t = os.getpid()\n-\t\tself._mem    = 0.0\n-\t\tself._outputFileName = "tmp_%d.out" % (self._id)\n-\n-\tdef run(self):\n-\t\tself._p = subprocess.Popen(self._cmd, stdout = self._out, stderr = self._err, shell = True)\n-\t\t#self._p.wait()\n-\n-\tdef _runShellCommand(self, command):\n-\t\tp = subprocess.call("%s > %s" % (command, self._outputFileName), shell=True)\n-\t\thandle = open(self._outputFileName)\n-\t\tdata   = [line.split() for line in handle.readlines()[1:] if line]\n-\t\thandle.close()\n-\t\tos.remove(self._outputFileName)\n-\t\treturn data\n-\n-\tdef _getPid(self):\n-\t\tself._pid\t  = None\n-\t\tcpt           = 1\n-\t\twhile True:\n-\t\t\tcommandsFound = []\n-\t\t\tfor line in self._runShellCommand("ps -o pid,cmd"):\n-\t\t\t\tif line[1:] == self._cmd.split(" "):\n-\t\t\t\t\tself._pid = int(line[0])\n-\t\t\t\tcommandsFound.append(" ".join(line[1:]))\n-\t\t\tif self._pid != None:\n-\t\t\t\treturn True\n-\t\t\ttime.sleep(1)\n-\t\t\tif cpt % 100 == 0:\n-\t\t\t\tprint "pid of \'%s\' not found after %d seconds. Found: %s" % (self._cmd, cpt, " --- ".join(commandsFound))\n-\t\t\tcpt += 1\n-\t\t\tif cpt > 300:\n-\t\t\t\treturn False\n-\n-\tdef _fetchMemory(self):\n-\t\tlines = self._runShellCommand("ps u -p %d" % (self._pid))\n-\t\tfor line in lines:\n-\t\t\tself._mem = max(self._mem, float(line[3]))\n-\t\t\treturn self._mem >= self._memory\n-\t\t#print "Cannot find the memory of the current PID (%d) in: %s" % (self._pid, " --- ".join([" ".join(line) for line in lines]))\n-\t\treturn False\n-\t\n-\tdef getMemory(self):\n-\t\treturn self._mem\n-\n-\tdef _abort(self):\n-\t\ttry:\n-\t\t\tself._p.terminate()\n-\t\texcept Exception:\n-\t\t\tpass\n-\t\tself._killSubThreads()\n-\t\n-\tdef _killSubThreads(self):\n-\t\tfor line in self._runShellCommand("ps --ppid %d -o pid" % (self._pid)):\n-\t\t\tself._runShellCommand("kill %s" % (line[0]))\n-\t\tself._runShellCommand("kill %s" % (self._pid))\n-\n-\tdef go(self):\n-\t\tstartTime = time.time()\n-\t\tself.run()\n-\t\t#self.start()\n-\t\twhile not self._getPid():\n-\t\t\t#self.start()\n-\t\t\tself.run()\n-\t\twhile True:\n-\t\t\tif self._time != None and time.time() - startTime > self._time:\n-\t\t\t\tprint "\\nCommand \'%s\' did not finish in time. Aborting it." % (self._cmd)\n-\t\t\t\tself._abort()\n-\t\t\t\tbreak\n-\t\t\tif self._memory != None and self._fetchMemory():\n-\t\t\t\tprint "\\nCommand \'%s\' required too much memory (%f). Aborting it." % (self._cmd, self._mem)\n-\t\t\t\tself._abort()\n-\t\t\t\tbreak\n-\t\t\t#self.join(0.1)\n-\t\t\ttime.sleep(0.1)\n-\t\t\t#if not self.isAlive():\n-\t\t\tif self._p.poll() != None:\n-\t\t\t\treturn True\n-\t\treturn False\n-\n-\n-class DataStructure(object):\n-\tdef __init__(self):\n-\t\tself._structure = {}\n-\n-\tdef addData(self, data):\n-\t\tif data._nbRefs not in self._structure:\n-\t\t\tself._structure[data._nbRefs] = {}\n-\t\tif data._nbQueries not in self._structure[data._nbRefs]:\n-\t\t\tself._structure[data._nbRefs][data._nbQueries] = {}\n-\t\tif data._genomeSize not in self._structure[data._nbRefs][data._nbQueries]:\n-\t\t\tself._structure[data._nbRefs][data._nbQueries][data._genomeSize] = {}\n-\t\tif data._type not in self._structure[data._nbRefs][data._nbQueries][data._genomeSize]:\n-\t\t\tself._structure[data._nbRefs][data._nbQueries][data._genomeSize][data._type] = []\n-\t\tself._structure[data._nbRefs][data._nbQueries][data._genomeSize][data._type].append(data._group)\n-\n-\tdef export(self):\n-\t\toutputString = "#refs\\t#queries\\tgenome size\\ttype\\t# written\\t# overlaps\\tbuild t.\\trun t.\\tmem\\n"\n-\t\tf'..b' nbReferences, nbQueries, "NA", "NA", genomeSize)\n-\t\t\t\t\t\t\telse:\n-\t\t\t\t\t\t\t\tdata[type] = self._parseTrace(type, fileName, genomeSize)\n-\t\t\t\t\t\t\t\tself._structure.addData(data[type])\n-\t\t\t\t\t\t\t\tos.remove(fileName)\n-\t\t\t\t\t\t\tself._cleanTmpFiles()\n-\t\t\t\t\t\tself._cleanTmpFiles(True)\n-\t\t\t\t\t\tfirstType = TYPES[0]\n-\t\t\t\t\t\tfor type in TYPES[1:]:\n-\t\t\t\t\t\t\tif not data[firstType].checkConsistency(data[type]):\n-\t\t\t\t\t\t\t\traise Exception("Outputs are not consistent.\\n  # outputs: %d vs %d.\\n  # overlaps: %d vs %d.\\n  %s: %f + %f; %s: %f + %f.\\n  Files are %s and %s." % (data[firstType]._group._nbOutputs, data[type]._group._nbOutputs, data[firstType]._group._nbOverlaps, data[type]._group._nbOverlaps, firstType, data[firstType]._group._buildTime, data[firstType]._group._runTime, data[firstType]._group._mem, type, data[type]._group._buildTime, data[type]._group._runTime, data[type]._group._mem, refFileName, queryFileName))\n-\t\t\t\t\t\tfor fileName in (queryFileName, refFileName):\n-\t\t\t\t\t\t\tif os.path.exists(fileName):\n-\t\t\t\t\t\t\t\tos.remove(fileName)\n-\t\t\t\t\t\tprogress.inc()\n-\t\tprogress.done()\n-\t\thandle = open(self._outputFileName, "w")\n-\t\thandle.write(self._structure.export())\n-\t\thandle.close()\n-\n-\n-\n-if __name__ == "__main__":\n-\t\n-\tdescription = "Benchmark v1.0.2: Compare NC-List with other tools. Only work under Linux. [Category: Other]"\n-\tparser = OptionParser(description = description)\n-\tparser.add_option("-r", "--nbReferences", dest="nbReferences",   action="store", default=None,   type="string", help="number of references (list of integers separated by commas) [compulsory] [format: string]")\n-\tparser.add_option("-q", "--nbQueries",    dest="nbQueries",\t\t action="store", default=None,   type="string", help="number of queries as a factor of the number of references (list of floats separated by commas) [compulsory] [format: string]")\n-\tparser.add_option("-R", "--nbReplicates", dest="nbReplicates",   action="store", default=None,   type="int",\thelp="number of replicates [compulsory] [format: int]")\n-\tparser.add_option("-s", "--genomeSizes",  dest="genomeSizes",    action="store", default=None,   type="string", help="genome size as a factor of the number of references (list of floats separated by commas) [compulsory] [format: string]")\n-\tparser.add_option("-c", "--chromosome",   dest="chromosome",\t action="store", default="chr1", type="string", help="name of the chromosome [default: chr1] [format: string]")\n-\tparser.add_option("-z", "--minSize",      dest="minSize",        action="store", default=None,   type="int",\thelp="minimum size of the reads [compulsory] [format: int]")\n-\tparser.add_option("-Z", "--maxSize",      dest="maxSize",        action="store", default=None,   type="int",\thelp="maximum size of the reads [compulsory] [format: int]")\n-\tparser.add_option("-o", "--output",       dest="outputFileName", action="store",\t\t\t\t type="string", help="output file [compulsory] [format: output file in TXT format]")\n-\tparser.add_option("-t", "--time",         dest="time",           action="store", default=None,   type="int",\thelp="maximum time to wait (in seconds) [default: None] [format: int]")\n-\tparser.add_option("-m", "--memory",\t      dest="memory",\t\t action="store", default=None,   type="float",\thelp="maximum memory usage (in %) [default: None] [format: float]")\n-\tparser.add_option("-v", "--verbosity",    dest="verbosity",      action="store", default=1,\t     type="int",\thelp="trace level [format: int]")\n-\t(options, args) = parser.parse_args()\n-\n-\tbenchmark = Benchmark(options.verbosity)\n-\tbenchmark.setNbReferences(map(int, options.nbReferences.split(",")))\n-\tbenchmark.setNbQueries(map(float, options.nbQueries.split(",")))\n-\tbenchmark.setGenomeSizes(map(float, options.genomeSizes.split(",")))\n-\tbenchmark.setNbReplicates(options.nbReplicates)\n-\tbenchmark.setChromosomeName(options.chromosome)\n-\tbenchmark.setSizes(options.minSize, options.maxSize)\n-\tbenchmark.setLimits(options.time, options.memory)\n-\tbenchmark.setOutputFileName(options.outputFileName)\n-\tbenchmark.run()\n-\n'
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/ncList/ConvertToNCList.pyc
b
Binary file SMART/Java/Python/ncList/ConvertToNCList.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/ncList/FileSorter.pyc
b
Binary file SMART/Java/Python/ncList/FileSorter.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/ncList/NCIndex.pyc
b
Binary file SMART/Java/Python/ncList/NCIndex.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/ncList/NCList.pyc
b
Binary file SMART/Java/Python/ncList/NCList.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/ncList/NCListCursor.pyc
b
Binary file SMART/Java/Python/ncList/NCListCursor.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/ncList/NCListFilePickle.pyc
b
Binary file SMART/Java/Python/ncList/NCListFilePickle.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/ncList/NCListHandler.pyc
b
Binary file SMART/Java/Python/ncList/NCListHandler.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/ncList/NCListMerger.pyc
b
Binary file SMART/Java/Python/ncList/NCListMerger.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/ncList/NCListParser.pyc
b
Binary file SMART/Java/Python/ncList/NCListParser.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/ncList/__init__.pyc
b
Binary file SMART/Java/Python/ncList/__init__.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/re_filter_ratio_5_NbReads_100_samples_all_norm_Window100overlap50.gff3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/re_filter_ratio_5_NbReads_100_samples_all_norm_Window100overlap50.gff3 Tue Apr 30 14:33:21 2013 -0400
b
b'@@ -0,0 +1,296 @@\n+chr2\tS-MART\tsample9Unique_transcript\t11739884\t11740222\t21\t-\t.\tnbOverlaps1=11091;nbOverlaps2=2.71789;nbOverlaps3=6262.63;nbOverlaps4=5519.92;nbOverlaps5=8514.14;nbOverlaps6=6150.58;nbOverlaps7=33.3514;nbOverlaps8=1542.36;nbOverlaps9=501.044;nbOverlaps10=462.834;ID=HWUSI-EAS454_0005:4:6:8871:3706#0/1;overlapsWith=HWUSI-EAS454_0005:5:83:18620:7295#0/1--HWUSI-EAS454_0005:5:114:4513:11369#0--HWUSI-EAS454_0005:5:2:1;Name=HWUSI-EAS454_0005:4:6:8871:3706#0/1--HWUSI-EAS454_0005:3:78:19264:12888#0/1--HWUSI-EAS454_0001:4:90:;nbElements=57149.000000;nbE1/nbE2=2983.143665;filter=S1>S2,\n+chr2\tS-MART\tsample5Unique_transcript\t2731028\t2731271\t24\t-\t.\tnbOverlaps1=690;nbOverlaps2=6.11525;nbOverlaps3=491.553;nbOverlaps4=463.775;nbOverlaps5=535.969;nbOverlaps6=325.238;nbOverlaps7=7.13514;nbOverlaps8=33.0133;nbOverlaps9=84.0599;nbOverlaps10=35.1854;ID=HWUSI-EAS454_0001:7:35:2542:19410#0/1;overlapsWith=HWUSI-EAS454_0005:5:115:16901:16071#0/1--HWUSI-EAS454_0005:5:33:3771:9306#0/1--HWUSI-EAS454_0005:5:3;Name=HWUSI-EAS454_0001:7:35:2542:19410#0/1--HWUSI-EAS454_0005:1:68:6471:6188#0/1--HWUSI-EAS454_0001:4:74:;nbElements=3755.000000;nbE1/nbE2=96.974808;filter=S1>S2,\n+chr5\tS-MART\tsample8Unique_transcript\t15253504\t15253638\t19\t+\t.\tnbOverlaps1=274;nbOverlaps2=16.3073;nbOverlaps3=82.8734;nbOverlaps4=76.5867;nbOverlaps5=104.667;nbOverlaps6=46.3123;nbOverlaps7=0.324324;nbOverlaps8=22.838;nbOverlaps9=14.8226;nbOverlaps10=10.0132;ID=HWUSI-EAS454_0005:3:31:2846:9089#0;overlapsWith=HWUSI-EAS454_0005:5:97:8048:11119#0/1--HWUSI-EAS454_0005:5:97:4678:4418#0--HWUSI-EAS454_0005:5:36:17;Name=HWUSI-EAS454_0005:3:31:2846:9089#0--HWUSI-EAS454_0001:4:68:6299:4556#0/1--HWUSI-EAS454_0005:5:79:101;nbElements=913.000000;nbE1/nbE2=15.831470;filter=S1>S2,\n+chr4\tS-MART\tsample2Unique_transcript\t9401695\t9401791\t23\t+\t.\tnbOverlaps1=1;nbOverlaps2=748.099;nbOverlaps3=1.62497;nbOverlaps4=1.41827;nbOverlaps5=0.902304;nbOverlaps6=1.57883;nbOverlaps7=0;nbOverlaps8=2.03507;nbOverlaps9=0.195035;nbOverlaps10=0;ID=HWUSI-EAS454_0001:3:88:5184:17397#0/1;overlapsWith=HWUSI-EAS454_0005:4:109:7472:8125#0/1;Name=HWUSI-EAS454_0001:3:88:5184:17397#0/1--HWUSI-EAS454_0001:3:18:15316:12317#0/1--HWUSI-EAS454_0001:3:9;nbElements=1119.000000;nbE2/nbE1=374.049500;filter=S2>S1,\n+chr1\tS-MART\tsample1Unique_transcript\t11592768\t11592855\t24\t+\t.\tnbOverlaps1=377;nbOverlaps2=77.4598;nbOverlaps3=8.93733;nbOverlaps4=8.50964;nbOverlaps5=11.73;nbOverlaps6=4.21021;nbOverlaps7=0.0540541;nbOverlaps8=0.226119;nbOverlaps9=0;nbOverlaps10=0.417218;ID=HWUSI-EAS454_0005:1:59:8362:4670#0;overlapsWith=HWUSI-EAS454_0005:5:85:4327:6835#0--HWUSI-EAS454_0005:5:76:14344:4377#0;Name=HWUSI-EAS454_0005:1:59:8362:4670#0--HWUSI-EAS454_0001:3:24:2476:19461#0--HWUSI-EAS454_0001:3:85:9481;nbElements=534.000000;nbE1/nbE3=37.937756;filter=S1>S3,\n+chr5\tS-MART\tsample7Unique_transcript\t18274485\t18274638\t22\t+\t.\tnbOverlaps1=274;nbOverlaps2=50.9604;nbOverlaps3=219.371;nbOverlaps4=43.9665;nbOverlaps5=177.754;nbOverlaps6=68.4158;nbOverlaps7=0.918919;nbOverlaps8=11.532;nbOverlaps9=2.34041;nbOverlaps10=0.973509;ID=HWUSI-EAS454_0013_FC:1:64:3764:13895#0;overlapsWith=HWUSI-EAS454_0005:5:113:1828:9830#0/1--HWUSI-EAS454_0005:5:12:13473:6177#0/1--HWUSI-EAS454_0005:5:42;Name=HWUSI-EAS454_0013_FC:1:64:3764:13895#0--HWUSI-EAS454_0001:6:35:1740:1405#0/1--HWUSI-EAS454_0001:7:43;nbElements=1063.000000;nbE1/nbE2=5.273247;filter=S1>S2,\n+chr5\tS-MART\tsample6Unique_transcript\t16212511\t16212648\t24\t+\t.\tnbOverlaps1=56;nbOverlaps2=59.1141;nbOverlaps3=344.493;nbOverlaps4=25.5289;nbOverlaps5=51.4313;nbOverlaps6=165.777;nbOverlaps7=1.2973;nbOverlaps8=9.04474;nbOverlaps9=0.390069;nbOverlaps10=0.139073;ID=HWUSI-EAS454_0004:5:73:8987:9418#0/1;overlapsWith=HWUSI-EAS454_0005:5:111:18220:9874#0/1;Name=HWUSI-EAS454_0004:5:73:8987:9418#0/1--HWUSI-EAS454_0004:5:73:2669:12596#0/1--HWUSI-EAS454_0004:5:60:;nbElements=1024.000000;nbE3/nbE1=6.043737;filter=S3>S1\n+chr4\tS-MART\tsample9Unique_transcript\t10266529\t10266697\t23\t-\t.\tnbOverlaps1=469;nbOverlaps2=679.472;nbOverlaps3=38.1'..b'WUSI-EAS454_0005:3:69:12301:18998#0/1--HWUSI-EAS454_0004:5:51;nbElements=1166.000000;nbE1/nbE2=5.771658;filter=S1>S2,\n+chr1\tS-MART\tsample3Unique_transcript\t26111387\t26111467\t23\t-\t.\tnbOverlaps1=534;nbOverlaps2=36.012;nbOverlaps3=140.56;nbOverlaps4=87.9329;nbOverlaps5=37.8968;nbOverlaps6=169.461;nbOverlaps7=0.324324;nbOverlaps8=9.94922;nbOverlaps9=1.75531;nbOverlaps10=0.417218;ID=HWUSI-EAS454_0001:4:27:10831:18663#0/1;overlapsWith=HWUSI-EAS454_0005:5:110:16902:16613#0/1--HWUSI-EAS454_0005:5:80:7345:3357#0/1--HWUSI-EAS454_0005:5:3;Name=HWUSI-EAS454_0001:4:27:10831:18663#0/1--HWUSI-EAS454_0005:1:12:16643:14153#0--HWUSI-EAS454_0005:3:10;nbElements=1248.000000;nbE1/nbE2=14.427753;filter=S1>S2,\n+chr1\tS-MART\tsample2Unique_transcript\t3855600\t3855715\t23\t+\t.\tnbOverlaps1=166;nbOverlaps2=474.951;nbOverlaps3=6.49988;nbOverlaps4=7.09136;nbOverlaps5=5.41382;nbOverlaps6=22.6299;nbOverlaps7=0;nbOverlaps8=37.3096;nbOverlaps9=0.195035;nbOverlaps10=0.139073;ID=HWUSI-EAS454_0001:3:31:13200:14532#0;overlapsWith=HWUSI-EAS454_0005:5:71:9926:19481#0;Name=HWUSI-EAS454_0001:3:31:13200:14532#0--HWUSI-EAS454_0001:3:13:5219:7425#0--HWUSI-EAS454_0001:6:68:106;nbElements=1094.000000;nbE1/nbE3=22.133687;filter=S1>S3,\n+chr1\tS-MART\tsample4Unique_transcript\t21609487\t21609537\t23\t-\t.\tnbOverlaps1=122;nbOverlaps2=20.3842;nbOverlaps3=23.562;nbOverlaps4=56.7309;nbOverlaps5=17.1438;nbOverlaps6=15.262;nbOverlaps7=0.216216;nbOverlaps8=3.39178;nbOverlaps9=3.51062;nbOverlaps10=0.834436;ID=HWUSI-EAS454_0001:7:58:122:1727#0;overlapsWith=HWUSI-EAS454_0005:5:31:18659:14130#0--HWUSI-EAS454_0005:5:75:15252:4379#0--HWUSI-EAS454_0005:5:74:14;Name=HWUSI-EAS454_0001:7:58:122:1727#0--HWUSI-EAS454_0001:4:14:10300:13699#0--HWUSI-EAS454_0001:3:88:7480;nbElements=312.000000;nbE1/nbE2=5.705147;filter=S1>S2,\n+chr5\tS-MART\tsample2Unique_transcript\t7185205\t7185373\t24\t+\t.\tnbOverlaps1=39;nbOverlaps2=377.107;nbOverlaps3=207.996;nbOverlaps4=17.0193;nbOverlaps5=55.0405;nbOverlaps6=40.5232;nbOverlaps7=0.27027;nbOverlaps8=0.678356;nbOverlaps9=0.195035;nbOverlaps10=0.278145;ID=HWUSI-EAS454_0001:3:55:14092:13307#0;overlapsWith=HWUSI-EAS454_0005:5:79:13096:9168#0/1--HWUSI-EAS454_0005:5:37:11901:7436#0/1;Name=HWUSI-EAS454_0001:3:55:14092:13307#0--HWUSI-EAS454_0001:3:54:19540:17685#0/1--HWUSI-EAS454_0001:3:27;nbElements=990.000000;nbE2/nbE1=9.427675;nbE3/nbE1=5.199900;filter=S2>S1,S3>S1\n+chr4\tS-MART\tsample10Uniqu_transcript\t6551532\t6551826\t20\t+\t.\tnbOverlaps1=1109;nbOverlaps2=876.519;nbOverlaps3=104.81;nbOverlaps4=55.3126;nbOverlaps5=65.8682;nbOverlaps6=96.3084;nbOverlaps7=30.1622;nbOverlaps8=213.456;nbOverlaps9=391.629;nbOverlaps10=75.7946;ID=HWUSI-EAS454_0005:5:119:2219:3398#0/1;overlapsWith=HWUSI-EAS454_0005:5:109:4734:5243#0/1--HWUSI-EAS454_0005:5:43:4352:9936#0/1--HWUSI-EAS454_0005:5:64:;Name=HWUSI-EAS454_0005:5:119:2219:3398#0/1--HWUSI-EAS454_0005:3:85:14318:4211#0--HWUSI-EAS454_0005:5:105:;nbElements=6739.000000;nbE1/nbE3=10.481051;filter=S1>S3,\n+chr1\tS-MART\tsample2Unique_transcript\t25427657\t25427769\t24\t+\t.\tnbOverlaps1=31;nbOverlaps2=216.752;nbOverlaps3=1.62497;nbOverlaps4=0;nbOverlaps5=0;nbOverlaps6=0;nbOverlaps7=0;nbOverlaps8=0;nbOverlaps9=0.195035;nbOverlaps10=0;ID=HWUSI-EAS454_0001:3:64:17647:16938#0/1;overlapsWith=HWUSI-EAS454_0005:4:59:16218:16037#0/1;Name=HWUSI-EAS454_0001:3:64:17647:16938#0/1--HWUSI-EAS454_0001:3:91:1451:16969#0/1--HWUSI-EAS454_0001:3:8;nbElements=352.000000;nbE2/nbE1=6.773500;filter=S2>S1,\n+chr1\tS-MART\tsample3Unique_transcript\t79000\t79112\t21\t+\t.\tnbOverlaps1=436;nbOverlaps2=82.2161;nbOverlaps3=63.3738;nbOverlaps4=83.6781;nbOverlaps5=46.0175;nbOverlaps6=52.1013;nbOverlaps7=54.3784;nbOverlaps8=64.2177;nbOverlaps9=42.7126;nbOverlaps10=37.1324;ID=HWUSI-EAS454_0001:4:78:7399:13906#0;overlapsWith=HWUSI-EAS454_0005:5:114:13819:16401#0--HWUSI-EAS454_0005:5:21:18580:10056#0--HWUSI-EAS454_0005:5:79:;Name=HWUSI-EAS454_0001:4:78:7399:13906#0--HWUSI-EAS454_0001:3:82:16783:2949#0--HWUSI-EAS454_0001:7:56:690;nbElements=2620.000000;nbE1/nbE2=5.239371;nbE1/nbE3=6.772942;filter=S1>S2,S1>S3,\n'
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/removeEmptySequences.py
--- a/SMART/Java/Python/removeEmptySequences.py Mon Apr 29 03:45:52 2013 -0400
+++ b/SMART/Java/Python/removeEmptySequences.py Tue Apr 30 14:33:21 2013 -0400
[
@@ -66,9 +66,9 @@
 
     def setOutputFileName(self, fileName):
         if options.format == "fasta":
-            self.writer = FastaWriter(fileName, self.verbosity)
+            self.writer = FastaWriter("%s.mfa" % (fileName), self.verbosity)
         elif options.format == "fastq":
-            self.writer = FastqWriter(fileName, self.verbosity)
+            self.writer = FastqWriter("%s.mfq" % (fileName), self.verbosity)
 
 
     def parse(self):
@@ -91,13 +91,13 @@
     description = "Remove Empty Sequences v1.0.2: Remove all the empty sequences in a list. [Category: Personal]"
 
     parser = OptionParser(description = description)
-    parser.add_option("-i", "--input",     dest="inputFileName",   action="store",                     type="string", help="input file [compulsory] [format: file in sequence format given by -f]")
-    parser.add_option("-f", "--format",    dest="format",          action="store",                     type="string", help="format of the input file [compulsory] [format: sequence file format]")
-    parser.add_option("-j", "--input2",    dest="inputFileName2",  action="store",                     type="string", help="input file 2 (in case of pair end reads) [format: file in sequence format given by -f] [default: None]")
-    parser.add_option("-o", "--output",    dest="outputFileName",  action="store",      default=None,  type="string", help="output file [compulsory] [format: output file in format given by -f]")
-    parser.add_option("-p", "--output2",   dest="outputFileName2", action="store",      default=None,  type="string", help="output file 2 (in case of pair end reads) [format: output file in sequence format given by -f] [default: None]")
-    parser.add_option("-v", "--verbosity", dest="verbosity",       action="store",      default=1,     type="int",    help="trace level [format: int] [default: 1]")
-    parser.add_option("-l", "--log",       dest="log",             action="store_true", default=False,                help="write a log file [format: bool] [default: false]")
+    parser.add_option("-i", "--input",         dest="inputFileName",     action="store",                                         type="string", help="input file [compulsory] [format: file in sequence format given by -f]")
+    parser.add_option("-f", "--format",        dest="format",                    action="store",                                         type="string", help="format of the input file [compulsory] [format: sequence file format]")
+    parser.add_option("-j", "--input2",        dest="inputFileName2",    action="store",                                         type="string", help="input file 2 (in case of pair end reads) [format: file in sequence format given by -f] [default: None]")
+    parser.add_option("-o", "--output",        dest="outputFileName",    action="store",            default=None,    type="string", help="output file [compulsory] [format: output file in format given by -f]")
+    parser.add_option("-p", "--output2",     dest="outputFileName2", action="store",            default=None,    type="string", help="output file 2 (in case of pair end reads) [format: output file in sequence format given by -f] [default: None]")
+    parser.add_option("-v", "--verbosity", dest="verbosity",             action="store",            default=1,         type="int",        help="trace level [format: int] [default: 1]")
+    parser.add_option("-l", "--log",             dest="log",                         action="store_true", default=False,                                help="write a log file [format: bool] [default: false]")
     (options, args) = parser.parse_args()
 
     if options.log:
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/script.Rout
--- a/SMART/Java/Python/script.Rout Mon Apr 29 03:45:52 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,1 +0,0 @@
-Fatal error: cannot open file 'script.R': No such file or directory
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/structure/Bins.pyc
b
Binary file SMART/Java/Python/structure/Bins.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/structure/Interval.pyc
b
Binary file SMART/Java/Python/structure/Interval.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/structure/Mapping.pyc
b
Binary file SMART/Java/Python/structure/Mapping.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/structure/Sequence.pyc
b
Binary file SMART/Java/Python/structure/Sequence.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/structure/SequenceList.pyc
b
Binary file SMART/Java/Python/structure/SequenceList.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/structure/SubMapping.pyc
b
Binary file SMART/Java/Python/structure/SubMapping.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/structure/Transcript.pyc
b
Binary file SMART/Java/Python/structure/Transcript.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/structure/TranscriptContainer.pyc
b
Binary file SMART/Java/Python/structure/TranscriptContainer.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/structure/TranscriptList.pyc
b
Binary file SMART/Java/Python/structure/TranscriptList.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/structure/__init__.pyc
b
Binary file SMART/Java/Python/structure/__init__.pyc has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/test.gff3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/test.gff3 Tue Apr 30 14:33:21 2013 -0400
b
b'@@ -0,0 +1,100000 @@\n+chr1\tS-MART\ttranscript\t13\t33\t21\t-\t.\tbestRegion=(self);nbGaps=0;nbMismatches=0;ID=HWUSI-EAS454_0005:1:29:15426:13405#0/1;identity=100;Name=HWUSI-EAS454_0005:1:29:15426:13405#0/1\n+chr1\tS-MART\ttranscript\t14\t37\t24\t-\t.\toccurrence=1;quality=37;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0;ID=HWUSI-EAS454_0001:6:36:917:291#0;identity=100;Name=HWUSI-EAS454_0001:6:36:917:291#0\n+chr1\tS-MART\ttranscript\t14\t36\t23\t-\t.\toccurrence=1;quality=37;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0;ID=HWUSI-EAS454_0001:6:39:1005:1200#0;identity=100;Name=HWUSI-EAS454_0001:6:39:1005:1200#0\n+chr1\tS-MART\ttranscript\t15\t38\t24\t-\t.\tquality=25;nbElements=3.000000;ID=HWUSI-EAS454_0005:1:88:8852:4891#0;Name=HWUSI-EAS454_0005:1:88:8852:4891#0--HWUSI-EAS454_0005:1:16:12336:7772#0--HWUSI-EAS454_0001:6:29:1176\n+chr1\tS-MART\ttranscript\t16\t39\t24\t-\t.\toccurrence=1;quality=37;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0;ID=HWUSI-EAS454_0001:6:12:605:1006#0;identity=100;Name=HWUSI-EAS454_0001:6:12:605:1006#0\n+chr1\tS-MART\ttranscript\t16\t38\t23\t-\t.\toccurrence=1;quality=37;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0;ID=HWUSI-EAS454_0001:6:41:570:1349#0;identity=100;Name=HWUSI-EAS454_0001:6:41:570:1349#0\n+chr1\tS-MART\ttranscript\t17\t40\t24\t-\t.\tquality=37;nbElements=11.000000;ID=HWUSI-EAS454_0005:1:81:1819:13108#0;Name=HWUSI-EAS454_0005:1:81:1819:13108#0--HWUSI-EAS454_0005:1:75:6916:8155#0--HWUSI-EAS454_0005:1:67:2702\n+chr1\tS-MART\ttranscript\t17\t39\t23\t-\t.\toccurrence=1;quality=37;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0;ID=HWUSI-EAS454_0005:1:90:6409:15569#0;identity=100;Name=HWUSI-EAS454_0005:1:90:6409:15569#0\n+chr1\tS-MART\ttranscript\t18\t41\t24\t-\t.\tquality=25;nbElements=11.000000;ID=HWUSI-EAS454_0005:1:8:14764:13869#0;Name=HWUSI-EAS454_0005:1:8:14764:13869#0--HWUSI-EAS454_0005:1:80:16600:20813#0--HWUSI-EAS454_0005:1:68:16\n+chr1\tS-MART\ttranscript\t19\t42\t24\t-\t.\tquality=37;nbElements=2.000000;ID=HWUSI-EAS454_0005:1:55:7969:5875#0;Name=HWUSI-EAS454_0005:1:55:7969:5875#0--HWUSI-EAS454_0001:6:20:1413:2018#0\n+chr1\tS-MART\ttranscript\t20\t42\t23\t-\t.\tquality=25;nbElements=2.000000;ID=HWUSI-EAS454_0005:1:8:12144:21397#0;Name=HWUSI-EAS454_0005:1:8:12144:21397#0--HWUSI-EAS454_0005:1:81:7335:14824#0\n+chr1\tS-MART\ttranscript\t20\t42\t23\t+\t.\toccurrence=1;quality=37;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0;ID=HWUSI-EAS454_0005:1:117:3168:18210#0;identity=100;Name=HWUSI-EAS454_0005:1:117:3168:18210#0\n+chr1\tS-MART\ttranscript\t21\t44\t24\t-\t.\toccurrence=1;quality=37;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0;ID=HWUSI-EAS454_0001:6:71:270:748#0;identity=100;Name=HWUSI-EAS454_0001:6:71:270:748#0\n+chr1\tS-MART\ttranscript\t21\t41\t21\t-\t.\toccurrence=1;quality=37;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0;ID=HWUSI-EAS454_0001:6:70:1405:628#0;identity=100;Name=HWUSI-EAS454_0001:6:70:1405:628#0\n+chr1\tS-MART\ttranscript\t22\t45\t24\t-\t.\tquality=37;nbElements=4.000000;ID=HWUSI-EAS454_0005:1:5:3208:12720#0;Name=HWUSI-EAS454_0005:1:5:3208:12720#0--HWUSI-EAS454_0001:6:77:795:914#0--HWUSI-EAS454_0001:6:67:1386:90\n+chr1\tS-MART\ttranscript\t23\t46\t24\t-\t.\toccurrence=1;quality=37;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0;ID=HWUSI-EAS454_0001:6:72:315:1393#0;identity=100;Name=HWUSI-EAS454_0001:6:72:315:1393#0\n+chr1\tS-MART\ttranscript\t23\t45\t23\t-\t.\tquality=37;nbElements=7.000000;ID=HWUSI-EAS454_0005:1:78:14145:12130#0;Name=HWUSI-EAS454_0005:1:78:14145:12130#0--HWUSI-EAS454_0005:1:54:2352:2026#0--HWUSI-EAS454_0005:1:23:106\n+chr1\tS-MART\ttranscript\t24\t48\t25\t-\t.\toccurrence=1;quality=25;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=1;ID=HWUSI-EAS454_0001:6:57:318:773#0;identity=96;Name=HWUSI-EAS454_0001:6:57:318:773#0\n+chr1\tS-MART\ttranscript\t24\t47\t24\t-\t.\tquality=25;nbElements=20.000000;ID=HWUSI-EAS454_0005:1:95:13627:10660#0;Name=HWUSI-EAS454_0005:1:95:13627:10660#0--HWUSI-EAS454_0005:1:31:5776:16476#0--HWUSI-EAS454_0005:1:31:'..b'ART\ttranscript\t9315588\t9315612\t25\t-\t.\toccurrence=1;quality=37;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0;ID=HWUSI-EAS454_0001:6:20:1492:802#0;identity=100;Name=HWUSI-EAS454_0001:6:20:1492:802#0\n+chr1\tS-MART\ttranscript\t9315654\t9315680\t27\t-\t.\toccurrence=1;quality=37;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0;ID=HWUSI-EAS454_0005:1:5:3941:11137#0;identity=100;Name=HWUSI-EAS454_0005:1:5:3941:11137#0\n+chr1\tS-MART\ttranscript\t9315856\t9315882\t27\t-\t.\toccurrence=1;quality=25;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=1;ID=HWUSI-EAS454_0005:1:119:16446:8333#0;identity=96;Name=HWUSI-EAS454_0005:1:119:16446:8333#0\n+chr1\tS-MART\ttranscript\t9315864\t9315883\t20\t-\t.\toccurrence=1;quality=37;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0;ID=HWUSI-EAS454_0001:6:4:1116:1279#0;identity=100;Name=HWUSI-EAS454_0001:6:4:1116:1279#0\n+chr1\tS-MART\ttranscript\t9316130\t9316160\t31\t-\t.\toccurrence=1;quality=25;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=1;ID=HWUSI-EAS454_0005:1:57:2462:8082#0;identity=96;Name=HWUSI-EAS454_0005:1:57:2462:8082#0\n+chr1\tS-MART\ttranscript\t9316130\t9316149\t20\t-\t.\toccurrence=1;quality=23;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=2;nbMismatches=0;ID=HWUSI-EAS454_0001:6:63:152:1917#0-1;identity=100;Name=HWUSI-EAS454_0001:6:63:152:1917#0\n+chr1\tS-MART\ttranscript\t9316240\t9316263\t24\t-\t.\toccurrence=1;quality=37;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0;ID=HWUSI-EAS454_0001:6:64:1494:1889#0;identity=100;Name=HWUSI-EAS454_0001:6:64:1494:1889#0\n+chr1\tS-MART\ttranscript\t9316788\t9316808\t21\t-\t.\tnbElements=2.000000;ID=HWUSI-EAS454_0005:1:37:6611:7504#0/1;Name=HWUSI-EAS454_0005:1:37:6611:7504#0/1--HWUSI-EAS454_0005:1:32:15853:3213#0/1\n+chr1\tS-MART\ttranscript\t9317112\t9317135\t24\t+\t.\toccurrence=1;quality=37;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0;ID=HWUSI-EAS454_0005:1:5:14934:13715#0;identity=100;Name=HWUSI-EAS454_0005:1:5:14934:13715#0\n+chr1\tS-MART\ttranscript\t9318166\t9318186\t21\t+\t.\toccurrence=1;quality=37;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0;ID=HWUSI-EAS454_0005:1:78:8582:8151#0;identity=100;Name=HWUSI-EAS454_0005:1:78:8582:8151#0\n+chr1\tS-MART\ttranscript\t9318484\t9318504\t21\t-\t.\toccurrence=1;quality=37;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0;ID=HWUSI-EAS454_0001:6:9:894:642#0;identity=100;Name=HWUSI-EAS454_0001:6:9:894:642#0\n+chr1\tS-MART\ttranscript\t9318602\t9318621\t20\t-\t.\toccurrence=1;quality=0;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=3;nbMismatches=1;ID=HWUSI-EAS454_0005:1:40:5793:3039#0-1;identity=95;Name=HWUSI-EAS454_0005:1:40:5793:3039#0\n+chr1\tS-MART\ttranscript\t9319135\t9319156\t22\t-\t.\toccurrence=1;quality=0;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=2;nbMismatches=0;ID=HWUSI-EAS454_0005:1:30:14232:2440#0-1;identity=100;Name=HWUSI-EAS454_0005:1:30:14232:2440#0\n+chr1\tS-MART\ttranscript\t9321769\t9321794\t26\t+\t.\toccurrence=1;quality=37;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0;ID=HWUSI-EAS454_0001:6:81:1482:1344#0;identity=100;Name=HWUSI-EAS454_0001:6:81:1482:1344#0\n+chr1\tS-MART\ttranscript\t9322055\t9322078\t24\t+\t.\toccurrence=1;quality=37;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0;ID=HWUSI-EAS454_0005:1:54:17933:11240#0;identity=100;Name=HWUSI-EAS454_0005:1:54:17933:11240#0\n+chr1\tS-MART\ttranscript\t9322742\t9322762\t21\t-\t.\tbestRegion=(self);nbGaps=0;nbMismatches=3;ID=HWUSI-EAS454_0005:1:39:12064:3568#0/1;identity=85;Name=HWUSI-EAS454_0005:1:39:12064:3568#0/1\n+chr1\tS-MART\ttranscript\t9324388\t9324411\t24\t-\t.\toccurrence=1;quality=37;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0;ID=HWUSI-EAS454_0005:1:64:8973:18503#0;identity=100;Name=HWUSI-EAS454_0005:1:64:8973:18503#0\n+chr1\tS-MART\ttranscript\t9325384\t9325407\t24\t-\t.\toccurrence=1;quality=37;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0;ID=HWUSI-EAS454_0005:1:54:2957:1577#0;identity=100;Name=HWUSI-EAS454_0005:1:54:2957:1577#0\n'
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/test.pdf
b
Binary file SMART/Java/Python/test.pdf has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/test.png
b
Binary file SMART/Java/Python/test.png has changed
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/test/MockGetLetterDistribution.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/test/MockGetLetterDistribution.py Tue Apr 30 14:33:21 2013 -0400
b
@@ -0,0 +1,69 @@
+class MockGetLetterDistributionFasta (object) :
+ def write(self,inFileName):
+ f = open(inFileName,'w')
+ f.write('>HWI-EAS337_3:7:1:415:1217/1\n')
+ f.write('GATGTGCAGACTTTTCACGCAGGACTACATCACTGT\n')
+ f.write('>HWI-EAS337_3:7:1:208:1489/1\n')
+ f.write('GGAAACATATGCACATAAACGTTGAAATCATGCTTA\n')
+ f.write('>HWI-EAS337_3:7:1:278:1153\n')
+ f.write('GAGAAAACCTGTAATAAATACTGAGAGAAAGTAGGG\n')
+ f.close()
+
+class MockGetLetterDistributionFastq (object) :
+ def write(self,inFileName):
+ f = open(inFileName,'w')
+ f.write('@HWI-EAS337_3:7:1:415:1217/1\n')
+ f.write('GATGTGCAGACTTTTCACGCAGGACTACATCACTGT\n')
+ f.write('+HWI-EAS337_3:7:1:415:1217/1\n')
+ f.write('WWWVVVWPWWWVWWWWVVVVKVPWWVVWVWUUQUTQ\n')
+ f.write('@HWI-EAS337_3:7:1:208:1489/1\n')
+ f.write('GGAAACATATGCACATAAACGTTGAAATCATGCTTA\n')
+ f.write('+HWI-EAS337_3:7:1:208:1489/1\n')
+ f.write('WWWWWWWWWWWWWWWWWVWWVWWVWWWWWWUUUUUU\n')
+ f.write('@HWI-EAS337_3:7:1:278:1153/1\n')
+ f.write('GAGAAAACCTGTAATAAATACTGAGAGAAAGTAGGG\n')
+ f.write('+HWI-EAS337_3:7:1:278:1153/1\n')
+ f.write('WWWWWWWWWWWWWWWWWWWWWWVWVVVWWVUUUUUR\n')
+ f.close()
+
+class MockGetLetterDistributionExpectedCSV (object) :
+ def write(self,inFileName):
+ f = open(inFileName,'w')
+ f.write('1;A=0%;C=0%;T=0%;G=0%;\n')
+ f.write('2;A=0%;C=0%;T=0%;G=100.00%;\n')
+ f.write('3;A=66.67%;C=0%;T=0%;G=33.33%;\n')
+ f.write('4;A=33.33%;C=0%;T=33.33%;G=33.33%;\n')
+ f.write('5;A=66.67%;C=0%;T=0%;G=33.33%;\n')
+ f.write('6;A=66.67%;C=0%;T=33.33%;G=0%;\n')
+ f.write('7;A=33.33%;C=33.33%;T=0%;G=33.33%;\n')
+ f.write('8;A=66.67%;C=33.33%;T=0%;G=0%;\n')
+ f.write('9;A=33.33%;C=33.33%;T=33.33%;G=0%;\n')
+ f.write('10;A=33.33%;C=33.33%;T=0%;G=33.33%;\n')
+ f.write('11;A=33.33%;C=0%;T=66.67%;G=0%;\n')
+ f.write('12;A=0%;C=33.33%;T=0%;G=66.67%;\n')
+ f.write('13;A=0%;C=33.33%;T=66.67%;G=0%;\n')
+ f.write('14;A=66.67%;C=0%;T=33.33%;G=0%;\n')
+ f.write('15;A=33.33%;C=33.33%;T=33.33%;G=0%;\n')
+ f.write('16;A=33.33%;C=0%;T=66.67%;G=0%;\n')
+ f.write('17;A=33.33%;C=33.33%;T=33.33%;G=0%;\n')
+ f.write('18;A=100.00%;C=0%;T=0%;G=0%;\n')
+ f.write('19;A=66.67%;C=33.33%;T=0%;G=0%;\n')
+ f.write('20;A=33.33%;C=0%;T=33.33%;G=33.33%;\n')
+ f.write('21;A=33.33%;C=66.67%;T=0%;G=0%;\n')
+ f.write('22;A=33.33%;C=33.33%;T=0%;G=33.33%;\n')
+ f.write('23;A=0%;C=0%;T=66.67%;G=33.33%;\n')
+ f.write('24;A=0%;C=0%;T=33.33%;G=66.67%;\n')
+ f.write('25;A=66.67%;C=0%;T=0%;G=33.33%;\n')
+ f.write('26;A=33.33%;C=33.33%;T=0%;G=33.33%;\n')
+ f.write('27;A=66.67%;C=0%;T=33.33%;G=0%;\n')
+ f.write('28;A=66.67%;C=0%;T=0%;G=33.33%;\n')
+ f.write('29;A=33.33%;C=33.33%;T=33.33%;G=0%;\n')
+ f.write('30;A=66.67%;C=33.33%;T=0%;G=0%;\n')
+ f.write('31;A=66.67%;C=0%;T=33.33%;G=0%;\n')
+ f.write('32;A=0%;C=33.33%;T=33.33%;G=33.33%;\n')
+ f.write('33;A=33.33%;C=0%;T=33.33%;G=33.33%;\n')
+ f.write('34;A=33.33%;C=66.67%;T=0%;G=0%;\n')
+ f.write('35;A=0%;C=0%;T=66.67%;G=33.33%;\n')
+ f.write('36;A=0%;C=0%;T=33.33%;G=66.67%;\n')
+ f.close()
+
b
diff -r 5677346472b5 -r 0ab839023fe4 SMART/Java/Python/test/Test_F_Clusterize.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/Java/Python/test/Test_F_Clusterize.py Tue Apr 30 14:33:21 2013 -0400
[
b'@@ -0,0 +1,119 @@\n+import unittest\n+import os, os.path\n+from optparse import OptionParser\n+from SMART.Java.Python.misc import Utils\n+from SMART.Java.Python.clusterize import Clusterize\n+#TODO: test for n option when option corrected\n+\n+SMART_PATH = os.environ["REPET_PATH"] + "/SMART"\n+\n+class Test_F_Clusterize(unittest.TestCase):\n+\n+    def setUp(self):\n+        self._inputFileName     = "inputFileTest.bed"\n+        self._expOutputFileName = "expOutput.gff3"\n+        self._outputFileName    = "output.gff3"\n+        self._writeInputFile()\n+        \n+    def tearDown(self):\n+        for file in (self._inputFileName, self._expOutputFileName, self._outputFileName):\n+            if os.path.exists(file):\n+                os.remove(file)\n+\n+    def test_run_2DifferentStrand(self):\n+        self._writeOutputFile_2DiffStrand(self._expOutputFileName)\n+        \n+        args = ["-i", self._inputFileName, "-f", "bed", "-o", self._outputFileName, "-v", "0"]\n+        parser = OptionParser()\n+        parser.add_option("-i", "--input",          dest="inputFileName",  action="store",                     type="string", help="input file [compulsory] [format: file in transcript format given by -f]")\n+        parser.add_option("-f", "--format",         dest="format",         action="store",                     type="string", help="format of file [format: transcript file format]")\n+        parser.add_option("-o", "--output",         dest="outputFileName", action="store",                     type="string", help="output file [compulsory] [format: output file in GFF3 format]")\n+        parser.add_option("-c", "--colinear",       dest="colinear",       action="store_true", default=False,                help="merge colinear transcripts only [format: bool] [default: false]")\n+        parser.add_option("-d", "--distance",       dest="distance",       action="store",      default=0,     type="int",    help="max. distance between two transcripts to be merged [format: int] [default: 0]")\n+        parser.add_option("-n", "--normalize",      dest="normalize",      action="store_true", default=False,                help="normalize the number of reads per cluster by the number of mappings per read [format: bool] [default: false]")\n+        parser.add_option("-v", "--verbosity",      dest="verbosity",      action="store",      default=1,     type="int",    help="trace level [format: int] [default: 1]")\n+        (options, args) = parser.parse_args(args)\n+        iClusterize = Clusterize(options.verbosity)\n+        iClusterize.setInputFile(options.inputFileName, options.format)\n+        iClusterize.setOutputFileName(options.outputFileName)\n+        iClusterize.setColinear(options.colinear)\n+        iClusterize.setDistance(options.distance)\n+        iClusterize.setNormalize(options.normalize)\n+        iClusterize.run()\n+        self.assertTrue(Utils.diff(self._expOutputFileName, self._outputFileName))\n+\n+    def test_runAsScript_2DifferentStrand(self):\n+        self._writeOutputFile_2DiffStrand(self._expOutputFileName)\n+        os.system("python %s/Java/Python/clusterize.py -i %s -f bed -o %s -v 0" % (SMART_PATH, self._inputFileName, self._outputFileName))\n+        self.assertTrue(Utils.diff(self._expOutputFileName, self