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

Changeset 35:d94018ca4ada (2013-04-30)
Previous changeset 34:529e3e6a0954 (2013-04-30) Next changeset 36:44d5973c188c (2013-04-30)
Commit message:
Deleted selected files
removed:
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/LICENSE.txt
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/CleanTranscriptFile.py
SMART/Java/Python/ClusterizeByTags.py
SMART/Java/Python/CollapseReads.py
SMART/Java/Python/CombineTags.py
SMART/Java/Python/CompareOverlapping.py
SMART/Java/Python/CompareOverlapping.pyc
SMART/Java/Python/CompareOverlappingSmallQuery.py
SMART/Java/Python/CompareOverlappingSmallRef.py
SMART/Java/Python/ComputeCoverage.py
SMART/Java/Python/CountLoci.py
SMART/Java/Python/CountReadGCPercent.py
SMART/Java/Python/FindOverlapsOptim.py
SMART/Java/Python/GetDifferentialExpression.py
SMART/Java/Python/GetDistribution.py
SMART/Java/Python/GetFlanking.py
SMART/Java/Python/GetFlanking.pyc
SMART/Java/Python/GetRandomSubset.py
SMART/Java/Python/GetReadDistribution.py
SMART/Java/Python/GetReadSizes.py
SMART/Java/Python/GetUpDownStream.py
SMART/Java/Python/GetUpDownStream.pyc
SMART/Java/Python/Helitrons.fasta
SMART/Java/Python/RestrictFromCoverage.py
SMART/Java/Python/Rplots.pdf
SMART/Java/Python/S1_S3_blast.blast
SMART/Java/Python/SelectByTag.py
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/WrappGetDistribution.py
SMART/Java/Python/WrappGetReadDistribution.py
SMART/Java/Python/WrappPlotCoverage.py
SMART/Java/Python/WrappPlotRepartition.py
SMART/Java/Python/__init__.py
SMART/Java/Python/__init__.pyc
SMART/Java/Python/adaptorStripper.py
SMART/Java/Python/changeGffFeatures.sh
SMART/Java/Python/changeTagName.py
SMART/Java/Python/cleanGff.py
SMART/Java/Python/cleanGff.pyc
SMART/Java/Python/cleaning/CleanerChooser.py
SMART/Java/Python/cleaning/CleanerChooser.pyc
SMART/Java/Python/cleaning/DefaultCleaner.py
SMART/Java/Python/cleaning/DefaultCleaner.pyc
SMART/Java/Python/cleaning/GffCleaner.py
SMART/Java/Python/cleaning/GffCleaner.pyc
SMART/Java/Python/cleaning/GtfCleaner.py
SMART/Java/Python/cleaning/GtfCleaner.pyc
SMART/Java/Python/cleaning/TranscriptListCleaner.py
SMART/Java/Python/cleaning/TranscriptListCleaner.pyc
SMART/Java/Python/cleaning/__init__.py
SMART/Java/Python/cleaning/__init__.pyc
SMART/Java/Python/clusterize.py
SMART/Java/Python/clusterizeBySlidingWindows.py
SMART/Java/Python/compareOverlapping.py
SMART/Java/Python/compare_TAIR10_Reiterative4th.gff3
SMART/Java/Python/convertTranscriptFile.py
SMART/Java/Python/coordinatesToSequence.py
SMART/Java/Python/findTss.py
SMART/Java/Python/fo.py
SMART/Java/Python/fold.py
SMART/Java/Python/genes.gtf
SMART/Java/Python/genome.fasta
SMART/Java/Python/getDifference.py
SMART/Java/Python/getDistance.py
SMART/Java/Python/getDistribution.py
SMART/Java/Python/getElement.py
SMART/Java/Python/getExons.py
SMART/Java/Python/getInfoPerCoverage.py
SMART/Java/Python/getIntrons.py
SMART/Java/Python/getLetterDistribution.py
SMART/Java/Python/getNb.py
SMART/Java/Python/getRandomRegions.py
SMART/Java/Python/getReadDistribution.py
SMART/Java/Python/getSequence.py
SMART/Java/Python/getSizes.py
SMART/Java/Python/getWigData.py
SMART/Java/Python/getWigDistance.py
SMART/Java/Python/getWigProfile.py
SMART/Java/Python/gf.py
SMART/Java/Python/mapperAnalyzer.py
SMART/Java/Python/mappingToCoordinates.py
SMART/Java/Python/mergeSlidingWindowsClusters.py
SMART/Java/Python/mergeTranscriptLists.py
SMART/Java/Python/misc/MultipleRPlotter.py
SMART/Java/Python/misc/MultipleRPlotter.pyc
SMART/Java/Python/misc/Progress.py
SMART/Java/Python/misc/Progress.pyc
SMART/Java/Python/misc/RPlotter.py
SMART/Java/Python/misc/RPlotter.pyc
SMART/Java/Python/misc/UnlimitedProgress.py
SMART/Java/Python/misc/UnlimitedProgress.pyc
SMART/Java/Python/misc/Utils.py
SMART/Java/Python/misc/Utils.pyc
SMART/Java/Python/misc/__init__.py
SMART/Java/Python/misc/__init__.pyc
SMART/Java/Python/misc/test/Test_Utils.py
SMART/Java/Python/misc/test/__init__.py
SMART/Java/Python/modifyFasta.py
SMART/Java/Python/modifyGenomicCoordinates.py
SMART/Java/Python/modifySequenceList.py
SMART/Java/Python/mySql/MySqlConnection.py
SMART/Java/Python/mySql/MySqlConnection.pyc
SMART/Java/Python/mySql/MySqlExonTable.py
SMART/Java/Python/mySql/MySqlExonTable.pyc
SMART/Java/Python/mySql/MySqlQuery.py
SMART/Java/Python/mySql/MySqlQuery.pyc
SMART/Java/Python/mySql/MySqlTable.py
SMART/Java/Python/mySql/MySqlTable.pyc
SMART/Java/Python/mySql/MySqlTranscriptTable.py
SMART/Java/Python/mySql/MySqlTranscriptTable.pyc
SMART/Java/Python/mySql/__init__.py
SMART/Java/Python/mySql/__init__.pyc
SMART/Java/Python/mySql/test/Test_MySqlTranscriptTable.py
SMART/Java/Python/mySql/test/__init__.py
SMART/Java/Python/ncList/ConvertToNCList.py
SMART/Java/Python/ncList/ConvertToNCList.pyc
SMART/Java/Python/ncList/FileSorter.py
SMART/Java/Python/ncList/FileSorter.pyc
SMART/Java/Python/ncList/FindOverlapsWithOneInterval.py
SMART/Java/Python/ncList/FindOverlapsWithSeveralIntervals.py
SMART/Java/Python/ncList/FindOverlapsWithSeveralIntervalsBin.py
SMART/Java/Python/ncList/FindOverlapsWithSeveralIntervalsIndex.py
SMART/Java/Python/ncList/FindOverlaps_naif.py
SMART/Java/Python/ncList/NCIndex.py
SMART/Java/Python/ncList/NCIndex.pyc
SMART/Java/Python/ncList/NCList.py
SMART/Java/Python/ncList/NCList.pyc
SMART/Java/Python/ncList/NCListCursor.py
SMART/Java/Python/ncList/NCListCursor.pyc
SMART/Java/Python/ncList/NCListFilePickle.py
SMART/Java/Python/ncList/NCListFilePickle.pyc
SMART/Java/Python/ncList/NCListHandler.py
SMART/Java/Python/ncList/NCListHandler.pyc
SMART/Java/Python/ncList/NCListMerger.py
SMART/Java/Python/ncList/NCListMerger.pyc
SMART/Java/Python/ncList/NCListParser.py
SMART/Java/Python/ncList/NCListParser.pyc
SMART/Java/Python/ncList/__init__.py
SMART/Java/Python/ncList/__init__.pyc
SMART/Java/Python/ncList/test/MockFindOverlapsWithSeveralIntervals.py
SMART/Java/Python/ncList/test/MockFindOverlaps_randomExample.py
SMART/Java/Python/ncList/test/Test_F_FileSorter.py
SMART/Java/Python/ncList/test/Test_F_FindOverlapsWithOneInterval.py
SMART/Java/Python/ncList/test/Test_F_FindOverlapsWithSeveralIntervals.py
SMART/Java/Python/ncList/test/Test_F_FindOverlaps_naif.py
SMART/Java/Python/ncList/test/Test_F_FindOverlaps_randomExample.py
SMART/Java/Python/ncList/test/Test_F_NCList.py
SMART/Java/Python/ncList/test/Test_FindOverlapsWithOneInterval.py
SMART/Java/Python/ncList/test/Test_FindOverlapsWithSeveralIntervals.py
SMART/Java/Python/ncList/test/Test_FindOverlaps_randomExample.py
SMART/Java/Python/ncList/test/Test_randExample.py
SMART/Java/Python/ncList/test/__init__.py
SMART/Java/Python/plot.py
SMART/Java/Python/plotCoverage.py
SMART/Java/Python/plotGenomeCoverage.py
SMART/Java/Python/plotRepartition.py
SMART/Java/Python/plotTranscriptList.py
SMART/Java/Python/qualToFastq.py
SMART/Java/Python/re_filter_ratio_5_NbReads_100_samples_all_norm_Window100overlap50.gff3
SMART/Java/Python/removeAllTmpTables.py
SMART/Java/Python/removeEmptySequences.py
SMART/Java/Python/removeExonLines.sh
SMART/Java/Python/repetGffConverter.py
SMART/Java/Python/restrictFromNucleotides.py
SMART/Java/Python/restrictFromSize.py
SMART/Java/Python/restrictSequenceList.py
SMART/Java/Python/restrictTranscriptList.py
SMART/Java/Python/runRandomJobs.py
SMART/Java/Python/selectByNbOccurrences.py
SMART/Java/Python/sequenceListSplitter.py
SMART/Java/Python/splitByTag.py
SMART/Java/Python/splitMultiFasta.py
SMART/Java/Python/structure/Bins.py
SMART/Java/Python/structure/Bins.pyc
SMART/Java/Python/structure/Interval.py
SMART/Java/Python/structure/Interval.pyc
SMART/Java/Python/structure/Mapping.py
SMART/Java/Python/structure/Mapping.pyc
SMART/Java/Python/structure/Sequence.py
SMART/Java/Python/structure/Sequence.pyc
SMART/Java/Python/structure/SequenceList.py
SMART/Java/Python/structure/SequenceList.pyc
SMART/Java/Python/structure/SubMapping.py
SMART/Java/Python/structure/SubMapping.pyc
SMART/Java/Python/structure/Transcript.py
SMART/Java/Python/structure/Transcript.pyc
SMART/Java/Python/structure/TranscriptContainer.py
SMART/Java/Python/structure/TranscriptContainer.pyc
SMART/Java/Python/structure/TranscriptList.py
SMART/Java/Python/structure/TranscriptList.pyc
SMART/Java/Python/structure/TranscriptListIterator.py
SMART/Java/Python/structure/TranscriptListsComparator.py
SMART/Java/Python/structure/TranscriptListsComparator.pyc
SMART/Java/Python/structure/__init__.py
SMART/Java/Python/structure/__init__.pyc
SMART/Java/Python/structure/test/Test_Interval.py
SMART/Java/Python/structure/test/Test_Mapping.py
SMART/Java/Python/structure/test/Test_Sequence.py
SMART/Java/Python/structure/test/Test_SubMapping.py
SMART/Java/Python/structure/test/Test_Transcript.py
SMART/Java/Python/structure/test/Test_TranscriptListsComparator.py
SMART/Java/Python/structure/test/__init__.py
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/Python/toolLauncher/RnaFoldLauncher.py
SMART/Java/Python/toolLauncher/__init__.py
SMART/Java/Python/trimAdaptor.py
SMART/Java/Python/trimSequence.py
SMART/Java/Python/trimSequences.py
SMART/Java/Python/txtToFasta.py
SMART/Java/Python/updateQual.py
SMART/Java/Python/wigExploder.py
SMART/Java/Python/wrongFastqToQual.py
SMART/Java/PythonHelperReader.java
SMART/Java/PythonProgramFinder.java
SMART/Java/README.txt
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__.py
SMART/Java/__init__.pyc
SMART/Java/doc.pdf
SMART/Java/formats.txt
SMART/Java/manifest.txt
SMART/__init__.py
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/CleanTranscriptFile.xml
SMART/galaxy/Clusterize.xml
SMART/galaxy/CollapseReads.xml
SMART/galaxy/CompareOverlappingSmallQuery.xml
SMART/galaxy/CompareOverlappingSmallRef.xml
SMART/galaxy/ConvertTranscriptFile.xml
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/CountReadGCPercent.xml
SMART/galaxy/DiffExpAnal.xml
SMART/galaxy/FindOverlaps_optim.xml
SMART/galaxy/GetDifferentialExpression.xml
SMART/galaxy/GetFlanking.xml
SMART/galaxy/SelectByTag.xml
SMART/galaxy/WrappGetLetterDistribution.py
SMART/galaxy/WrappGetLetterDistribution.xml
SMART/galaxy/__init__.py
SMART/galaxy/changeGffFeatures.xml
SMART/galaxy/changeTagName.xml
SMART/galaxy/cleanGff.xml
SMART/galaxy/clusterize.xml
SMART/galaxy/clusterizeBySlidingWindows.xml
SMART/galaxy/compareOverlapping.xml
SMART/galaxy/computeCoverage.xml
SMART/galaxy/coordinatesToSequence.xml
SMART/galaxy/findTss.xml
SMART/galaxy/getDifference.xml
SMART/galaxy/getDistance.xml
SMART/galaxy/getDistribution.xml
SMART/galaxy/getExons.xml
SMART/galaxy/getIntrons.xml
SMART/galaxy/getNb.xml
SMART/galaxy/getReadDistribution.xml
SMART/galaxy/getSequence.xml
SMART/galaxy/getSizes.xml
SMART/galaxy/getWigData.xml
SMART/galaxy/getWigDistance.xml
SMART/galaxy/getWigProfile.xml
SMART/galaxy/mapperAnalyzer.xml
SMART/galaxy/mappingToCoordinates.xml
SMART/galaxy/mergeSlidingWindowsClusters.xml
SMART/galaxy/mergeTranscriptLists.xml
SMART/galaxy/modifyFasta.xml
SMART/galaxy/modifyGenomicCoordinates.xml
SMART/galaxy/modifySequenceList.xml
SMART/galaxy/plot.xml
SMART/galaxy/plotCoverage.xml
SMART/galaxy/plotGenomeCoverage.xml
SMART/galaxy/plotRepartition.xml
SMART/galaxy/plotTranscriptList.xml
SMART/galaxy/qualToFastq.xml
SMART/galaxy/removeExonLines.sh
SMART/galaxy/removeExonLines.xml
SMART/galaxy/restrictFromSize.xml
SMART/galaxy/restrictSequenceList.xml
SMART/galaxy/restrictTranscriptList.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
SMART/galaxy/trimSequences.xml
commons/__init__.py
commons/__init__.pyc
commons/core/LoggerFactory.py
commons/core/__init__.py
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.py
commons/core/coord/Align.pyc
commons/core/coord/AlignUtils.py
commons/core/coord/ConvCoord.py
commons/core/coord/Map.py
commons/core/coord/Map.pyc
commons/core/coord/MapUtils.py
commons/core/coord/Match.py
commons/core/coord/MatchUtils.py
commons/core/coord/MergedRange.py
commons/core/coord/Path.py
commons/core/coord/PathUtils.py
commons/core/coord/Range.py
commons/core/coord/Range.pyc
commons/core/coord/Set.py
commons/core/coord/SetUtils.py
commons/core/coord/SlidingWindow.py
commons/core/coord/__init__.py
commons/core/coord/__init__.pyc
commons/core/coord/align2set.py
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/parsing/AxtParser.py
commons/core/parsing/AxtParser.pyc
commons/core/parsing/BamParser.py
commons/core/parsing/BamParser.pyc
commons/core/parsing/BedParser.py
commons/core/parsing/BedParser.pyc
commons/core/parsing/BlastParser.py
commons/core/parsing/BlastParser.pyc
commons/core/parsing/BlatFileParser.py
commons/core/parsing/BlatParser.py
commons/core/parsing/BlatToGff.py
commons/core/parsing/BlatToGffForBesPaired.py
commons/core/parsing/BowtieParser.py
commons/core/parsing/BowtieParser.pyc
commons/core/parsing/CoordsParser.py
commons/core/parsing/CoordsParser.pyc
commons/core/parsing/CrossSsrAndBesMappedByBlatToGff.py
commons/core/parsing/ElandParser.py
commons/core/parsing/ElandParser.pyc
commons/core/parsing/ExoParser.py
commons/core/parsing/ExoParser.pyc
commons/core/parsing/FastaParser.py
commons/core/parsing/FastaParser.pyc
commons/core/parsing/FastqParser.py
commons/core/parsing/FastqParser.pyc
commons/core/parsing/FindRep.py
commons/core/parsing/GbParser.py
commons/core/parsing/GffParser.py
commons/core/parsing/GffParser.pyc
commons/core/parsing/GtfParser.py
commons/core/parsing/GtfParser.pyc
commons/core/parsing/MapParser.py
commons/core/parsing/MapParser.pyc
commons/core/parsing/MapperParser.py
commons/core/parsing/MapperParser.pyc
commons/core/parsing/MaqParser.py
commons/core/parsing/MaqParser.pyc
commons/core/parsing/MrepsToSet.py
commons/core/parsing/Multifasta2SNPFile.py
commons/core/parsing/MummerParser.py
commons/core/parsing/NCListParser.py
commons/core/parsing/NCListParser.pyc
commons/core/parsing/NucmerParser.py
commons/core/parsing/PalsToAlign.py
commons/core/parsing/ParserChooser.py
commons/core/parsing/ParserChooser.pyc
commons/core/parsing/PathNum2Id.py
commons/core/parsing/PilerTAToGrouperMap.py
commons/core/parsing/PklParser.py
commons/core/parsing/PklParser.pyc
commons/core/parsing/PslParser.py
commons/core/parsing/PslParser.pyc
commons/core/parsing/README_MultiFasta2SNPFile
commons/core/parsing/RmapParser.py
commons/core/parsing/RmapParser.pyc
commons/core/parsing/SamParser.py
commons/core/parsing/SamParser.pyc
commons/core/parsing/SeqmapParser.py
commons/core/parsing/SeqmapParser.pyc
commons/core/parsing/SequenceListParser.py
commons/core/parsing/SequenceListParser.pyc
commons/core/parsing/ShrimpParser.py
commons/core/parsing/ShrimpParser.pyc
commons/core/parsing/Soap2Parser.py
commons/core/parsing/Soap2Parser.pyc
commons/core/parsing/SoapParser.py
commons/core/parsing/SoapParser.pyc
commons/core/parsing/SsrParser.py
commons/core/parsing/TranscriptListParser.py
commons/core/parsing/TranscriptListParser.pyc
commons/core/parsing/VarscanFile.py
commons/core/parsing/VarscanFileForGnpSNP.py
commons/core/parsing/VarscanHit.py
commons/core/parsing/VarscanHitForGnpSNP.py
commons/core/parsing/VarscanHit_WithTag.py
commons/core/parsing/VarscanHit_v2_2_8.py
commons/core/parsing/VarscanHit_v2_2_8_WithTag.py
commons/core/parsing/VarscanToVCF.py
commons/core/parsing/WigParser.py
commons/core/parsing/WigParser.pyc
commons/core/parsing/__init__.py
commons/core/parsing/__init__.pyc
commons/core/parsing/multifastaParserLauncher.py
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/AlignedBioseqDB.py
commons/core/seq/Bioseq.py
commons/core/seq/Bioseq.pyc
commons/core/seq/BioseqDB.py
commons/core/seq/BioseqUtils.py
commons/core/seq/ClusterConsensusCollection.py
commons/core/seq/FastaUtils.py
commons/core/seq/__init__.py
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/utils/FileUtils.py
commons/core/utils/PipelineStepFTests.py
commons/core/utils/RepetConfigParser.py
commons/core/utils/RepetOptionParser.py
commons/core/utils/RepetOptionParser.pyc
commons/core/utils/__init__.py
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.py
commons/core/writer/BedWriter.pyc
commons/core/writer/CsvWriter.py
commons/core/writer/CsvWriter.pyc
commons/core/writer/EmblWriter.py
commons/core/writer/EmblWriter.pyc
commons/core/writer/FastaWriter.py
commons/core/writer/FastaWriter.pyc
commons/core/writer/FastqWriter.py
commons/core/writer/FastqWriter.pyc
commons/core/writer/GbWriter.py
commons/core/writer/GbWriter.pyc
commons/core/writer/Gff2Writer.py
commons/core/writer/Gff2Writer.pyc
commons/core/writer/Gff3Writer.py
commons/core/writer/Gff3Writer.pyc
commons/core/writer/GtfWriter.py
commons/core/writer/GtfWriter.pyc
commons/core/writer/MapWriter.py
commons/core/writer/MapWriter.pyc
commons/core/writer/MySqlTranscriptWriter.py
commons/core/writer/MySqlTranscriptWriter.pyc
commons/core/writer/SamWriter.py
commons/core/writer/SamWriter.pyc
commons/core/writer/SequenceListWriter.py
commons/core/writer/SequenceListWriter.pyc
commons/core/writer/TranscriptListWriter.py
commons/core/writer/TranscriptListWriter.pyc
commons/core/writer/TranscriptWriter.py
commons/core/writer/TranscriptWriter.pyc
commons/core/writer/UcscWriter.py
commons/core/writer/UcscWriter.pyc
commons/core/writer/WigWriter.py
commons/core/writer/WigWriter.pyc
commons/core/writer/WriterChooser.py
commons/core/writer/WriterChooser.pyc
commons/core/writer/__init__.py
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
b
diff -r 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/DESeqTools/HTseqClean.R
--- a/SMART/DiffExpAnal/DESeqTools/HTseqClean.R Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,19 +0,0 @@
-# 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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/DESeqTools/MAplotDE.R
--- a/SMART/DiffExpAnal/DESeqTools/MAplotDE.R Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,16 +0,0 @@
-# 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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/DESeqTools/RNAseqFunctions.R
--- a/SMART/DiffExpAnal/DESeqTools/RNAseqFunctions.R Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,38 +0,0 @@
-# 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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/DESeqTools/anadiffGenes2conds.R
--- a/SMART/DiffExpAnal/DESeqTools/anadiffGenes2conds.R Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,191 +0,0 @@
-# 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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/DESeqTools/barplotNul.R
--- a/SMART/DiffExpAnal/DESeqTools/barplotNul.R Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,19 +0,0 @@
-# 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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/DESeqTools/barplotTC.R
--- a/SMART/DiffExpAnal/DESeqTools/barplotTC.R Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,20 +0,0 @@
-# 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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/DESeqTools/boxplotCounts.R
--- a/SMART/DiffExpAnal/DESeqTools/boxplotCounts.R Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,18 +0,0 @@
-# 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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/DESeqTools/clusterPlot.R
--- a/SMART/DiffExpAnal/DESeqTools/clusterPlot.R Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,27 +0,0 @@
-# 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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/DESeqTools/densityPlot.R
--- a/SMART/DiffExpAnal/DESeqTools/densityPlot.R Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,23 +0,0 @@
-# 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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/DESeqTools/exportComplete.R
--- a/SMART/DiffExpAnal/DESeqTools/exportComplete.R Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,20 +0,0 @@
-# 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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/DESeqTools/exportDiff.R
--- a/SMART/DiffExpAnal/DESeqTools/exportDiff.R Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,42 +0,0 @@
-# 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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/DESeqTools/histoRawp.R
--- a/SMART/DiffExpAnal/DESeqTools/histoRawp.R Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,18 +0,0 @@
-# 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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/DESeqTools/loadCountData.R
--- a/SMART/DiffExpAnal/DESeqTools/loadCountData.R Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,36 +0,0 @@
-# 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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/DESeqTools/loadTargetFile.R
--- a/SMART/DiffExpAnal/DESeqTools/loadTargetFile.R Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,17 +0,0 @@
-# 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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/DESeqTools/majSequence.R
--- a/SMART/DiffExpAnal/DESeqTools/majSequence.R Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,26 +0,0 @@
-# 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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/DESeqTools/pairwiseSERE.R
--- a/SMART/DiffExpAnal/DESeqTools/pairwiseSERE.R Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,41 +0,0 @@
-# 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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/DESeqTools/pairwiseScatterPlots.R
--- a/SMART/DiffExpAnal/DESeqTools/pairwiseScatterPlots.R Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,31 +0,0 @@
-# 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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/DESeqTools/plotDispEstimates.R
--- a/SMART/DiffExpAnal/DESeqTools/plotDispEstimates.R Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,21 +0,0 @@
-# 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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/DESeqTools/raw/f1cond1.tsv
--- a/SMART/DiffExpAnal/DESeqTools/raw/f1cond1.tsv Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
b"@@ -1,18761 +0,0 @@\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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/DESeqTools/raw/f1cond2.tsv
--- a/SMART/DiffExpAnal/DESeqTools/raw/f1cond2.tsv Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
b"@@ -1,18761 +0,0 @@\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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/DESeqTools/raw/f2cond1.tsv
--- a/SMART/DiffExpAnal/DESeqTools/raw/f2cond1.tsv Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
b"@@ -1,18761 +0,0 @@\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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/DESeqTools/raw/f2cond2.tsv
--- a/SMART/DiffExpAnal/DESeqTools/raw/f2cond2.tsv Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
b"@@ -1,18761 +0,0 @@\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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/DESeqTools/raw2counts.R
--- a/SMART/DiffExpAnal/DESeqTools/raw2counts.R Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,20 +0,0 @@
-# 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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/DESeqTools/removeNul.R
--- a/SMART/DiffExpAnal/DESeqTools/removeNul.R Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,14 +0,0 @@
-# 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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/bam_to_sam_parallel.py
--- a/SMART/DiffExpAnal/bam_to_sam_parallel.py Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,172 +0,0 @@
-#!/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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/bam_to_sam_parallel.xml
--- a/SMART/DiffExpAnal/bam_to_sam_parallel.xml Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,32 +0,0 @@
-<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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/bam_to_sam_parallel_unSQL.py
--- a/SMART/DiffExpAnal/bam_to_sam_parallel_unSQL.py Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,145 +0,0 @@
-#!/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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/bam_to_sam_parallel_unSQL.xml
--- a/SMART/DiffExpAnal/bam_to_sam_parallel_unSQL.xml Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,32 +0,0 @@
-<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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/compareOverlapping_parallel.py
--- a/SMART/DiffExpAnal/compareOverlapping_parallel.py Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,175 +0,0 @@\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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/compareOverlapping_parallel.xml
--- a/SMART/DiffExpAnal/compareOverlapping_parallel.xml Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,251 +0,0 @@\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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/compareOverlapping_parallel_unSQL.py
--- a/SMART/DiffExpAnal/compareOverlapping_parallel_unSQL.py Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,205 +0,0 @@\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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/compareOverlapping_parallel_unSQL.xml
--- a/SMART/DiffExpAnal/compareOverlapping_parallel_unSQL.xml Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,251 +0,0 @@\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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/countNumber.pl
--- a/SMART/DiffExpAnal/countNumber.pl Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,34 +0,0 @@
-#!/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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/countNumber.xml
--- a/SMART/DiffExpAnal/countNumber.xml Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,16 +0,0 @@
-<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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/countNumber_parallel.py
--- a/SMART/DiffExpAnal/countNumber_parallel.py Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,96 +0,0 @@
-#! /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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/countNumber_parallel.xml
--- a/SMART/DiffExpAnal/countNumber_parallel.xml Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,19 +0,0 @@
-<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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/countNumber_parallel_unSQL.py
--- a/SMART/DiffExpAnal/countNumber_parallel_unSQL.py Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,91 +0,0 @@
-#! /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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/countNumber_parallel_unSQL.xml
--- a/SMART/DiffExpAnal/countNumber_parallel_unSQL.xml Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,19 +0,0 @@
-<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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/deseq.sh
--- a/SMART/DiffExpAnal/deseq.sh Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,21 +0,0 @@
-#! /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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/deseq.xml
--- a/SMART/DiffExpAnal/deseq.xml Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,22 +0,0 @@
-<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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/fastq_groomer_parallel.py
--- a/SMART/DiffExpAnal/fastq_groomer_parallel.py Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,115 +0,0 @@
-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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/fastq_groomer_parallel.xml
--- a/SMART/DiffExpAnal/fastq_groomer_parallel.xml Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,122 +0,0 @@
-<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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/fastq_groomer_parallel_unSQL.py
--- a/SMART/DiffExpAnal/fastq_groomer_parallel_unSQL.py Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,168 +0,0 @@
-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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/fastq_groomer_parallel_unSQL.xml
--- a/SMART/DiffExpAnal/fastq_groomer_parallel_unSQL.xml Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,122 +0,0 @@
-<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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/gsnap.xml
--- a/SMART/DiffExpAnal/gsnap.xml Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,42 +0,0 @@
-<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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/gsnap_parallel_unSQL.py
--- a/SMART/DiffExpAnal/gsnap_parallel_unSQL.py Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,195 +0,0 @@\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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/gsnap_parallel_unSQL.xml
--- a/SMART/DiffExpAnal/gsnap_parallel_unSQL.xml Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,46 +0,0 @@
-<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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/listInputs.pl
--- a/SMART/DiffExpAnal/listInputs.pl Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,13 +0,0 @@
-#!/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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/listInputs.xml
--- a/SMART/DiffExpAnal/listInputs.xml Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,25 +0,0 @@
-<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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/loadHTSeqResultFiles.py
--- a/SMART/DiffExpAnal/loadHTSeqResultFiles.py Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,40 +0,0 @@
-#!/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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/loadHTSeqResultFiles.xml
--- a/SMART/DiffExpAnal/loadHTSeqResultFiles.xml Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,29 +0,0 @@
-<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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/loadMultiFastqFiles.py
--- a/SMART/DiffExpAnal/loadMultiFastqFiles.py Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,70 +0,0 @@
-#!/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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/loadMultiFastqFiles.sh
--- a/SMART/DiffExpAnal/loadMultiFastqFiles.sh Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,24 +0,0 @@
-#!/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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/loadMultiFastqFiles.xml
--- a/SMART/DiffExpAnal/loadMultiFastqFiles.xml Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,75 +0,0 @@
-<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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/testR.R
--- a/SMART/DiffExpAnal/testR.R Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,93 +0,0 @@
-#!/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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/testR.sh
--- a/SMART/DiffExpAnal/testR.sh Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,11 +0,0 @@
-#! /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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/tophat_parallel.py
--- a/SMART/DiffExpAnal/tophat_parallel.py Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,325 +0,0 @@\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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/tophat_parallel.xml
--- a/SMART/DiffExpAnal/tophat_parallel.xml Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,577 +0,0 @@\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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/tophat_parallel_unSQL.py
--- a/SMART/DiffExpAnal/tophat_parallel_unSQL.py Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,353 +0,0 @@\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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/tophat_parallel_unSQL.xml
--- a/SMART/DiffExpAnal/tophat_parallel_unSQL.xml Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,577 +0,0 @@\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 529e3e6a0954 -r d94018ca4ada SMART/DiffExpAnal/wrappGSNAP.py
--- a/SMART/DiffExpAnal/wrappGSNAP.py Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,76 +0,0 @@
-#! /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 529e3e6a0954 -r d94018ca4ada SMART/Java/File.java
--- a/SMART/Java/File.java Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,55 +0,0 @@
-/**
- *
- * 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 529e3e6a0954 -r d94018ca4ada SMART/Java/Files.java
--- a/SMART/Java/Files.java Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,75 +0,0 @@
-/**
- *
- * 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 529e3e6a0954 -r d94018ca4ada SMART/Java/FormatType.java
--- a/SMART/Java/FormatType.java Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,64 +0,0 @@
-/**
- *
- * 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 529e3e6a0954 -r d94018ca4ada SMART/Java/FormatsContainer.java
--- a/SMART/Java/FormatsContainer.java Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,90 +0,0 @@
-/**
- *
- * 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 529e3e6a0954 -r d94018ca4ada SMART/Java/FormatsReader.java
--- a/SMART/Java/FormatsReader.java Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,83 +0,0 @@
-/**
- *
- * 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 529e3e6a0954 -r d94018ca4ada SMART/Java/Global.java
--- a/SMART/Java/Global.java Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,70 +0,0 @@
-/**
- *
- * 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 529e3e6a0954 -r d94018ca4ada SMART/Java/Installer/Old/PasswordAsker.java
--- a/SMART/Java/Installer/Old/PasswordAsker.java Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,87 +0,0 @@
-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 529e3e6a0954 -r d94018ca4ada SMART/Java/Installer/Old/SmartInstaller.java
--- a/SMART/Java/Installer/Old/SmartInstaller.java Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,167 +0,0 @@
-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 529e3e6a0954 -r d94018ca4ada SMART/Java/Installer/Old/SmartInstallerTask.java
--- a/SMART/Java/Installer/Old/SmartInstallerTask.java Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,455 +0,0 @@\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 529e3e6a0954 -r d94018ca4ada SMART/Java/Installer/PasswordAsker.java
--- a/SMART/Java/Installer/PasswordAsker.java Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,87 +0,0 @@
-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 529e3e6a0954 -r d94018ca4ada SMART/Java/Installer/SmartInstaller.jar
b
Binary file SMART/Java/Installer/SmartInstaller.jar has changed
b
diff -r 529e3e6a0954 -r d94018ca4ada SMART/Java/Installer/SmartInstaller.java
--- a/SMART/Java/Installer/SmartInstaller.java Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,167 +0,0 @@
-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 529e3e6a0954 -r d94018ca4ada SMART/Java/Installer/SmartInstallerTask.java
--- a/SMART/Java/Installer/SmartInstallerTask.java Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,419 +0,0 @@\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 529e3e6a0954 -r d94018ca4ada SMART/Java/Installer/build.sh
--- a/SMART/Java/Installer/build.sh Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,5 +0,0 @@
-#! /bin/sh
-
-rm -rf SmartInstaller.jar
-javac *.java
-jar cvfm SmartInstaller.jar manifest.txt *.class
b
diff -r 529e3e6a0954 -r d94018ca4ada SMART/Java/Installer/manifest.txt
--- a/SMART/Java/Installer/manifest.txt Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,3 +0,0 @@
-Manifest-Version: 1.0
-Created-By: Matthias Zytnicki
-Main-Class: SmartInstaller
b
diff -r 529e3e6a0954 -r d94018ca4ada SMART/Java/Installer/s-mart.zip
b
Binary file SMART/Java/Installer/s-mart.zip has changed
b
diff -r 529e3e6a0954 -r d94018ca4ada SMART/Java/LICENSE.txt
--- a/SMART/Java/LICENSE.txt Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,506 +0,0 @@\n-\n-CeCILL FREE SOFTWARE LICENSE AGREEMENT\n-\n-\n-    Notice\n-\n-This Agreement is a Free Software license agreement that is the result\n-of discussions between its authors in order to ensure compliance with\n-the two main principles guiding its drafting:\n-\n-    * firstly, compliance with the principles governing the distribution\n-      of Free Software: access to source code, broad rights granted to\n-      users,\n-    * secondly, the election of a governing law, French law, with which\n-      it is conformant, both as regards the law of torts and\n-      intellectual property law, and the protection that it offers to\n-      both authors and holders of the economic rights over software.\n-\n-The authors of the CeCILL (for Ce[a] C[nrs] I[nria] L[ogiciel] L[ibre])\n-license are:\n-\n-Commissariat \xe0 l\'Energie Atomique - CEA, a public scientific, technical\n-and industrial research establishment, having its principal place of\n-business at 25 rue Leblanc, immeuble Le Ponant D, 75015 Paris, France.\n-\n-Centre National de la Recherche Scientifique - CNRS, a public scientific\n-and technological establishment, having its principal place of business\n-at 3 rue Michel-Ange, 75794 Paris cedex 16, France.\n-\n-Institut National de Recherche en Informatique et en Automatique -\n-INRIA, a public scientific and technological establishment, having its\n-principal place of business at Domaine de Voluceau, Rocquencourt, BP\n-105, 78153 Le Chesnay cedex, France.\n-\n-\n-    Preamble\n-\n-The purpose of this Free Software license agreement is to grant users\n-the right to modify and redistribute the software governed by this\n-license within the framework of an open source distribution model.\n-\n-The exercising of these rights is conditional upon certain obligations\n-for users so as to preserve this status for all subsequent redistributions.\n-\n-In consideration of access to the source code and the 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 only have limited liability.\n-\n-In this respect, the risks associated with loading, using, modifying\n-and/or developing or reproducing the software by the user are brought to\n-the user\'s attention, given its Free Software status, which may make it\n-complicated to use, with the result that its use is reserved for\n-developers and experienced professionals having in-depth computer\n-knowledge. Users are therefore encouraged to load and test the\n-suitability of the software as regards their requirements in conditions\n-enabling the security of their systems and/or data to be ensured and,\n-more generally, to use and operate it in the same conditions of\n-security. This Agreement may be freely reproduced and published,\n-provided it is not altered, and that no provisions are either added or\n-removed herefrom.\n-\n-This Agreement may apply to any or all software for which the holder of\n-the economic rights decides to submit the use thereof to its provisions.\n-\n-\n-    Article 1 - DEFINITIONS\n-\n-For the purpose of this Agreement, when the following expressions\n-commence with a capital letter, they shall have the following meaning:\n-\n-Agreement: means this license agreement, and its possible subsequent\n-versions and annexes.\n-\n-Software: means the software in its Object Code and/or Source Code form\n-and, where applicable, its documentation, "as is" when the Licensee\n-accepts the Agreement.\n-\n-Initial Software: means the Software in its Source Code and possibly its\n-Object Code form and, where applicable, its documentation, "as is" when\n-it is first distributed under the terms and conditions of the Agreement.\n-\n-Modified Software: means the Software modified by at least one\n-Contribution.\n-\n-Source Code: means all the Software\'s instructions and program lines to\n-which access is required so as to modify the Software.\n-\n-Object Code: means the binary files originating from the co'..b"a case-by-case basis between the relevant Licensor and the\n-Licensee pursuant to a memorandum of understanding. The Licensor\n-disclaims any and all liability as regards the Licensee's use of the\n-name of the Software. No warranty is given as regards the existence of\n-prior rights over the name of the Software or as regards the existence\n-of a trademark.\n-\n-\n-    Article 10 - TERMINATION\n-\n-10.1 In the event of a breach by the Licensee of its obligations\n-hereunder, the Licensor may automatically terminate this Agreement\n-thirty (30) days after notice has been sent to the Licensee and has\n-remained ineffective.\n-\n-10.2 A Licensee whose Agreement is terminated shall no longer be\n-authorized to use, modify or distribute the Software. However, any\n-licenses that it may have granted prior to termination of the Agreement\n-shall remain valid subject to their having been granted in compliance\n-with the terms and conditions hereof.\n-\n-\n-    Article 11 - MISCELLANEOUS\n-\n-\n-      11.1 EXCUSABLE EVENTS\n-\n-Neither Party shall be liable for any or all delay, or failure to\n-perform the Agreement, that may be attributable to an event of force\n-majeure, an act of God or an outside cause, such as defective\n-functioning or interruptions of the electricity or telecommunications\n-networks, network paralysis following a virus attack, intervention by\n-government authorities, natural disasters, water damage, earthquakes,\n-fire, explosions, strikes and labor unrest, war, etc.\n-\n-11.2 Any failure by either Party, on one or more occasions, to invoke\n-one or more of the provisions hereof, shall under no circumstances be\n-interpreted as being a waiver by the interested Party of its right to\n-invoke said provision(s) subsequently.\n-\n-11.3 The Agreement cancels and replaces any or all previous agreements,\n-whether written or oral, between the Parties and having the same\n-purpose, and constitutes the entirety of the agreement between said\n-Parties concerning said purpose. No supplement or modification to the\n-terms and conditions hereof shall be effective as between the Parties\n-unless it is made in writing and signed by their duly authorized\n-representatives.\n-\n-11.4 In the event that one or more of the provisions hereof were to\n-conflict with a current or future applicable act or legislative text,\n-said act or legislative text shall prevail, and the Parties shall make\n-the necessary amendments so as to comply with said act or legislative\n-text. All other provisions shall remain effective. Similarly, invalidity\n-of a provision of the Agreement, for any reason whatsoever, shall not\n-cause the Agreement as a whole to be invalid.\n-\n-\n-      11.5 LANGUAGE\n-\n-The Agreement is drafted in both French and English and both versions\n-are deemed authentic.\n-\n-\n-    Article 12 - NEW VERSIONS OF THE AGREEMENT\n-\n-12.1 Any person is authorized to duplicate and distribute copies of this\n-Agreement.\n-\n-12.2 So as to ensure coherence, the wording of this Agreement is\n-protected and may only be modified by the authors of the License, who\n-reserve the right to periodically publish updates or new versions of the\n-Agreement, each with a separate number. These subsequent versions may\n-address new issues encountered by Free Software.\n-\n-12.3 Any Software distributed under a given version of the Agreement may\n-only be subsequently distributed under the same version of the Agreement\n-or a subsequent version, subject to the provisions of Article 5.3.4.\n-\n-\n-    Article 13 - GOVERNING LAW AND JURISDICTION\n-\n-13.1 The Agreement is governed by French law. The Parties agree to\n-endeavor to seek an amicable solution to any disagreements or disputes\n-that may arise during the performance of the Agreement.\n-\n-13.2 Failing an amicable solution within two (2) months as from their\n-occurrence, and unless emergency proceedings are necessary, the\n-disagreements or disputes shall be referred to the Paris Courts having\n-jurisdiction, by the more diligent Party.\n-\n-\n-Version 2.0 dated 2006-09-05.\n"
b
diff -r 529e3e6a0954 -r d94018ca4ada SMART/Java/Program.java
--- a/SMART/Java/Program.java Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,175 +0,0 @@
-/**
- *
- * 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 529e3e6a0954 -r d94018ca4ada SMART/Java/ProgramFileReader.java
--- a/SMART/Java/ProgramFileReader.java Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,174 +0,0 @@
-/**
- *
- * 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 529e3e6a0954 -r d94018ca4ada SMART/Java/ProgramLauncher.java
--- a/SMART/Java/ProgramLauncher.java Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,209 +0,0 @@
-/**
- *
- * 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 529e3e6a0954 -r d94018ca4ada SMART/Java/ProgramOption.java
--- a/SMART/Java/ProgramOption.java Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,358 +0,0 @@\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 529e3e6a0954 -r d94018ca4ada SMART/Java/Python/.RData
b
Binary file SMART/Java/Python/.RData has changed
b
diff -r 529e3e6a0954 -r d94018ca4ada SMART/Java/Python/.gitignore
--- a/SMART/Java/Python/.gitignore Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,1 +0,0 @@
-/CleanTranscriptFile.py
b
diff -r 529e3e6a0954 -r d94018ca4ada SMART/Java/Python/100%
--- a/SMART/Java/Python/100% Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,152 +0,0 @@
-
-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 529e3e6a0954 -r d94018ca4ada SMART/Java/Python/CleanTranscriptFile.py
--- a/SMART/Java/Python/CleanTranscriptFile.py Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,74 +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 SMART.Java.Python.cleaning.CleanerChooser import CleanerChooser
-
-
-class CleanTranscriptFile(object):
-
- def __init__(self, verbosity):
- self.verbosity = verbosity
- self.chooser   = CleanerChooser(self.verbosity)
-
- def setInputFile(self, fileName, format):
- self.chooser.findFormat(format)
- self.cleaner = self.chooser.getCleaner()
- self.cleaner.setInputFileName(fileName)
-
- def setOutputFile(self, fileName):
- self.cleaner.setOutputFileName(fileName)
-
- def setAcceptedTypes(self, types):
- if types != None:
- self.cleaner.setAcceptedTypes(types)
-
- def run(self):
- self.cleaner.clean()
-
-
-if __name__ == "__main__":
-
- description = "Clean Transcript File v1.0.1: Clean a transcript file so that it is useable for S-MART. [Category: Other]"
-
- parser = OptionParser(description = description)
- parser.add_option("-i", "--input",       dest="inputFileName",  action="store",                     type="string", help="query input file [compulsory] [format: file in transcript format given by -f]")
- parser.add_option("-f", "--format",      dest="format",         action="store",                     type="string", help="format of previous file [compulsory] [format: transcript file format]")
- parser.add_option("-t", "--types",       dest="acceptedTypes",  action="store",      default=None,  type="string", help="name of the types you want to keep in GFF/GTF (list separated by commas) [format: string] [default: None]")
- 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()
-
- ctf = CleanTranscriptFile(options.verbosity)
- ctf.setInputFile(options.inputFileName, options.format)
- ctf.setOutputFile(options.outputFileName)
- ctf.setAcceptedTypes(None if options.acceptedTypes == None else options.acceptedTypes.split(","))
- ctf.run()
-
b
diff -r 529e3e6a0954 -r d94018ca4ada SMART/Java/Python/ClusterizeByTags.py
--- a/SMART/Java/Python/ClusterizeByTags.py Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,157 +0,0 @@\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-import random\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-from SMART.Java.Python.mySql.MySqlConnection import MySqlConnection\n-from commons.core.writer.MySqlTranscriptWriter import MySqlTranscriptWriter\n-\n-\n-OPERATIONS = ("diff", "div")\n-BOOLTOSTRANDS = {True: [0], False: [-1, 1]}\n-\n-class ClusterizeByTags(object):\n-\n-    def __init__(self, verbosity):\n-        self.verbosity   = verbosity\n-        self.connection  = MySqlConnection(self.verbosity-1)\n-        self.defautValue = None\n-        self.maxDistance = None\n-        self.oneStrand   = False\n-\n-    def setInputFile(self, fileName, format):\n-        chooser = ParserChooser(self.verbosity)\n-        chooser.findFormat(format)\n-        parser = chooser.getParser(fileName)\n-        writer = MySqlTranscriptWriter(self.connection, None, self.verbosity)\n-        writer.addTranscriptList(parser)\n-        writer.write()\n-        self.transcriptTables = writer.getTables()\n-\n-    def setOutputFile(self, fileName):\n-        self.writer = TranscriptWriter(fileName, "gff3", self.verbosity)\n-\n-    def setTag(self, tagName, defaultValue):\n-        self.tagName      = tagName\n-        self.defaultValue = defaultValue\n-\n-    def setThreshold(self, threshold):\n-        self.threshold = threshold\n-\n-    def setOperation(self, operation):\n-        self.operation = operation\n-        if self.operation not in OPERATIONS:\n-            raise Exception("Operation \'%s\' unsupported: choose among %s" % (self.operation, ", ".join(OPERATIONS)))\n-\n-    def setMaxDistance(self, distance):\n-        self.maxDistance = distance\n-\n-    def setOneStrand(self, oneStrand):\n-        self.oneStrand = oneStrand\n-\n-    def run(self):\n-        for chromosome in sorted(self.transcriptTables.keys()):\n-            progress = Progress(self.transcriptTables[chromosome].getNbElements(), "Analyzing %s" % (chromosome), self.verbosity)\n-            for strand in BOOLTOSTRANDS[self.oneStrand]:\n-                previousValue      = None\n-                previousTrend      = None\n-                previousTranscript = None\n-                sumValue           = 0\n-                command = "SELECT * FROM %s" % (self.tran'..b'       trend = value / previousValue\n-                    if previousTranscript == None:\n-                        sumValue = value\n-                    elif (previousTrend == None or abs(trend - previousTrend) <= self.threshold) and (self.maxDistance == None or previousTranscript.getDistance(transcript) <= self.maxDistance) and (previousTranscript.getDirection() == transcript.getDirection() or not self.oneStrand):\n-                        if previousTranscript.getDirection() != transcript.getDirection():\n-                            transcript.reverse()\n-                        previousTranscript.merge(transcript)\n-                        transcript = previousTranscript\n-                        sumValue += value\n-                        previousTrend = trend\n-                    else:\n-                        previousTranscript.setTagValue(self.tagName, sumValue)\n-                        self.writer.addTranscript(previousTranscript)\n-                        sumValue = value\n-                        previousTrend = None\n-                    previousValue      = value\n-                    previousTranscript = transcript\n-                    progress.inc()\n-                if previousTranscript != None:\n-                    previousTranscript.setTagValue(self.tagName, sumValue)\n-                    self.writer.addTranscript(previousTranscript)\n-            progress.done()\n-        self.writer.close()\n-\n-\n-if __name__ == "__main__":\n-    \n-    description = "Clusterize By Tags v1.0.1: Clusterize a set of element using their tag values. [Category: Merge]"\n-\n-    parser = OptionParser(description = description)\n-    parser.add_option("-i", "--input",       dest="inputFileName",  action="store",                     type="string", help="query 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 previous file [compulsory] [format: transcript file format]")\n-    parser.add_option("-t", "--tag",         dest="tagName",        action="store",                     type="string", help="name of the tag [format: string] [compulsory]")\n-    parser.add_option("-e", "--default",     dest="defaultValue",   action="store",      default=None,  type="int",    help="default value for the tag [format: string]")\n-    parser.add_option("-r", "--threshold",   dest="threshold",      action="store",                     type="int",    help="threshold between two consecutive tags [format: int] [compulsory]")\n-    parser.add_option("-p", "--operation",   dest="operation",      action="store",                     type="string", help="operation to apply between 2 different clusters to compare them [format: choice (diff, div)] [compulsory]")\n-    parser.add_option("-d", "--distance",    dest="maxDistance",    action="store",      default=None,  type="int",    help="maximum distance for 2 clusters to be merged [format: int] [default: None]")\n-    parser.add_option("-1", "--oneStrand",   dest="oneStrand",      action="store_true", default=False,                help="also cluster the elements which are on different strands [format: bool] [default: False]")\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-    cbt = ClusterizeByTags(options.verbosity)\n-    cbt.setInputFile(options.inputFileName, options.format)\n-    cbt.setOutputFile(options.outputFileName)\n-    cbt.setTag(option.tagName, option.defaultValue)\n-    cbt.setThreshold(option.threshold)\n-    cbt.setOperation(option.operation)\n-    cbt.setMaxDistance(operation.maxDistance)\n-    cbt.setOneStrand(operation.oneStrand)\n-    cbt.run()\n'
b
diff -r 529e3e6a0954 -r d94018ca4ada SMART/Java/Python/CollapseReads.py
--- a/SMART/Java/Python/CollapseReads.py Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,174 +0,0 @@\n-#! /usr/bin/env python\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-import os\n-from optparse import OptionParser, OptionGroup\n-from commons.core.parsing.ParserChooser import ParserChooser\n-from commons.core.writer.Gff3Writer import Gff3Writer\n-from SMART.Java.Python.structure.Transcript import Transcript\n-from SMART.Java.Python.ncList.NCListFilePickle import NCListFileUnpickle\n-from SMART.Java.Python.ncList.FileSorter import FileSorter\n-from SMART.Java.Python.misc.Progress import Progress\n-\n-\n-class CollapseReads(object):\n-    """\n-    Merge two reads if they have exactly the same genomic coordinates\n-    """\n-\n-    def __init__(self, verbosity = 0):\n-        self.verbosity         = verbosity\n-        self.inputReader       = None\n-        self.outputWriter      = None\n-        self.strands           = True\n-        self.nbRead            = 0\n-        self.nbWritten         = 0\n-        self.nbMerges          = 0\n-        self.splittedFileNames = {}\n-\n-    def __del__(self):\n-        for fileName in self.splittedFileNames.values():\n-            os.remove(fileName)\n-            \n-    def close(self):\n-        self.outputWriter.close()\n-        \n-    def setInputFile(self, fileName, format):\n-        parserChooser = ParserChooser(self.verbosity)\n-        parserChooser.findFormat(format)\n-        self.parser = parserChooser.getParser(fileName)\n-        self.sortedFileName = "%s_sorted.pkl" % (os.path.splitext(fileName)[0])\n-\n-    def setOutputFile(self, fileName):\n-        self.outputWriter = Gff3Writer(fileName, self.verbosity)\n-\n-    def getNbElements(self):\n-        return self.parser.getNbTranscripts()\n-\n-    def _sortFile(self):\n-        fs = FileSorter(self.parser, self.verbosity-4)\n-        fs.perChromosome(True)\n-        fs.setOutputFileName(self.sortedFileName)\n-        fs.sort()\n-        self.splittedFileNames       = fs.getOutputFileNames()\n-        self.nbElementsPerChromosome = fs.getNbElementsPerChromosome()\n-        self.nbRead                  = fs.getNbElements()\n-        \n-    def _iterate(self, chromosome):\n-        progress    = Progress(self.nbElementsPerChromosome[chromosome], "Checking chromosome %s" % (chromosome), self.verbosity)\n-        transcripts = []\n-        parser      = NCListFileUnpickle(self.splittedFileNames[chromosome], self.verbosity)\n-        for newTranscript in parser.getIterator():\n-            newTranscripts = []\n-            for oldTranscript in transcripts:\n-                if self._checkOverlap(newTranscript, oldTranscript):\n-       '..b'pt2):\n-        self.nbMerges += 1\n-        transcript2.setDirection(transcript1.getDirection())\n-        transcript1.merge(transcript2)\n-\n-    def _write(self, transcript):\n-        self.nbWritten += 1\n-        self.outputWriter.addTranscript(transcript)\n-\n-    def _checkOverlap(self, transcript1, transcript2):\n-        if transcript1.getStart() != transcript2.getStart() or transcript1.getEnd() != transcript2.getEnd():\n-            return False\n-        return (not self.strands or transcript1.getDirection() == transcript2.getDirection())\n-\n-    def _checkPassed(self, transcript1, transcript2):\n-        return (transcript2.getStart() < transcript1.getStart())\n-\n-    def collapseChromosome(self, chromosome):\n-        progress            = Progress(table.getNbElements(), "Analysing chromosome %s" % (chromosome), self.verbosity)\n-        command             = "SELECT * FROM %s ORDER BY start ASC, end DESC" % (table.name)\n-        transcriptStart     = None\n-        transcriptEnd       = None\n-        transcriptDirection = None\n-        currentTranscript   = None\n-        if self.strands:\n-            command += ", direction"\n-        for index, transcript in table.selectTranscripts(command, True):\n-            self.nbRead += 1\n-            if not self.strands:\n-                transcript.setDirection("+")\n-            if transcriptStart != transcript.getStart() or transcriptEnd != transcript.getEnd() or transcriptDirection != transcript.getDirection():\n-                self.writeTranscript(currentTranscript)\n-                transcriptStart     = transcript.getStart()\n-                transcriptEnd       = transcript.getEnd()\n-                transcriptDirection = transcript.getDirection()\n-                currentTranscript   = transcript\n-            else:\n-                currentTranscript.setTagValue("nbElements", (currentTranscript.getTagValue("nbElements") + 1) if "nbElements" in currentTranscript.getTagNames() else 1)\n-            progress.inc()\n-        self.writeTranscript(currentTranscript)\n-        progress.done()\n-\n-    def collapse(self):\n-        self._sortFile()\n-        for chromosome in sorted(self.nbElementsPerChromosome.keys()):\n-            self._iterate(chromosome)\n-        self.outputWriter.close()\n-        if self.verbosity > 1:\n-            print "# reads read: %d" % (self.nbRead)\n-            print "# reads written: %d (%.2f%%)" % (self.nbWritten, float(self.nbWritten) / self.nbRead * 100)\n-            print "# reads merges: %d" % (self.nbMerges)\n-\n-if __name__ == "__main__":\n-    \n-    # parse command line\n-    description = "Collapse Reads v1.0.3: Merge two reads if they have exactly the same genomic coordinates. [Category: Merge]"\n-\n-    parser = OptionParser(description = description)\n-    parser.add_option("-i", "--input",     dest="inputFileName",  action="store",                     type="string", help="input file [compulsory] [format: file in mapping format given by -f]")\n-    parser.add_option("-f", "--format",    dest="format",         action="store",                     type="string", help="format of the file [compulsory] [format: mapping 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("-s", "--strands",   dest="strands",        action="store_true", default=False,                help="merge elements on 2 different strands [format: bool] [default: false]")\n-    parser.add_option("-v", "--verbosity", dest="verbosity",      action="store",      default=1,     type="int",    help="trace level [default: 1] [format: int]")\n-    (options, args) = parser.parse_args()\n-\n-    collapser = CollapseReads(options.verbosity)\n-    collapser.setInputFile(options.inputFileName, options.format)\n-    collapser.setOutputFile(options.outputFileName)\n-    collapser.strands = not options.strands\n-    collapser.collapse()\n-    collapser.close()\n'
b
diff -r 529e3e6a0954 -r d94018ca4ada SMART/Java/Python/CombineTags.py
--- a/SMART/Java/Python/CombineTags.py Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,115 +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.
-#
-import os
-import random
-from optparse import OptionParser
-from SMART.Java.Python.structure.TranscriptContainer import TranscriptContainer
-from SMART.Java.Python.misc.Progress import Progress
-from commons.core.parsing.ParserChooser import ParserChooser
-from commons.core.writer.Gff3Writer import Gff3Writer
-
-OPERATIONS = ("plus", "minus", "times", "div")
-
-class CombineTags(object):
-
-    def __init__(self, verbosity = 0):
-        self.verbosity       = verbosity
-
-    def setInputFile(self, fileName, format):
-        self.inputFileName = fileName
-        parserChooser = ParserChooser(self.verbosity)
-        parserChooser.findFormat(format, "transcript")
-        self.parser = parserChooser.getParser(fileName)
-
-    def setOutputFile(self, fileName):
-        self.outputWriter = Gff3Writer(fileName, self.verbosity)
-
-    def setTags(self, tag1, tag2, outputTag, defaultValue = None):
-        self.tag1         = tag1
-        self.tag2         = tag2
-        self.outputTag    = outputTag
-        self.defaultValue = defaultValue
-
-    def setOperation(self, operation):
-        self.operation = operation
-        if self.operation not in OPERATIONS:
-            raise Exception("Do no handle operation %s, only: %s" % (self.operation, ", ".join(OPERATIONS)))
-
-    def run(self):
-        progress = Progress(self.parser.getNbTranscripts(), "Printing transcripts %s" % (self.inputFileName), self.verbosity)
-        for transcript in self.parser.getIterator():
-            tag1 = transcript.getTagValue(self.tag1)
-            tag2 = transcript.getTagValue(self.tag2)
-            if tag1 == None or tag2 == None:
-                if self.defaultValue == None:
-                    raise Exception("Transcript %s misses one of the tags %s and %s, and has no default value !" % (transcript, self.tag1, self.tag2))
-                newTag = self.defaultValue
-            else:
-                tag1, tag2 = float(tag1), float(tag2)
-                if self.operation == "plus":
-                    newTag = tag1 + tag2
-                elif self.operation == "minus":
-                    newTag = tag1 - tag2
-                elif self.operation == "times":
-                    newTag = tag1 * tag2
-                elif self.operation == "div":
-                    newTag = tag1 / tag2
-            transcript.setTagValue(self.outputTag, newTag)
-            self.outputWriter.addTranscript(transcript)
-            progress.inc()
-        progress.done()
-        self.parser.close()
-        self.outputWriter.close()
-
-
-if __name__ == "__main__":
-    
-    # parse command line
-    description = "Change Tag Name v1.0.1: Change the name of tag of a list of transcripts. [Category: Data Modification]"
-
-    parser = OptionParser(description = description)
-    parser.add_option("-i", "--input",       dest="inputFileName",  action="store",               type="string", help="input file [compulsory] [format: file in transcript format given by -f]")
-    parser.add_option("-f", "--inputFormat", dest="inputFormat",    action="store",               type="string", help="format of the input file [compulsory] [format: transcript file format]")
-    parser.add_option("-o", "--output",      dest="outputFileName", action="store",               type="string", help="output file [compulsory] [format: output file in GFF3 format]")
-    parser.add_option("-t", "--tag1",        dest="tag1",           action="store",               type="string", help="name of the first tag [compulsory] [format: string]")
-    parser.add_option("-T", "--tag2",        dest="tag2",           action="store",               type="string", help="name of the second tag [compulsory] [format: string]")
-    parser.add_option("-d", "--default",     dest="defaultValue",   action="store", default=None, type="string", help="default value when one of the tag is absent [compulsory] [format: float]")
-    parser.add_option("-n", "--new",         dest="newTag",         action="store",               type="string", help="name of the new tag [compulsory] [format: string]")
-    parser.add_option("-p", "--operation",   dest="operation",      action="store",               type="string", help="operation combining the tags [compulsory] [format: choice (plus, minus, times, div)]")
-    parser.add_option("-v", "--verbosity",   dest="verbosity",      action="store", default=1,    type="int",    help="trace level [format: int] [default: 1]")
-    (options, args) = parser.parse_args()
-
-    combiner = CombineTags(options.verbosity)
-    combiner.setInputFile(options.inputFileName, options.inputFormat)
-    combiner.setOutputFile("%s.gff3" % (options.outputFileName))
-    combiner.setTags(options.tag1, options.tag2, options.newTag, options.defaultValue)
-    combiner.setOperation(options.operation)
-    combiner.run()
b
diff -r 529e3e6a0954 -r d94018ca4ada SMART/Java/Python/CompareOverlapping.py
--- a/SMART/Java/Python/CompareOverlapping.py Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,491 +0,0 @@\n-#! /usr/bin/env python\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-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.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.NCListHandler import NCListHandler\n-from SMART.Java.Python.ncList.ConvertToNCList import ConvertToNCList\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-try:\n-\timport cPickle as pickle\n-except:\n-\timport pickle\n-\n-REFERENCE = 0\n-QUERY = 1\n-TYPES = (REFERENCE, QUERY)\n-TYPETOSTRING = {0: "reference", 1: "query"}\n-\n-class CompareOverlapping(object):\n-\n-\tdef __init__(self, verbosity = 1):\n-\t\tself._outputFileName\t\t   = "outputOverlaps.gff3"\n-\t\tself._iWriter\t\t\t\t   = None\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\t   = verbosity\n-\t\tself._ncLists\t\t\t\t   = {}\n-\t\tself._cursors\t\t\t\t   = {}\n-\t\tself._splittedFileNames\t\t   = {}\n-\t\tself._nbElements\t\t\t   = {}\n-\t\tself._nbElementsPerChromosome  = {}\n-\t\tself._inputFileNames\t\t   = {REFERENCE: None,  QUERY: None}\n-\t\tself._inputFileFormats\t\t   = {REFERENCE: None,  QUERY: None}\n-\t\tself._starts\t\t\t\t   = {REFERENCE: None, QUERY: None}\n-\t\tself._ends\t\t\t\t\t   = {REFERENCE: None, QUERY: None}\n-\t\tself._fivePrimes\t\t\t   = {REFERENCE: None, QUERY: None}\n-\t\tself._threePrimes\t\t\t   = {REFERENCE: None, QUERY: None}\n-\t\tself._ncListHandlers\t\t   = {REFERENCE: None,  QUERY: None}\n-\t\tself._convertedFileNames\t   = {REFERENCE: False, QUERY: False}\n-\t\tself._sorted                   = False\n-\t\tself._index                    = False\n-\t\tself._introns\t\t\t\t   = False\n-\t\tself._antisense\t\t\t\t   = False\n-\t\tself._colinear\t\t\t\t   = False\n-\t\tself._invert\t\t\t\t   = False\n-\t\tself._distance\t\t\t\t   = 0\n-\t\tself._minOverlap\t\t\t   = 1\n-\t\tself._pcOverlap\t\t\t\t   = None\n-\t\tself._included\t\t\t\t   = False\n-\t\tself._including\t\t\t\t   = False\n-\t\tself._outputNotOverlapping\t   = False\n-\t\tself._tmpRefFileName\t\t   = None\n-\t\tself._currentQueryTranscript   = None\n-\t\tself._currentOrQueryTranscript = None\n-\t'..b'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\t action="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", "--5primeExtension2", dest="fivePrime2",\t action="store",\t  default=None,  type="int",\thelp="extension towards 5\' in file 2 [format: int]")\n-\tparser.add_option("-N", "--3primeExtension1", dest="threePrime1",\t action="store",\t  default=None,  type="int",\thelp="extension towards 3\' in file 1 [format: int]")\n-\tparser.add_option("-n", "--3primeExtension2", dest="threePrime2",\t action="store",\t  default=None,  type="int",\thelp="extension towards 3\' in file 2 [format: int]")\n-\tparser.add_option("-c", "--colinear",\t\t  dest="colinear",\t\t action="store_true", default=False,\t\t\t\thelp="colinear only [format: bool] [default: false]")\n-\tparser.add_option("-a", "--antisense",\t\t  dest="antisense",\t\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=0,\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\t  dest="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\t  dest="minOverlap",\t action="store",\t  default=1,\t type="int",\thelp="minimum number of nucleotides overlapping to declare an overlap [format: int] [default: 1]")\n-\tparser.add_option("-p", "--pcOverlap",\t\t  dest="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\t action="store_true", default=False,\t\t\t\thelp="invert the match [format: bool] [default: false]")\n-\tparser.add_option("-v", "--verbosity",\t\t  dest="verbosity",\t\t action="store",\t  default=1,\t type="int",\thelp="trace level [format: int]")\n-\t(options, args) = parser.parse_args()\n-\n-\tco = CompareOverlapping(options.verbosity)\n-\tco.setInput(options.inputFileName1, options.format1, QUERY)\n-\tco.setInput(options.inputFileName2, options.format2, REFERENCE)\n-\tco.setOutput(options.output)\n-\tco.setSorted(options.sorted)\n-\tco.setIndex(options.index)\n-\tco.restrictToStart(options.start1, QUERY)\n-\tco.restrictToStart(options.start2, REFERENCE)\n-\tco.restrictToEnd(options.end1, QUERY)\n-\tco.restrictToEnd(options.end2, REFERENCE)\n-\tco.extendFivePrime(options.fivePrime1, QUERY)\n-\tco.extendFivePrime(options.fivePrime2, REFERENCE)\n-\tco.extendThreePrime(options.threePrime1, QUERY)\n-\tco.extendThreePrime(options.threePrime2, REFERENCE)\n-\tco.acceptIntrons(options.introns)\n-\tco.getAntisenseOnly(options.antisense)\n-\tco.getColinearOnly(options.colinear)\n-\tco.getInvert(options.exclude)\n-\tco.setMaxDistance(options.distance)\n-\tco.setMinOverlap(options.minOverlap)\n-\tco.setPcOverlap(options.pcOverlap)\n-\tco.setIncludedOnly(options.included)\n-\tco.setIncludingOnly(options.including)\n-\tco.includeNotOverlapping(options.notOverlapping)\n-\tco.run()\n'
b
diff -r 529e3e6a0954 -r d94018ca4ada SMART/Java/Python/CompareOverlapping.pyc
b
Binary file SMART/Java/Python/CompareOverlapping.pyc has changed
b
diff -r 529e3e6a0954 -r d94018ca4ada SMART/Java/Python/CompareOverlappingSmallQuery.py
--- a/SMART/Java/Python/CompareOverlappingSmallQuery.py Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,261 +0,0 @@\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.Interval import Interval\n-from SMART.Java.Python.structure.Transcript import Transcript\n-from SMART.Java.Python.structure.Mapping import Mapping\n-from SMART.Java.Python.misc.Progress import Progress\n-from SMART.Java.Python.misc.UnlimitedProgress import UnlimitedProgress\n-\n-MINBIN = 3\n-MAXBIN = 7\n-REFERENCE = 0\n-QUERY = 1\n-\n-def getBin(start, end):\n-\tfor i in range(MINBIN, MAXBIN + 1):\n-\t\tbinLevel = 10 ** i\n-\t\tif int(start / binLevel) == int(end / binLevel):\n-\t\t\treturn int(i * 10 ** (MAXBIN + 1) + int(start / binLevel))\n-\treturn int((MAXBIN + 1) * 10 ** (MAXBIN + 1))\n-\n-def getOverlappingBins(start, end):\n-\tarray\t= []\n-\tbigBin = int((MAXBIN + 1) * 10 ** (MAXBIN + 1))\n-\tfor i in range(MINBIN, MAXBIN + 1):\n-\t\tbinLevel = 10 ** i\n-\t\tarray.append((int(i * 10 ** (MAXBIN + 1) + int(start / binLevel)), int(i * 10 ** (MAXBIN + 1) + int(end / binLevel))))\n-\tarray.append((bigBin, bigBin))\n-\treturn array\n-\n-\n-class CompareOverlappingSmallQuery(object):\n-\n-\tdef __init__(self, verbosity):\n-\t\tself.verbosity      = verbosity\n-\t\tself.tableNames     = {}\n-\t\tself.nbQueries      = 0\n-\t\tself.nbRefs\t        = 0\n-\t\tself.nbWritten      = 0\n-\t\tself.nbOverlaps     = 0\n-\t\tself.distance       = None\n-\t\tself.invert         = False\n-\t\tself.antisense      = False\n-\t\tself.collinear      = False\n-\t\tself.pcOverlapQuery = False\n-\t\tself.pcOverlapRef   = False\n-\t\tself.minOverlap     = False\n-\t\tself.included       = False\n-\t\tself.including      = False\n-\t\tself.bins\t        = {}\n-\t\tself.overlaps       = {}\n-\t\tself.notOverlapping = False\n-\n-\tdef setReferenceFile(self, fileName, format):\n-\t\tchooser = ParserChooser(self.verbosity)\n-\t\tchooser.findFormat(format)\n-\t\tself.refParser = chooser.getParser(fileName)\n-\n-\tdef setQueryFile(self, fileName, format):\n-\t\tchooser = ParserChooser(self.verbosity)\n-\t\tchooser.findFormat(format)\n-\t\tself.queryParser = chooser.getParser(fileName)\n-\n-\tdef setOutputFile(self, fileName):\n-\t\tself.writer = TranscriptWriter(fileName, "gff3", self.verbosity)\n-\n-\tdef setDistance(self, distance):\n-\t\tself.distance = distance\n-\n-\tdef setInvert(self, boolean):\n-\t\tself.invert = boolean\n-\n-\tdef setCollinear(self, boolean):\n-\t\tself.collinear = boolean\n-\n-\tdef setAntisense(self, boolean):\n-\t\tself.antisense = boolean\n-\n-\tdef setMinPercentOverlap(sel'..b'\tprint "# written:  %d (%d overlaps)" % (self.nbWritten, self.nbOverlaps)\n-\n-\tdef run(self):\n-\t\tself.loadQuery()\n-\t\tself.compare()\n-\t\tself.printResults()\n-\t\tself.displayResults()\n-\n-if __name__ == "__main__":\n-\t\n-\tdescription = "Compare Overlapping Small Query v1.0.1: Provide the queries that overlap with a reference, when the query is small. [Category: Data Comparison]"\n-\n-\tparser = OptionParser(description = description)\n-\tparser.add_option("-i", "--input1",\t        dest="inputFileName1", action="store",\t\t\t           type="string", help="query input file [compulsory] [format: file in transcript format given by -f]")\n-\tparser.add_option("-f", "--format1",        dest="format1",\t\t  action="store",\t\t\t           type="string", help="format of previous file [compulsory] [format: transcript file format]")\n-\tparser.add_option("-j", "--input2",\t        dest="inputFileName2", action="store",\t\t\t           type="string", help="reference input file [compulsory] [format: file in transcript format given by -g]")\n-\tparser.add_option("-g", "--format2",        dest="format2",\t\t  action="store",\t\t\t           type="string", help="format of previous file [compulsory] [format: transcript file format]")\n-\tparser.add_option("-o", "--output",\t        dest="outputFileName", action="store",\t\t\t           type="string", help="output file [format: output file in GFF3 format]")\n-\tparser.add_option("-O", "--notOverlapping", dest="notOverlapping", action="store_true", default=False,\t\t\t\t help="also output not overlapping data [format: bool] [default: false]")\n-\tparser.add_option("-d", "--distance",\t\tdest="distance",\t   action="store",\t    default=0,\t   type="int",\t help="accept some distance between query and reference [format: int]")\n-\tparser.add_option("-c", "--collinear",\t\tdest="collinear",\t   action="store_true", default=False,\t\t\t \t help="provide collinear features [format: bool] [default: false]")\n-\tparser.add_option("-a", "--antisense",\t\tdest="antisense",\t   action="store_true", default=False,\t\t\t \t help="provide antisense features [format: bool] [default: false]")\n-\tparser.add_option("-m", "--minOverlap",\t    dest="minOverlap",     action="store",      default=False, type="int",\t help="min. #nt overlap [format: bool] [default: false]")\n-\tparser.add_option("-p", "--pcOverlapQuery",\tdest="pcOverlapQuery", action="store",      default=False, type="int",\t help="min. % overlap of the query [format: bool] [default: false]")\n-\tparser.add_option("-P", "--pcOverlapRef",\tdest="pcOverlapRef",   action="store",      default=False, type="int",   help="min. % overlap of the reference [format: bool] [default: false]")\n-\tparser.add_option("-k", "--included",\t\tdest="included",\t   action="store_true", default=False,\t\t\t \t help="provide query elements which are nested in reference elements [format: bool] [default: false]")\n-\tparser.add_option("-K", "--including",\t\tdest="including",\t   action="store_true", default=False,\t\t\t \t help="provide query elements in which reference elements are nested [format: bool] [default: false]")\n-\tparser.add_option("-x", "--exclude",\t\tdest="exclude",\t\t   action="store_true", default=False,\t\t\t \t help="invert the match [format: bool] [default: false]")\n-\tparser.add_option("-v", "--verbosity",      dest="verbosity",\t   action="store",      default=1,     type="int",\t help="trace level [format: int]")\n-\t(options, args) = parser.parse_args()\n-\n-\tcosq = CompareOverlappingSmallQuery(options.verbosity)\n-\tcosq.setQueryFile(options.inputFileName1, options.format1)\n-\tcosq.setReferenceFile(options.inputFileName2, options.format2)\n-\tcosq.setOutputFile(options.outputFileName)\n-\tcosq.includeNotOverlapping(options.notOverlapping)\n-\tcosq.setDistance(options.distance)\n-\tcosq.setCollinear(options.collinear)\n-\tcosq.setAntisense(options.antisense)\n-\tcosq.setMinPercentOverlap(options.pcOverlapQuery, options.pcOverlapRef)\n-\tcosq.setMinOverlap(options.minOverlap)\n-\tcosq.setInclude(options.included, options.including)\n-\tcosq.setInvert(options.exclude)\n-\tcosq.run()\n'
b
diff -r 529e3e6a0954 -r d94018ca4ada SMART/Java/Python/CompareOverlappingSmallRef.py
--- a/SMART/Java/Python/CompareOverlappingSmallRef.py Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,250 +0,0 @@\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.Interval import Interval\n-from SMART.Java.Python.structure.Transcript import Transcript\n-from SMART.Java.Python.structure.Mapping import Mapping\n-from SMART.Java.Python.misc.Progress import Progress\n-from SMART.Java.Python.misc.UnlimitedProgress import UnlimitedProgress\n-\n-MINBIN = 3\n-MAXBIN = 7\n-REFERENCE = 0\n-QUERY = 1\n-\n-def getBin(start, end):\n-\tfor i in range(MINBIN, MAXBIN + 1):\n-\t\tbinLevel = 10 ** i\n-\t\tif int(start / binLevel) == int(end / binLevel):\n-\t\t\treturn int(i * 10 ** (MAXBIN + 1) + int(start / binLevel))\n-\treturn int((MAXBIN + 1) * 10 ** (MAXBIN + 1))\n-\n-def getOverlappingBins(start, end):\n-\tarray\t= []\n-\tbigBin = int((MAXBIN + 1) * 10 ** (MAXBIN + 1))\n-\tfor i in range(MINBIN, MAXBIN + 1):\n-\t\tbinLevel = 10 ** i\n-\t\tarray.append((int(i * 10 ** (MAXBIN + 1) + int(start / binLevel)), int(i * 10 ** (MAXBIN + 1) + int(end / binLevel))))\n-\tarray.append((bigBin, bigBin))\n-\treturn array\n-\n-\n-class CompareOverlappingSmallRef(object):\n-\n-\tdef __init__(self, verbosity):\n-\t\tself.verbosity      = verbosity\n-\t\tself.tableNames     = {}\n-\t\tself.nbQueries      = 0\n-\t\tself.nbRefs\t        = 0\n-\t\tself.nbWritten      = 0\n-\t\tself.nbOverlaps     = 0\n-\t\tself.invert         = False\n-\t\tself.antisense      = False\n-\t\tself.collinear      = False\n-\t\tself.distance       = None\n-\t\tself.minOverlap     = False\n-\t\tself.pcOverlapQuery = False\n-\t\tself.pcOverlapRef   = False\n-\t\tself.included       = False\n-\t\tself.including      = False\n-\t\tself.bins\t        = {}\n-\t\tself.notOverlapping = False\n-\n-\tdef setReferenceFile(self, fileName, format):\n-\t\tchooser = ParserChooser(self.verbosity)\n-\t\tchooser.findFormat(format)\n-\t\tself.refParser = chooser.getParser(fileName)\n-\n-\tdef setQueryFile(self, fileName, format):\n-\t\tchooser = ParserChooser(self.verbosity)\n-\t\tchooser.findFormat(format)\n-\t\tself.queryParser = chooser.getParser(fileName)\n-\n-\tdef setOutputFile(self, fileName):\n-\t\tself.writer = TranscriptWriter(fileName, "gff3", self.verbosity)\n-\n-\tdef setDistance(self, distance):\n-\t\tself.distance = distance\n-\n-\tdef setCollinear(self, boolean):\n-\t\tself.collinear = boolean\n-\n-\tdef setAntisense(self, boolean):\n-\t\tself.antisense = boolean\n-\n-\tdef setInvert(self, boolean):\n-\t\tself.invert = boolean\n-\n-\tdef setMinPercentOverlap(self, pcOverlapQuery, pcOverlapRe'..b'\t\t\tprint "# refs:     %d" % (self.nbRefs)\n-\t\t\tprint "# written:  %d (%d overlaps)" % (self.nbWritten, self.nbOverlaps)\n-\n-\tdef run(self):\n-\t\tself.loadRef()\n-\t\tself.compare()\n-\t\tself.displayResults()\n-\n-if __name__ == "__main__":\n-\t\n-\tdescription = "Compare Overlapping Small Reference v1.0.1: Provide the queries that overlap with a reference, when the reference is small. [Category: Data Comparison]"\n-\n-\tparser = OptionParser(description = description)\n-\tparser.add_option("-i", "--input1",\t        dest="inputFileName1", action="store",\t\t\t           type="string", help="query input file [compulsory] [format: file in transcript format given by -f]")\n-\tparser.add_option("-f", "--format1",        dest="format1",\t\t  action="store",\t\t\t           type="string", help="format of previous file [compulsory] [format: transcript file format]")\n-\tparser.add_option("-j", "--input2",\t        dest="inputFileName2", action="store",\t\t\t           type="string", help="reference input file [compulsory] [format: file in transcript format given by -g]")\n-\tparser.add_option("-g", "--format2",        dest="format2",\t\t  action="store",\t\t\t           type="string", help="format of previous file [compulsory] [format: transcript file format]")\n-\tparser.add_option("-o", "--output",\t        dest="outputFileName", action="store",\t\t\t           type="string", help="output file [format: output file in GFF3 format]")\n-\tparser.add_option("-O", "--notOverlapping", dest="notOverlapping", action="store_true", default=False,\t\t\t\t  help="also output not overlapping data [format: bool] [default: false]")\n-\tparser.add_option("-d", "--distance",\t\tdest="distance",\t   action="store",\t    default=0,\t   type="int",\t  help="accept some distance between query and reference [format: int]")\n-\tparser.add_option("-c", "--collinear",\t\tdest="collinear",\t   action="store_true", default=False,\t\t\t \t  help="provide collinear features [format: bool] [default: false]")\n-\tparser.add_option("-a", "--antisense",\t\tdest="antisense",\t   action="store_true", default=False,\t\t\t \t  help="provide antisense features [format: bool] [default: false]")\n-\tparser.add_option("-m", "--minOverlap",\t    dest="minOverlap",     action="store",      default=False, type="int",\t  help="min. #nt overlap [format: bool] [default: false]")\n-\tparser.add_option("-p", "--pcOverlapQuery",\tdest="pcOverlapQuery", action="store",      default=False, type="int",\t  help="min. % overlap of the query [format: bool] [default: false]")\n-\tparser.add_option("-P", "--pcOverlapRef",\tdest="pcOverlapRef",   action="store",      default=False, type="int",    help="min. % overlap of the reference [format: bool] [default: false]")\n-\tparser.add_option("-k", "--included",\t\tdest="included",\t   action="store_true", default=False,\t\t\t \t  help="provide query elements which are nested in reference elements [format: bool] [default: false]")\n-\tparser.add_option("-K", "--including",\t\tdest="including",\t   action="store_true", default=False,\t\t\t \t  help="provide query elements in which reference elements are nested [format: bool] [default: false]")\n-\tparser.add_option("-x", "--exclude",\t\tdest="exclude",\t\t   action="store_true", default=False,\t\t\t \t  help="invert the match [format: bool] [default: false]")\n-\tparser.add_option("-v", "--verbosity",      dest="verbosity",\t   action="store",      default=1,     type="int",\t  help="trace level [format: int]")\n-\t(options, args) = parser.parse_args()\n-\n-\tcosr = CompareOverlappingSmallRef(options.verbosity)\n-\tcosr.setQueryFile(options.inputFileName1, options.format1)\n-\tcosr.setReferenceFile(options.inputFileName2, options.format2)\n-\tcosr.setOutputFile(options.outputFileName)\n-\tcosr.includeNotOverlapping(options.notOverlapping)\n-\tcosr.setDistance(options.distance)\n-\tcosr.setAntisense(options.antisense)\n-\tcosr.setInclude(options.included, options.including)\n-\tcosr.setInvert(options.exclude)\n-\tcosr.setMinOverlap(options.minOverlap)\n-\tcosr.setMinPercentOverlap(options.pcOverlapQuery, options.pcOverlapRef)\n-\tcosr.run()\n-\n'
b
diff -r 529e3e6a0954 -r d94018ca4ada SMART/Java/Python/ComputeCoverage.py
--- a/SMART/Java/Python/ComputeCoverage.py Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,142 +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.
-#
-import os, random
-from optparse import OptionParser, OptionGroup
-from SMART.Java.Python.structure.TranscriptContainer import TranscriptContainer
-from SMART.Java.Python.misc.Progress import Progress
-from commons.core.writer.Gff3Writer import Gff3Writer
-
-
-class CoverageComputer(object):
-
- def __init__(self, verbosity = 0):
- self.verbosity      = verbosity
- self.queryReader  = None
- self.referenceReader = None
- self.outputWriter  = None
- self.introns  = False
- self.nbNucleotides   = 0
- self.nbCovered      = 0
-
- def setInputQueryFile(self, fileName, format):
- self.queryReader = TranscriptContainer(fileName, format, self.verbosity-1)
-
- def setInputReferenceFile(self, fileName, format):
- self.referenceReader = TranscriptContainer(fileName, format, self.verbosity-1)
-
- def includeIntrons(self, boolean):
- self.introns = boolean
-
- def setOutputFileName(self, fileName, title="S-MART", feature="transcript", featurePart="exon"):
- self.outputWriter = Gff3Writer(fileName, self.verbosity-1)
- self.outputWriter.setTitle(title)
- self.outputWriter.setFeature(feature)
- self.outputWriter.setFeaturePart(featurePart)
-
- def readReference(self):
- self.coveredRegions = {}
- progress = Progress(self.referenceReader.getNbTranscripts(), "Reading reference file", self.verbosity-1)
- for transcript in self.referenceReader.getIterator():
- chromosome = transcript.getChromosome()
- if chromosome not in self.coveredRegions:
- self.coveredRegions[chromosome] = {}
- if self.introns:
- transcript.removeExons()
- for exon in transcript.getExons():
- for position in range(exon.getStart(), exon.getEnd()+1):
- self.coveredRegions[chromosome][position] = 1
- progress.inc()
- progress.done()
-
- def readQuery(self):
- progress = Progress(self.queryReader.getNbTranscripts(), "Reading query file", self.verbosity-1)
- for transcript in self.queryReader.getIterator():
- progress.inc()
- chromosome = transcript.getChromosome()
- if chromosome not in self.coveredRegions:
- continue
- if self.introns:
- transcript.removeExons()
- for exon in transcript.getExons():
- for position in range(exon.getStart(), exon.getEnd()+1):
- self.nbNucleotides += 1
- self.nbCovered     += self.coveredRegions[chromosome].get(position, 0)
- progress.done()
-
- def write(self):
- progress = Progress(self.queryReader.getNbTranscripts(), "Writing output file", self.verbosity-1)
- for transcript in self.queryReader.getIterator():
- chromosome = transcript.getChromosome()
- if self.introns:
- transcript.removeExons()
- size  = transcript.getSize()
- coverage = 0
- for exon in transcript.getExons():
- for position in range(exon.getStart(), exon.getEnd()+1):
- coverage += self.coveredRegions[chromosome].get(position, 0)
- transcript.setTagValue("coverage", 0 if size == 0 else float(coverage) / size * 100)
- self.outputWriter.addTranscript(transcript)
- progress.inc()
- progress.done()
-
- def sumUp(self):
- print "%d nucleotides in query, %d (%.f%%) covered" % (self.nbNucleotides, self.nbCovered, 0 if self.nbNucleotides == 0 else float(self.nbCovered) / self.nbNucleotides * 100)
-
- def run(self):
- self.readReference()
- self.readQuery()
- if self.outputWriter != None:
- self.write()
- self.sumUp()
-
-
-if __name__ == "__main__":
-
- # parse command line
- description = "Compute Coverage v1.0.1: Compute the coverage of a set with respect to another set. [Category: Personal]"
-
- parser = OptionParser(description = description)
- parser.add_option("-i", "--input1",    dest="inputFileName1", action="store",                     type="string", help="input query file [compulsory] [format: file in transcript format given by -f]")
- parser.add_option("-f", "--format1",   dest="format1",        action="store",                     type="string", help="format of the first file [compulsory] [format: transcript file format]")
- parser.add_option("-j", "--input2",    dest="inputFileName2", action="store",                     type="string", help="input reference file [compulsory] [format: file in transcript format given by -f]")
- parser.add_option("-g", "--format2",   dest="format2",        action="store",                     type="string", help="format of the second file [compulsory] [format: transcript file format]")
- parser.add_option("-t", "--introns",   dest="introns",        action="store_true", default=False,                help="also include introns [format: boolean] [default: false]")
- parser.add_option("-o", "--output",    dest="outputFileName", action="store",    default=None,  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 [default: 1] [format: int]")
- (options, args) = parser.parse_args()
-
- computer = CoverageComputer(options.verbosity)
- computer.setInputQueryFile(options.inputFileName1, options.format1)
- computer.setInputReferenceFile(options.inputFileName2, options.format2)
- computer.includeIntrons(options.introns)
- computer.setOutputFileName(options.outputFileName)
- computer.run()
-
b
diff -r 529e3e6a0954 -r d94018ca4ada SMART/Java/Python/CountLoci.py
--- a/SMART/Java/Python/CountLoci.py Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,230 +0,0 @@\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-import os, os.path, random\n-from optparse import OptionParser\n-from SMART.Java.Python.structure.TranscriptContainer import TranscriptContainer\n-from commons.core.parsing.GffParser import GffParser\n-from commons.core.writer.Gff3Writer import Gff3Writer\n-from commons.core.writer.TranscriptWriter import TranscriptWriter\n-from SMART.Java.Python.misc.Progress import Progress\n-from SMART.Java.Python.misc.RPlotter import RPlotter\n-from SMART.Java.Python.cleanGff import CleanGff\n-from SMART.Java.Python.CompareOverlapping import CompareOverlapping\n-from SMART.Java.Python.structure.TranscriptListsComparator import TranscriptListsComparator\n-from SMART.Java.Python.GetUpDownStream import GetUpDownStream\n-\n-REFERENCE = 0\n-QUERY = 1\n-\n-class CountLoci(object):\n-    \n-    def __init__(self, verbosity = 1):\n-        self.verbosity = verbosity\n-        self.tmpFileNames = []\n-\n-    def __del__(self):\n-        for fileName in self.tmpFileNames:\n-            if os.path.exists(fileName):\n-                os.remove(fileName)\n-    \n-    def setInputFile(self, fileName, format):\n-        self.inputFileName = fileName\n-        self.inputFormat = format\n-        self.parser = TranscriptContainer(fileName, format, self.verbosity-1)\n-        if self.verbosity > 0:\n-            print "%d elements in input" % (self.parser.getNbTranscripts())\n-\n-    def setReference(self, fileName):\n-        self.referenceFileName = fileName\n-\n-    def setDistance(self, distance):\n-        self.distance = distance\n-\n-    def setOutputFileName(self, fileName):\n-        self.outputFileName = fileName\n-        self.writer         = Gff3Writer(fileName, self.verbosity-1)\n-        self.outputBase     = "%s_%d_" % (os.path.splitext(fileName)[0], random.randint(0, 10000))\n-\n-    def _writeTmpRef(self, tags, outputFileName):\n-        cleanGff = CleanGff(self.verbosity-1)\n-        cleanGff.setInputFileName(self.referenceFileName)\n-        cleanGff.setOutputFileName(outputFileName)\n-        cleanGff.setAcceptedTypes(tags)\n-        cleanGff.run()\n-\n-    def _getReferenceFiles(self):\n-        self.referenceFiles = {"CDS":                       "%scds.gff3"      % (self.outputBase), \\\n-                               "five_prime_UTR":            "%sfive.gff3"     % (self.outputBase), \\\n-                               "three_prime_UTR":           "%sthree.gff3"    % (self.outputBase), \\\n-                               "mRNA":                      "%smrna.gff3"     % (sel'..b', "gff3", self.referenceFiles["transposable_element_gene"], "gff3", outputNoFileName, True)\n-        self._copy(outputFileName, "TE")\n-        if self.verbosity > 0:\n-            print "%d overlaps in TE" % (nbOverlaps)\n-        return outputNoFileName\n-    \n-    def _getIntron(self, inputFileName):\n-        outputFileName   = "%sin_intron.gff3" % (self.outputBase)\n-        outputNoFileName = "%sin_nointron.gff3" % (self.outputBase)\n-        self.tmpFileNames.extend([outputFileName, outputNoFileName])\n-        nbOverlaps = self._compare(inputFileName, "gff3", self.referenceFiles["mRNA"], "gff3", outputFileName)\n-        self._compare(inputFileName, "gff3", self.referenceFiles["mRNA"], "gff3", outputNoFileName, True)\n-        self._copy(outputFileName, "intron")\n-        if self.verbosity > 0:\n-            print "%d overlaps in introns" % (nbOverlaps)\n-        return outputNoFileName\n-    \n-    def _getVicinity(self, inputFileName):\n-        guds = GetUpDownStream(self.verbosity-1)\n-        guds.setInputFile(self.referenceFiles["mRNA"], "gff3")\n-        guds.setOutputFile(self.referenceFiles["vic"])\n-        guds.setDistances(self.distance, self.distance)\n-        guds.run()\n-        outputFileName = "%sout_vicinity.gff3" % (self.outputBase)\n-        outputNoFileName = "%sout_novicinity.gff3" % (self.outputBase)\n-        self.tmpFileNames.extend([outputFileName, outputNoFileName])\n-        nbOverlaps = self._compare(inputFileName, "gff3", self.referenceFiles["vic"], "gff3", outputFileName)\n-        nbNoOverlaps = self._compare(inputFileName, "gff3", self.referenceFiles["vic"], "gff3", outputNoFileName, True)\n-        self._copy(outputFileName, "vicinity")\n-        self._copy(outputNoFileName, "intergenic")\n-        if self.verbosity > 0:\n-            print "%d overlaps in vicinity" % (nbOverlaps)\n-            print "%d elsewhere" % (nbNoOverlaps)\n-    \n-    def run(self):\n-        self._getReferenceFiles()\n-        outputFileName = self._getCds()\n-        outputFileName = self._getFivePrime(outputFileName)\n-        outputFileName = self._getThreePrime(outputFileName)\n-        outputFileName = self._getNcRna(outputFileName)\n-        outputFileName = self._getTe(outputFileName)\n-        outputFileName = self._getIntron(outputFileName)\n-        self._getVicinity(outputFileName)\n-\n-\n-\n-if __name__ == "__main__":\n-    \n-    # parse command line\n-    description = "Count Loci v1.0.0: Count input elements with respect to CDS, 5\' UTR, 3\' UTR, intron, downstream, upstream. [Category: Personal]"\n-\n-    parser = OptionParser(description = description)\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 the input     [compulsory] [format: transcript file format]")\n-    parser.add_option("-r", "--reference", dest="reference",      action="store",            type="string", help="reference file          [compulsory] [format: file in GFF 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("-d", "--distance",  dest="distance",       action="store",            type="int",    help="distance up/down stream [compulsory] [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-    cl = CountLoci(options.verbosity)\n-    cl.setInputFile(options.inputFileName, options.format)\n-    cl.setDistance(options.distance)\n-    cl.setReference(options.reference)\n-    cl.setOutputFileName(options.outputFileName)\n-    cl.run()\n'
b
diff -r 529e3e6a0954 -r d94018ca4ada SMART/Java/Python/CountReadGCPercent.py
--- a/SMART/Java/Python/CountReadGCPercent.py Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,88 +0,0 @@
-#!/usr/bin/env python
-
-from optparse import OptionParser
-from commons.core.parsing.FastaParser import FastaParser
-from commons.core.writer.Gff3Writer import Gff3Writer
-from SMART.Java.Python.structure.TranscriptContainer import TranscriptContainer
-from SMART.Java.Python.misc.Progress import Progress
-from commons.core.utils.RepetOptionParser import RepetOptionParser
-from Gnome_tools.CountGCPercentBySlidingWindow import CountGCPercentBySlidingWindow
-
-
-class CountReadGCPercent(object):
-    
-    def __init__(self):
-        self.referenceReader = None
-        self.gffReader = None
-        self.outputWriter = None
-        self.verbose = 0
-        
-    def setInputReferenceFile(self, fileName):
-        self.referenceReader = fileName

-    def setInputGffFile(self, fileName):
-        self.gffReader = TranscriptContainer(fileName, 'gff3', self.verbose)
-        
-    def setOutputFileName(self, fileName):
-        self.outputWriter = Gff3Writer(fileName, self.verbose)
-
-    def readGffAnnotation(self):
-        self.coveredRegions = {}
-        progress = Progress(self.gffReader.getNbTranscripts(), "Reading gff3 annotation file", self.verbose)
-        for transcript in self.gffReader.getIterator():
-            chromosome = transcript.getChromosome()
-            if chromosome not in self.coveredRegions:
-                self.coveredRegions[chromosome] = {}
-            for exon in transcript.getExons():
-                for position in range(exon.getStart(), exon.getEnd()+1):
-                    self.coveredRegions[chromosome][position] = 1
-            progress.inc()
-        progress.done()
-        
-    def write(self):
-        iParser = FastaParser(self.referenceReader)
-        iParser.setTags()
-        iGetGCPercentBySW = CountGCPercentBySlidingWindow()
-        progress = Progress(self.gffReader.getNbTranscripts(), "Writing output file", self.verbose)
-        for transcript in self.gffReader.getIterator():
-            chromosome = transcript.getChromosome()
-            GCpercent = 0
-            nPercent = 0
-            for exon in transcript.getExons():
-                    for sequenceName in iParser.getTags().keys():
-                        if sequenceName != chromosome:
-                            continue
-                        else:
-                            subSequence = iParser.getSubSequence(sequenceName, exon.getStart() , exon.getEnd(), 1)
-                            GCpercent, nPercent = iGetGCPercentBySW.getGCPercentAccordingToNAndNPercent(subSequence)
-                            print "GCpercent = %f, nPercent = %f" % (GCpercent, nPercent)
-            transcript.setTagValue("GCpercent", GCpercent)
-            transcript.setTagValue("NPercent", nPercent)
-            self.outputWriter.addTranscript(transcript)
-            progress.inc()
-        progress.done()

-    def run(self):
-        self.readGffAnnotation()
-        if self.outputWriter != None:
-            self.write()
-            
-if __name__ == "__main__":
-        description = "Count GC percent for each read against a genome."
-        usage = "CountReadGCPercent.py -i <fasta file> -j <gff3 file> -o <output gff3 file> -v <verbose> -h]"
-        examples = "\nExample: \n"
-        examples += "\t$ python CountReadGCPercent.py -i file.fasta -j annotation.gff -o output.gff3"
-        examples += "\n\n"
-        parser = RepetOptionParser(description = description, usage = usage, version = "v1.0", epilog = examples)
-        parser.add_option( '-i', '--inputGenome', dest='fastaFile', help='fasta file [compulsory]', default= None )
-        parser.add_option( '-j', '--inputAnnotation', dest='gffFile', help='gff3 file [compulsory]', default= None)
-        parser.add_option( '-o', '--output', dest='outputFile', help='output gff3 file [compulsory]', default= None )
-        parser.add_option( '-v', '--verbose', dest='verbose', help='verbosity level (default=0/1)',type="int", default= 0 )
-        (options, args) = parser.parse_args()
-    
-        readGCPercent = CountReadGCPercent()
-        readGCPercent.setInputReferenceFile(options.fastaFile)
-        readGCPercent.setInputGffFile(options.gffFile)
-        readGCPercent.setOutputFileName(options.outputFile)
-        readGCPercent.run()
-        
\ No newline at end of file
b
diff -r 529e3e6a0954 -r d94018ca4ada SMART/Java/Python/FindOverlapsOptim.py
--- a/SMART/Java/Python/FindOverlapsOptim.py Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,343 +0,0 @@\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 commons.core.parsing.ParserChooser import ParserChooser\n-from commons.core.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.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._sorted                  = False\n-\t\tself._index                   = False\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 se'..b'def 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\tif not self._index:\n-\t\t\treturn None\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("-d", "--index",\t     dest="index",\t            action="store_true", default=False,\t               help="add an index to the reference file (faster but more memory) [format: boolean] [default: False]")\n-\tparser.add_option("-s", "--sorted",\t     dest="sorted",\t            action="store_true", default=False,\t               help="input files are already sorted [format: boolean] [default: False]")\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.setIndex(options.index)\n-\tiFOO.setSorted(options.sorted)\n-\tiFOO.run()\n'
b
diff -r 529e3e6a0954 -r d94018ca4ada SMART/Java/Python/GetDifferentialExpression.py
--- a/SMART/Java/Python/GetDifferentialExpression.py Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,441 +0,0 @@\n-#! /usr/bin/env python\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-"""Get the differential expression between 2 conditions (2 files), on regions defined by a third file"""\n-\n-import os, re\n-from optparse import OptionParser\n-from SMART.Java.Python.structure.TranscriptContainer import TranscriptContainer\n-from commons.core.writer.Gff3Writer import Gff3Writer\n-from SMART.Java.Python.misc.Progress import Progress\n-from SMART.Java.Python.misc.RPlotter import RPlotter\n-from SMART.Java.Python.misc import Utils\n-from SMART.Java.Python.mySql.MySqlConnection import MySqlConnection\n-from SMART.Java.Python.structure.Transcript import Transcript\n-\n-class GetDifferentialExpression(object):\n-    \n-    def __init__(self, verbosity = 1):\n-        self.verbosity              = verbosity\n-        self.mySqlConnection        = MySqlConnection(verbosity)\n-        self.inputs                 = (0, 1)\n-        self.transcriptContainers   = [None, None]\n-        self.transcriptContainerRef = None\n-        self.outputFileName         = None\n-        self.writer                 = None\n-        self.tables                 = [None, None]\n-        self.nbElements             = [0, 0]\n-\n-        self.regionsToValues = {}\n-        self.regionsToNames  = {}\n-        self.valuesToPvalues = {}\n-\n-        self.oriented                      = True\n-        self.simpleNormalization           = False\n-        self.simpleNormalizationParameters = None\n-        self.adjustedNormalization         = False\n-        self.fixedSizeFactor               = None\n-        self.normalizationSize             = None\n-        self.normalizationFactors          = [1, 1]\n-        self.fdr                           = None \n-        self.fdrPvalue                     = None \n-\n-        self.plot    = False\n-        self.plotter = None\n-        self.plotterName = None\n-        self.points  = {}\n-\n-\n-    def setInputFile(self, i, fileName, fileFormat):\n-        self.transcriptContainers[i] = TranscriptContainer(fileName, fileFormat, self.verbosity)\n-        self.transcriptContainers[i].mySqlConnection = self.mySqlConnection\n-\n-\n-    def setReferenceFile(self, fileName, fileFormat):\n-        self.transcriptContainerRef = TranscriptContainer(fileName, fileFormat, self.verbosity)\n-        self.transcriptContainerRef.mySqlConnection = self.mySqlConnection\n-\n-\n-    def setOutputFile(self, fileName):\n-        self.outputFileName = fileName\n-        self.writer         = Gff3Writer(fileName, self.verbosity)\n-\n-    \n-    def setOriented(self'..b' file in transcript format given by -f]")\n-    parser.add_option("-f", "--format1",          dest="format1",           action="store",                     type="string", help="format of file 1 [compulsory] [format: transcript file format]")\n-    parser.add_option("-j", "--input2",           dest="inputFileName2",    action="store",                     type="string", help="input file 2 [compulsory] [format: file in transcript format given by -g]")\n-    parser.add_option("-g", "--format2",          dest="format2",           action="store",                     type="string", help="format of file 2 [compulsory] [format: transcript file format]")\n-    parser.add_option("-k", "--reference",        dest="referenceFileName", action="store",                     type="string", help="reference file [compulsory] [format: file in transcript format given by -l]")\n-    parser.add_option("-l", "--referenceFormat",  dest="referenceFormat",   action="store",                     type="string", help="format of reference file [compulsory] [format: transcript file format]")\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("-n", "--notOriented",      dest="notOriented",       action="store_true", default=False,                help="if the reads are not oriented [default: False] [format: bool]")\n-    parser.add_option("-s", "--simple",           dest="simple",            action="store_true", default=False,                help="normalize using the number of reads in each condition [format: bool]")\n-    parser.add_option("-S", "--simpleParameters", dest="simpleParameters",  action="store",      default=None,  type="string", help="provide the number of reads [format: bool]")\n-    parser.add_option("-a", "--adjusted",         dest="adjusted",          action="store_true", default=False,                help="normalize using the number of reads of \'mean\' regions [format: bool]")\n-    parser.add_option("-x", "--fixedSizeFactor",  dest="fixedSizeFactor",   action="store",      default=None,  type="int",    help="give the magnification factor for the normalization using fixed size sliding windows in reference regions (leave empty for no such normalization) [format: int]")\n-    parser.add_option("-d", "--fdr",              dest="fdr",               action="store",      default=None,  type="float",  help="use FDR [format: float]")\n-    parser.add_option("-p", "--plot",             dest="plotName",          action="store",      default=None,  type="string", help="plot cloud plot [format: output file in PNG 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-\n-        \n-    differentialExpression = GetDifferentialExpression(options.verbosity)\n-    differentialExpression.setInputFile(0, options.inputFileName1, options.format1)\n-    differentialExpression.setInputFile(1, options.inputFileName2, options.format2)\n-    differentialExpression.setReferenceFile(options.referenceFileName, options.referenceFormat)\n-    differentialExpression.setOutputFile(options.outputFileName)\n-    if options.plotName != None :\n-        differentialExpression.setPlotterName(options.plotName)\n-        differentialExpression.setPlotter()\n-    differentialExpression.setOriented(not options.notOriented)\n-    differentialExpression.setSimpleNormalization(options.simple)\n-    differentialExpression.setSimpleNormalizationParameters(options.simpleParameters)\n-    differentialExpression.setAdjustedNormalization(options.adjusted)\n-    differentialExpression.setFixedSizeNormalization(options.fixedSizeFactor)\n-    differentialExpression.setFdr(options.fdr)\n-    differentialExpression.getDifferentialExpression()\n-    differentialExpression.mySqlConnection.deleteDatabase()\n-    \n-\n'
b
diff -r 529e3e6a0954 -r d94018ca4ada SMART/Java/Python/GetDistribution.py
--- a/SMART/Java/Python/GetDistribution.py Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,362 +0,0 @@\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-import os\n-from optparse import OptionParser\n-from commons.core.parsing.ParserChooser import ParserChooser\n-from commons.core.parsing.FastaParser import FastaParser\n-from SMART.Java.Python.structure.Transcript import Transcript\n-from commons.core.writer.Gff3Writer import Gff3Writer\n-from SMART.Java.Python.misc.RPlotter import RPlotter\n-from SMART.Java.Python.misc.MultipleRPlotter import MultipleRPlotter\n-from SMART.Java.Python.misc.UnlimitedProgress import UnlimitedProgress\n-from SMART.Java.Python.misc.Progress import Progress\n-\n-TWOSTRANDS = {True: [1, -1], False: [0]}\n-STRANDTOSTR = {1: "(+)", -1: "(-)", 0: ""}\n-\n-class GetDistribution(object):\n-\n-\tdef __init__(self, verbosity):\n-\t\tself.verbosity     = verbosity\n-\t\tself.sizes         = None\n-\t\tself.twoStrands    = False\n-\t\tself.start         = 1\n-\t\tself.names         = ["nbElements"]\n-\t\tself.average       = False\n-\t\tself.nbValues      = {}\n-\t\tself.height        = 300\n-\t\tself.width         = 600\n-\t\tself.colors        = None\n-\t\tself.gffFileName   = None\n-\t\tself.csvFileName   = None\n-\t\tself.yMin          = None\n-\t\tself.yMax          = None\n-\t\tself.chromosome    = None\n-\t\tself.merge         = False\n-\t\tself.nbTranscripts = None\n-\n-\tdef setInputFile(self, fileName, format):\n-\t\tchooser = ParserChooser(self.verbosity)\n-\t\tchooser.findFormat(format)\n-\t\tself.parser = chooser.getParser(fileName)\n-\n-\tdef setReferenceFile(self, fileName):\n-\t\tif fileName == None:\n-\t\t\treturn\n-\t\tfastaParser = FastaParser(fileName, self.verbosity)\n-\t\tself.chromosomes = fastaParser.getRegions()\n-\t\tself.sizes       = dict([region, fastaParser.getSizeOfRegion(region)] for region in self.chromosomes)\n-\t\tself.maxSize     = max(self.sizes.values())\n-\n-\tdef setRegion(self, chromosome, start, end):\n-\t\tif chromosome == None:\n-\t\t\treturn\n-\t\tself.maxSize     = options.end\n-\t\tself.sizes       = {chromosome: end}\n-\t\tself.chromosomes = [chromosome]\n-\t\tself.chromosome  = chromosome\n-\t\tself.start       = start\n-\t\tself.end         = end\n-\n-\tdef setOutputFile(self, fileName):\n-\t\tself.outputFileName = fileName\n-\n-\tdef setNbBins(self, nbBins):\n-\t\tself.nbBins = nbBins\n-\n-\tdef set2Strands(self, twoStrands):\n-\t\tself.twoStrands = twoStrands\n-\n-\tdef setNames(self, names):\n-\t\tself.names = names\n-\n-\tdef setAverage(self, average):\n-\t\tself.average = average\n-\n-\tdef setNormalization(self, normalization):\n-\t\tself.normalization = normalization\n-\t\n-\tdef setImageSize(self, height, width):\n-\t\tself.height = height\n-\t\tself.width '..b'        action="store",      default=1000,         type="int",    help="number of bins [default: 1000] [format: int]")\n-\tparser.add_option("-2", "--bothStrands", dest="bothStrands",       action="store_true", default=False,                       help="plot one curve per strand [format: bool] [default: false]")\n-\tparser.add_option("-c", "--chromosome",  dest="chromosome",        action="store",      default=None,         type="string", help="plot only a chromosome [format: string]")\n-\tparser.add_option("-s", "--start",       dest="start",             action="store",      default=None,         type="int",    help="start from a given region [format: int]")\n-\tparser.add_option("-e", "--end",         dest="end",               action="store",      default=None,         type="int",    help="end from a given region [format: int]")\n-\tparser.add_option("-y", "--yMin",        dest="yMin",              action="store",      default=None,         type="int",    help="minimum value on the y-axis to plot [format: int]")\n-\tparser.add_option("-Y", "--yMax",        dest="yMax",              action="store",      default=None,         type="int",    help="maximum value on the y-axis to plot [format: int]")\n-\tparser.add_option("-x", "--csv",         dest="csv",               action="store",      default=None,                        help="write a .csv file [format: output file in CSV format] [default: None]")\n-\tparser.add_option("-g", "--gff",         dest="gff",               action="store",      default=None,                        help="also write GFF3 file [format: output file in GFF format] [default: None]")\n-\tparser.add_option("-H", "--height",      dest="height",            action="store",      default=300,          type="int",    help="height of the graphics [format: int] [default: 300]")\n-\tparser.add_option("-W", "--width",       dest="width",             action="store",      default=600,          type="int",    help="width of the graphics [format: int] [default: 1000]")\n-\tparser.add_option("-a", "--average",     dest="average",           action="store_true", default=False,                       help="plot average (instead of sum) [default: false] [format: boolean]")\n-\tparser.add_option("-n", "--names",       dest="names",             action="store",      default="nbElements", type="string", help="name for the tags (separated by commas and no space) [default: None] [format: string]")\n-\tparser.add_option("-l", "--color",       dest="colors",            action="store",      default=None,         type="string", help="color of the lines (separated by commas and no space) [format: string]")\n-\tparser.add_option("-z", "--normalize",   dest="normalize",         action="store_true", default=False,                       help="normalize data (when panels are different) [format: bool] [default: false]")\n-\tparser.add_option("-m", "--merge",       dest="mergePlots",        action="store_true", default=False,                       help="merge all plots in one figure [format: bool] [default: false]")\n-\tparser.add_option("-v", "--verbosity",   dest="verbosity",         action="store",      default=1,            type="int",    help="trace level [default: 1] [format: int]")\n-\t(options, args) = parser.parse_args()\n-\n-\tgt = GetDistribution(options.verbosity)\n-\tgt.setInputFile(options.inputFileName, options.format)\n-\tgt.setOutputFile(options.outputFileName)\n-\tgt.setReferenceFile(options.referenceFileName)\n-\tgt.setNbBins(int(options.nbBins))\n-\tgt.set2Strands(options.bothStrands)\n-\tgt.setRegion(options.chromosome, options.start, options.end)\n-\tgt.setNormalization(options.normalize)\n-\tgt.setAverage(options.average)\n-\tgt.setYLimits(options.yMin, options.yMax)\n-\tgt.writeCsv(options.csv)\n-\tgt.writeGff(options.gff)\n-\tgt.setImageSize(options.height, options.width)\n-\tgt.setNames(options.names.split(","))\n-\tgt.setColors(None if options.colors == None else options.colors.split(","))\n-\tgt.setNormalization(options.normalize)\n-\tgt.mergePlots(options.mergePlots)\n-\tgt.run()\n-\n'
b
diff -r 529e3e6a0954 -r d94018ca4ada SMART/Java/Python/GetFlanking.py
--- a/SMART/Java/Python/GetFlanking.py Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,233 +0,0 @@\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: "collinear"}\n-STRANDSTOSTR = {-1: "(-)", 0: "", 1: "(+)"}\n-\n-\n-def getOrderKey(transcript, direction, input):\n-\tif direction == 1:\n-\t\tif input == QUERY:\n-\t\t\treturn (transcript.getEnd(), -transcript.getStart())\n-\t\treturn (transcript.getStart(), -transcript.getEnd())\n-\tif input == QUERY:\n-\t\treturn (-transcript.getStart(), transcript.getEnd())\n-\treturn (-transcript.getEnd(), transcript.getStart())\n-\n-\n-class GetFlanking(object):\n-\n-\tdef __init__(self, verbosity):\n-\t\tself.verbosity   = verbosity\n-\t\tself.transcripts = dict([id, {}] for id in INPUTS)\n-\t\tself.directions  = []\n-\t\tself.noOverlap   = False\n-\t\tself.colinear    = False\n-\t\tself.antisense   = False\n-\t\tself.distance    = None\n-\t\tself.minDistance = None\n-\t\tself.maxDistance = None\n-\t\tself.tagName     = "flanking"\n-\n-\tdef setInputFile(self, fileName, format, id):\n-\t\tchooser = ParserChooser(self.verbosity)\n-\t\tchooser.findFormat(format)\n-\t\tparser = chooser.getParser(fileName)\n-\t\tfor transcript in parser.getIterator():\n-\t\t\tchromosome = transcript.getChromosome()\n-\t\t\tif chromosome not in self.transcripts[id]:\n-\t\t\t\tself.transcripts[id][chromosome] = []\n-\t\t\tself.transcripts[id][chromosome].append(transcript)\n-\n-\tdef setOutputFile(self, fileName):\n-\t\tself.writer = TranscriptWriter(fileName, "gff3", self.verbosity)\n-\n-\tdef addUpstreamDirection(self, upstream):\n-\t\tif upstream:\n-\t\t\tself.directions.append(-1)\n-\n-\tdef addDownstreamDirection(self, downstream):\n-\t\tif downstream:\n-\t\t\tself.directions.append(1)\n-\n-\tdef setColinear(self, colinear):\n-\t\tself.colinear = colinear\n-\n-\tdef setAntisense(self, antisense):\n-\t\tself.antisense = antisense\n-\n-\tdef setNoOverlap(self, noOverlap):\n-\t\tself.noOverlap = noOverlap\n-\n-\tdef setMinDistance(self, distance):\n-\t\tself.minDistance = distance\n-\n-\tdef setMaxDistance(se'..b'scriptRef: transcriptQuery.getDistance(transcriptRef))[0]\n-\t\t\t\tself.writer.addTranscript(self.setTags(transcriptQuery, transcriptRef, 0))\n-\t\t\tprogress.inc()\n-\t\tprogress.done()\n-\n-\tdef run(self):\n-\t\tfor chromosome in sorted(self.transcripts[QUERY].keys()):\n-\t\t\tself.flankings = dict([query, {}] for query in self.transcripts[QUERY][chromosome])\n-\t\t\tfor direction in STRANDS:\n-\t\t\t\t#print "comparison", chromosome, direction\n-\t\t\t\tself.getFlanking(chromosome, direction)\n-\t\t\tself.write()\n-\t\tself.writer.close()\n-\n-if __name__ == "__main__":\n-\t\n-\tdescription = "Get Flanking v1.0.1: Get the flanking regions of a set of reference. [Category: Data Selection]"\n-\n-\tparser = OptionParser(description = description)\n-\tparser.add_option("-i", "--input1",      dest="inputFileName1", action="store",                          type="string", help="query input file [compulsory] [format: file in transcript format given by -f]")\n-\tparser.add_option("-f", "--format1",     dest="format1",        action="store",                          type="string", help="format of previous file [compulsory] [format: transcript file format]")\n-\tparser.add_option("-j", "--input2",      dest="inputFileName2", action="store",                          type="string", help="reference input file [compulsory] [format: file in transcript format given by -g]")\n-\tparser.add_option("-g", "--format2",     dest="format2",        action="store",                          type="string", help="format of previous file [compulsory] [format: transcript file format]")\n-\tparser.add_option("-5", "--upstream",    dest="upstream",       action="store_true", default=False,                     help="output upstream elements [format: boolean] [default: False]")\n-\tparser.add_option("-3", "--downstream",  dest="downstream",     action="store_true", default=False,                     help="output downstream elements [format: boolean] [default: False]")\n-\tparser.add_option("-c", "--colinear",    dest="colinear",       action="store_true", default=False,                     help="find first colinear element [format: boolean] [default: False]")\n-\tparser.add_option("-a", "--antisense",   dest="antisense",      action="store_true", default=False,                     help="find first anti-sense element [format: boolean] [default: False]")\n-\tparser.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-\tparser.add_option("-d", "--minDistance", dest="minDistance",    action="store",      default=None,       type="int",    help="minimum distance between 2 elements [format: int]")\n-\tparser.add_option("-D", "--maxDistance", dest="maxDistance",    action="store",      default=None,       type="int",    help="maximum distance between 2 elements [format: int]")\n-\tparser.add_option("-t", "--tag",         dest="tagName",        action="store",      default="flanking", type="string", help="name of the new tag [format: string] [default: flanking]")\n-\tparser.add_option("-o", "--output",      dest="outputFileName", action="store",                          type="string", help="output file [format: output file in GFF3 format]")\n-\tparser.add_option("-v", "--verbosity",   dest="verbosity",      action="store",      default=1,          type="int",    help="trace level [format: int]")\n-\t(options, args) = parser.parse_args()\n-\n-\tgf = GetFlanking(options.verbosity)\n-\tgf.setInputFile(options.inputFileName1, options.format1, QUERY)\n-\tgf.setInputFile(options.inputFileName2, options.format2, REFERENCE)\n-\tgf.setOutputFile(options.outputFileName)\n-\tgf.addUpstreamDirection(options.upstream)\n-\tgf.addDownstreamDirection(options.downstream)\n-\tgf.setColinear(options.colinear)\n-\tgf.setAntisense(options.antisense)\n-\tgf.setNoOverlap(options.noOverlap)\n-\tgf.setMinDistance(options.minDistance)\n-\tgf.setMaxDistance(options.maxDistance)\n-\tgf.setNewTagName(options.tagName)\n-\tgf.run()\n'
b
diff -r 529e3e6a0954 -r d94018ca4ada SMART/Java/Python/GetFlanking.pyc
b
Binary file SMART/Java/Python/GetFlanking.pyc has changed
b
diff -r 529e3e6a0954 -r d94018ca4ada SMART/Java/Python/GetRandomSubset.py
--- a/SMART/Java/Python/GetRandomSubset.py Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,96 +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.
-#
-import random
-from optparse import OptionParser
-from commons.core.parsing.ParserChooser import ParserChooser
-from commons.core.writer.TranscriptWriter import TranscriptWriter
-from SMART.Java.Python.structure.Transcript import Transcript
-from SMART.Java.Python.misc.Progress import Progress
-
-class GetRandomSubset(object):
-
-    def __init__(self, verbosity):
-        self.verbosity = verbosity
-
-    def setInputFile(self, fileName, format):
-        chooser = ParserChooser(self.verbosity)
-        chooser.findFormat(format)
-        self.parser = chooser.getParser(fileName)
-
-    def setNumber(self, number, percent):
-        if number != None:
-            self.number = number
-        elif percent != None:
-            self.number = int(float(percent) / 100 * self.parser.getNbTranscripts())
-        else:
-            raise Exception("Error! Number of elements to output is not given!")
-
-    def setOutputFile(self, fileName):
-        self.writer = TranscriptWriter(fileName, "gff3", self.verbosity)
-
-    def chooseElements(self):
-        self.randomIndices = random.sample(range(self.parser.getNbTranscripts()), self.number)
-        
-    def run(self):
-        self.chooseElements()
-        progress  = Progress(self.parser.getNbTranscripts(), "Reading input file", self.verbosity)
-        nbWritten = 0
-        for cpt1, transcript in enumerate(self.parser.getIterator()):
-            if cpt1 in self.randomIndices:
-                self.writer.addTranscript(transcript)
-                nbWritten += 1
-            progress.inc()
-        self.writer.write()
-        self.writer.close()
-        progress.done()
-        if self.verbosity > 1:
-            print "%d transcripts read" % (self.parser.getNbTranscripts())
-            print "%d transcripts written" % (nbWritten)
-
-
-if __name__ == "__main__":
-    
-    description = "Get Random Subset v1.0.1: Get a random sub-set of a list of genomic coordinates. [Category: Personal]"
-
-    parser = OptionParser(description = description)
-    parser.add_option("-i", "--input",     dest="inputFileName",  action="store",               type="string", help="input file [compulsory] [format: file in transcript format given by -f]")
-    parser.add_option("-f", "--format",    dest="format",         action="store",               type="string", help="format of file [compulsory] [format: transcript file format]")
-    parser.add_option("-n", "--number",    dest="number",         action="store", default=None, type="string", help="number of elements to output [format: int]")
-    parser.add_option("-p", "--percent",   dest="percent",        action="store", default=None, type="string", help="percentage of elements to output (between 0 and 100) [format: int]")
-    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()
-
-    grs = GetRandomSubset(options.verbosity)
-    grs.setInputFile(options.inputFileName, options.format)
-    grs.setNumber(options.number, options.percent)
-    grs.setOutputFile(options.outputFileName)
-    grs.run()
b
diff -r 529e3e6a0954 -r d94018ca4ada SMART/Java/Python/GetReadDistribution.py
--- a/SMART/Java/Python/GetReadDistribution.py Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,303 +0,0 @@\n-#! /usr/bin/env python\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-import random, os, glob, subprocess\n-from commons.core.parsing.ParserChooser import ParserChooser\n-from commons.core.parsing.GffParser import GffParser\n-from SMART.Java.Python.misc.UnlimitedProgress import UnlimitedProgress\n-from SMART.Java.Python.misc.Progress import Progress\n-from SMART.Java.Python.misc import Utils\n-from commons.core.LoggerFactory import LoggerFactory\n-from commons.core.utils.RepetOptionParser import RepetOptionParser\n-\n-LOG_DEPTH      = "smart"\n-DEFAULT_REGION = "_all_"\n-MULTIPLE_STR   = {1: "", 1000: " (in kbp)", 1000000: " (in Gbp)"}\n-\n-class GetReadDistribution(object):\n-\n-\tdef __init__(self, verbosity = 0):\n-\t\tself.xLab         = ""\n-\t\tself.yLab         = "# reads"\n-\t\tself.verbosity    = verbosity\n-\t\tself.number       = random.randint(0, 100000)\n-\t\tself.log          = LoggerFactory.createLogger("%s.%s" % (LOG_DEPTH, self.__class__.__name__), self.verbosity)\n-\t\tself.parsers      = {}\n-\t\tself.distribution = {}\n-\t\tself.factors      = {}\n-\t\tself.regions      = None\n-\t\tself.tmpDatName   = None\n-\t\tself.tmpRName     = None\n-\t\tself.quorum       = 1\n-\t\tself.strands      = False\n-\t\tself.width        = 800\n-\t\tself.height       = 300\n-\t\tself.arial        = False\n-\n-\tdef setNames(self, names):\n-\t\tself.names = names\n-\n-\tdef setInputFiles(self, fileNames, format):\n-\t\tchooser = ParserChooser(self.verbosity)\n-\t\tchooser.findFormat(format)\n-\t\tfor cpt, fileName in enumerate(fileNames):\n-\t\t\tself.parsers[self.names[cpt]] = chooser.getParser(fileName)\n-\n-\tdef setOutputFileName(self, fileName):\n-\t\tself.outputFileName = fileName\n-\n-\tdef setLabs(self, xLab, yLab):\n-\t\tself.xLab = xLab\n-\t\tself.yLab = yLab\n-\n-\tdef setBinSize(self, binSize):\n-\t\tself.binSize = binSize\n-\n-\tdef setColors(self, colors):\n-\t\tself.colors = colors\n-\n-\tdef setFactors(self, factors):\n-\t\tif factors == None:\n-\t\t\tself.factors = dict([name, 1.0] for name in self.names)\n-\t\telse:\n-\t\t\tself.factors = dict(zip(self.names, factors))\n-\n-\tdef setMultiple(self, boolean):\n-\t\tself.multiple = boolean\n-\t\n-\tdef setImageSize(self, width, height):\n-\t\tif width != None:\n-\t\t\tself.width = width\n-\t\tif height != None:\n-\t\t\tself.height = height\n-\n-\tdef setQuorum(self, quorum):\n-\t\tself.quorum = quorum\n-\n-\tdef setRegionsFile(self, fileName):\n-\t\tif fileName != None:\n-\t\t\tself._loadRegions(fileName)\n-\n-\tdef setBothStrands(self, strands):\n-\t\tself.strands = strands\n-\n-\tdef setArial(self, arial):\n-\t\tself.arial = arial\n-\n-\tdef _checkOptions(self):\n-\t\tif not self.parsers:\n-\t\t\tse'..b' separated by commas [compulsory] [format: string]")\n-\tparser.add_option("-f", "--format",    dest="format",          action="store",      default=None,      type="string", help="format of the input [compulsory] [format: transcript or sequence file format]")\n-\tparser.add_option("-n", "--names",     dest="names",           action="store",      default=None,      type="string", help="name of the input data, separated by commas [compulsory] [format: string]")\n-\tparser.add_option("-o", "--output",    dest="outputFileName",  action="store",      default=None,      type="string", help="output file [format: output file in PNG format]")\n-\tparser.add_option("-s", "--binSize",   dest="binSize",         action="store",      default=10000,     type="int",    help="bin size [format: int] [default: 10000]")\n-\tparser.add_option("-l", "--xLabel",    dest="xLab",            action="store",      default="",        type="string", help="x-axis label name [format: string]")\n-\tparser.add_option("-L", "--yLabel",    dest="yLab",            action="store",      default="# reads", type="string", help="y-axis label name [format: string] [default: Reads]")\n-\tparser.add_option("-c", "--colors",    dest="colors",          action="store",      default=None,      type="string", help="colors of the bars, separated by commas  [format: string]")\n-\tparser.add_option("-a", "--factors",   dest="factors",         action="store",      default=None,      type="string", help="normalization factors, separated by commas  [format: string]")\n-\tparser.add_option("-r", "--regions",   dest="regionsFileName", action="store",      default=None,      type="string", help="regions to plot [format: transcript file in GFF format]")\n-\tparser.add_option("-2", "--strands",   dest="strands",         action="store_true", default=False,                    help="plot negative strands on the negative x-axis [format: boolean] [default: False]")\n-\tparser.add_option("-m", "--multiple",  dest="multiple",        action="store_true", default=False,                    help="use human readable genomic positions (k, G) [format: boolean] [default: False]")\n-\tparser.add_option("-q", "--quorum",    dest="quorum",          action="store",      default=1,         type="int",    help="minimum number of intervals to plot a region [format: int] [default: 1]")\n-\tparser.add_option("-z", "--width",     dest="width",           action="store",      default=800,       type="int",    help="width of the image [format: int] [default: 800]")\n-\tparser.add_option("-Z", "--height",    dest="height",          action="store",      default=300,       type="int",    help="height of the image [format: int] [default: 300]")\n-\tparser.add_option("-A", "--arial",     dest="arial",           action="store_true", default=False,                    help="use Arial font [format: boolean] [default: false]")\n-\tparser.add_option("-v", "--verbosity", dest="verbosity",       action="store",      default=1,         type="int",    help="trace level [format: int]")\n-\toptions = parser.parse_args()[0]\n-\tiGetReadDistribution = GetReadDistribution(options.verbosity)\n-\tiGetReadDistribution.setNames(options.names.split(","))\n-\tiGetReadDistribution.setInputFiles(options.inputFileNames.split(","), options.format)\n-\tiGetReadDistribution.setOutputFileName(options.outputFileName)\n-\tiGetReadDistribution.setLabs(options.xLab, options.yLab)\n-\tiGetReadDistribution.setBinSize(options.binSize)\n-\tiGetReadDistribution.setColors(None if options.colors == None else options.colors.split(","))\n-\tiGetReadDistribution.setFactors(None if options.factors == None else map(float, options.factors.split(",")))\n-\tiGetReadDistribution.setRegionsFile(options.regionsFileName)\n-\tiGetReadDistribution.setMultiple(options.multiple)\n-\tiGetReadDistribution.setQuorum(options.quorum)\n-\tiGetReadDistribution.setImageSize(options.width, options.height)\n-\tiGetReadDistribution.setBothStrands(options.strands)\n-\tiGetReadDistribution.setArial(options.arial)\n-\tiGetReadDistribution.run()\n-\n'
b
diff -r 529e3e6a0954 -r d94018ca4ada SMART/Java/Python/GetReadSizes.py
--- a/SMART/Java/Python/GetReadSizes.py Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,262 +0,0 @@\n-#! /usr/bin/env python\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-import random, os, glob, subprocess\n-from commons.core.parsing.ParserChooser import ParserChooser\n-from commons.core.parsing.GffParser import GffParser\n-from SMART.Java.Python.misc.UnlimitedProgress import UnlimitedProgress\n-from SMART.Java.Python.misc.Progress import Progress\n-from SMART.Java.Python.misc import Utils\n-from commons.core.LoggerFactory import LoggerFactory\n-from commons.core.utils.RepetOptionParser import RepetOptionParser\n-\n-LOG_DEPTH      = "smart"\n-DEFAULT_REGION = "_all_"\n-\n-class GetReadSizes(object):\n-\n-\tdef __init__(self, verbosity = 0):\n-\t\tself.xLab       = "Size"\n-\t\tself.yLab       = "# reads"\n-\t\tself.verbosity  = verbosity\n-\t\tself.number     = random.randint(0, 100000)\n-\t\tself.log        = LoggerFactory.createLogger("%s.%s" % (LOG_DEPTH, self.__class__.__name__), self.verbosity)\n-\t\tself.parsers    = {}\n-\t\tself.sizes      = {}\n-\t\tself.factors    = {}\n-\t\tself.regions    = None\n-\t\tself.tmpDatName = None\n-\t\tself.tmpRName   = None\n-\t\tself.width      = 800\n-\t\tself.height     = 300\n-\t\tself.arial      = False\n-\n-\tdef setNames(self, names):\n-\t\tself.names = names\n-\n-\tdef setInputFiles(self, fileNames, format):\n-\t\tchooser = ParserChooser(self.verbosity)\n-\t\tchooser.findFormat(format)\n-\t\tfor cpt, fileName in enumerate(fileNames):\n-\t\t\tself.parsers[self.names[cpt]] = chooser.getParser(fileName)\n-\n-\tdef setOutputFileName(self, fileName):\n-\t\tself.outputFileName = fileName\n-\n-\tdef setLabs(self, xLab, yLab):\n-\t\tself.xLab = xLab\n-\t\tself.yLab = yLab\n-\n-\tdef setSizes(self, minSize, maxSize):\n-\t\tself.minSize = minSize\n-\t\tself.maxSize = maxSize\n-\n-\tdef setColors(self, colors):\n-\t\tself.colors = colors\n-\n-\tdef setFactors(self, factors):\n-\t\tself.factors = dict(zip(self.names, factors))\n-\n-\tdef setRegionsFile(self, fileName):\n-\t\tif fileName != None:\n-\t\t\tself._loadRegions(fileName)\n-\n-\tdef setImageSize(self, width, height):\n-\t\tif width != None:\n-\t\t\tself.width = width\n-\t\tif height != None:\n-\t\t\tself.height = height\n-\n-\tdef setArial(self, arial):\n-\t\tself.arial = arial\n-\n-\tdef _checkOptions(self):\n-\t\tif not self.parsers:\n-\t\t\tself.logAndRaise("ERROR: Missing input file names")\n-\n-\tdef _logAndRaise(self, errorMsg):\n-\t\tself.log.error(errorMsg)\n-\t\traise Exception(errorMsg)\n-\n-\tdef _loadRegions(self, fileName):\n-\t\tself.regions = {}\n-\t\tparser       = GffParser(fileName, self.verbosity)\n-\t\tfor transcript in parser.getIterator():\n-\t\t\tchromosome = transcript.getChromosome()\n-\t\t\tstart      = transcript.getStart()\n-\t\t\tend       '..b'fileName)):\n-\t\t\t\t\tos.remove(otherFileName)\n-\n-\tdef run(self):\n-\t\tLoggerFactory.setLevel(self.log, self.verbosity)\n-\t\tself._checkOptions()\n-\t\tself.log.info("START Get Read Sizes")\n-\t\tfor name in self.names:\n-\t\t\tself._parse(name)\n-\t\tself._plot()\n-\t\tself._cleanFiles()\n-\t\tself.log.info("END Get Read Sizes")\n-\n-\n-if __name__ == "__main__":\n-\tdescription = "Usage: GetReadSizes.py [options]\\n\\nGet Read Sizes v1.0.1: Get the sizes of a set of reads. [Category: Personal]\\n"\n-\tepilog = ""\n-\tparser = RepetOptionParser(description = description, epilog = epilog)\n-\tparser.add_option("-i", "--input",     dest="inputFileNames",  action="store",      default=None,     type="string", help="input files, separated by commas [compulsory] [format: string]")\n-\tparser.add_option("-f", "--format",    dest="format",          action="store",      default=None,     type="string", help="format of the input [compulsory] [format: transcript or sequence file format]")\n-\tparser.add_option("-n", "--names",     dest="names",           action="store",      default=None,     type="string", help="name of the input data, separated by commas [compulsory] [format: string]")\n-\tparser.add_option("-o", "--output",    dest="outputFileName",  action="store",      default=None,      type="string", help="output file [format: output file in PNG format]")\n-\tparser.add_option("-s", "--minSize",   dest="minSize",         action="store",      default=None,      type="int",    help="minimum size [format: int]")\n-\tparser.add_option("-S", "--maxSize",   dest="maxSize",         action="store",      default=None,      type="int",    help="maximum size [format: int]")\n-\tparser.add_option("-l", "--xLabel",    dest="xLab",            action="store",      default="Size",    type="string", help="x-axis label name [format: string] [default: Size]")\n-\tparser.add_option("-L", "--yLabel",    dest="yLab",            action="store",      default="# reads", type="string", help="y-axis label name [format: string] [default: Reads]")\n-\tparser.add_option("-c", "--colors",    dest="colors",          action="store",      default=None,      type="string", help="colors of the bars, separated by commas  [format: string]")\n-\tparser.add_option("-a", "--factors",   dest="factors",         action="store",      default=None,      type="string", help="normalization factors, separated by commas  [format: string]")\n-\tparser.add_option("-r", "--regions",   dest="regionsFileName", action="store",      default=None,      type="string", help="regions to plot [format: transcript file in GFF format]")\n-\tparser.add_option("-z", "--width",     dest="width",           action="store",      default=800,       type="int",    help="width of the image [format: int] [default: 800]")\n-\tparser.add_option("-Z", "--height",    dest="height",          action="store",      default=300,       type="int",    help="height of the image [format: int] [default: 300]")\n-\tparser.add_option("-A", "--arial",     dest="arial",           action="store_true", default=False,                    help="use Arial font [format: boolean] [default: false]")\n-\tparser.add_option("-v", "--verbosity", dest="verbosity",       action="store",      default=1,         type="int",    help="trace level [format: int]")\n-\toptions = parser.parse_args()[0]\n-\tiGetReadSizes = GetReadSizes(options.verbosity)\n-\tiGetReadSizes.setNames(options.names.split(","))\n-\tiGetReadSizes.setInputFiles(options.inputFileNames.split(","), options.format)\n-\tiGetReadSizes.setOutputFileName(options.outputFileName)\n-\tiGetReadSizes.setLabs(options.xLab, options.yLab)\n-\tiGetReadSizes.setSizes(options.minSize, options.maxSize)\n-\tiGetReadSizes.setColors(None if options.colors == None else options.colors.split(","))\n-\tiGetReadSizes.setFactors(None if options.factors == None else map(float, options.factors.split(",")))\n-\tiGetReadSizes.setRegionsFile(options.regionsFileName)\n-\tiGetReadSizes.setImageSize(options.width, options.height)\n-\tiGetReadSizes.setArial(options.arial)\n-\tiGetReadSizes.run()\n'
b
diff -r 529e3e6a0954 -r d94018ca4ada SMART/Java/Python/GetUpDownStream.py
--- a/SMART/Java/Python/GetUpDownStream.py Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,152 +0,0 @@
-#! /usr/bin/env python
-#
-# Copyright INRA-URGI 2009-2012
-# 
-# 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 os
-from optparse import OptionParser, OptionGroup
-from commons.core.parsing.ParserChooser import ParserChooser
-from commons.core.writer.Gff3Writer import Gff3Writer
-from SMART.Java.Python.structure.Transcript import Transcript
-from SMART.Java.Python.ncList.NCListFilePickle import NCListFileUnpickle
-from SMART.Java.Python.ncList.FileSorter import FileSorter
-from SMART.Java.Python.misc.Progress import Progress
-from SMART.Java.Python.misc import Utils
-
-
-class GetUpDownStream(object):
-
-    def __init__(self, verbosity = 0):
-        self.verbosity         = verbosity
-        self.inputReader       = None
-        self.outputWriter      = None
-        self.nbRead            = 0
-        self.nbWritten         = 0
-        self.nbMerges          = 0
-        self.splittedFileNames = {}
-
-    def __del__(self):
-        for fileName in self.splittedFileNames.values():
-            os.remove(fileName)
-            
-    def setInputFile(self, fileName, format):
-        parserChooser = ParserChooser(self.verbosity)
-        parserChooser.findFormat(format, "transcript")
-        self.parser = parserChooser.getParser(fileName)
-        self.sortedFileName = "%s_sorted.pkl" % (os.path.splitext(fileName)[0])
-
-    def setOutputFile(self, fileName):
-        self.outputWriter = Gff3Writer(fileName, self.verbosity)
-
-    def setDistances(self, up, down):
-        self.upDistance   = up
-        self.downDistance = down
-
-    def _sortFile(self):
-        fs = FileSorter(self.parser, self.verbosity-4)
-        fs.perChromosome(True)
-        fs.setOutputFileName(self.sortedFileName)
-        fs.sort()
-        self.splittedFileNames       = fs.getOutputFileNames()
-        self.nbElementsPerChromosome = fs.getNbElementsPerChromosome()
-        self.nbRead                  = fs.getNbElements()
-
-    def _write(self, start, end, reference, after):
-        if start > end:
-            return
-        transcript = Transcript()
-        transcript.setChromosome(reference.getChromosome())
-        transcript.setStart(start)
-        transcript.setEnd(end)
-        transcript.setDirection("+")
-        transcript.setName("%s_%s" % ("up" if Utils.xor(reference.getDirection() == 1, after) else "down", reference.getName()))
-        self.outputWriter.addTranscript(transcript)
-        
-    def _getFlanking(self, chromosome):
-        progress    = Progress(self.nbElementsPerChromosome[chromosome], "Analyzing chromosome %s" % (chromosome), self.verbosity)
-        parser      = NCListFileUnpickle(self.splittedFileNames[chromosome], self.verbosity)
-        previous    = None
-        for transcript in parser.getIterator():
-            progress.inc()
-            transcript.removeExons()
-            if previous == None:
-                distance = self.upDistance if transcript.getDirection() == 1 else self.downDistance
-                start    = max(1, transcript.getStart() - distance)
-                self._write(start, transcript.getStart()-1, transcript, False)
-                previous = transcript
-                continue
-            if previous.include(transcript):
-                continue
-            if transcript.overlapWith(previous):
-                previous = transcript
-                continue
-            distancePrevious = self.downDistance if previous.getDirection()   == 1 else self.upDistance
-            distanceCurrent  = self.upDistance   if transcript.getDirection() == 1 else self.downDistance
-            distance = transcript.getDistance(previous)
-            if distancePrevious + distanceCurrent == 0:
-                previous = transcript
-                continue
-            if distance >= distancePrevious + distanceCurrent:
-                endPrevious  = previous.getEnd() + distancePrevious
-                startCurrent = transcript.getStart() - distanceCurrent
-            else:
-                middle       = previous.getEnd() + int((distance-1) * float(distancePrevious) / (distancePrevious + distanceCurrent))
-                endPrevious  = middle
-                startCurrent = middle+1
-            self._write(previous.getEnd() + 1, endPrevious, previous, True)
-            self._write(startCurrent, transcript.getStart() - 1, transcript, False)
-            previous = transcript
-        distance = self.downDistance if previous.getDirection() == 1 else self.upDistance
-        self._write(previous.getEnd() + 1, previous.getEnd() + distance, previous, True)
-        progress.done()
-
-    def run(self):
-        self._sortFile()
-        for chromosome in sorted(self.nbElementsPerChromosome.keys()):
-            self._getFlanking(chromosome)
-        self.outputWriter.close()
-
-if __name__ == "__main__":
-    
-    # parse command line
-    description = "Get Up and Down Stream v1.0.0: Get the flanking regions of an annotation. [Category: Data Modification]"
-
-    parser = OptionParser(description = description)
-    parser.add_option("-i", "--input",     dest="inputFileName",  action="store",                     type="string", help="input file [compulsory] [format: file in mapping format given by -f]")
-    parser.add_option("-f", "--format",    dest="format",         action="store",                     type="string", help="format of the file [compulsory] [format: mapping file format]")
-    parser.add_option("-o", "--output",    dest="outputFileName", action="store",                     type="string", help="output file [compulsory] [format: output file in GFF3 format]")
-    parser.add_option("-u", "--up",        dest="up",             action="store",      default=0,     type="int",    help="the upstream distance  [format: int]")
-    parser.add_option("-d", "--down",      dest="down",           action="store",      default=0,     type="int",    help="the downstream distance  [format: int]")
-    parser.add_option("-v", "--verbosity", dest="verbosity",      action="store",      default=1,     type="int",    help="trace level [default: 1] [format: int]")
-    (options, args) = parser.parse_args()
-
-    guds = GetUpDownStream(options.verbosity)
-    guds.setInputFile(options.inputFileName, options.format)
-    guds.setOutputFile(options.outputFileName)
-    guds.setDistances(options.up, options.down)
-    guds.run()
b
diff -r 529e3e6a0954 -r d94018ca4ada SMART/Java/Python/GetUpDownStream.pyc
b
Binary file SMART/Java/Python/GetUpDownStream.pyc has changed
b
diff -r 529e3e6a0954 -r d94018ca4ada SMART/Java/Python/Helitrons.fasta
--- a/SMART/Java/Python/Helitrons.fasta Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
b'@@ -1,2378 +0,0 @@\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 529e3e6a0954 -r d94018ca4ada SMART/Java/Python/RestrictFromCoverage.py
--- a/SMART/Java/Python/RestrictFromCoverage.py Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,224 +0,0 @@\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-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.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-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 RestrictFromCoverage(object):\n-\n-    def __init__(self, verbosity = 1):\n-        self._verbosity               = verbosity\n-        self._randomNumber            = random.randint(0, 100000)\n-        self._nbWritten               = 0\n-        self._nbLines                 = dict([type, 0]  for type in TYPES)\n-        self._splittedFileNames       = dict([type, {}] for type in TYPES)\n-        self._nbElementsPerChromosome = dict([type, {}] for type in TYPES)\n-        self._nbElements              = dict([type, 0]  for type in TYPES)\n-        \n-    def __del__(self):\n-        pass\n-\n-    def _close(self):\n-        self._writer.close()\n-        \n-    def setInputFileName(self, fileName, format, type):\n-        chooser = ParserChooser(self._verbosity)\n-        chooser.findFormat(format)\n-        parser = chooser.getParser(fileName)\n-        sortedFileName = "%s_%d_%d_sorted.pkl" % (os.path.splitext(fileName)[0], self._randomNumber, type)\n-        if self._verbosity > 2:\n-            print "Preparing %s file..." % (TYPETOSTRING[type])\n-        startTime = time.time()\n-        fs = FileSorter(parser, self._verbosity-1)\n-        fs.perChromosome(True)\n-        fs.setOutputFileName(sortedFileName)\n-        fs.sort()\n-        self._nbLines[type]                 = fs.getNbElements()\n-        self._splittedFileNames[type]       = fs.getOutputFileNames()\n-        self._nbElementsPerChromosome[type] = fs.getNbElementsPerChromosome()\n-        self._nbElements[type]              = fs.getNbElements()\n-        endTime = time.time'..b'ranscript):\n-        self._writer.addTranscript(transcript)\n-        self._nbWritten += 1\n-\n-    def run(self):\n-        for chromosome in sorted(self._splittedFileNames[QUERY].keys()):\n-            self._compareChromosome(chromosome)\n-        self._close()\n-        if self._verbosity > 0:\n-            print "# queries: %d" % (self._nbElements[QUERY])\n-            print "# refs:    %d" % (self._nbElements[REFERENCE])\n-            print "# written: %d (%d%%)" % (self._nbWritten, 0 if self._nbElements[QUERY] == 0 else round(float(self._nbWritten) / self._nbElements[QUERY] * 100))\n-        \n-\n-if __name__ == "__main__":\n-    description = "Restrict From Coverage v1.0.0: Select the elements from the first set which have a given coverage. [Category: Data Comparison]"\n-\n-    parser = OptionParser(description = description)\n-    parser.add_option("-i", "--input1",           dest="inputFileName1", action="store",                     type="string", help="input file 1 [compulsory] [format: file in transcript format given by -f]")\n-    parser.add_option("-f", "--format1",          dest="format1",        action="store",                     type="string", help="format of file 1 [compulsory] [format: transcript file format]")\n-    parser.add_option("-j", "--input2",           dest="inputFileName2", action="store",                     type="string", help="input file 2 [compulsory] [format: file in transcript format given by -g]")\n-    parser.add_option("-g", "--format2",          dest="format2",        action="store",                     type="string", help="format of file 2 [compulsory] [format: transcript file format]")\n-    parser.add_option("-o", "--output",           dest="output",         action="store",      default=None,  type="string", help="output file [compulsory] [format: output file in GFF3 format]")\n-    parser.add_option("-n", "--minNucleotides",   dest="minNucleotides", action="store",      default=None,  type="int",    help="minimum number of nucleotides overlapping to declare an overlap [format: int]")\n-    parser.add_option("-N", "--maxNucleotides",   dest="maxNucleotides", action="store",      default=None,  type="int",    help="maximum number of nucleotides overlapping to declare an overlap [format: int]")\n-    parser.add_option("-p", "--minPercent",       dest="minPercent",     action="store",      default=None,  type="int",    help="minimum percentage of nucleotides overlapping to declare an overlap [format: int]")\n-    parser.add_option("-P", "--maxPercent",       dest="maxPercent",     action="store",      default=None,  type="int",    help="maximum percentage of nucleotides overlapping to declare an overlap [format: int]")\n-    parser.add_option("-e", "--minOverlap",       dest="minOverlap",     action="store",      default=None,  type="int",    help="minimum number of elements from 2nd file to declare an overlap [format: int]")\n-    parser.add_option("-E", "--maxOverlap",       dest="maxOverlap",     action="store",      default=None,  type="int",    help="maximum number of elements from 2nd file to declare an overlap [format: int]")\n-    parser.add_option("-s", "--strands",          dest="strands",        action="store_true", default=False,                help="consider the two strands separately [format: bool] [default: false]")\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-    rfc = RestrictFromCoverage(options.verbosity)\n-    rfc.setInputFileName(options.inputFileName1, options.format1, QUERY)\n-    rfc.setInputFileName(options.inputFileName2, options.format2, REFERENCE)\n-    rfc.setOutputFileName(options.output)\n-    rfc.setNbNucleotides(options.minNucleotides, options.maxNucleotides)\n-    rfc.setPercent(options.minPercent, options.maxPercent)\n-    rfc.setOverlap(options.minOverlap, options.maxOverlap)\n-    rfc.setStrands(options.strands)\n-    rfc.run()\n'
b
diff -r 529e3e6a0954 -r d94018ca4ada SMART/Java/Python/Rplots.pdf
b
Binary file SMART/Java/Python/Rplots.pdf has changed
b
diff -r 529e3e6a0954 -r d94018ca4ada SMART/Java/Python/S1_S3_blast.blast
--- a/SMART/Java/Python/S1_S3_blast.blast Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
b'@@ -1,5405 +0,0 @@\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 529e3e6a0954 -r d94018ca4ada SMART/Java/Python/SelectByTag.py
--- a/SMART/Java/Python/SelectByTag.py Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,148 +0,0 @@
-#! /usr/bin/env python
-#
-# 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.
-#
-"""Select the transcript such that a tag value is not less than a given threshold"""
-import os
-import sys
-from optparse import OptionParser
-from SMART.Java.Python.structure.TranscriptContainer import TranscriptContainer
-from commons.core.writer import MySqlTranscriptWriter
-from commons.core.writer.Gff3Writer import Gff3Writer
-from SMART.Java.Python.misc.Progress import Progress
-from SMART.Java.Python.misc.RPlotter import RPlotter
-
-class SelectByTag(object):
-    
-    def __init__(self, verbosity = 1):
-        self.input     = None
-        self.format    = None
-        self.tag       = None
-        self.value     = None
-        self.min       = None
-        self.max       = None
-        self.default   = None
-        self.output    = None
-        self.mysql     = None
-        self.verbosity = verbosity
-
-        self.parser      = None
-        self.writer      = None
-        self.mysqlWriter = None
-        self.nbElements  = None
-        self.nbWritten   = 0
-
-    
-    def setParser(self):
-        self.parser     = TranscriptContainer(self.input, self.format, self.verbosity)
-        self.nbElements = self.parser.getNbTranscripts()
-
-
-    def setWriter(self):
-        self.writer = Gff3Writer(self.output, self.verbosity)
-        if self.mysql:
-            self.mysqlWriter = MySqlTranscriptWriter(self.output, self.verbosity)
-
-
-    def isAccepted(self, transcript):
-        value = transcript.getTagValue(self.tag)
-        if value == None:
-            if self.default != None:
-                value = self.default
-            else:
-                raise Exception("Error! Transcript %s no tag called '%s'" % (transcript, self.tag))
-        if self.value != None:
-            if self.value == str(value):
-                return True
-            return self.value.isdigit() and value == float(self.value)
-        value = float(value)
-        return (self.min == None or self.min <= value) and (self.max == None or self.max >= value)
-
-
-    def readInputFile(self):
-        progress = Progress(self.parser.getNbTranscripts(), "Writing transcripts", self.verbosity)
-        for transcript in self.parser.getIterator():
-            if self.isAccepted(transcript):
-                self.writer.addTranscript(transcript)
-                if self.mysql:
-                    self.mysqlWriter.addTranscript(transcript)
-                self.nbWritten += 1
-            progress.inc()
-        progress.done()
-
-
-    def writeFile(self):
-        self.writer.write()
-        if self.mysql:
-            self.mysqlWriter.write()
-
-    
-    def run(self):
-        self.setParser()
-        self.setWriter()
-        self.readInputFile()
-        self.writeFile()
-        if self.verbosity > 0:
-            print "%d input" % (self.nbElements)
-            if self.nbElements != 0:
-                print "%d output (%.2f%%)" % (self.nbWritten, float(self.nbWritten) / self.nbElements * 100)
-
-
-
-if __name__ == "__main__":
-    
-    # parse command line
-    description = "Select by Tag v1.0.2: Keep the genomic coordinates such that a the value of a given tag is between two limits. [Category: Data Selection]"
-
-    parser = OptionParser(description = description)
-    parser.add_option("-i", "--input", dest="inputFileName", action="store", type="string", help="input file [compulsory] [format: file in transcript format given by -f]")
-    parser.add_option("-f", "--format", dest="format", action="store", type="string", help="format of the input [compulsory] [format: transcript file format]")
-    parser.add_option("-g", "--tag", dest="tag", action="store", default=None, type="string", help="the tag [compulsory] [format: string]")     
-    parser.add_option("-a", "--value", dest="value", action="store", default=None, type="string", help="the value to be found [format: string]")     
-    parser.add_option("-m", "--min", dest="min", action="store", default=None, type="float", help="the minimum threshold [format: float]")     
-    parser.add_option("-M", "--max", dest="max", action="store", default=None, type="float", help="the maximum threshold [format: float]")     
-    parser.add_option("-d", "--default", dest="default", action="store", default=None, type="float", help="value if tag is not present [format: float]")     
-    parser.add_option("-o", "--output", dest="outputFileName", action="store", type="string", help="output file [format: output file in GFF3 format]")
-    parser.add_option("-y", "--mysql", dest="mysql", action="store_true", default=False, help="write output into MySQL tables [format: boolean] [default: False]")
-    parser.add_option("-v", "--verbosity", dest="verbosity", action="store", default=1, type="int", help="trace level [format: int]")
-    (options, args) = parser.parse_args()
-
-    selectByTag         = SelectByTag(options.verbosity)
-    selectByTag.input   = options.inputFileName
-    selectByTag.format  = options.format
-    selectByTag.tag     = options.tag
-    selectByTag.value   = options.value
-    selectByTag.min     = options.min
-    selectByTag.max     = options.max
-    selectByTag.default = options.default
-    selectByTag.output  = options.outputFileName
-    selectByTag.mysql   = options.mysql
-    selectByTag.run()
-
-
b
diff -r 529e3e6a0954 -r d94018ca4ada SMART/Java/Python/TestFiles/SR1.fastq
--- a/SMART/Java/Python/TestFiles/SR1.fastq Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
b'@@ -1,5000 +0,0 @@\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 529e3e6a0954 -r d94018ca4ada SMART/Java/Python/TestFiles/Wig/chr1.wig
--- a/SMART/Java/Python/TestFiles/Wig/chr1.wig Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,9 +0,0 @@
-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 529e3e6a0954 -r d94018ca4ada SMART/Java/Python/TestFiles/adress.txt
--- a/SMART/Java/Python/TestFiles/adress.txt Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,7 +0,0 @@
-0
-58
-115
-173
-231
-289
-347
b
diff -r 529e3e6a0954 -r d94018ca4ada SMART/Java/Python/TestFiles/clusterize_default_expected.gff3
--- a/SMART/Java/Python/TestFiles/clusterize_default_expected.gff3 Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
b'@@ -1,1790 +0,0 @@\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 529e3e6a0954 -r d94018ca4ada SMART/Java/Python/TestFiles/clusterize_default_expected.map
--- a/SMART/Java/Python/TestFiles/clusterize_default_expected.map Tue Apr 30 14:35:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
b'@@ -1,1790 +0,0 @@\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