├── Dockerfile ├── Docs ├── Docker.README.md └── EdingIndexDocumentation.pdf ├── LICENSE.md ├── Makefile ├── README.md ├── TestResources ├── AnnotationAndRegions │ ├── ucscHg38Alu.OnlyChr1.bed.gz │ ├── ucscHg38CommonGenomicSNPs150.OnlyChr1.bed.gz │ ├── ucscHg38GTExGeneExpression.OnlyChr1.bed.gz │ └── ucscHg38RefSeqCurated.OnlyChr1.bed.gz ├── BAMs │ ├── BAMs │ │ ├── SRR5962201 │ │ │ └── SRR5962201_sampled_with_0.1.Aligned.sortedByCoord.out.bam.AluChr1Only.bam │ │ ├── SRR5962209 │ │ │ └── SRR5962209_sampled_with_0.1.Aligned.sortedByCoord.out.bam.AluChr1Only.bam │ │ ├── SRR5962217 │ │ │ └── SRR5962217_sampled_with_0.1.Aligned.sortedByCoord.out.bam.AluChr1Only.bam │ │ └── SRR5962219 │ │ │ └── SRR5962219_sampled_with_0.1.Aligned.sortedByCoord.out.bam.AluChr1Only.bam │ └── BAMsDescription.txt └── CompareTo │ └── EditingIndex.csv ├── configure.sh ├── lib └── commons-cli-1.4.jar ├── make ├── Makefile ├── compileMouseEncodeGeneExpression.py └── initResources.sh ├── obj └── org │ ├── META-INF │ ├── LICENSE.txt │ ├── MANIFEST.MF │ ├── NOTICE.txt │ └── maven │ │ └── commons-cli │ │ └── commons-cli │ │ ├── pom.properties │ │ └── pom.xml │ └── apache │ └── commons │ └── cli │ ├── AlreadySelectedException.class │ ├── AmbiguousOptionException.class │ ├── BasicParser.class │ ├── CommandLine$Builder.class │ ├── CommandLine.class │ ├── CommandLineParser.class │ ├── DefaultParser.class │ ├── GnuParser.class │ ├── HelpFormatter$1.class │ ├── HelpFormatter$OptionComparator.class │ ├── HelpFormatter.class │ ├── MissingArgumentException.class │ ├── MissingOptionException.class │ ├── Option$1.class │ ├── Option$Builder.class │ ├── Option.class │ ├── OptionBuilder.class │ ├── OptionGroup.class │ ├── OptionValidator.class │ ├── Options.class │ ├── ParseException.class │ ├── Parser.class │ ├── PatternOptionBuilder.class │ ├── PosixParser.class │ ├── TypeHandler.class │ ├── UnrecognizedOptionException.class │ └── Util.class └── src ├── EditingIndexJavaUtils ├── BEDGenomeIndexer.java ├── BEDUtilsConsts.java ├── EditingIndexBEDUtils.java ├── Makefile └── PileupToCount.java └── RNAEditingIndex ├── Configs ├── DefaultsConfig.ini ├── FullConfig.ini └── FullConfigStranded.ini ├── RNAEditingIndex ├── _bisectmodule.so ├── _codecs_cn.so ├── _codecs_hk.so ├── _codecs_iso2022.so ├── _codecs_jp.so ├── _codecs_kr.so ├── _codecs_tw.so ├── _collectionsmodule.so ├── _csv.so ├── _ctypes.so ├── _functoolsmodule.so ├── _hashlib.so ├── _heapq.so ├── _io.so ├── _json.so ├── _localemodule.so ├── _multibytecodecmodule.so ├── _multiprocessing.so ├── _randommodule.so ├── _socketmodule.so ├── _ssl.so ├── _struct.so ├── arraymodule.so ├── binascii.so ├── bz2.so ├── cPickle.so ├── cStringIO.so ├── datetime.so ├── fcntlmodule.so ├── grpmodule.so ├── include └── python2.7 │ └── pyconfig-64.h ├── itertoolsmodule.so ├── lib64 └── python2.7 │ └── config │ └── Makefile ├── libbz2.so.1 ├── libcom_err.so.2 ├── libcrypto.so.10 ├── libffi.so.5 ├── libgssapi_krb5.so.2 ├── libk5crypto.so.3 ├── libkeyutils.so.1 ├── libkrb5.so.3 ├── libkrb5support.so.0 ├── libpython2.7.so.1.0 ├── libreadline.so.6 ├── libselinux.so.1 ├── libssl.so.10 ├── libtinfo.so.5 ├── math.so ├── mmapmodule.so ├── operator.so ├── path_locator.py ├── pyexpat.so ├── readline.so ├── resource.so ├── selectmodule.so ├── stropmodule.so ├── termios.so ├── timemodule.so ├── unicodedata.so └── zlibmodule.so /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM biocontainers/biocontainers:latest 2 | 3 | RUN conda install samtools=1.9 && \ 4 | conda install bedtools=2.27.1 && \ 5 | conda install bamutil=1.0.14 && \ 6 | conda install -c cyclus java-jdk=8.0.92 && \ 7 | conda install python=2.7.16 && \ 8 | conda install -c anaconda git 9 | 10 | USER root 11 | 12 | 13 | RUN mkdir -p /bin/AEI &&\ 14 | cd /bin/AEI &&\ 15 | git clone https://github.com/shalomhillelroth/RNAEditingIndexer 16 | 17 | ENV DEV_ROOT /bin/AEI/RNAEditingIndexer 18 | ENV BEDTOOLS_PATH bedtools 19 | ENV SAMTOOLS_PATH samtools 20 | ENV RESOURCES_DIR=/bin/AEI/RNAEditingIndexer/Resources 21 | ENV JAVA_HOME /opt/conda 22 | ENV BAM_UTILS_PATH bam 23 | ENV PYTHON27_PATH python 24 | ENV DONT_DOWNLOAD false 25 | ENV DONT_WRITE false 26 | ENV IS_UNIX true 27 | 28 | ENV PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/conda/bin:/home/biodocker/bin:/bin/AEI/RNAEditingIndexer 29 | 30 | RUN cd /bin/AEI/RNAEditingIndexer && make 31 | 32 | CMD /bin/AEI/RNAEditingIndexer/RNAEditingIndex -------------------------------------------------------------------------------- /Docs/Docker.README.md: -------------------------------------------------------------------------------- 1 | # Docker Usage 2 | 3 | ## Quick Introduction - What is a Docker? (and some terminology) 4 | This is a short explanation about Docker and containers, for the full documentation please go to the [official site](https://docs.docker.com/). 5 | 6 | Docker is a type of application runnning containers. Containers are conceptually similar to virtual machines, 7 | but are lighter and more fexbile. 8 | We supply a __*docker file*__, which contains the instructions to build a container (henceforth refered to as __*"image"*__) that contains 9 | the operating system and all dependencies for the tool, so the user doesn't have to to deal with installing and configurating them. 10 | To use this, you must have Docker installed on your machine, and then create the image (__*build*__ it, done once), and then you may run the tool almost as if it was installed on the local machine. When you build the image you give it a name (a __*tag*__), that you refer to later when running it. 11 | Keep in mind that the image runs inside a virtual enviroment. Thus, to access your file system, you have to specify a 12 | connection (a __*volum*__, see below). This binding allows you to refer to an internal path linked to your local files (very similar 13 | to to regular links). 14 | 15 | ## Building the Image 16 | To build the image ("install" the tool), make sure your docker service is running and run a command as following (please kindly note 17 | that these are basic parameters, you can further adjust the usage, see more about this in the [full Docker documentaion](https://docs.docker.com/)): 18 | ``` 19 | cd /your_git_dir 20 | 21 | # ***Note*** this will download the needed dependencies *AND* information tables (14G of data) 22 | # this may take some time. 23 | docker image build -t your_docker_rep_name/a_name_such_as_a2i_editing_index:a_tag . 24 | ``` 25 | 26 | ## Running the Image 27 | 28 | ### Volum (file system interface) 29 | To enalbe reading and writing to the file system you must specify a connection to the docker image. 30 | You may do this globaly, but here we give example for a runtime command (therefore after the run, the connection will disappear). 31 | The format is [path on your file system]:[path in the container]:[accession suffix] (this may change in a couple of Linux types, see Docker docemntation). 32 | To access a directory with read permissions only, specify *'ro'*, for read\write (e.g. your output directory)- use the *'rw'* suffix. 33 | Here is an example of the commad to __add__ to your command line (we will use this example through these instructions): 34 | ``` 35 | -v /the_path/to_your_bams:/data/some_dir_inside:ro -v /the_path/to_your_output_dir:/data/some_other_path:rw 36 | ``` 37 | 38 | ### User Permissions 39 | If you run the image without these paramters the files created will be with **root user permissions**. 40 | To adjust the run to use your regular user permissions add the following line (yet again some OS may need a little adjustments): 41 | ``` 42 | -u $(id -u ${USER}):$(id -g ${USER}) 43 | ``` 44 | 45 | ### Full Command Line (2 examples) 46 | The format of the command is: 47 | 48 | docker run [Docker paramters: __\__ __\__] image_name RNAEditingIndex __\__ 49 | ``` 50 | # Example 1: 51 | docker run \ 52 | -u $(id -u ${USER}):$(id -g ${USER})\ 53 | -v /the_path/to_your_bams:/data/some_dir_inside:ro -v /the_path/to_your_output_dir:/data/some_other_path:rw\ 54 | your_docker_rep_name/a_name_such_as_a2i_editing_index:a_tag RNAEditingIndex -d /data/some_dir_inside\ 55 | -l /the_path/to_your_output_dir/logs_dir -o /the_path/to_your_output_dir/cmpileups\ 56 | -os /the_path/to_your_output_dir/summary_dir\ 57 | --genome hg38 58 | 59 | # Example 2: 60 | docker run \ 61 | -u $(id -u ${USER}):$(id -g ${USER})\ 62 | -v /the_path/to_your_bams:/data/some_dir_inside:ro -v /a_path_to_resources:/data/my_resources\ 63 | -v /the_path/to_your_output_dir:/data/some_other_path:rw\ 64 | your_docker_rep_name/a_name_such_as_a2i_editing_index:a_tag RNAEditingIndex -d /data/some_dir_inside\ 65 | -l /the_path/to_your_output_dir/logs_dir -o /the_path/to_your_output_dir/cmpileups\ 66 | -os /the_path/to_your_output_dir/summary_dir\ 67 | --genome hg38 --rb /data/my_resources/my_custom_regions_file.bed.gz 68 | ``` 69 | -------------------------------------------------------------------------------- /Docs/EdingIndexDocumentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/Docs/EdingIndexDocumentation.pdf -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | This work is licensed under the Creative Commons Attribution-Non-Commercial-ShareAlike 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/4.0/. For use of the software by commercial entities, please inquire with Eli Eisenberg at elieis@post.tau.ac.il or Tel Aviv University at ramot@ramot.org (Erez Y. Levanon, Erez.Levanon@biu.ac.il; Eli Eisenberg, elieis@post.tau.ac.il; Shalom Hillel Roth, shalomhillel.roth@live.biu.ac.il). 2 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | JavaPackages = \ 2 | EditingIndexJavaUtils 3 | 4 | JavaLibraries = 5 | 6 | 7 | JavaMainClass = \ 8 | EditingIndexJavaUtils.EditingIndexBEDUtils 9 | 10 | RunParameters = 11 | 12 | # Javadoc 13 | JavadocWindowTitle = 'A-to-I RNA Editing Index Java Utils' 14 | JavadocDocTitle = 'A-to-I RNA Editing Index' 15 | JavadocHeader = 'A-to-I Editing Index' 16 | JavadocFooter = 17 | 18 | include $(DEV_ROOT)/make/Makefile 19 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # RNAEditingIndexer 2 | A tool for calculating RNA editing levels from RNA seq data 3 | 4 | ## Installation and Requirements 5 | 6 | ### Docker 7 | A docker file containing the tool is included in the package. We kindly recommend to use it if possible to avoid dependencies conflicts and configuration. For more in-depth instructions see Docker.README file in the Docs directory. 8 | The image is based on [Biocontainer](https://biocontainers.pro/) base image. 9 | 10 | ### Dependencies 11 | - _[SAMtools](http://samtools.sourceforge.net/)_ - version 1.8 or higher (tested on 1.8) 12 | - _[bedtools](https://bedtools.readthedocs.io/en/latest)_ - version 2.26 or higher (tested on 2.26) 13 | - _[bamUtils](https://genome.sph.umich.edu/wiki/BamUtil)_ 14 | 15 | - _[Java](https://www.oracle.com/technetwork/java/javase/downloads/index.html)_ - any recent version (with javac, i.e. a SDK) 16 | - _[Python 2.7](https://www.python.org/download/releases/2.7/)_ (a clean installation is sufficient) 17 | ### OS Requirements 18 | **Right now the program supports only GNU/Linux operating systems** (and probably any other POSIX OS) 19 | 20 | (The binary executable was compiled using pyInstaller over a 64 bit Centos 6.10 operating system. Older and/or 32 bit based operating systems may not be able to run it properly - please kindly use the Docker in these cases.) 21 | 22 | ##### CPU and Memory 23 | The program has low demand of system resources (CPU and memory) - only the default resource requirements of SAMtools and bedtools are needed (thay are ran with default CPU and memory parameters to generate the CMPileups). For the rest of the processing (after the creation of theCMPileups), the program demands very little. However **the deafult thread number is high** (and can be easily changed using command line parameters) 24 | 25 | ##### Disk Space 26 | The installation requires a bit more than 12G of free disk space, almost all (~11.7G) of which is for the built-in resources (built-in genomes and tables which are not mandatory for running, see further details bellow for installation without downloading and running) 27 | 28 | ### Local Installation 29 | (Installation time for desktop computers should not exceed 15 minutes or so, downloading the data tables may take longer, depnding on internet connection) 30 | Prior to installation, you need to ran a configuration bash script (configure.sh, see below). It includes tests for the various programs required, and initialization of variables for the installation. **If the any of the tests fail (except for bamUtils) the configuration is _aborted_.** 31 | 32 | Any of the used paths (to resources directory and the programs) can be set at this stage, please run __configure.sh -h__ to see all options. 33 | 34 | **NOTE: The installation will by default download the built-in genomes (_unzipped_) and tables (_gzipped_). This requires about 12G of disk space.** 35 | 36 | ``` 37 | #change working dir to the installtion dir 38 | 39 | cd ./RNAEditingIndexer 40 | 41 | #configure installtion environmental variables 42 | 43 | . ./configure.sh 44 | 45 | make 46 | ``` 47 | 48 | ### Resources File 49 | The installation creates a file named ResourcesPaths.ini at \<_InstallPath_\>/src/RNAEditingIndex/Configs (set with *configure.sh*) which specifies the default path to the required programs and data files (such as genomes and tables). **Modify this file after installtion to change defaults (such as in the case of not downloading the data files)** 50 | 51 | ## Running 52 | Simply run _RNAEditingIndex -h_ to see full help. 53 | 54 | ### An example for a simple run: 55 | ``` 56 | _InstallPath_/RNAEditingIndex -d _BAMs diretory_ -f Aligned.sortedByCoord.out.bam. -l _logs directory_ -o _cmpileup output directory_ -os _summery files directory_ --genome hg38 57 | ``` 58 | 59 | ### Typical runtime 60 | Typical runtime, parallelization taken into account, is around the 20-30 min (for a 50 millions reads BAM) per sample on servers, could be up to four times as much on desktop computers, depending on BAMs sizes (i.e. coverage). 61 | 62 | ### Logging and flags 63 | Under the chosen logging directory a _flags_ directory is created. This contains a flag file for each **sample name** processed (of the format _\.flg_. In order to re-run samples **the flags belonging to the samples must be deleted or they will be ignored**. This feature enables parallel running with several instances of the program and re-running with the same parameters only on a subset of the samples (e.g. failed to run ones). The logging directory also contains a main log (the name is EditingIndex.\<_timestamp_\>.log) including timestamps per (internal) command and sample processing (this is the place to check for progress and errors). 64 | 65 | ### Inputs 66 | 67 | #### Alignments 68 | The input directory containing alignment (BAM) files. The directory can be nested (i.e. folders within folders), the program looks for the BAM files recursively. 69 | **Note: alignment should be unique.** (non-unique alignemt may create unpredicted, algorithm dependent, biases) 70 | 71 | #### Genome and Annotations 72 | You can use any of the built-in genomes (and their corresponding annotations) without providing any additional paramters (using the _--genome_ option). However any used resource (regions indexed BED, SNPs, gene annotations and expression levels, and genome) can be provided by the user instead. See help and documentations for details. 73 | 74 | ## Outputs and Output Directories 75 | 76 | ### Temporary Outputs - CMPileup and genome index files 77 | CMPileups, pileup files converted into a numerical format (for more details see the full documentaion), are created in the directory specified under _-o_ flag and unless specified otherwise (with the _keep_cmpileup_ flag) will be deleted after processing due to their, usually, very large size. A genome index (with the suffix _.jsd_ by default) is also created there (and deleted). 78 | 79 | ### Summary file 80 | A summary file is created in the directory specified by _-os_. **The output is _appended_ for each run**, so that several instances of the program may be run with the same output file (creating a single joined output). 81 | For a full explanation of the output see the documentaion, but in a nutshell: 82 | - A2GEditingIndex is the signal (i.e. value) of the editing 83 | - C2TEditingIndex is the highest noise (in most cases) 84 | - (in verbose mode) use only lines where _StrandDecidingMethod_ is "_RefSeqThenMMSites_" (in any organism with good genes annotations) 85 | 86 | 87 | ## Test Run 88 | To run the test please use the following command: \<_InstallPath_\>/RNAEditingIndex -d \<_InstallPath_\>/TestResources/BAMs -f _sampled_with_0.1.Aligned.sortedByCoord.out.bam.AluChr1Only.bam -l \<_your wanted logs dir_\> -o \<_wanted cmpileup output dir_\> -os \<_wanted summery dir_\> --genome hg38 -rb \<_InstallPath_\>/TestResources/AnnotationAndRegions/ucscHg38Alu.OnlyChr1.bed.gz --refseq \<_InstallPath_\>/TestResources/AnnotationAndRegions/ucscHg38RefSeqCurated.OnlyChr1.bed.gz --snps \<_InstallPath_\>/TestResources/AnnotationAndRegions/ucscHg38CommonGenomicSNPs150.OnlyChr1.bed.gz --genes_expression \<_InstallPath_\>/TestResources/AnnotationAndRegions/ucscHg38GTExGeneExpression.OnlyChr1.bed.gz --verbose --stranded --paired 89 | 90 | Typical runtime should be within 10 min, reference results are in \<_InstallPath_\>/TestResources/CompareTo. 91 | 92 | 93 | 94 | © 2019 Tel Aviv University (Erez Y. Levanon, Erez.Levanon@biu.ac.il; Eli Eisenberg, elieis@post.tau.ac.il; Shalom Hillel Roth, shalomhillel.roth@live.biu.ac.il). 95 | -------------------------------------------------------------------------------- /TestResources/AnnotationAndRegions/ucscHg38Alu.OnlyChr1.bed.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/TestResources/AnnotationAndRegions/ucscHg38Alu.OnlyChr1.bed.gz -------------------------------------------------------------------------------- /TestResources/AnnotationAndRegions/ucscHg38CommonGenomicSNPs150.OnlyChr1.bed.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/TestResources/AnnotationAndRegions/ucscHg38CommonGenomicSNPs150.OnlyChr1.bed.gz -------------------------------------------------------------------------------- /TestResources/AnnotationAndRegions/ucscHg38GTExGeneExpression.OnlyChr1.bed.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/TestResources/AnnotationAndRegions/ucscHg38GTExGeneExpression.OnlyChr1.bed.gz -------------------------------------------------------------------------------- /TestResources/AnnotationAndRegions/ucscHg38RefSeqCurated.OnlyChr1.bed.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/TestResources/AnnotationAndRegions/ucscHg38RefSeqCurated.OnlyChr1.bed.gz -------------------------------------------------------------------------------- /TestResources/BAMs/BAMs/SRR5962201/SRR5962201_sampled_with_0.1.Aligned.sortedByCoord.out.bam.AluChr1Only.bam: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/TestResources/BAMs/BAMs/SRR5962201/SRR5962201_sampled_with_0.1.Aligned.sortedByCoord.out.bam.AluChr1Only.bam -------------------------------------------------------------------------------- /TestResources/BAMs/BAMs/SRR5962209/SRR5962209_sampled_with_0.1.Aligned.sortedByCoord.out.bam.AluChr1Only.bam: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/TestResources/BAMs/BAMs/SRR5962209/SRR5962209_sampled_with_0.1.Aligned.sortedByCoord.out.bam.AluChr1Only.bam -------------------------------------------------------------------------------- /TestResources/BAMs/BAMs/SRR5962217/SRR5962217_sampled_with_0.1.Aligned.sortedByCoord.out.bam.AluChr1Only.bam: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/TestResources/BAMs/BAMs/SRR5962217/SRR5962217_sampled_with_0.1.Aligned.sortedByCoord.out.bam.AluChr1Only.bam -------------------------------------------------------------------------------- /TestResources/BAMs/BAMs/SRR5962219/SRR5962219_sampled_with_0.1.Aligned.sortedByCoord.out.bam.AluChr1Only.bam: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/TestResources/BAMs/BAMs/SRR5962219/SRR5962219_sampled_with_0.1.Aligned.sortedByCoord.out.bam.AluChr1Only.bam -------------------------------------------------------------------------------- /TestResources/BAMs/BAMsDescription.txt: -------------------------------------------------------------------------------- 1 | BAMs are derived from GSE103001 -------------------------------------------------------------------------------- /TestResources/CompareTo/EditingIndex.csv: -------------------------------------------------------------------------------- 1 | StrandDecidingMethod,Group,Sample,SamplePath,A2CEditingIndex,A2GEditingIndex,A2TEditingIndex,C2AEditingIndex,C2GEditingIndex,C2TEditingIndex,G2AEditingIndex,G2CEditingIndex,G2TEditingIndex,T2AEditingIndex,T2CEditingIndex,T2GEditingIndex,IndexedCanonicalOfA2C,IndexedCanonicalOfA2CFromExonicRegions,IndexedCanonicalOfA2CFromIntergenicRegions,IndexedCanonicalOfA2CFromIntronicRegions,IndexedCanonicalOfA2COn+Strand,IndexedCanonicalOfA2COn-Strand,IndexedCanonicalOfA2COnUnknownStrand,IndexedCanonicalOfA2G,IndexedCanonicalOfA2GFromExonicRegions,IndexedCanonicalOfA2GFromIntergenicRegions,IndexedCanonicalOfA2GFromIntronicRegions,IndexedCanonicalOfA2GOn+Strand,IndexedCanonicalOfA2GOn-Strand,IndexedCanonicalOfA2GOnUnknownStrand,IndexedCanonicalOfA2T,IndexedCanonicalOfA2TFromExonicRegions,IndexedCanonicalOfA2TFromIntergenicRegions,IndexedCanonicalOfA2TFromIntronicRegions,IndexedCanonicalOfA2TOn+Strand,IndexedCanonicalOfA2TOn-Strand,IndexedCanonicalOfA2TOnUnknownStrand,IndexedCanonicalOfC2A,IndexedCanonicalOfC2AFromExonicRegions,IndexedCanonicalOfC2AFromIntergenicRegions,IndexedCanonicalOfC2AFromIntronicRegions,IndexedCanonicalOfC2AOn+Strand,IndexedCanonicalOfC2AOn-Strand,IndexedCanonicalOfC2AOnUnknownStrand,IndexedCanonicalOfC2G,IndexedCanonicalOfC2GFromExonicRegions,IndexedCanonicalOfC2GFromIntergenicRegions,IndexedCanonicalOfC2GFromIntronicRegions,IndexedCanonicalOfC2GOn+Strand,IndexedCanonicalOfC2GOn-Strand,IndexedCanonicalOfC2GOnUnknownStrand,IndexedCanonicalOfC2T,IndexedCanonicalOfC2TFromExonicRegions,IndexedCanonicalOfC2TFromIntergenicRegions,IndexedCanonicalOfC2TFromIntronicRegions,IndexedCanonicalOfC2TOn+Strand,IndexedCanonicalOfC2TOn-Strand,IndexedCanonicalOfC2TOnUnknownStrand,IndexedCanonicalOfG2A,IndexedCanonicalOfG2AFromExonicRegions,IndexedCanonicalOfG2AFromIntergenicRegions,IndexedCanonicalOfG2AFromIntronicRegions,IndexedCanonicalOfG2AOn+Strand,IndexedCanonicalOfG2AOn-Strand,IndexedCanonicalOfG2AOnUnknownStrand,IndexedCanonicalOfG2C,IndexedCanonicalOfG2CFromExonicRegions,IndexedCanonicalOfG2CFromIntergenicRegions,IndexedCanonicalOfG2CFromIntronicRegions,IndexedCanonicalOfG2COn+Strand,IndexedCanonicalOfG2COn-Strand,IndexedCanonicalOfG2COnUnknownStrand,IndexedCanonicalOfG2T,IndexedCanonicalOfG2TFromExonicRegions,IndexedCanonicalOfG2TFromIntergenicRegions,IndexedCanonicalOfG2TFromIntronicRegions,IndexedCanonicalOfG2TOn+Strand,IndexedCanonicalOfG2TOn-Strand,IndexedCanonicalOfG2TOnUnknownStrand,IndexedCanonicalOfT2A,IndexedCanonicalOfT2AFromExonicRegions,IndexedCanonicalOfT2AFromIntergenicRegions,IndexedCanonicalOfT2AFromIntronicRegions,IndexedCanonicalOfT2AOn+Strand,IndexedCanonicalOfT2AOn-Strand,IndexedCanonicalOfT2AOnUnknownStrand,IndexedCanonicalOfT2C,IndexedCanonicalOfT2CFromExonicRegions,IndexedCanonicalOfT2CFromIntergenicRegions,IndexedCanonicalOfT2CFromIntronicRegions,IndexedCanonicalOfT2COn+Strand,IndexedCanonicalOfT2COn-Strand,IndexedCanonicalOfT2COnUnknownStrand,IndexedCanonicalOfT2G,IndexedCanonicalOfT2GFromExonicRegions,IndexedCanonicalOfT2GFromIntergenicRegions,IndexedCanonicalOfT2GFromIntronicRegions,IndexedCanonicalOfT2GOn+Strand,IndexedCanonicalOfT2GOn-Strand,IndexedCanonicalOfT2GOnUnknownStrand,IndexedMismatchesOfA2C,IndexedMismatchesOfA2CFromExonicRegions,IndexedMismatchesOfA2CFromIntergenicRegions,IndexedMismatchesOfA2CFromIntronicRegions,IndexedMismatchesOfA2COn+Strand,IndexedMismatchesOfA2COn-Strand,IndexedMismatchesOfA2COnUnknownStrand,IndexedMismatchesOfA2G,IndexedMismatchesOfA2GFromExonicRegions,IndexedMismatchesOfA2GFromIntergenicRegions,IndexedMismatchesOfA2GFromIntronicRegions,IndexedMismatchesOfA2GOn+Strand,IndexedMismatchesOfA2GOn-Strand,IndexedMismatchesOfA2GOnUnknownStrand,IndexedMismatchesOfA2T,IndexedMismatchesOfA2TFromExonicRegions,IndexedMismatchesOfA2TFromIntergenicRegions,IndexedMismatchesOfA2TFromIntronicRegions,IndexedMismatchesOfA2TOn+Strand,IndexedMismatchesOfA2TOn-Strand,IndexedMismatchesOfA2TOnUnknownStrand,IndexedMismatchesOfC2A,IndexedMismatchesOfC2AFromExonicRegions,IndexedMismatchesOfC2AFromIntergenicRegions,IndexedMismatchesOfC2AFromIntronicRegions,IndexedMismatchesOfC2AOn+Strand,IndexedMismatchesOfC2AOn-Strand,IndexedMismatchesOfC2AOnUnknownStrand,IndexedMismatchesOfC2G,IndexedMismatchesOfC2GFromExonicRegions,IndexedMismatchesOfC2GFromIntergenicRegions,IndexedMismatchesOfC2GFromIntronicRegions,IndexedMismatchesOfC2GOn+Strand,IndexedMismatchesOfC2GOn-Strand,IndexedMismatchesOfC2GOnUnknownStrand,IndexedMismatchesOfC2T,IndexedMismatchesOfC2TFromExonicRegions,IndexedMismatchesOfC2TFromIntergenicRegions,IndexedMismatchesOfC2TFromIntronicRegions,IndexedMismatchesOfC2TOn+Strand,IndexedMismatchesOfC2TOn-Strand,IndexedMismatchesOfC2TOnUnknownStrand,IndexedMismatchesOfG2A,IndexedMismatchesOfG2AFromExonicRegions,IndexedMismatchesOfG2AFromIntergenicRegions,IndexedMismatchesOfG2AFromIntronicRegions,IndexedMismatchesOfG2AOn+Strand,IndexedMismatchesOfG2AOn-Strand,IndexedMismatchesOfG2AOnUnknownStrand,IndexedMismatchesOfG2C,IndexedMismatchesOfG2CFromExonicRegions,IndexedMismatchesOfG2CFromIntergenicRegions,IndexedMismatchesOfG2CFromIntronicRegions,IndexedMismatchesOfG2COn+Strand,IndexedMismatchesOfG2COn-Strand,IndexedMismatchesOfG2COnUnknownStrand,IndexedMismatchesOfG2T,IndexedMismatchesOfG2TFromExonicRegions,IndexedMismatchesOfG2TFromIntergenicRegions,IndexedMismatchesOfG2TFromIntronicRegions,IndexedMismatchesOfG2TOn+Strand,IndexedMismatchesOfG2TOn-Strand,IndexedMismatchesOfG2TOnUnknownStrand,IndexedMismatchesOfT2A,IndexedMismatchesOfT2AFromExonicRegions,IndexedMismatchesOfT2AFromIntergenicRegions,IndexedMismatchesOfT2AFromIntronicRegions,IndexedMismatchesOfT2AOn+Strand,IndexedMismatchesOfT2AOn-Strand,IndexedMismatchesOfT2AOnUnknownStrand,IndexedMismatchesOfT2C,IndexedMismatchesOfT2CFromExonicRegions,IndexedMismatchesOfT2CFromIntergenicRegions,IndexedMismatchesOfT2CFromIntronicRegions,IndexedMismatchesOfT2COn+Strand,IndexedMismatchesOfT2COn-Strand,IndexedMismatchesOfT2COnUnknownStrand,IndexedMismatchesOfT2G,IndexedMismatchesOfT2GFromExonicRegions,IndexedMismatchesOfT2GFromIntergenicRegions,IndexedMismatchesOfT2GFromIntronicRegions,IndexedMismatchesOfT2GOn+Strand,IndexedMismatchesOfT2GOn-Strand,IndexedMismatchesOfT2GOnUnknownStrand,NumOfA,NumOfA2CMismatches,NumOfA2CMismatchesAtSNPs,NumOfA2CMismatchesSites,NumOfA2CMismatchesSitesAtSNPs,NumOfA2GMismatches,NumOfA2GMismatchesAtSNPs,NumOfA2GMismatchesSites,NumOfA2GMismatchesSitesAtSNPs,NumOfA2TMismatches,NumOfA2TMismatchesAtSNPs,NumOfA2TMismatchesSites,NumOfA2TMismatchesSitesAtSNPs,NumOfAPositionsCovered,NumOfC,NumOfC2AMismatches,NumOfC2AMismatchesAtSNPs,NumOfC2AMismatchesSites,NumOfC2AMismatchesSitesAtSNPs,NumOfC2GMismatches,NumOfC2GMismatchesAtSNPs,NumOfC2GMismatchesSites,NumOfC2GMismatchesSitesAtSNPs,NumOfC2TMismatches,NumOfC2TMismatchesAtSNPs,NumOfC2TMismatchesSites,NumOfC2TMismatchesSitesAtSNPs,NumOfCPositionsCovered,NumOfG,NumOfG2AMismatches,NumOfG2AMismatchesAtSNPs,NumOfG2AMismatchesSites,NumOfG2AMismatchesSitesAtSNPs,NumOfG2CMismatches,NumOfG2CMismatchesAtSNPs,NumOfG2CMismatchesSites,NumOfG2CMismatchesSitesAtSNPs,NumOfG2TMismatches,NumOfG2TMismatchesAtSNPs,NumOfG2TMismatchesSites,NumOfG2TMismatchesSitesAtSNPs,NumOfGPositionsCovered,NumOfIndexedMismatchesSitesOfA2C,NumOfIndexedMismatchesSitesOfA2CFromExonicRegions,NumOfIndexedMismatchesSitesOfA2CFromIntergenicRegions,NumOfIndexedMismatchesSitesOfA2CFromIntronicRegions,NumOfIndexedMismatchesSitesOfA2COn+Strand,NumOfIndexedMismatchesSitesOfA2COn-Strand,NumOfIndexedMismatchesSitesOfA2COnUnknownStrand,NumOfIndexedMismatchesSitesOfA2G,NumOfIndexedMismatchesSitesOfA2GFromExonicRegions,NumOfIndexedMismatchesSitesOfA2GFromIntergenicRegions,NumOfIndexedMismatchesSitesOfA2GFromIntronicRegions,NumOfIndexedMismatchesSitesOfA2GOn+Strand,NumOfIndexedMismatchesSitesOfA2GOn-Strand,NumOfIndexedMismatchesSitesOfA2GOnUnknownStrand,NumOfIndexedMismatchesSitesOfA2T,NumOfIndexedMismatchesSitesOfA2TFromExonicRegions,NumOfIndexedMismatchesSitesOfA2TFromIntergenicRegions,NumOfIndexedMismatchesSitesOfA2TFromIntronicRegions,NumOfIndexedMismatchesSitesOfA2TOn+Strand,NumOfIndexedMismatchesSitesOfA2TOn-Strand,NumOfIndexedMismatchesSitesOfA2TOnUnknownStrand,NumOfIndexedMismatchesSitesOfC2A,NumOfIndexedMismatchesSitesOfC2AFromExonicRegions,NumOfIndexedMismatchesSitesOfC2AFromIntergenicRegions,NumOfIndexedMismatchesSitesOfC2AFromIntronicRegions,NumOfIndexedMismatchesSitesOfC2AOn+Strand,NumOfIndexedMismatchesSitesOfC2AOn-Strand,NumOfIndexedMismatchesSitesOfC2AOnUnknownStrand,NumOfIndexedMismatchesSitesOfC2G,NumOfIndexedMismatchesSitesOfC2GFromExonicRegions,NumOfIndexedMismatchesSitesOfC2GFromIntergenicRegions,NumOfIndexedMismatchesSitesOfC2GFromIntronicRegions,NumOfIndexedMismatchesSitesOfC2GOn+Strand,NumOfIndexedMismatchesSitesOfC2GOn-Strand,NumOfIndexedMismatchesSitesOfC2GOnUnknownStrand,NumOfIndexedMismatchesSitesOfC2T,NumOfIndexedMismatchesSitesOfC2TFromExonicRegions,NumOfIndexedMismatchesSitesOfC2TFromIntergenicRegions,NumOfIndexedMismatchesSitesOfC2TFromIntronicRegions,NumOfIndexedMismatchesSitesOfC2TOn+Strand,NumOfIndexedMismatchesSitesOfC2TOn-Strand,NumOfIndexedMismatchesSitesOfC2TOnUnknownStrand,NumOfIndexedMismatchesSitesOfG2A,NumOfIndexedMismatchesSitesOfG2AFromExonicRegions,NumOfIndexedMismatchesSitesOfG2AFromIntergenicRegions,NumOfIndexedMismatchesSitesOfG2AFromIntronicRegions,NumOfIndexedMismatchesSitesOfG2AOn+Strand,NumOfIndexedMismatchesSitesOfG2AOn-Strand,NumOfIndexedMismatchesSitesOfG2AOnUnknownStrand,NumOfIndexedMismatchesSitesOfG2C,NumOfIndexedMismatchesSitesOfG2CFromExonicRegions,NumOfIndexedMismatchesSitesOfG2CFromIntergenicRegions,NumOfIndexedMismatchesSitesOfG2CFromIntronicRegions,NumOfIndexedMismatchesSitesOfG2COn+Strand,NumOfIndexedMismatchesSitesOfG2COn-Strand,NumOfIndexedMismatchesSitesOfG2COnUnknownStrand,NumOfIndexedMismatchesSitesOfG2T,NumOfIndexedMismatchesSitesOfG2TFromExonicRegions,NumOfIndexedMismatchesSitesOfG2TFromIntergenicRegions,NumOfIndexedMismatchesSitesOfG2TFromIntronicRegions,NumOfIndexedMismatchesSitesOfG2TOn+Strand,NumOfIndexedMismatchesSitesOfG2TOn-Strand,NumOfIndexedMismatchesSitesOfG2TOnUnknownStrand,NumOfIndexedMismatchesSitesOfT2A,NumOfIndexedMismatchesSitesOfT2AFromExonicRegions,NumOfIndexedMismatchesSitesOfT2AFromIntergenicRegions,NumOfIndexedMismatchesSitesOfT2AFromIntronicRegions,NumOfIndexedMismatchesSitesOfT2AOn+Strand,NumOfIndexedMismatchesSitesOfT2AOn-Strand,NumOfIndexedMismatchesSitesOfT2AOnUnknownStrand,NumOfIndexedMismatchesSitesOfT2C,NumOfIndexedMismatchesSitesOfT2CFromExonicRegions,NumOfIndexedMismatchesSitesOfT2CFromIntergenicRegions,NumOfIndexedMismatchesSitesOfT2CFromIntronicRegions,NumOfIndexedMismatchesSitesOfT2COn+Strand,NumOfIndexedMismatchesSitesOfT2COn-Strand,NumOfIndexedMismatchesSitesOfT2COnUnknownStrand,NumOfIndexedMismatchesSitesOfT2G,NumOfIndexedMismatchesSitesOfT2GFromExonicRegions,NumOfIndexedMismatchesSitesOfT2GFromIntergenicRegions,NumOfIndexedMismatchesSitesOfT2GFromIntronicRegions,NumOfIndexedMismatchesSitesOfT2GOn+Strand,NumOfIndexedMismatchesSitesOfT2GOn-Strand,NumOfIndexedMismatchesSitesOfT2GOnUnknownStrand,NumOfIndexedOverallSitesOfA2C,NumOfIndexedOverallSitesOfA2CFromExonicRegions,NumOfIndexedOverallSitesOfA2CFromIntergenicRegions,NumOfIndexedOverallSitesOfA2CFromIntronicRegions,NumOfIndexedOverallSitesOfA2COn+Strand,NumOfIndexedOverallSitesOfA2COn-Strand,NumOfIndexedOverallSitesOfA2COnUnknownStrand,NumOfIndexedOverallSitesOfA2G,NumOfIndexedOverallSitesOfA2GFromExonicRegions,NumOfIndexedOverallSitesOfA2GFromIntergenicRegions,NumOfIndexedOverallSitesOfA2GFromIntronicRegions,NumOfIndexedOverallSitesOfA2GOn+Strand,NumOfIndexedOverallSitesOfA2GOn-Strand,NumOfIndexedOverallSitesOfA2GOnUnknownStrand,NumOfIndexedOverallSitesOfA2T,NumOfIndexedOverallSitesOfA2TFromExonicRegions,NumOfIndexedOverallSitesOfA2TFromIntergenicRegions,NumOfIndexedOverallSitesOfA2TFromIntronicRegions,NumOfIndexedOverallSitesOfA2TOn+Strand,NumOfIndexedOverallSitesOfA2TOn-Strand,NumOfIndexedOverallSitesOfA2TOnUnknownStrand,NumOfIndexedOverallSitesOfC2A,NumOfIndexedOverallSitesOfC2AFromExonicRegions,NumOfIndexedOverallSitesOfC2AFromIntergenicRegions,NumOfIndexedOverallSitesOfC2AFromIntronicRegions,NumOfIndexedOverallSitesOfC2AOn+Strand,NumOfIndexedOverallSitesOfC2AOn-Strand,NumOfIndexedOverallSitesOfC2AOnUnknownStrand,NumOfIndexedOverallSitesOfC2G,NumOfIndexedOverallSitesOfC2GFromExonicRegions,NumOfIndexedOverallSitesOfC2GFromIntergenicRegions,NumOfIndexedOverallSitesOfC2GFromIntronicRegions,NumOfIndexedOverallSitesOfC2GOn+Strand,NumOfIndexedOverallSitesOfC2GOn-Strand,NumOfIndexedOverallSitesOfC2GOnUnknownStrand,NumOfIndexedOverallSitesOfC2T,NumOfIndexedOverallSitesOfC2TFromExonicRegions,NumOfIndexedOverallSitesOfC2TFromIntergenicRegions,NumOfIndexedOverallSitesOfC2TFromIntronicRegions,NumOfIndexedOverallSitesOfC2TOn+Strand,NumOfIndexedOverallSitesOfC2TOn-Strand,NumOfIndexedOverallSitesOfC2TOnUnknownStrand,NumOfIndexedOverallSitesOfG2A,NumOfIndexedOverallSitesOfG2AFromExonicRegions,NumOfIndexedOverallSitesOfG2AFromIntergenicRegions,NumOfIndexedOverallSitesOfG2AFromIntronicRegions,NumOfIndexedOverallSitesOfG2AOn+Strand,NumOfIndexedOverallSitesOfG2AOn-Strand,NumOfIndexedOverallSitesOfG2AOnUnknownStrand,NumOfIndexedOverallSitesOfG2C,NumOfIndexedOverallSitesOfG2CFromExonicRegions,NumOfIndexedOverallSitesOfG2CFromIntergenicRegions,NumOfIndexedOverallSitesOfG2CFromIntronicRegions,NumOfIndexedOverallSitesOfG2COn+Strand,NumOfIndexedOverallSitesOfG2COn-Strand,NumOfIndexedOverallSitesOfG2COnUnknownStrand,NumOfIndexedOverallSitesOfG2T,NumOfIndexedOverallSitesOfG2TFromExonicRegions,NumOfIndexedOverallSitesOfG2TFromIntergenicRegions,NumOfIndexedOverallSitesOfG2TFromIntronicRegions,NumOfIndexedOverallSitesOfG2TOn+Strand,NumOfIndexedOverallSitesOfG2TOn-Strand,NumOfIndexedOverallSitesOfG2TOnUnknownStrand,NumOfIndexedOverallSitesOfT2A,NumOfIndexedOverallSitesOfT2AFromExonicRegions,NumOfIndexedOverallSitesOfT2AFromIntergenicRegions,NumOfIndexedOverallSitesOfT2AFromIntronicRegions,NumOfIndexedOverallSitesOfT2AOn+Strand,NumOfIndexedOverallSitesOfT2AOn-Strand,NumOfIndexedOverallSitesOfT2AOnUnknownStrand,NumOfIndexedOverallSitesOfT2C,NumOfIndexedOverallSitesOfT2CFromExonicRegions,NumOfIndexedOverallSitesOfT2CFromIntergenicRegions,NumOfIndexedOverallSitesOfT2CFromIntronicRegions,NumOfIndexedOverallSitesOfT2COn+Strand,NumOfIndexedOverallSitesOfT2COn-Strand,NumOfIndexedOverallSitesOfT2COnUnknownStrand,NumOfIndexedOverallSitesOfT2G,NumOfIndexedOverallSitesOfT2GFromExonicRegions,NumOfIndexedOverallSitesOfT2GFromIntergenicRegions,NumOfIndexedOverallSitesOfT2GFromIntronicRegions,NumOfIndexedOverallSitesOfT2GOn+Strand,NumOfIndexedOverallSitesOfT2GOn-Strand,NumOfIndexedOverallSitesOfT2GOnUnknownStrand,NumOfRegionsWithCoverageForA2C,NumOfRegionsWithCoverageForA2CFromExonicRegions,NumOfRegionsWithCoverageForA2CFromIntergenicRegions,NumOfRegionsWithCoverageForA2CFromIntronicRegions,NumOfRegionsWithCoverageForA2COn+Strand,NumOfRegionsWithCoverageForA2COn-Strand,NumOfRegionsWithCoverageForA2COnUnknownStrand,NumOfRegionsWithCoverageForA2G,NumOfRegionsWithCoverageForA2GFromExonicRegions,NumOfRegionsWithCoverageForA2GFromIntergenicRegions,NumOfRegionsWithCoverageForA2GFromIntronicRegions,NumOfRegionsWithCoverageForA2GOn+Strand,NumOfRegionsWithCoverageForA2GOn-Strand,NumOfRegionsWithCoverageForA2GOnUnknownStrand,NumOfRegionsWithCoverageForA2T,NumOfRegionsWithCoverageForA2TFromExonicRegions,NumOfRegionsWithCoverageForA2TFromIntergenicRegions,NumOfRegionsWithCoverageForA2TFromIntronicRegions,NumOfRegionsWithCoverageForA2TOn+Strand,NumOfRegionsWithCoverageForA2TOn-Strand,NumOfRegionsWithCoverageForA2TOnUnknownStrand,NumOfRegionsWithCoverageForC2A,NumOfRegionsWithCoverageForC2AFromExonicRegions,NumOfRegionsWithCoverageForC2AFromIntergenicRegions,NumOfRegionsWithCoverageForC2AFromIntronicRegions,NumOfRegionsWithCoverageForC2AOn+Strand,NumOfRegionsWithCoverageForC2AOn-Strand,NumOfRegionsWithCoverageForC2AOnUnknownStrand,NumOfRegionsWithCoverageForC2G,NumOfRegionsWithCoverageForC2GFromExonicRegions,NumOfRegionsWithCoverageForC2GFromIntergenicRegions,NumOfRegionsWithCoverageForC2GFromIntronicRegions,NumOfRegionsWithCoverageForC2GOn+Strand,NumOfRegionsWithCoverageForC2GOn-Strand,NumOfRegionsWithCoverageForC2GOnUnknownStrand,NumOfRegionsWithCoverageForC2T,NumOfRegionsWithCoverageForC2TFromExonicRegions,NumOfRegionsWithCoverageForC2TFromIntergenicRegions,NumOfRegionsWithCoverageForC2TFromIntronicRegions,NumOfRegionsWithCoverageForC2TOn+Strand,NumOfRegionsWithCoverageForC2TOn-Strand,NumOfRegionsWithCoverageForC2TOnUnknownStrand,NumOfRegionsWithCoverageForG2A,NumOfRegionsWithCoverageForG2AFromExonicRegions,NumOfRegionsWithCoverageForG2AFromIntergenicRegions,NumOfRegionsWithCoverageForG2AFromIntronicRegions,NumOfRegionsWithCoverageForG2AOn+Strand,NumOfRegionsWithCoverageForG2AOn-Strand,NumOfRegionsWithCoverageForG2AOnUnknownStrand,NumOfRegionsWithCoverageForG2C,NumOfRegionsWithCoverageForG2CFromExonicRegions,NumOfRegionsWithCoverageForG2CFromIntergenicRegions,NumOfRegionsWithCoverageForG2CFromIntronicRegions,NumOfRegionsWithCoverageForG2COn+Strand,NumOfRegionsWithCoverageForG2COn-Strand,NumOfRegionsWithCoverageForG2COnUnknownStrand,NumOfRegionsWithCoverageForG2T,NumOfRegionsWithCoverageForG2TFromExonicRegions,NumOfRegionsWithCoverageForG2TFromIntergenicRegions,NumOfRegionsWithCoverageForG2TFromIntronicRegions,NumOfRegionsWithCoverageForG2TOn+Strand,NumOfRegionsWithCoverageForG2TOn-Strand,NumOfRegionsWithCoverageForG2TOnUnknownStrand,NumOfRegionsWithCoverageForT2A,NumOfRegionsWithCoverageForT2AFromExonicRegions,NumOfRegionsWithCoverageForT2AFromIntergenicRegions,NumOfRegionsWithCoverageForT2AFromIntronicRegions,NumOfRegionsWithCoverageForT2AOn+Strand,NumOfRegionsWithCoverageForT2AOn-Strand,NumOfRegionsWithCoverageForT2AOnUnknownStrand,NumOfRegionsWithCoverageForT2C,NumOfRegionsWithCoverageForT2CFromExonicRegions,NumOfRegionsWithCoverageForT2CFromIntergenicRegions,NumOfRegionsWithCoverageForT2CFromIntronicRegions,NumOfRegionsWithCoverageForT2COn+Strand,NumOfRegionsWithCoverageForT2COn-Strand,NumOfRegionsWithCoverageForT2COnUnknownStrand,NumOfRegionsWithCoverageForT2G,NumOfRegionsWithCoverageForT2GFromExonicRegions,NumOfRegionsWithCoverageForT2GFromIntergenicRegions,NumOfRegionsWithCoverageForT2GFromIntronicRegions,NumOfRegionsWithCoverageForT2GOn+Strand,NumOfRegionsWithCoverageForT2GOn-Strand,NumOfRegionsWithCoverageForT2GOnUnknownStrand,NumOfT,NumOfT2AMismatches,NumOfT2AMismatchesAtSNPs,NumOfT2AMismatchesSites,NumOfT2AMismatchesSitesAtSNPs,NumOfT2CMismatches,NumOfT2CMismatchesAtSNPs,NumOfT2CMismatchesSites,NumOfT2CMismatchesSitesAtSNPs,NumOfT2GMismatches,NumOfT2GMismatchesAtSNPs,NumOfT2GMismatchesSites,NumOfT2GMismatchesSitesAtSNPs,NumOfTPositionsCovered,TotalCoverageAtAPositions,TotalCoverageAtCPositions,TotalCoverageAtGPositions,TotalCoverageAtTPositions 2 | StrandedData,Editing_Index_Unknown,SRR5962209,/home/alu/hillelr/Sandbox/InstallTries/AEI/RNAEditingIndexer/TestResources/BAMs/BAMs/SRR5962209/SRR5962209_sampled_with_0.1.Aligned.sortedByCoord.out.bam.AluChr1Only.bam,0.0151827127009,1.16946820879,0.0140582254208,0.0186193504483,0.018701721547,0.0827453337395,0.0780957745058,0.0233826836928,0.0217008412861,0.0144620389332,0.0815397269757,0.0199957866021,1066841,69871,221501,775469,536733,530108,0,1066841,69871,221501,775469,536733,530108,0,1066841,69871,221501,775469,536733,530108,0,1213565,79832,244632,889101,610213,603352,0,1213565,79832,244632,889101,610213,603352,0,1213565,79832,244632,889101,610213,603352,0,1188636,79464,243892,865280,596924,591712,0,1188636,79464,243892,865280,596924,591712,0,1188636,79464,243892,865280,596924,591712,0,1120012,70885,223002,826125,563818,556194,0,1120012,70885,223002,826125,563818,556194,0,1120012,70885,223002,826125,563818,556194,0,162,8,51,103,75,87,0,12624,925,3100,8599,6455,6169,0,150,4,31,115,60,90,0,226,16,46,164,113,113,0,227,16,46,165,114,113,0,1005,67,206,732,504,501,0,929,81,192,656,460,469,0,278,17,69,192,132,146,0,258,14,51,193,131,127,0,162,12,30,120,84,78,0,914,61,194,659,466,448,0,224,30,50,144,103,121,0,1092927,196,0,177,0,6903,0,6695,0,138,0,127,0,1011951,1201925,240,0,239,0,260,0,245,0,973,0,908,0,1104366,1200276,961,0,920,0,245,0,240,0,244,0,237,0,1103941,158,7,51,100,73,85,0,12269,815,3031,8423,6265,6004,0,144,4,31,109,57,87,0,220,15,45,160,113,107,0,216,15,46,155,105,111,0,961,57,204,700,477,484,0,867,53,187,627,436,431,0,269,14,69,186,129,140,0,256,13,50,193,130,126,0,150,5,30,115,80,70,0,873,50,189,634,443,430,0,205,12,50,143,101,104,0,991311,46392,214270,730649,498649,492662,0,991311,46392,214270,730649,498649,492662,0,991311,46392,214270,730649,498649,492662,0,1115668,53109,232871,829688,560513,555155,0,1115668,53109,232871,829688,560513,555155,0,1115668,53109,232871,829688,560513,555155,0,1092639,52135,232721,807783,548786,543853,0,1092639,52135,232721,807783,548786,543853,0,1092639,52135,232721,807783,548786,543853,0,1032296,47574,212739,771983,518994,513302,0,1032296,47574,212739,771983,518994,513302,0,1032296,47574,212739,771983,518994,513302,0,45901,1630,10570,33701,23086,22815,0,45901,1630,10570,33701,23086,22815,0,45901,1630,10570,33701,23086,22815,0,45901,1630,10570,33701,23086,22815,0,45901,1630,10570,33701,23086,22815,0,45901,1630,10570,33701,23086,22815,0,45901,1630,10570,33701,23086,22815,0,45901,1630,10570,33701,23086,22815,0,45901,1630,10570,33701,23086,22815,0,45901,1630,10570,33701,23086,22815,0,45901,1630,10570,33701,23086,22815,0,45901,1630,10570,33701,23086,22815,0,1093926,174,0,167,0,6635,0,6447,0,190,0,186,0,1011656,1100164,1203398,1201726,1100925 3 | StrandedData,Editing_Index_Unknown,SRR5962201,/home/alu/hillelr/Sandbox/InstallTries/AEI/RNAEditingIndexer/TestResources/BAMs/BAMs/SRR5962201/SRR5962201_sampled_with_0.1.Aligned.sortedByCoord.out.bam.AluChr1Only.bam,0.0156703266568,1.69765817972,0.0137118044103,0.017873100983,0.0199264331629,0.0729508710556,0.0768000578259,0.0192110800469,0.0192110800469,0.0172182549752,0.0863939491634,0.0263385065946,1582361,210159,267019,1105183,787534,794827,0,1582361,210159,267019,1105183,787534,794827,0,1582361,210159,267019,1105183,787534,794827,0,1801268,234537,302119,1264612,897672,903596,0,1801268,234537,302119,1264612,897672,903596,0,1801268,234537,302119,1264612,897672,903596,0,1769472,235061,296157,1238254,881261,888211,0,1769472,235061,296157,1238254,881261,888211,0,1769472,235061,296157,1238254,881261,888211,0,1654935,206405,273113,1175417,825352,829583,0,1654935,206405,273113,1175417,825352,829583,0,1654935,206405,273113,1175417,825352,829583,0,248,17,60,171,125,123,0,27327,2967,6706,17654,13249,14078,0,217,14,44,159,98,119,0,322,40,80,202,154,168,0,359,47,78,234,188,171,0,1315,142,237,936,679,636,0,1360,177,231,952,677,683,0,340,20,58,262,161,179,0,340,35,52,253,180,160,0,285,84,45,156,90,195,0,1431,153,321,957,721,710,0,436,139,58,239,164,272,0,1617117,397,0,254,0,13959,0,12932,0,293,0,215,0,1340167,1785883,314,0,294,0,367,0,331,0,1362,0,1210,0,1460218,1784857,1313,0,1178,0,332,0,307,0,348,0,311,0,1460564,216,15,49,152,106,110,0,25196,2094,6130,16972,12306,12890,0,205,13,38,154,94,111,0,299,33,71,195,149,150,0,328,32,70,226,171,157,0,1194,95,220,879,618,576,0,1194,99,211,884,602,592,0,310,14,54,242,150,160,0,306,23,47,236,161,145,0,208,14,43,151,87,121,0,1256,86,276,894,630,626,0,293,21,53,219,145,148,0,1314916,79629,233815,1001472,659775,655141,0,1314916,79629,233815,1001472,659775,655141,0,1314916,79629,233815,1001472,659775,655141,0,1474598,89269,256073,1129256,740810,733788,0,1474598,89269,256073,1129256,740810,733788,0,1474598,89269,256073,1129256,740810,733788,0,1446184,88486,251812,1105886,726776,719408,0,1446184,88486,251812,1105886,726776,719408,0,1446184,88486,251812,1105886,726776,719408,0,1365566,80868,231717,1052981,685174,680392,0,1365566,80868,231717,1052981,685174,680392,0,1365566,80868,231717,1052981,685174,680392,0,51396,2158,9396,39842,25867,25529,0,51396,2158,9396,39842,25867,25529,0,51396,2158,9396,39842,25867,25529,0,51396,2158,9396,39842,25867,25529,0,51396,2158,9396,39842,25867,25529,0,51396,2158,9396,39842,25867,25529,0,51396,2158,9396,39842,25867,25529,0,51396,2158,9396,39842,25867,25529,0,51396,2158,9396,39842,25867,25529,0,51396,2158,9396,39842,25867,25529,0,51396,2158,9396,39842,25867,25529,0,51396,2158,9396,39842,25867,25529,0,1620179,209,0,198,0,14799,0,13520,0,287,0,255,0,1340315,1631766,1787926,1786850,1635474 4 | StrandedData,Editing_Index_Unknown,SRR5962217,/home/alu/hillelr/Sandbox/InstallTries/AEI/RNAEditingIndexer/TestResources/BAMs/BAMs/SRR5962217/SRR5962217_sampled_with_0.1.Aligned.sortedByCoord.out.bam.AluChr1Only.bam,0.0172919717803,1.45584050913,0.0198220026338,0.0213389986651,0.0166395607908,0.0787304665297,0.0818452808298,0.0268178940482,0.0454861463562,0.0174351083981,0.083279028057,0.0232454602404,948253,114544,155627,678082,483417,464836,0,948253,114544,155627,678082,483417,464836,0,948253,114544,155627,678082,483417,464836,0,1063553,126713,173327,763513,542276,521277,0,1063553,126713,173327,763513,542276,521277,0,1063553,126713,173327,763513,542276,521277,0,1043799,126529,170406,746864,532328,511471,0,1043799,126529,170406,746864,532328,511471,0,1043799,126529,170406,746864,532328,511471,0,1015016,115110,163151,736755,520052,494964,0,1015016,115110,163151,736755,520052,494964,0,1015016,115110,163151,736755,520052,494964,0,164,20,37,107,93,71,0,14009,1453,3491,9065,6966,7043,0,188,19,42,127,86,102,0,227,31,36,160,102,125,0,177,13,36,128,91,86,0,838,71,142,625,415,423,0,855,104,167,584,434,421,0,280,25,53,202,137,143,0,475,62,67,346,225,250,0,177,41,34,102,74,103,0,846,84,159,603,430,416,0,236,57,31,148,98,138,0,978381,231,0,183,0,7382,0,6939,0,189,0,155,0,843705,1053747,352,0,331,0,234,0,224,0,836,0,770,0,902136,1053605,857,0,788,0,223,0,206,0,350,0,332,0,901782,150,18,33,99,88,62,0,13171,1181,3305,8685,6566,6605,0,182,19,42,121,82,100,0,216,25,35,156,97,119,0,165,10,36,119,87,78,0,780,51,140,589,390,390,0,778,71,163,544,398,380,0,265,22,52,191,128,137,0,447,52,66,329,213,234,0,145,13,32,100,72,73,0,778,55,154,569,405,373,0,189,18,31,140,94,95,0,821269,55882,141078,624309,419310,401959,0,821269,55882,141078,624309,419310,401959,0,821269,55882,141078,624309,419310,401959,0,910832,61722,153280,695830,465151,445681,0,910832,61722,153280,695830,465151,445681,0,910832,61722,153280,695830,465151,445681,0,893086,61196,151156,680734,456101,436985,0,893086,61196,151156,680734,456101,436985,0,893086,61196,151156,680734,456101,436985,0,870993,56441,143942,670610,446598,424395,0,870993,56441,143942,670610,446598,424395,0,870993,56441,143942,670610,446598,424395,0,35984,1743,6360,27881,18401,17583,0,35984,1743,6360,27881,18401,17583,0,35984,1743,6360,27881,18401,17583,0,35984,1743,6360,27881,18401,17583,0,35984,1743,6360,27881,18401,17583,0,35984,1743,6360,27881,18401,17583,0,35984,1743,6360,27881,18401,17583,0,35984,1743,6360,27881,18401,17583,0,35984,1743,6360,27881,18401,17583,0,35984,1743,6360,27881,18401,17583,0,35984,1743,6360,27881,18401,17583,0,35984,1743,6360,27881,18401,17583,0,984888,176,0,172,0,7473,0,7010,0,169,0,156,0,848557,986183,1055169,1055035,992706 5 | StrandedData,Editing_Index_Unknown,SRR5962219,/home/alu/hillelr/Sandbox/InstallTries/AEI/RNAEditingIndexer/TestResources/BAMs/BAMs/SRR5962219/SRR5962219_sampled_with_0.1.Aligned.sortedByCoord.out.bam.AluChr1Only.bam,0.0160066559545,2.45157094119,0.0189084129246,0.0181437363495,0.0186750436131,0.0788280342534,0.0757468382666,0.01836636955,0.0217754171813,0.0164825152815,0.0785537501345,0.019463696479,1136845,166473,205035,765337,581083,555762,0,1136845,166473,205035,765337,581083,555762,0,1136845,166473,205035,765337,581083,555762,0,1317020,191057,234060,891903,673624,643396,0,1317020,191057,234060,891903,673624,643396,0,1317020,191057,234060,891903,673624,643396,0,1290165,183937,230118,876110,660141,630024,0,1290165,183937,230118,876110,660141,630024,0,1290165,183937,230118,876110,660141,630024,0,1207141,166786,213319,827036,618446,588695,0,1207141,166786,213319,827036,618446,588695,0,1207141,166786,213319,827036,618446,588695,0,182,11,51,120,107,75,0,28571,3645,6016,18910,14509,14062,0,215,17,58,140,112,103,0,239,24,57,158,114,125,0,246,29,51,166,131,115,0,1039,115,222,702,536,503,0,978,111,222,645,464,514,0,237,22,46,169,121,116,0,281,26,66,189,132,149,0,199,29,54,116,98,101,0,949,92,218,639,476,473,0,235,31,48,156,110,125,0,1169778,232,0,199,0,14982,0,13683,0,213,0,191,0,979128,1303648,263,0,244,0,247,0,226,0,1050,0,959,0,1073403,1303537,967,0,872,0,236,0,210,0,257,0,242,0,1072604,174,10,48,116,102,72,0,26017,2478,5596,17943,13264,12753,0,198,15,53,130,104,94,0,229,22,54,153,109,120,0,218,20,47,151,118,100,0,945,80,211,654,496,449,0,886,78,206,602,423,463,0,218,15,41,162,110,108,0,257,19,60,178,122,135,0,183,21,48,114,96,87,0,847,65,197,585,428,419,0,195,13,40,142,98,97,0,958432,70130,185429,702873,486110,472322,0,958432,70130,185429,702873,486110,472322,0,958432,70130,185429,702873,486110,472322,0,1081267,78217,204982,798068,548886,532381,0,1081267,78217,204982,798068,548886,532381,0,1081267,78217,204982,798068,548886,532381,0,1064740,77726,202064,784950,540223,524517,0,1064740,77726,202064,784950,540223,524517,0,1064740,77726,202064,784950,540223,524517,0,999950,70268,186724,742958,506932,493018,0,999950,70268,186724,742958,506932,493018,0,999950,70268,186724,742958,506932,493018,0,39922,1997,8113,29812,20155,19767,0,39922,1997,8113,29812,20155,19767,0,39922,1997,8113,29812,20155,19767,0,39922,1997,8113,29812,20155,19767,0,39922,1997,8113,29812,20155,19767,0,39922,1997,8113,29812,20155,19767,0,39922,1997,8113,29812,20155,19767,0,39922,1997,8113,29812,20155,19767,0,39922,1997,8113,29812,20155,19767,0,39922,1997,8113,29812,20155,19767,0,39922,1997,8113,29812,20155,19767,0,39922,1997,8113,29812,20155,19767,0,1174208,201,0,190,0,14538,0,13181,0,185,0,170,0,979254,1185205,1305208,1304997,1189132 6 | -------------------------------------------------------------------------------- /configure.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ' 3 | This work is licensed under the Creative Commons Attribution-Non-Commercial-ShareAlike 4.0 International License. 4 | To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/4.0/. 5 | For use of the software by commercial entities, please inquire with Tel Aviv University at ramot@ramot.org. 6 | (c) 2019 Tel Aviv University (Erez Y. Levanon, Erez.Levanon@biu.ac.il; 7 | Eli Eisenberg, elieis@post.tau.ac.il; 8 | Shalom Hillel Roth, shalomhillel.roth@live.biu.ac.il). 9 | ' 10 | RED='\033[0;31m' 11 | YELLOW='\033[1;33m' 12 | NC='\033[0m' # No Color 13 | DEV_ROOT="$(dirname $(readlink -f ${BASH_SOURCE}))" 14 | if [ -z "$DEV_ROOT" ] 15 | then 16 | DEV_ROOT="$(dirname $0)" 17 | fi 18 | JAVA_HOME="/usr" 19 | BEDTOOLS_PATH="bedtools" 20 | BAM_UTILS_PATH="bam" 21 | SAMTOOLS_PATH="samtools" 22 | PYTHON27_PATH="python" 23 | RESOURCES_DIR="${DEV_ROOT}/Resources" 24 | PRINT_HELP=false 25 | DONT_DOWNLOAD=false 26 | DONT_WRITE=false 27 | CONF_OUT="${DEV_ROOT}/conf.vars" 28 | 29 | 30 | 31 | for i in "$@" 32 | do 33 | case ${i} in 34 | -j=*|--java_home=*) 35 | JAVA_HOME="${i#*=}" 36 | #shift # past argument=value 37 | ;; 38 | -b=*|--bedtools=*) 39 | BEDTOOLS_PATH="${i#*=}" 40 | #shift # past argument=value 41 | ;; 42 | -s=*|--samtools=*) 43 | SAMTOOLS_PATH="${i#*=}" 44 | ;; 45 | -r=*|--resources_dir=*) 46 | RESOURCES_DIR="${i#*=}" 47 | #shift # past argument=value 48 | ;; 49 | -bu=*|--bam_utils=*) 50 | BAM_UTILS_PATH="${i#*=}" 51 | #shift # past argument=value 52 | ;; 53 | -p=*|--python=*) 54 | PYTHON27_PATH="${i#*=}" 55 | #shift # past argument=value 56 | ;; 57 | -h|--help) 58 | PRINT_HELP=true 59 | echo "Optional Params: 60 | -h\--help print this message 61 | --dont_download do not download resources, only create Resources.ini file and directories 62 | --no_resources_file do not write resources file (Resources.ini file), to avoid overriding your changes 63 | -j=\--java_home= set java home dir. (default is: /usr) 64 | -b=\--bedtools= set bedtools invoke command. (default is: bedtools) 65 | -bu=\--bam_utils= set bam utils invoke command. (default is: bam) 66 | -s=\--samtools= set samtools invoke command. (default is: samtools) 67 | -p=\--python= set python 2.7 invoke command. (default is: python) 68 | -r=\--resources_dir= set the path of the resources dir to download to. (default is: ${RESOURCES_DIR}) 69 | " 70 | #shift # past argument=value 71 | ;; 72 | --dont_download) 73 | DONT_DOWNLOAD=true 74 | #shift # past argument=value 75 | ;; 76 | --no_resources_file) 77 | DONT_WRITE=true 78 | #shift # past argument=value 79 | ;; 80 | esac 81 | done 82 | 83 | if [ "${PRINT_HELP}" = false ] 84 | then 85 | TESTS_SUCCEEDED=true 86 | #test bedtools 87 | if test -x $(which ${BEDTOOLS_PATH}); then 88 | echo "BEDTools Path Executable Test - Succeeded" 89 | else 90 | echo "BEDTools Path Executable Test - Failed" 91 | echo -e "${RED}BEDTools Path is Not An Executable" 92 | echo -e "${NC}" 93 | TESTS_SUCCEEDED=false 94 | fi 95 | RET=$(${BEDTOOLS_PATH} --version| egrep -o "([0-9]{1,}\.)+[0-9]{1,}"|awk -F "." '(($1 > 2)||($1 ==2 && $2 > 25))') 96 | if [[ ${RET} =~ ^[0-9]+(\.[0-9]+){2,3}$ ]]; then 97 | echo "BEDTools Version Test - Succeeded" 98 | else 99 | echo "BEDTools Version Test - Failed" 100 | echo -e "${RED}BEDTools Version Must Be Equal or Greater Than 2.26.0" 101 | echo -e "${NC}" 102 | TESTS_SUCCEEDED=false 103 | fi 104 | #test samtools 105 | if test -x $(which ${SAMTOOLS_PATH}); then 106 | echo "SAMTools Path Executable Test - Succeeded" 107 | else 108 | echo "SAMTools Path Executable Test - Failed" 109 | echo -e "${RED}SAMTools Path is Not An Executable" 110 | echo -e "${NC}" 111 | TESTS_SUCCEEDED=false 112 | fi 113 | RET=$(${SAMTOOLS_PATH} --version| egrep -o -m 1 "([0-9]{1,}\.)+[0-9]{1,}"|awk -F "." '($1 >=1 && $2 > 7)') 114 | if [[ ${RET} =~ ^[0-9]+(\.[0-9]+){1,3}$ ]]; then 115 | echo "SAMTools Version Test - Succeeded" 116 | else 117 | echo "SAMTools Version Test - Failed" 118 | echo -e "${RED}SAMTools Version Must Be Equal or Greater Than 1.8" 119 | echo -e "${NC}" 120 | TESTS_SUCCEEDED=false 121 | fi 122 | #test bamutils 123 | if test -x $(which ${BAM_UTILS_PATH}); then 124 | echo "BAM Utils Path Executable Test - Succeeded" 125 | else 126 | echo "BAM Utils Path Executable Test - Failed" 127 | echo -e "${RED}BAM Utils Path is Not An Executable" 128 | echo -e "${NC}" 129 | TESTS_SUCCEEDED=false 130 | fi 131 | RET=$(${BAM_UTILS_PATH} help 2>&1| egrep -o -m 1 "([0-9]{1,}\.)+[0-9]{1,}") 132 | VER=$(echo ${RET}|awk -F "." '(($1 ==1 && $3 > 13) || ($1 > 1))') 133 | if [[ ${RET} =~ ^[0-9]+(\.[0-9]+){1,3}$ ]]; then 134 | echo "BAM Utils Run Test - Succeeded" 135 | if [[ ${VER} =~ ^[0-9]+(\.[0-9]+){1,3}$ ]]; then 136 | echo "BAM Utils Version Test - Succeeded" 137 | else 138 | echo -e "${YELLOW}Warning: BAM Utils Version is Bellow Tested Version (1.8)" 139 | echo -e "${NC}" 140 | fi 141 | else 142 | echo "BAM Utils Run Test - Failed" 143 | echo -e "${RED}Could Not Run BAM Utils help" 144 | echo -e "${NC}" 145 | TESTS_SUCCEEDED=false 146 | fi 147 | #test Java 148 | JAVA_FULL="${JAVA_HOME}/bin/java" 149 | if test -x $(which ${JAVA_FULL}); then 150 | echo "Java Path Executable Test - Succeeded" 151 | else 152 | echo "Java Path Executable Test - Failed" 153 | echo -e "${RED}BAM Utils Path is Not An Executable" 154 | echo -e "${NC}" 155 | TESTS_SUCCEEDED=false 156 | fi 157 | RET=$(${JAVA_FULL} -XshowSettings:properties -version 2>&1| egrep -o -m 1 "java.version = ([0-9]{1,}\.)+[0-9]{1,}") 158 | if [[ ${RET} =~ ^java.version.* ]]; then 159 | echo "Java Run Test - Succeeded (${RET})" 160 | else 161 | echo "Java Run Test - Failed" 162 | echo -e "${RED}Could Not Run Java" 163 | echo -e "${NC}" 164 | TESTS_SUCCEEDED=false 165 | fi 166 | #test Python 167 | if test -x $(which ${PYTHON27_PATH}); then 168 | echo "Python 2.7 Path Executable Test - Succeeded" 169 | else 170 | echo "Python 2.7 Path Executable Test - Failed" 171 | echo -e "${RED}SAMTools Path is Not An Executable" 172 | echo -e "${NC}" 173 | TESTS_SUCCEEDED=false 174 | fi 175 | RET=$(${PYTHON27_PATH} --version 2>&1| egrep -o -m 1 "([0-9]{1,}\.)+[0-9]{1,}"|awk -F "." '($1 ==2 && $2 == 7)') 176 | if [[ ${RET} =~ ^[0-9]+(\.[0-9]+){1,3}$ ]]; then 177 | echo "Python 2.7 Version Test - Succeeded" 178 | else 179 | echo "Python 2.7 Version Test - Failed" 180 | echo -e "${RED}Python Version Must Be 2.27.x" 181 | echo -e "${NC}" 182 | TESTS_SUCCEEDED=false 183 | fi 184 | if [ "${TESTS_SUCCEEDED}" = false ]; then 185 | echo "Failed On Tests, Exiting..." 186 | else 187 | export DEV_ROOT=${DEV_ROOT} 188 | export BEDTOOLS_PATH=${BEDTOOLS_PATH} 189 | export SAMTOOLS_PATH=${SAMTOOLS_PATH} 190 | export RESOURCES_DIR=${RESOURCES_DIR} 191 | export JAVA_HOME=${JAVA_HOME} 192 | export BAM_UTILS_PATH=${BAM_UTILS_PATH} 193 | export PYTHON27_PATH=${PYTHON27_PATH} 194 | export DONT_DOWNLOAD=${DONT_DOWNLOAD} 195 | export DONT_WRITE=${DONT_WRITE} 196 | export IS_UNIX=true 197 | fi 198 | fi 199 | -------------------------------------------------------------------------------- /lib/commons-cli-1.4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/lib/commons-cli-1.4.jar -------------------------------------------------------------------------------- /make/Makefile: -------------------------------------------------------------------------------- 1 | # based on (http://geosoft.no/development/javamake.html): 2 | #--------------------------------------------------------------------------- 3 | # (C) 1999 - 2011 GeoSoft - Geotechnical Software Services 4 | # info@geosoft.no - http://geosoft.no 5 | # 6 | # This program is free software; you can redistribute it and/or 7 | # modify it under the terms of the GNU General Public License 8 | # as published by the Free Software Foundation; either version 2 9 | # of the License, or (at your option) any later version. 10 | # 11 | # This program is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU General Public License 17 | # along with this program; if not, write to the Free Software 18 | # Foundation, Inc., 59 Temple Place - Suite 330, Boston, 19 | # MA 02111-1307, USA. 20 | #--------------------------------------------------------------------------- 21 | #--------------------------------------------------------------------------- 22 | # 23 | # GnuMake crash course: 24 | # 25 | # target : depends 26 | # rule 27 | # 28 | # target - the parameter given to make. I.e. what to build 29 | # depends - file or other targets target depends on 30 | # rule - how to create target (note that rule is preceeded by a TAB char) 31 | # $(VAR) - environment variable or variable defined above 32 | # $@ - Current target 33 | # $* - Current target without extension 34 | # $< - Current dependency 35 | # 36 | #--------------------------------------------------------------------------- 37 | #--------------------------------------------------------------------------- 38 | # 39 | # Directories 40 | # 41 | #--------------------------------------------------------------------------- 42 | 43 | SourceDir = $(DEV_ROOT)/src 44 | TargetDir = $(DEV_ROOT)/obj 45 | LibDir = $(DEV_ROOT)/lib 46 | MakeDir = $(DEV_ROOT)/make 47 | BinDir = $(DEV_ROOT)/bin 48 | DocsDir = $(DEV_ROOT)/docs 49 | CurrentDir = $(CURDIR) 50 | ResourcesDir = $(DEV_ROOT)/Resources 51 | 52 | ifdef Source 53 | Package = $(subst $(SourceDir)/,,$(CurrentDir)) 54 | PackageList = $(Package) 55 | PackageSourceDir = $(SourceDir)/$(Package) 56 | PackageTargetDir = $(TargetDir)/$(Package) 57 | JavaMainClass = $(subst /,.,$(Package)).$(Main) 58 | else 59 | PackageList = $(Packages) $(JavaPackages) 60 | endif 61 | 62 | PackageListLoop = $(patsubst %,$(SourceDir)/%/.loop,$(PackageList)) 63 | 64 | JRE = $(JAVA_HOME)/jre/lib/rt.jar 65 | 66 | ifdef IS_UNIX 67 | X = : 68 | else 69 | X = \; 70 | endif 71 | 72 | 73 | #--------------------------------------------------------------------------- 74 | # 75 | # Classification of files 76 | # 77 | #--------------------------------------------------------------------------- 78 | 79 | # Source 80 | JavaFiles = $(filter %.java, $(Source)) 81 | CppFiles = $(filter %.cc, $(Source)) 82 | CFiles = $(filter %.c, $(Source)) 83 | FortranFiles = $(filter %.f, $(Source)) 84 | CorbaFiles = $(filter %.idl, $(Source)) 85 | OtherSourceFiles = $(filter-out $(JavaFiles) $(CppFiles) $(CFiles) \ 86 | $(FortranFiles) $(CorbaFiles), \ 87 | $(Source)) 88 | ManifestFile = $(PackageSourceDir)/Manifest 89 | SourceFiles = $(JavaFiles:%.java= $(PackageSourceDir)/%.java)\ 90 | $(CppFiles:%.cc= $(PackageSourceDir)/%.cc)\ 91 | $(CFiles:%.c= $(PackageSourceDir)/%.c)\ 92 | $(FortranFiles:%.f= $(PackageSourceDir)/%.f) 93 | 94 | 95 | # Target 96 | JavaClassFiles = $(JavaFiles:%.java= $(PackageTargetDir)/%.class) 97 | JavaClassFilesRel = $(JavaFiles:%.java= $(Package)/%.class) 98 | RmiStubFiles = $(RmiSource:%.java= $(PackageTargetDir)/%_Stub.class) 99 | RmiSkeletonFiles = $(RmiSource:%.java= $(PackageTargetDir)/%_Skel.class) 100 | JniClassFiles = $(JniSource:%.java= $(PackageTargetDir)/%.class) 101 | JniHeaders = $(JniSource:%.java= $(PackageSourceDir)/%.h) 102 | ObjectFiles = $(CFiles:%.c= $(PackageTargetDir)/%.o)\ 103 | $(CppFiles:%.cc= $(PackageTargetDir)/%.o)\ 104 | $(FortranFiles:%.f= $(PackageTargetDir)/%.o) 105 | OtherTargetFiles = $(OtherSourceFiles:%=$(PackageTargetDir)/%) 106 | 107 | ThirdPartyJarsTmp = $(patsubst %,$(LibDir)/%,$(JavaLibraries)) 108 | ThirdPartyJars = $(subst $(Space),$(X),$(ThirdPartyJarsTmp)) 109 | 110 | ifneq "$(words $(JavaFiles))" "0" 111 | JavaPackageName = $(subst /,.,$(Package)) 112 | JarFile = $(LibDir)/$(subst /,,$(Package)).jar 113 | endif 114 | ifneq "$(words $(ObjectFiles))" "0" 115 | DependencyFile = $(PackageSourceDir)/Makedepend 116 | SharedLibrary = $(LibDir)/lib$(subst /,,$(Package)).so 117 | StaticLibrary = $(LibDir)/lib$(subst /,,$(Package)).a 118 | ifneq "$(Main)" "" 119 | Executable = $(BinDir)/$(Main) 120 | endif 121 | endif 122 | 123 | # 124 | # Misc 125 | # 126 | ClassPath = $(JRE)$(X)$(TargetDir)$(X)$(ThirdPartyJars) 127 | JavaPackageNames = $(subst /,.,$(JavaPackages)) 128 | IncludePath = -I$(SourceDir) $(IncludeDirs:%=-I%) 129 | LibDirs = -L$(LibDir) $(LibraryDirs:%=-L%) 130 | LocalLibs = $(subst /,,$(Packages)) 131 | LibList = $(LocalLibs:%=-l%) $(Libraries:%=-l%) 132 | 133 | 134 | 135 | #--------------------------------------------------------------------------- 136 | # 137 | # Tools & Options 138 | # 139 | #--------------------------------------------------------------------------- 140 | Print = @echo 141 | Copy = cp 142 | CCompiler = gcc 143 | CppCompiler = gcc 144 | Linker = gcc 145 | MakeDepend = makedepend 146 | MakeDir = mkdir -p 147 | Delete = rm -fr 148 | StaticArchiver = ar 149 | DynamicArchiver = gcc 150 | FortranCompiler = f77 151 | JavaCompiler = $(JAVA_HOME)/bin/javac 152 | JavaArchiver = $(JAVA_HOME)/bin/jar 153 | JarSigner = $(JAVA_HOME)/bin/jarsigner 154 | JavadocGenerator = $(JAVA_HOME)/bin/javadoc 155 | JniCompiler = $(JAVA_HOME)/bin/javah 156 | RmiCompiler = $(JAVA_HOME)/bin/rmic 157 | JavaExecute = $(JAVA_HOME)/bin/java 158 | Purify = purify 159 | WordCount = wc 160 | List = cat 161 | 162 | MakeOptions = -k -s 163 | MakeDependOptions = 164 | StaticArchiverOptions = rc 165 | DynamicArchiverOptions = -shared 166 | JavaArchiverOptions = 167 | JniOptions = 168 | RmiOptions = -d $(TargetDir) -classpath $(ClassPath) \ 169 | -sourcepath $(SourceDir) 170 | FortranOptions = 171 | JavaCompilerOptions = -d $(TargetDir) -classpath $(ClassPath) \ 172 | -sourcepath $(SourceDir) -deprecation 173 | JavaRunOptions = -classpath $(ClassPath) 174 | PurifyOptions = 175 | JavadocOptions = -d $(DocsDir) \ 176 | -sourcepath $(SourceDir) \ 177 | -classpath $(ClassPath) \ 178 | -author \ 179 | -package \ 180 | -use \ 181 | -splitIndex \ 182 | -version \ 183 | -link file:$(JAVA_HOME)/docs/api \ 184 | -windowtitle $(JavadocWindowTitle) \ 185 | -doctitle $(JavadocDocTitle) \ 186 | -header $(JavadocHeader) \ 187 | -bottom $(JavadocFooter) 188 | WordCountOptions = --lines 189 | 190 | Empty = 191 | Space = $(Empty) $(Empty) 192 | 193 | 194 | 195 | #--------------------------------------------------------------------------- 196 | # 197 | # Rules 198 | # 199 | #--------------------------------------------------------------------------- 200 | 201 | default : build 202 | 203 | %.loop : 204 | @$(MAKE) $(MakeOptions) -C $(subst .loop,,$@) _$(MAKECMDGOALS)all 205 | 206 | # Create target directory 207 | $(PackageTargetDir) : 208 | $(MakeDir) $@ 209 | 210 | # .c -> .o 211 | $(PackageTargetDir)/%.o : $(PackageTargetDir) $(PackageSourceDir)/%.c 212 | $(Print) $@ 213 | @$(CCompiler) $(COptions) -c $(IncludePath) $< -o $@ 214 | 215 | %.o : $(PackageSourceDir)/%.c 216 | $(MAKE) $(MakeOptions) $(PackageTargetDir)/$@ 217 | 218 | # .cc -> .o 219 | $(PackageTargetDir)/%.o : $(PackageSourceDir)/%.cc 220 | $(Print) $@ 221 | $(CppCompiler) $(CppOptions) -c $(IncludePath) $< -o $@ 222 | 223 | %.o : $(PackageSourceDir)/%.cc 224 | $(MAKE) $(MakeOptions) $(PackageTargetDir)/$@ 225 | 226 | # .f -> .o 227 | $(PackageTargetDir)/%.o : $(PackageSourceDir)/%.f 228 | $(Print) $@ 229 | @$(FortranCompiler) $(FortranOptions) -c $< -o $@ 230 | 231 | %.o : $(PackageSourceDir)/%.f 232 | $(MAKE) $(MakeOptions) $(PackageTargetDir)/$@ 233 | 234 | # .java -> .class 235 | $(PackageTargetDir)/%.class : $(PackageSourceDir)/%.java 236 | $(Print) $@ 237 | @$(JavaCompiler) $(JavaCompilerOptions) $< 238 | 239 | %.class : $(PackageSourceDir)/%.java 240 | @$(MAKE) $(MakeOptions) $(PackageTargetDir)/$@ 241 | 242 | # .class -> .h 243 | $(PackageSourceDir)/%.h : $(PackageTargetDir)/%.class 244 | $(Print) $@ 245 | $(JniCompiler) $(JniOptions) $(JavaPackageName).$* 246 | 247 | %.h : %.class 248 | $(MAKE) $(MakeOptions) $(PackageSourceDir)/$@ 249 | 250 | # .o -> .a 251 | $(LibDir)/%.a : $(ObjectFiles) 252 | $(Print) $@ 253 | @$(StaticArchiver) $(StaticArchiverOptions) $@ $(ObjectFiles) 254 | 255 | %.a : $(ObjectFiles) 256 | $(MAKE) $(MakeOptions) $(LibDir)/$@ 257 | 258 | # .o -> .so 259 | $(LibDir)/%.so : $(ObjectFiles) 260 | $(Print) $@ 261 | $(DynamicArchiver) $(ObjectFiles) $(DynamicArchiverOptions) -o $@ 262 | 263 | %.so : $(ObjectFiles) 264 | $(MAKE) $(MakeOptions) $(LibDir)/$@ 265 | 266 | # .class -> .jar 267 | $(LibDir)/EditingIndexJavaUtils.jar : $(JavaClassFiles) $(OtherTargetFiles) 268 | $(Print) $@ 269 | @cd $(TargetDir); $(JavaArchiver) -cvfe $@ $(JavaMainClass) \ 270 | EditingIndexJavaUtils/* org/* 271 | 272 | %.jar : $(JavaClassFiles) $(OtherTargetFiles) 273 | $(MAKE) $(MakeOptions) $(LibDir)/$@ 274 | 275 | # .class -> JavaDoc 276 | javadoc : 277 | $(Print) $(JavaPackageNames) > $(DEV_ROOT)/packages.tmp 278 | $(JavadocGenerator) $(JavadocOptions) @$(DEV_ROOT)/packages.tmp 279 | $(Delete) $(DEV_ROOT)/packages.tmp 280 | $(Print) Done JavaDoc. 281 | 282 | # .class -> _Stub.class 283 | $(PackageTargetDir)/%_Stub.class : $(PackageTargetDir)/%.class 284 | $(Print) $@ 285 | $(RmiCompiler) $(RmiOptions) $(JavaPackageName).$* 286 | 287 | %_Stub.class : %.class 288 | $(MAKE) $(MakeOptions) $(PackageTargetDir)/$@ 289 | 290 | # .class -> _Skel.class 291 | $(PackageTargetDir)/%_Skel.class : $(PackageTargetDir)/%.class 292 | $(Print) $@ 293 | $(RmiCompiler) $(RmiOptions) $(JavaPackageName).$* 294 | 295 | %_Skel.class : %.class 296 | $(MAKE) $(MakeOptions) $(PackageTargetDir)/$@ 297 | 298 | # Executable 299 | $(Executable) : $(ObjectFiles) 300 | $(Print) $@ 301 | $(Linker) $(LinkOptions) $(LibDirs) $(LibList) $(ObjectFiles) -o $@ 302 | 303 | # Anything else is just copied from source to target 304 | $(PackageTargetDir)/% : $(PackageSourceDir)/% 305 | $(Print) $@ 306 | $(Copy) $< $@ 307 | 308 | # make (or make build) 309 | build : $(PackageListLoop) 310 | # call db init. 311 | $(Print) Trying To Download and Initialize UCSC Resources. 312 | $(Bash) $(DEV_ROOT)/make/initResources.sh $(ResourcesDir) $(LibDir) $(DEV_ROOT)/src/RNAEditingIndex/Configs/ResourcesPaths.ini 313 | ln -s $(DEV_ROOT)/src/RNAEditingIndex/RNAEditingIndex $(DEV_ROOT) 314 | $(Print) Done build. 315 | 316 | _all : _buildall 317 | 318 | _buildall : \ 319 | $(DependencyFile) \ 320 | $(PackageTargetDir) \ 321 | $(ObjectFiles) \ 322 | $(JavaClassFiles) \ 323 | $(RmiStubFiles) \ 324 | $(RmiSkeletonFiles) \ 325 | $(OtherTargetFiles) \ 326 | $(SharedLibrary) \ 327 | $(StaticLibrary) \ 328 | $(JarFile) \ 329 | $(Executable) 330 | 331 | 332 | # make clean 333 | clean : $(PackageListLoop) 334 | $(Print) Done clean. 335 | 336 | _cleanall : 337 | $(Delete) $(PackageTargetDir)/* \ 338 | $(JarFile) \ 339 | $(SharedLibrary) \ 340 | $(StaticLibrary) \ 341 | $(Executable) \ 342 | $(DependencyFile) 343 | $(Delete) $(DEV_ROOT)/RNAEditingIndex 344 | $(Delete) $(DEV_ROOT)/RNAEditingIndexSummary 345 | $(Delete) $(DEV_ROOT)/src/RNAEditingIndex/Configs/ResourcesPaths.ini 346 | 347 | 348 | # make depend 349 | depend : $(PackageListLoop) 350 | $(Print) Done dependencies. 351 | 352 | _dependall : $(DependencyFile) 353 | 354 | $(DependencyFile) : 355 | $(Print) $@ 356 | @cd $(PackageSourceDir); \ 357 | $(MakeDepend) $(MakeDependOptions) -f- -p$(PackageTargetDir)/ \ 358 | $(IncludePath) $(Source) > $(DependencyFile) 359 | 360 | # make lib 361 | lib : $(PackageListLoop) 362 | $(Print) Libraries built. 363 | 364 | _liball : $(JarFile) $(SharedLibrary) $(StaticLibrary) 365 | 366 | jar : $(JarFile) 367 | 368 | jarsign : $(JarFile) 369 | $(JarSigner) -keystore GeoSoftKeystore $(JarFile) myself 370 | 371 | 372 | 373 | 374 | ifdef $(DependencyFile) 375 | -include $(DependencyFile) 376 | endif 377 | 378 | -------------------------------------------------------------------------------- /make/compileMouseEncodeGeneExpression.py: -------------------------------------------------------------------------------- 1 | #This work is licensed under the Creative Commons Attribution-Non-Commercial-ShareAlike 4.0 International License. 2 | #To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/4.0/. 3 | #For use of the software by commercial entities, please inquire with Tel Aviv University at ramot@ramot.org. 4 | #(c) 2019 Tel Aviv University (Erez Y. Levanon, Erez.Levanon@biu.ac.il; 5 | #Eli Eisenberg, elieis@post.tau.ac.il; 6 | #Shalom Hillel Roth, shalomhillel.roth@live.biu.ac.il). 7 | 8 | import gzip 9 | import os 10 | import sys 11 | from csv import reader 12 | 13 | 14 | def compile_mouse_endoce_gene_expression(base_dir, outfile, refseq_file): 15 | res = dict() 16 | refseq = dict() 17 | with gzip.open(refseq_file) as ref: 18 | data = [l for l in reader(ref, delimiter="\t")] 19 | gene_id_i = 3 20 | chr_i = 0 21 | strand_i = 5 22 | start_i = 1 23 | end_i = 2 24 | name_i = 4 25 | 26 | for l in data: 27 | gene = l[gene_id_i].split(".")[0] 28 | chrom = l[chr_i] 29 | start = l[start_i] 30 | end = l[end_i] 31 | strand = l[strand_i] 32 | name = l[name_i] 33 | gene_d = dict(chrom=chrom, start=start, end=end, strand=strand, name=name) 34 | refseq[gene] = gene_d 35 | 36 | for root, dirs, files in os.walk(base_dir): 37 | for ifile in files: 38 | with open(os.path.join(root, ifile)) as ge: 39 | data = [l for l in reader(ge, delimiter="\t")] 40 | headers = data[0] 41 | gene_id_i = headers.index("gene_id") 42 | counts = headers.index("FPKM") 43 | data = data[1:] 44 | 45 | for rec in data: 46 | res.setdefault(rec[gene_id_i],list()).append(rec[counts]) 47 | 48 | with gzip.open(outfile, 'wb') as out: 49 | output = list() 50 | for gene, counts in res.iteritems(): 51 | rec = refseq.get(gene, None) 52 | if None is rec: 53 | continue 54 | output.append("\t".join([rec["chrom"], rec["start"], rec["end"], rec["name"], ",".join(counts), rec["strand"]])) 55 | 56 | 57 | out.write("\n".join(output)) 58 | 59 | 60 | if __name__ == "__main__": 61 | compile_mouse_endoce_gene_expression(sys.argv[1], sys.argv[2], sys.argv[3]) 62 | -------------------------------------------------------------------------------- /make/initResources.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ' 4 | This work is licensed under the Creative Commons Attribution-Non-Commercial-ShareAlike 4.0 International License. 5 | To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/4.0/. 6 | For use of the software by commercial entities, please inquire with Tel Aviv University at ramot@ramot.org. 7 | © 2019 Tel Aviv University (Erez Y. Levanon, Erez.Levanon@biu.ac.il; 8 | Eli Eisenberg, elieis@post.tau.ac.il; 9 | Shalom Hillel Roth, shalomhillel.roth@live.biu.ac.il). 10 | ' 11 | 12 | RESOURCES_DIR=${1:-"../Resources"}; 13 | LIB_DIR=${2:-"../lib"}; 14 | #--------------------------------------------------------------------------- 15 | # Constants 16 | #--------------------------------------------------------------------------- 17 | HUMAN="HomoSapiens" 18 | MURINE="MusMusculus" 19 | 20 | HG38_FTP_URL="http://hgdownload.soe.ucsc.edu/goldenPath/hg38/database/" 21 | HG38_FTP_GENOME_URL="http://hgdownload.soe.ucsc.edu/goldenPath/hg38/bigZips/" 22 | 23 | HG19_FTP_URL="http://hgdownload.soe.ucsc.edu/goldenPath/hg19/database/" 24 | HG19_FTP_GENOME_URL="http://hgdownload.soe.ucsc.edu/goldenPath/hg19/bigZips/" 25 | 26 | MURINE_GENE_EXPRESSION_FTP="http://chromosome.sdsc.edu/mouse/download/" 27 | MURINE_GENE_EXPRESSION_FILE="19-tissues-expr.zip" 28 | MURINE_GENE_EXPRESSION_FOLDER="19-tissues-expr" 29 | 30 | MM10_FTP_URL="http://hgdownload.soe.ucsc.edu/goldenPath/mm10/database/" 31 | MM10_FTP_GENOME_URL="http://hgdownload.soe.ucsc.edu/goldenPath/mm10/bigZips/" 32 | 33 | MM9_FTP_URL="http://hgdownload.soe.ucsc.edu/goldenPath/mm9/database/" 34 | MM9_FTP_GENOME_URL="http://hgdownload.soe.ucsc.edu/goldenPath/mm9/bigZips/" 35 | 36 | GENOME_DIR="Genomes" 37 | HUMAN_GENOME_DIR="${RESOURCES_DIR}/${GENOME_DIR}/${HUMAN}" 38 | HG38_GENOME_FASTA_FILE="hg38.fa.gz" 39 | HG38_GENOME_FASTA="ucscHg38Genome.fa" 40 | HG19_GENOME_FASTA_FILE="chromFa.tar.gz" 41 | HG19_GENOME_FASTA="ucscHg19Genome.fa" 42 | 43 | MURINE_GENOME_DIR="${RESOURCES_DIR}/${GENOME_DIR}/${MURINE}" 44 | MM10_GENOME_FASTA_FILE="chromFa.tar.gz" 45 | MM10_GENOME_FASTA="ucscMm10Genome.fa" 46 | MM9_GENOME_FASTA_FILE="chromFa.tar.gz" 47 | MM9_GENOME_FASTA="ucscMM9Genome.fa" 48 | 49 | 50 | REGIONS_DIR="Regions" 51 | HUMAN_REGIONS_DIR="${RESOURCES_DIR}/${REGIONS_DIR}/${HUMAN}" 52 | HG38_REGIONS_FILE="ucscHg38Alu.bed.gz" 53 | #HG38_SINE_FILE="ucscHg38SINE.bed.gz" 54 | #HG38_RE_FILE="ucscHg38AllRE.bed.gz" 55 | #HG38_LTR_LINE_FILE="ucscHg38LINEAndLTR.bed.gz" 56 | HG38_REGIONS_TABLE_FILE="rmsk.txt.gz" 57 | HG19_REGIONS_FILE="ucscHg19Alu.bed.gz" 58 | HG19_REGIONS_TABLE_FILE="rmsk.txt.gz" 59 | 60 | MURINE_REGIONS_DIR="${RESOURCES_DIR}/${REGIONS_DIR}/${MURINE}" 61 | MM10_REGIONS_FILE="ucscMM10SINE_B1_B2.bed.gz" 62 | #MM10_SINE_FILE="ucscMM10AllSINE.bed.gz" 63 | #MM10_RE_FILE="ucscMM10AllRE.bed.gz" 64 | #MM10_LTR_LINE_FILE="ucscMM10LINEAndLTR.bed.gz" 65 | MM10_REGIONS_TABLE_FILE="rmsk.txt.gz" 66 | MM9_REGIONS_FILE="ucscMM9SINE_B1_B2.bed.gz" 67 | MM9_REGIONS_TABLES=("chr1_rmsk.txt.gz chr2_rmsk.txt.gz chr3_rmsk.txt.gz chr4_rmsk.txt.gz chr5_rmsk.txt.gz chr6_rmsk.txt.gz chr7_rmsk.txt.gz chr8_rmsk.txt.gz chr9_rmsk.txt.gz chr10_rmsk.txt.gz chr11_rmsk.txt.gz chr12_rmsk.txt.gz chr13_rmsk.txt.gz chr14_rmsk.txt.gz chr15_rmsk.txt.gz chr16_rmsk.txt.gz chr17_rmsk.txt.gz chr18_rmsk.txt.gz chr19_rmsk.txt.gz chrM_rmsk.txt.gz chrX_rmsk.txt.gz chrY_rmsk.txt.gz") 68 | MM9_REGIONS_TABLE_FILES="chr1_rmsk.txt.gz chr2_rmsk.txt.gz chr3_rmsk.txt.gz chr4_rmsk.txt.gz chr5_rmsk.txt.gz chr6_rmsk.txt.gz chr7_rmsk.txt.gz chr8_rmsk.txt.gz chr9_rmsk.txt.gz chr10_rmsk.txt.gz chr11_rmsk.txt.gz chr12_rmsk.txt.gz chr13_rmsk.txt.gz chr14_rmsk.txt.gz chr15_rmsk.txt.gz chr16_rmsk.txt.gz chr17_rmsk.txt.gz chr18_rmsk.txt.gz chr19_rmsk.txt.gz chrM_rmsk.txt.gz chrX_rmsk.txt.gz chrY_rmsk.txt.gz" 69 | MM9_REGIONS_TABLE_COMBINED="mm9_rmsk_combined.gz" 70 | 71 | 72 | SNPS_DIR="SNPs" 73 | HUMAN_SNPS_DIR="${RESOURCES_DIR}/${SNPS_DIR}/${HUMAN}" 74 | HG38_SNPS_FILE="ucscHg38CommonGenomicSNPs150.bed.gz" 75 | HG38_SNPS_TABLE_FILE="snp150Common.txt.gz" 76 | HG19_SNPS_FILE="ucscHg19CommonGenomicSNPs150.bed.gz" 77 | HG19_SNPS_TABLE_FILE="snp150Common.txt.gz" 78 | 79 | MURINE_SNPS_DIR="${RESOURCES_DIR}/${SNPS_DIR}/${MURINE}" 80 | MM10_SNPS_FILE="ucscMM10CommonGenomicSNPs142.bed.gz" 81 | MM10_SNPS_TABLE_FILE="snp142Common.txt.gz" 82 | MM9_SNPS_FILE="ucscMM9CommonGenomicSNPs128.bed.gz" 83 | MM9_SNPS_TABLE_FILE="snp128.txt.gz" 84 | 85 | 86 | REFSEQ_DIR="RefSeqAnnotations" 87 | HUMAN_REFSEQ_DIR="${RESOURCES_DIR}/${REFSEQ_DIR}/${HUMAN}" 88 | HG38_REFSEQ_TABLE_FILE="ncbiRefSeqCurated.txt.gz" 89 | HG38_REFSEQ_FILE="ucscHg38RefSeqCurated.bed.gz" 90 | HG19_REFSEQ_TABLE_FILE="ncbiRefSeqCurated.txt.gz" 91 | HG19_REFSEQ_FILE="ucscHg19RefSeqCurated.bed.gz" 92 | 93 | MURINE_REFSEQ_DIR="${RESOURCES_DIR}/${REFSEQ_DIR}/${MURINE}" 94 | MM10_REFSEQ_TABLE_FILE="ncbiRefSeqCurated.txt.gz" 95 | MM10_REFSEQ_FILE="ucscMM10RefSeqCurated.bed.gz" 96 | MM9_REFSEQ_TABLE_FILE="refGene.txt.gz" 97 | MM9_REFSEQ_FILE="ucscMM9RefSeqCurated.bed.gz" 98 | 99 | GENES_EXPRESSION_DIR="GenesExpression" 100 | HUMAN_GENES_EXPRESSION_DIR="${RESOURCES_DIR}/${GENES_EXPRESSION_DIR}/${HUMAN}" 101 | HG38_GENES_EXPRESSION_FILE="ucscHg38GTExGeneExpression.bed.gz" 102 | HG38_GENES_EXPRESSION_TABLE_FILE="gtexGene.txt.gz" 103 | HG19_GENES_EXPRESSION_FILE="ucscHg19GTExGeneExpression.bed.gz" 104 | HG19_GENES_EXPRESSION_TABLE_FILE="gtexGene.txt.gz" 105 | 106 | MURINE_GENES_EXPRESSION_DIR="${RESOURCES_DIR}/${GENES_EXPRESSION_DIR}/${MURINE}" 107 | MM10_GENES_EXPRESSION_FILE="ucscMM10GTExGeneExpression.bed.gz" 108 | MM9_GENES_EXPRESSION_FILE="ucscMM9GTExGeneExpression.bed.gz" 109 | 110 | #--------------------------------------------------------------------------- 111 | # Downloading 112 | #--------------------------------------------------------------------------- 113 | 114 | if [ "${DONT_DOWNLOAD}" = false ] 115 | then 116 | 117 | # clean folders from previous runs 118 | find ${RESOURCES_DIR} -type f -delete 119 | 120 | mkdir -p "${HUMAN_GENOME_DIR}" 121 | mkdir -p "${MURINE_GENOME_DIR}" 122 | 123 | mkdir -p "${HUMAN_REGIONS_DIR}" 124 | mkdir -p "${MURINE_REGIONS_DIR}" 125 | 126 | mkdir -p "${HUMAN_SNPS_DIR}" 127 | mkdir -p "${MURINE_SNPS_DIR}" 128 | 129 | mkdir -p "${HUMAN_REFSEQ_DIR}" 130 | mkdir -p "${MURINE_REFSEQ_DIR}" 131 | 132 | mkdir -p "${HUMAN_GENES_EXPRESSION_DIR}" 133 | mkdir -p "${MURINE_GENES_EXPRESSION_DIR}" 134 | 135 | 136 | echo "Started Downloading UCSC Resources. 137 | " 138 | #--------------------------------------------------------------------------- 139 | # HG38 140 | #--------------------------------------------------------------------------- 141 | echo "Started Downloading Hg38 Files:" 142 | 143 | # Genome 144 | echo "Downloading Hg38 Genome: ${HG38_FTP_GENOME_URL}${HG38_GENOME_FASTA_FILE}" 145 | wget "${HG38_FTP_GENOME_URL}${HG38_GENOME_FASTA_FILE}" --directory-prefix="${HUMAN_GENOME_DIR}" 146 | echo "Saving Hg38 Genome Under: ${HUMAN_GENOME_DIR}/${HG38_GENOME_FASTA}" 147 | gunzip -c "${HUMAN_GENOME_DIR}/${HG38_GENOME_FASTA_FILE}" > "${HUMAN_GENOME_DIR}/${HG38_GENOME_FASTA}" 148 | rm "${HUMAN_GENOME_DIR}/${HG38_GENOME_FASTA_FILE}" 149 | echo "Done Processing Hg38 Genome" 150 | 151 | # Repeats Regions 152 | echo "Downloading Hg38 Alu Repeats Table ${HG38_FTP_URL}${HG38_REGIONS_TABLE_FILE}" 153 | wget "${HG38_FTP_URL}${HG38_REGIONS_TABLE_FILE}" --directory-prefix="${HUMAN_REGIONS_DIR}" 154 | echo "Processing Hg38 Alu Repeats Table ${HG38_REGIONS_TABLE_FILE}" 155 | zcat "${HUMAN_REGIONS_DIR}/${HG38_REGIONS_TABLE_FILE}"| awk '{OFS ="\t"}($13 ~/Alu/ && $6 !~/_/) {print $6,$7,$8}' | ${BEDTOOLS_PATH} sort -i stdin| ${BEDTOOLS_PATH} merge -i stdin| gzip > "${HUMAN_REGIONS_DIR}/${HG38_REGIONS_FILE}" 156 | #zcat "${HUMAN_REGIONS_DIR}/${HG38_REGIONS_TABLE_FILE}"| awk '{OFS ="\t"}($12 ~/SINE/ && $6 !~/_/) {print $6,$7,$8}' | ${BEDTOOLS_PATH} sort -i stdin| ${BEDTOOLS_PATH} merge -i stdin| gzip > "${HUMAN_REGIONS_DIR}/${HG38_SINE_FILE}" 157 | #zcat "${HUMAN_REGIONS_DIR}/${HG38_REGIONS_TABLE_FILE}"| awk '{OFS ="\t"}(($12 ~/LINE/||$12 ~/LTR/) && $6 !~/_/) {print $6,$7,$8}' | ${BEDTOOLS_PATH} sort -i stdin| ${BEDTOOLS_PATH} merge -i stdin| gzip > "${HUMAN_REGIONS_DIR}/${HG38_LTR_LINE_FILE}" 158 | #zcat "${HUMAN_REGIONS_DIR}/${HG38_REGIONS_TABLE_FILE}"| awk '{OFS ="\t"}($6 !~/_/) {print $6,$7,$8}' | ${BEDTOOLS_PATH} sort -i stdin| ${BEDTOOLS_PATH} merge -i stdin| gzip > "${HUMAN_REGIONS_DIR}/${HG38_RE_FILE}" 159 | rm "${HUMAN_REGIONS_DIR}/${HG38_REGIONS_TABLE_FILE}" 160 | echo "Done Processing Hg38 Alu Repeats Table ${HG38_REGIONS_TABLE_FILE}" 161 | 162 | # SNPs 163 | echo "Downloading Hg38 Common Genomic SNPs Table ${HG38_FTP_URL}${HG38_SNPS_TABLE_FILE}" 164 | wget "${HG38_FTP_URL}${HG38_SNPS_TABLE_FILE}" --directory-prefix="${HUMAN_SNPS_DIR}" 165 | echo "Processing Hg38Common Genomic SNPs Table ${HG38_SNPS_TABLE_FILE}" 166 | zcat "${HUMAN_SNPS_DIR}/${HG38_SNPS_TABLE_FILE}" | awk '{OFS ="\t"}($11=="genomic") {print $2,$3,$4,$7,$9,$10,$16,$25}'| gzip > "${HUMAN_SNPS_DIR}/${HG38_SNPS_FILE}" 167 | rm "${HUMAN_SNPS_DIR}/${HG38_SNPS_TABLE_FILE}" 168 | echo "Done Processing Hg38 Common Genomic SNPs Table ${HG38_SNPS_TABLE_FILE}" 169 | 170 | # RefSeq 171 | echo "Downloading Hg38 RefSeq Curated Table ${HG38_FTP_URL}${HG38_REFSEQ_TABLE_FILE}" 172 | wget "${HG38_FTP_URL}${HG38_REFSEQ_TABLE_FILE}" --directory-prefix="${HUMAN_REFSEQ_DIR}" 173 | echo "Processing Hg38 RefSeq Curated Table ${HG38_REFSEQ_TABLE_FILE}" 174 | zcat "${HUMAN_REFSEQ_DIR}/${HG38_REFSEQ_TABLE_FILE}"| awk '{OFS ="\t"} {print $3,$5,$6,$2,$13,$4,$10,$11}' |gzip > "${HUMAN_REFSEQ_DIR}/${HG38_REFSEQ_FILE}" 175 | rm "${HUMAN_REFSEQ_DIR}/${HG38_REFSEQ_TABLE_FILE}" 176 | echo "Done Processing Hg38 RefSeq Curated Table ${HG38_REFSEQ_TABLE_FILE}" 177 | 178 | # Genes Expression 179 | echo "Downloading Hg38 Genes Expression Table ${HG38_FTP_URL}${HG38_GENES_EXPRESSION_TABLE_FILE}" 180 | wget "${HG38_FTP_URL}${HG38_GENES_EXPRESSION_TABLE_FILE}" --directory-prefix="${HUMAN_GENES_EXPRESSION_DIR}" 181 | echo "Processing Hg38 Genes Expression Table ${HG38_GENES_EXPRESSION_TABLE_FILE}" 182 | zcat "${HUMAN_GENES_EXPRESSION_DIR}/${HG38_GENES_EXPRESSION_TABLE_FILE}" | awk '{OFS ="\t"} {print $1,$2,$3,$4,$10,$6}'| gzip > "${HUMAN_GENES_EXPRESSION_DIR}/${HG38_GENES_EXPRESSION_FILE}" 183 | rm "${HUMAN_GENES_EXPRESSION_DIR}/${HG38_GENES_EXPRESSION_TABLE_FILE}" 184 | echo "Done Processing Hg38 Genes Expression Table ${HG38_GENES_EXPRESSION_TABLE_FILE}" 185 | 186 | 187 | #--------------------------------------------------------------------------- 188 | # HG19 189 | #--------------------------------------------------------------------------- 190 | 191 | echo "Started Downloading Hg19 Files:" 192 | 193 | # Genome 194 | echo "Downloading Hg38 Genome: ${HG19_FTP_GENOME_URL}${HG19_GENOME_FASTA_FILE}" 195 | wget "${HG19_FTP_GENOME_URL}${HG19_GENOME_FASTA_FILE}" --directory-prefix="${HUMAN_GENOME_DIR}" 196 | echo "Saving Hg19 Genome Under: ${HUMAN_GENOME_DIR}/${HG19_GENOME_FASTA}" 197 | tar -xOzf "${HUMAN_GENOME_DIR}/${HG19_GENOME_FASTA_FILE}" | cat > "${HUMAN_GENOME_DIR}/${HG19_GENOME_FASTA}" 198 | rm "${HUMAN_GENOME_DIR}/${HG19_GENOME_FASTA_FILE}" 199 | echo "Done Processing Hg19 Genome" 200 | 201 | # Repeats Regions 202 | echo "Downloading HG19 Alu Repeats Table ${HG19_FTP_URL}${HG19_REGIONS_TABLE_FILE}" 203 | wget "${HG19_FTP_URL}${HG19_REGIONS_TABLE_FILE}" --directory-prefix="${HUMAN_REGIONS_DIR}" 204 | echo "Processing HG19 Alu Repeats Table ${HG19_REGIONS_TABLE_FILE}" 205 | zcat "${HUMAN_REGIONS_DIR}/${HG19_REGIONS_TABLE_FILE}"| awk '{OFS ="\t"}($13 ~/Alu/ && $6 !~/_/) {print $6,$7,$8}' | ${BEDTOOLS_PATH} sort -i stdin| ${BEDTOOLS_PATH} merge -i stdin| gzip > "${HUMAN_REGIONS_DIR}/${HG19_REGIONS_FILE}" 206 | rm "${HUMAN_REGIONS_DIR}/${HG19_REGIONS_TABLE_FILE}" 207 | echo "Done Processing HG19 Alu Repeats Table ${HG19_REGIONS_TABLE_FILE}" 208 | 209 | # SNPs 210 | echo "Downloading HG19 Common Genomic SNPs Table ${HG19_FTP_URL}${HG19_SNPS_TABLE_FILE}" 211 | wget "${HG19_FTP_URL}${HG19_SNPS_TABLE_FILE}" --directory-prefix="${HUMAN_SNPS_DIR}" 212 | echo "Processing HG19 Common Genomic SNPs Table ${HG19_SNPS_TABLE_FILE}" 213 | zcat "${HUMAN_SNPS_DIR}/${HG19_SNPS_TABLE_FILE}" | awk '{OFS ="\t"}($11=="genomic") {print $2,$3,$4,$7,$9,$10,$16,$25}'| gzip > "${HUMAN_SNPS_DIR}/${HG19_SNPS_FILE}" 214 | rm "${HUMAN_SNPS_DIR}/${HG19_SNPS_TABLE_FILE}" 215 | echo "Done Processing HG19 Common Genomic SNPs Table ${HG19_SNPS_TABLE_FILE}" 216 | 217 | # RefSeq 218 | echo "Downloading HG19 RefSeq Curated Table ${HG19_FTP_URL}${HG19_REFSEQ_TABLE_FILE}" 219 | wget "${HG19_FTP_URL}${HG19_REFSEQ_TABLE_FILE}" --directory-prefix="${HUMAN_REFSEQ_DIR}" 220 | echo "Processing HG19 RefSeq Curated Table ${HG19_REFSEQ_TABLE_FILE}" 221 | zcat "${HUMAN_REFSEQ_DIR}/${HG19_REFSEQ_TABLE_FILE}"| awk '{OFS ="\t"} {print $3,$5,$6,$2,$13,$4,$10,$11}' |gzip > "${HUMAN_REFSEQ_DIR}/${HG19_REFSEQ_FILE}" 222 | rm "${HUMAN_REFSEQ_DIR}/${HG19_REFSEQ_TABLE_FILE}" 223 | echo "Done Processing HG19 RefSeq Curated Table ${HG19_REFSEQ_TABLE_FILE}" 224 | 225 | # Genes Expression 226 | echo "Downloading Hg19 Genes Expression Table ${HG19_FTP_URL}${HG19_GENES_EXPRESSION_TABLE_FILE}" 227 | wget "${HG19_FTP_URL}${HG19_GENES_EXPRESSION_TABLE_FILE}" --directory-prefix="${HUMAN_GENES_EXPRESSION_DIR}" 228 | echo "Processing Hg19 Genes Expression Table ${HG19_GENES_EXPRESSION_TABLE_FILE}" 229 | zcat "${HUMAN_GENES_EXPRESSION_DIR}/${HG19_GENES_EXPRESSION_TABLE_FILE}" | awk '{OFS ="\t"} {print $1,$2,$3,$4,$10,$6}'| gzip > "${HUMAN_GENES_EXPRESSION_DIR}/${HG19_GENES_EXPRESSION_FILE}" 230 | rm "${HUMAN_GENES_EXPRESSION_DIR}/${HG19_GENES_EXPRESSION_TABLE_FILE}" 231 | echo "Done Processing Hg19 Genes Expression Table ${HG19_GENES_EXPRESSION_TABLE_FILE}" 232 | 233 | #--------------------------------------------------------------------------- 234 | # MM10 235 | #--------------------------------------------------------------------------- 236 | echo "Started Downloading MM10 Files:" 237 | 238 | # Genome 239 | echo "Downloading MM10 Genome: ${MM10_FTP_GENOME_URL}${MM10_GENOME_FASTA_FILE}" 240 | wget "${MM10_FTP_GENOME_URL}${MM10_GENOME_FASTA_FILE}" --directory-prefix="${MURINE_GENOME_DIR}" 241 | echo "Saving MM10 Genome Under: ${MURINE_GENOME_DIR}/${MM10_GENOME_FASTA}" 242 | tar -xOzf "${MURINE_GENOME_DIR}/${MM10_GENOME_FASTA_FILE}" | cat > "${MURINE_GENOME_DIR}/${MM10_GENOME_FASTA}" 243 | rm "${MURINE_GENOME_DIR}/${MM10_GENOME_FASTA_FILE}" 244 | echo "Done Processing MM10 Genome" 245 | 246 | # Repeats Regions 247 | echo "Downloading MM10 B1 and B2 Repeats Table ${MM10_FTP_URL}${MM10_REGIONS_TABLE_FILE}" 248 | wget "${MM10_FTP_URL}${MM10_REGIONS_TABLE_FILE}" --directory-prefix="${MURINE_REGIONS_DIR}" 249 | echo "Processing MM10 B1 and B2 Repeats Table ${MM10_REGIONS_TABLE_FILE}" 250 | zcat "${MURINE_REGIONS_DIR}/${MM10_REGIONS_TABLE_FILE}"| awk '{OFS ="\t"} (($13 ~/Alu/||$13 ~/^B2/) && $12 == "SINE"){print $6,$7,$8}' | ${BEDTOOLS_PATH} sort -i stdin| ${BEDTOOLS_PATH} merge -i stdin| gzip > "${MURINE_REGIONS_DIR}/${MM10_REGIONS_FILE}" 251 | #zcat "${MURINE_REGIONS_DIR}/${MM10_REGIONS_TABLE_FILE}"| awk '{OFS ="\t"} ($12 == "SINE"){print $6,$7,$8}' | ${BEDTOOLS_PATH} sort -i stdin| ${BEDTOOLS_PATH} merge -i stdin| gzip > "${MURINE_REGIONS_DIR}/${MM10_SINE_FILE}" 252 | #zcat "${MURINE_REGIONS_DIR}/${MM10_REGIONS_TABLE_FILE}"| awk '{OFS ="\t"}(($12 ~/LINE/||$12 ~/LTR/) && $6 !~/_/) {print $6,$7,$8}' | ${BEDTOOLS_PATH} sort -i stdin| ${BEDTOOLS_PATH} merge -i stdin| gzip > "${MURINE_REGIONS_DIR}/${MM10_LTR_LINE_FILE}" 253 | #zcat "${MURINE_REGIONS_DIR}/${MM10_REGIONS_TABLE_FILE}"| awk '{OFS ="\t"} {print $6,$7,$8}' | ${BEDTOOLS_PATH} sort -i stdin| ${BEDTOOLS_PATH} merge -i stdin| gzip > "${MURINE_REGIONS_DIR}/${MM10_RE_FILE}" 254 | rm "${MURINE_REGIONS_DIR}/${MM10_REGIONS_TABLE_FILE}" 255 | echo "Done Processing MM10 B1 and B2 Repeats Table ${MM10_REGIONS_TABLE_FILE}" 256 | 257 | # SNPs 258 | echo "Downloading MM10 Common Genomic SNPs Table ${MM10_FTP_URL}${MM10_SNPS_TABLE_FILE}" 259 | wget "${MM10_FTP_URL}${MM10_SNPS_TABLE_FILE}" --directory-prefix="${MURINE_SNPS_DIR}" 260 | echo "Processing MM10 Genomic SNPs Table ${MM10_SNPS_TABLE_FILE}" 261 | zcat "${MURINE_SNPS_DIR}/${MM10_SNPS_TABLE_FILE}" | awk '{OFS ="\t"}($11=="genomic") {print $2,$3,$4,$7,$9,$10,$16,$25}'| gzip > "${MURINE_SNPS_DIR}/${MM10_SNPS_FILE}" 262 | rm "${MURINE_SNPS_DIR}/${MM10_SNPS_TABLE_FILE}" 263 | echo "Done Processing MM10 Common Genomic SNPs Table ${MM10_SNPS_TABLE_FILE}" 264 | 265 | # RefSeq 266 | echo "Downloading MM10 RefSeq Curated Table ${MM10_FTP_URL}${MM10_REFSEQ_TABLE_FILE}" 267 | wget "${MM10_FTP_URL}${MM10_REFSEQ_TABLE_FILE}" --directory-prefix="${MURINE_REFSEQ_DIR}" 268 | echo "Processing MM10 RefSeq Curated Table ${MM10_REFSEQ_TABLE_FILE}" 269 | zcat "${MURINE_REFSEQ_DIR}/${MM10_REFSEQ_TABLE_FILE}"| awk '{OFS ="\t"} {print $3,$5,$6,$2,$13,$4,$10,$11}' |gzip > "${MURINE_REFSEQ_DIR}/${MM10_REFSEQ_FILE}" 270 | rm "${MURINE_REFSEQ_DIR}/${MM10_REFSEQ_TABLE_FILE}" 271 | echo "Done Processing MM10 RefSeq Curated Table ${MM10_REFSEQ_TABLE_FILE}" 272 | 273 | # Genes Expression 274 | echo "Warning: Murine Gene Expression was derived from ENCODE table from 2013 for MM9! (Newer Data was not available)" 275 | echo "Downloading Murine Genes Expression Table ${MURINE_GENE_EXPRESSION_FTP}/${MURINE_GENE_EXPRESSION_FILE}" 276 | wget "${MURINE_GENE_EXPRESSION_FTP}/${MURINE_GENE_EXPRESSION_FILE}" --directory-prefix="${MURINE_GENES_EXPRESSION_DIR}" 277 | echo "Processing MM10Genes Expression File ${MURINE_GENE_EXPRESSION_FILE}" 278 | cd "${MURINE_GENES_EXPRESSION_DIR}" 279 | unzip "${MURINE_GENES_EXPRESSION_DIR}/${MURINE_GENE_EXPRESSION_FILE}" 280 | rm "${MURINE_GENES_EXPRESSION_DIR}/${MURINE_GENE_EXPRESSION_FILE}" 281 | ${PYTHON27_PATH} ${DEV_ROOT}/make/compileMouseEncodeGeneExpression.py "${MURINE_GENES_EXPRESSION_DIR}/${MURINE_GENE_EXPRESSION_FOLDER}" "${MURINE_GENES_EXPRESSION_DIR}/${MM10_GENES_EXPRESSION_FILE}" "${MURINE_REFSEQ_DIR}/${MM10_REFSEQ_FILE}" 282 | echo "Done Processing MM10 Genes Expression From Tables ${MURINE_GENE_EXPRESSION_FILE}" 283 | 284 | 285 | #--------------------------------------------------------------------------- 286 | # MM9 287 | #--------------------------------------------------------------------------- 288 | echo "Started Downloading MM9 Files:" 289 | 290 | # Genome 291 | echo "Downloading MM9 Genome: ${MM9_FTP_GENOME_URL}${MM9_GENOME_FASTA_FILE}" 292 | wget "${MM9_FTP_GENOME_URL}${MM9_GENOME_FASTA_FILE}" --directory-prefix="${MURINE_GENOME_DIR}" 293 | echo "Saving MM9 Genome Under: ${MURINE_GENOME_DIR}/${MM9_GENOME_FASTA}" 294 | tar -xOzf "${MURINE_GENOME_DIR}/${MM9_GENOME_FASTA_FILE}" | cat > "${MURINE_GENOME_DIR}/${MM9_GENOME_FASTA}" 295 | rm "${MURINE_GENOME_DIR}/${MM9_GENOME_FASTA_FILE}" 296 | echo "Done Processing MM9 Genome" 297 | 298 | # Repeats Regions 299 | for table in ${MM9_REGIONS_TABLES[*]} 300 | do 301 | echo "Downloading MM9 B1 and B2 Repeats Table ${MM9_FTP_URL}${table}" 302 | wget "${MM9_FTP_URL}${table}" --directory-prefix="${MURINE_REGIONS_DIR}" 303 | done 304 | 305 | echo "Processing MM9 B1 and B2 Repeats Table ${MM9_REGIONS_TABLE_FILES}" 306 | cd "${MURINE_REGIONS_DIR}" 307 | cat ${MM9_REGIONS_TABLE_FILES} > "${MM9_REGIONS_TABLE_COMBINED}" 308 | for table in ${MM9_REGIONS_TABLES[*]} 309 | do 310 | rm "${MURINE_REGIONS_DIR}/${table}" 311 | done 312 | zcat "${MM9_REGIONS_TABLE_COMBINED}"| awk '{OFS ="\t"} (($13 ~/Alu/||$13 ~/^B2/) && $12 == "SINE"){print $6,$7,$8}' | ${BEDTOOLS_PATH} sort -i stdin| ${BEDTOOLS_PATH} merge -i stdin| gzip > "${MURINE_REGIONS_DIR}/${MM9_REGIONS_FILE}" 313 | rm "${MURINE_REGIONS_DIR}/${MM9_REGIONS_TABLE_COMBINED}" 314 | echo "Done Processing MM9 B1 and B2 Repeats Table ${MM9_REGIONS_TABLE_FILES}" 315 | 316 | # SNPs 317 | echo "Downloading MM9 Genomic SNPs Table ${MM9_FTP_URL}${MM9_SNPS_TABLE_FILE}" 318 | wget "${MM9_FTP_URL}${MM9_SNPS_TABLE_FILE}" --directory-prefix="${MURINE_SNPS_DIR}" 319 | echo "Processing MM9 Genomic SNPs Table ${MM9_SNPS_TABLE_FILE}" 320 | zcat "${MURINE_SNPS_DIR}/${MM9_SNPS_TABLE_FILE}" | awk '{OFS ="\t"}($11=="genomic") {print $2,$3,$4,$7,$9,$10,$16,"NA"}'| gzip > "${MURINE_SNPS_DIR}/${MM9_SNPS_FILE}" 321 | rm "${MURINE_SNPS_DIR}/${MM9_SNPS_TABLE_FILE}" 322 | echo "Done Processing MM9 Genomic SNPs Table ${MM9_SNPS_TABLE_FILE}" 323 | 324 | # RefSeq 325 | echo "Downloading MM9 RefSeq Table ${MM9_FTP_URL}${MM9_REFSEQ_TABLE_FILE}" 326 | wget "${MM9_FTP_URL}${MM9_REFSEQ_TABLE_FILE}" --directory-prefix="${MURINE_REFSEQ_DIR}" 327 | echo "Processing MM9 RefSeq Table ${MM9_REFSEQ_TABLE_FILE}" 328 | zcat "${MURINE_REFSEQ_DIR}/${MM9_REFSEQ_TABLE_FILE}"| awk '{OFS ="\t"} {print $3,$5,$6,$2,$13,$4,$10,$11}' |gzip > "${MURINE_REFSEQ_DIR}/${MM9_REFSEQ_FILE}" 329 | rm "${MURINE_REFSEQ_DIR}/${MM9_REFSEQ_TABLE_FILE}" 330 | echo "Done Processing MM9 RefSeq Table ${MM9_REFSEQ_TABLE_FILE}" 331 | 332 | # Genes Expression 333 | echo "Warning: Murine Gene Expression was derived from ENCODE MM9 table from 2013! (Newer Data was not available)" 334 | echo "Processing MM10Genes Expression File ${MURINE_GENE_EXPRESSION_FILE} For MM9" 335 | ${PYTHON27_PATH} ${DEV_ROOT}/make/compileMouseEncodeGeneExpression.py "${MURINE_GENES_EXPRESSION_DIR}/${MURINE_GENE_EXPRESSION_FOLDER}" "${MURINE_GENES_EXPRESSION_DIR}/${MM9_GENES_EXPRESSION_FILE}" "${MURINE_REFSEQ_DIR}/${MM9_REFSEQ_FILE}" 336 | rm -r "${MURINE_GENES_EXPRESSION_DIR}/${MURINE_GENE_EXPRESSION_FOLDER}" 337 | echo "Done Processing MM9 Genes Expression From Tables ${MURINE_GENE_EXPRESSION_FILE}" 338 | 339 | fi 340 | 341 | #--------------------------------------------------------------------------- 342 | # Create INI File 343 | #--------------------------------------------------------------------------- 344 | if [ "${DONT_WRITE}" = false ] 345 | then 346 | 347 | DBS_PATHS_INI=${3:-"${RESOURCES_DIR}/ResourcesPaths.ini"}; 348 | echo "[DEFAULT]" > ${DBS_PATHS_INI} 349 | echo "ResourcesDir = ${RESOURCES_DIR}" >> ${DBS_PATHS_INI} 350 | echo "BEDToolsPath = ${BEDTOOLS_PATH}" >> ${DBS_PATHS_INI} 351 | echo "SAMToolsPath = ${SAMTOOLS_PATH}" >> ${DBS_PATHS_INI} 352 | echo "JavaHome = ${JAVA_HOME}" >> ${DBS_PATHS_INI} 353 | echo "BAMUtilsPath = ${BAM_UTILS_PATH}" >> ${DBS_PATHS_INI} 354 | echo "EIJavaUtils = ${LIB_DIR}/EditingIndexJavaUtils.jar" >> ${DBS_PATHS_INI} 355 | 356 | echo "[hg38]" >> ${DBS_PATHS_INI} 357 | echo "Genome = ${HUMAN_GENOME_DIR}/${HG38_GENOME_FASTA}" >> ${DBS_PATHS_INI} 358 | echo "RERegions = ${HUMAN_REGIONS_DIR}/${HG38_REGIONS_FILE}" >> ${DBS_PATHS_INI} 359 | echo "SNPs = ${HUMAN_SNPS_DIR}/${HG38_SNPS_FILE}" >> ${DBS_PATHS_INI} 360 | echo "RefSeq = ${HUMAN_REFSEQ_DIR}/${HG38_REFSEQ_FILE}" >> ${DBS_PATHS_INI} 361 | echo "GenesExpression = ${HUMAN_GENES_EXPRESSION_DIR}/${HG38_GENES_EXPRESSION_FILE}" >> ${DBS_PATHS_INI} 362 | echo "" >> ${DBS_PATHS_INI} 363 | 364 | echo "[hg19]" >> ${DBS_PATHS_INI} 365 | echo "Genome = ${HUMAN_GENOME_DIR}/${HG19_GENOME_FASTA}" >> ${DBS_PATHS_INI} 366 | echo "RERegions = ${HUMAN_REGIONS_DIR}/${HG19_REGIONS_FILE}" >> ${DBS_PATHS_INI} 367 | echo "SNPs = ${HUMAN_SNPS_DIR}/${HG19_SNPS_FILE}" >> ${DBS_PATHS_INI} 368 | echo "RefSeq = ${HUMAN_REFSEQ_DIR}/${HG19_REFSEQ_FILE}" >> ${DBS_PATHS_INI} 369 | echo "GenesExpression = ${HUMAN_GENES_EXPRESSION_DIR}/${HG19_GENES_EXPRESSION_FILE}" >> ${DBS_PATHS_INI} 370 | echo "" >> ${DBS_PATHS_INI} 371 | 372 | echo "[mm10]" >> ${DBS_PATHS_INI} 373 | echo "Genome = ${MURINE_GENOME_DIR}/${MM10_GENOME_FASTA}" >> ${DBS_PATHS_INI} 374 | echo "RERegions = ${MURINE_REGIONS_DIR}/${MM10_REGIONS_FILE}" >> ${DBS_PATHS_INI} 375 | echo "SNPs = ${MURINE_SNPS_DIR}/${MM10_SNPS_FILE}" >> ${DBS_PATHS_INI} 376 | echo "RefSeq = ${MURINE_REFSEQ_DIR}/${MM10_REFSEQ_FILE}" >> ${DBS_PATHS_INI} 377 | echo "GenesExpression = ${MURINE_GENES_EXPRESSION_DIR}/${MM10_GENES_EXPRESSION_FILE}" >> ${DBS_PATHS_INI} 378 | echo "" >> ${DBS_PATHS_INI} 379 | 380 | echo "[mm9]" >> ${DBS_PATHS_INI} 381 | echo "Genome = ${MURINE_GENOME_DIR}/${MM9_GENOME_FASTA}" >> ${DBS_PATHS_INI} 382 | echo "RERegions = ${MURINE_REGIONS_DIR}/${MM9_REGIONS_FILE}" >> ${DBS_PATHS_INI} 383 | echo "SNPs = ${MURINE_SNPS_DIR}/${MM9_SNPS_FILE}" >> ${DBS_PATHS_INI} 384 | echo "RefSeq = ${MURINE_REFSEQ_DIR}/${MM9_REFSEQ_FILE}" >> ${DBS_PATHS_INI} 385 | echo "GenesExpression = ${MURINE_GENES_EXPRESSION_DIR}/${MM9_GENES_EXPRESSION_FILE}" >> ${DBS_PATHS_INI} 386 | echo "" >> ${DBS_PATHS_INI} 387 | 388 | fi 389 | -------------------------------------------------------------------------------- /obj/org/META-INF/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | 203 | -------------------------------------------------------------------------------- /obj/org/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Bundle-License: https://www.apache.org/licenses/LICENSE-2.0.txt 3 | Bundle-SymbolicName: org.apache.commons.cli 4 | Archiver-Version: Plexus Archiver 5 | Built-By: britter 6 | Bnd-LastModified: 1489064499485 7 | Implementation-Vendor-Id: org.apache 8 | Specification-Title: Apache Commons CLI 9 | Bundle-DocURL: http://commons.apache.org/proper/commons-cli/ 10 | Include-Resource: META-INF/LICENSE.txt=LICENSE.txt,META-INF/NOTICE.txt 11 | =NOTICE.txt 12 | Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.5))" 13 | Export-Package: org.apache.commons.cli;version="1.4" 14 | Bundle-Name: Apache Commons CLI 15 | Implementation-Title: Apache Commons CLI 16 | Bundle-Description: Apache Commons CLI provides a simple API for prese 17 | nting, processing and validating a command line interface. 18 | Implementation-Version: 1.4 19 | Specification-Vendor: The Apache Software Foundation 20 | Bundle-ManifestVersion: 2 21 | Bundle-Vendor: The Apache Software Foundation 22 | Tool: Bnd-3.0.0.201509101326 23 | Implementation-Vendor: The Apache Software Foundation 24 | Bundle-Version: 1.4.0 25 | X-Compile-Target-JDK: 1.5 26 | Implementation-Build: tags/cli-1.4-RC1@r1786159; 2017-03-09 13:01:35+0 27 | 000 28 | X-Compile-Source-JDK: 1.5 29 | Created-By: Apache Maven Bundle Plugin 30 | Build-Jdk: 1.8.0_112 31 | Implementation-URL: http://commons.apache.org/proper/commons-cli/ 32 | Specification-Version: 1.4 33 | 34 | -------------------------------------------------------------------------------- /obj/org/META-INF/NOTICE.txt: -------------------------------------------------------------------------------- 1 | Apache Commons CLI 2 | Copyright 2001-2017 The Apache Software Foundation 3 | 4 | This product includes software developed at 5 | The Apache Software Foundation (http://www.apache.org/). 6 | -------------------------------------------------------------------------------- /obj/org/META-INF/maven/commons-cli/commons-cli/pom.properties: -------------------------------------------------------------------------------- 1 | #Created by Apache Maven 3.3.9 2 | #Thu Mar 09 14:01:47 CET 2017 3 | version=1.4 4 | groupId=commons-cli 5 | artifactId=commons-cli 6 | -------------------------------------------------------------------------------- /obj/org/META-INF/maven/commons-cli/commons-cli/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 20 | org.apache.commons 21 | commons-parent 22 | 42 23 | 24 | 4.0.0 25 | commons-cli 26 | commons-cli 27 | 1.4 28 | Apache Commons CLI 29 | 30 | 2002 31 | 32 | Apache Commons CLI provides a simple API for presenting, processing and validating a command line interface. 33 | 34 | 35 | http://commons.apache.org/proper/commons-cli/ 36 | 37 | 38 | jira 39 | http://issues.apache.org/jira/browse/CLI 40 | 41 | 42 | 43 | scm:svn:http://svn.apache.org/repos/asf/commons/proper/cli/trunk/ 44 | scm:svn:https://svn.apache.org/repos/asf/commons/proper/cli/trunk/ 45 | http://svn.apache.org/viewvc/commons/proper/cli/trunk/ 46 | 47 | 48 | 49 | 50 | James Strachan 51 | jstrachan 52 | jstrachan@apache.org 53 | SpiritSoft, Inc. 54 | 55 | 56 | Bob McWhirter 57 | bob 58 | bob@werken.com 59 | Werken 60 | 61 | contributed ideas and code from werken.opt 62 | 63 | 64 | 65 | John Keyes 66 | jkeyes 67 | jbjk@mac.com 68 | integral Source 69 | 70 | contributed ideas and code from Optz 71 | 72 | 73 | 74 | Rob Oxspring 75 | roxspring 76 | roxspring@imapmail.org 77 | Indigo Stone 78 | 79 | designed CLI2 80 | 81 | 82 | 83 | Emmanuel Bourg 84 | ebourg 85 | ebourg@apache.org 86 | Ariane Software 87 | 88 | 89 | Thomas Neidhart 90 | tn 91 | tn@apache.org 92 | 93 | 94 | 95 | 96 | 97 | Beluga Behr 98 | 99 | 100 | Peter Donald 101 | 102 | contributed ideas and code from Avalon Excalibur's cli package 103 | 104 | 105 | 106 | Brian Egge 107 | 108 | made the 1.1 release happen 109 | 110 | 111 | 112 | Duncan Jones 113 | 114 | supplied patches 115 | 116 | 117 | 118 | Berin Loritsch 119 | bloritsch@apache.org 120 | 121 | helped in the Avalon CLI merge 122 | 123 | 124 | 125 | Peter Maddocks 126 | peter_maddocks@hp.com 127 | Hewlett-Packard 128 | 129 | supplied patch 130 | 131 | 132 | 133 | Alexandru Mocanu 134 | 135 | supplied patch 136 | 137 | 138 | 139 | Andrew Shirley 140 | 141 | lots of fixes for 1.1 142 | 143 | 144 | 145 | Greg Thomas 146 | 147 | 148 | Slawek Zachcial 149 | 150 | unit tests 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | junit 159 | junit 160 | 4.12 161 | test 162 | 163 | 164 | 165 | 166 | 1.5 167 | 1.5 168 | cli 169 | 1.4 170 | commons-cli-${commons.release.version} 171 | org.apache.commons.cli 172 | CLI 173 | 12310463 174 | 175 | RC1 176 | 177 | site-content 178 | utf-8 179 | 180 | 181 | 182 | 183 | 184 | maven-assembly-plugin 185 | 186 | 187 | src/assembly/bin.xml 188 | src/assembly/src.xml 189 | 190 | gnu 191 | 192 | 193 | 194 | 195 | 196 | 197 | org.apache.rat 198 | apache-rat-plugin 199 | 200 | 201 | src/site/resources/.htaccess 202 | 203 | 204 | 205 | 206 | org.apache.maven.plugins 207 | maven-scm-publish-plugin 208 | 209 | 210 | javadocs** 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | org.apache.maven.plugins 222 | maven-javadoc-plugin 223 | 224 | true 225 | 226 | http://download.oracle.com/javase/6/docs/api 227 | 228 | 229 | 230 | 231 | org.apache.maven.plugins 232 | maven-checkstyle-plugin 233 | 2.15 234 | 235 | ${basedir}/src/conf/checkstyle.xml 236 | false 237 | ${basedir}/src/conf/checkstyle-suppressions.xml 238 | 239 | 240 | 241 | 242 | checkstyle 243 | 244 | 245 | 246 | 247 | 248 | org.codehaus.mojo 249 | findbugs-maven-plugin 250 | 3.0.1 251 | 252 | Normal 253 | Default 254 | ${basedir}/src/conf/findbugs-exclude-filter.xml 255 | 256 | 257 | 258 | maven-pmd-plugin 259 | 3.5 260 | 261 | ${maven.compiler.target} 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | apache.website 270 | Apache Commons Site 271 | scm:svn:${commons.scmPubUrl} 272 | 273 | 274 | 275 | 276 | 277 | rc 278 | 279 | 280 | 281 | apache.website 282 | Apache Commons Release Candidate Staging Site 283 | ${commons.deployment.protocol}://people.apache.org/www/people.apache.org/builds/commons/${commons.componentid}/${commons.release.version}/${commons.rc.version}/site 284 | 285 | 286 | 287 | 288 | setup-checkout 289 | 290 | 291 | site-content 292 | 293 | 294 | 295 | 296 | 297 | org.apache.maven.plugins 298 | maven-antrun-plugin 299 | 1.7 300 | 301 | 302 | prepare-checkout 303 | pre-site 304 | 305 | run 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | -------------------------------------------------------------------------------- /obj/org/apache/commons/cli/AlreadySelectedException.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/obj/org/apache/commons/cli/AlreadySelectedException.class -------------------------------------------------------------------------------- /obj/org/apache/commons/cli/AmbiguousOptionException.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/obj/org/apache/commons/cli/AmbiguousOptionException.class -------------------------------------------------------------------------------- /obj/org/apache/commons/cli/BasicParser.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/obj/org/apache/commons/cli/BasicParser.class -------------------------------------------------------------------------------- /obj/org/apache/commons/cli/CommandLine$Builder.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/obj/org/apache/commons/cli/CommandLine$Builder.class -------------------------------------------------------------------------------- /obj/org/apache/commons/cli/CommandLine.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/obj/org/apache/commons/cli/CommandLine.class -------------------------------------------------------------------------------- /obj/org/apache/commons/cli/CommandLineParser.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/obj/org/apache/commons/cli/CommandLineParser.class -------------------------------------------------------------------------------- /obj/org/apache/commons/cli/DefaultParser.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/obj/org/apache/commons/cli/DefaultParser.class -------------------------------------------------------------------------------- /obj/org/apache/commons/cli/GnuParser.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/obj/org/apache/commons/cli/GnuParser.class -------------------------------------------------------------------------------- /obj/org/apache/commons/cli/HelpFormatter$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/obj/org/apache/commons/cli/HelpFormatter$1.class -------------------------------------------------------------------------------- /obj/org/apache/commons/cli/HelpFormatter$OptionComparator.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/obj/org/apache/commons/cli/HelpFormatter$OptionComparator.class -------------------------------------------------------------------------------- /obj/org/apache/commons/cli/HelpFormatter.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/obj/org/apache/commons/cli/HelpFormatter.class -------------------------------------------------------------------------------- /obj/org/apache/commons/cli/MissingArgumentException.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/obj/org/apache/commons/cli/MissingArgumentException.class -------------------------------------------------------------------------------- /obj/org/apache/commons/cli/MissingOptionException.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/obj/org/apache/commons/cli/MissingOptionException.class -------------------------------------------------------------------------------- /obj/org/apache/commons/cli/Option$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/obj/org/apache/commons/cli/Option$1.class -------------------------------------------------------------------------------- /obj/org/apache/commons/cli/Option$Builder.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/obj/org/apache/commons/cli/Option$Builder.class -------------------------------------------------------------------------------- /obj/org/apache/commons/cli/Option.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/obj/org/apache/commons/cli/Option.class -------------------------------------------------------------------------------- /obj/org/apache/commons/cli/OptionBuilder.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/obj/org/apache/commons/cli/OptionBuilder.class -------------------------------------------------------------------------------- /obj/org/apache/commons/cli/OptionGroup.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/obj/org/apache/commons/cli/OptionGroup.class -------------------------------------------------------------------------------- /obj/org/apache/commons/cli/OptionValidator.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/obj/org/apache/commons/cli/OptionValidator.class -------------------------------------------------------------------------------- /obj/org/apache/commons/cli/Options.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/obj/org/apache/commons/cli/Options.class -------------------------------------------------------------------------------- /obj/org/apache/commons/cli/ParseException.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/obj/org/apache/commons/cli/ParseException.class -------------------------------------------------------------------------------- /obj/org/apache/commons/cli/Parser.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/obj/org/apache/commons/cli/Parser.class -------------------------------------------------------------------------------- /obj/org/apache/commons/cli/PatternOptionBuilder.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/obj/org/apache/commons/cli/PatternOptionBuilder.class -------------------------------------------------------------------------------- /obj/org/apache/commons/cli/PosixParser.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/obj/org/apache/commons/cli/PosixParser.class -------------------------------------------------------------------------------- /obj/org/apache/commons/cli/TypeHandler.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/obj/org/apache/commons/cli/TypeHandler.class -------------------------------------------------------------------------------- /obj/org/apache/commons/cli/UnrecognizedOptionException.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/obj/org/apache/commons/cli/UnrecognizedOptionException.class -------------------------------------------------------------------------------- /obj/org/apache/commons/cli/Util.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/obj/org/apache/commons/cli/Util.class -------------------------------------------------------------------------------- /src/EditingIndexJavaUtils/BEDGenomeIndexer.java: -------------------------------------------------------------------------------- 1 | /* 2 | This work is licensed under the Creative Commons Attribution-Non-Commercial-ShareAlike 4.0 International License. 3 | To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/4.0/. 4 | For use of the software by commercial entities, please inquire with Tel Aviv University at ramot@ramot.org. 5 | © 2019 Tel Aviv University (Erez Y. Levanon, Erez.Levanon@biu.ac.il; 6 | Eli Eisenberg, elieis@post.tau.ac.il; 7 | Shalom Hillel Roth, shalomhillel.roth@live.biu.ac.il). 8 | */ 9 | 10 | package EditingIndexJavaUtils; 11 | 12 | import org.apache.commons.cli.*; 13 | 14 | import java.io.*; 15 | import java.util.HashMap; 16 | import java.util.Map; 17 | import java.util.Objects; 18 | import java.util.TreeMap; 19 | 20 | public class BEDGenomeIndexer { 21 | private static Map> GenerateIndex(String inputBED, String genomeFASTA, 22 | String bedtoolsPath) throws Exception { 23 | String line = null; 24 | String region, fastaSeq; 25 | int start; 26 | String[] recs; 27 | boolean fastaBEDNotEmpty = false; 28 | Map> indexedGenomeAtBEDRegions = new HashMap<>(); 29 | StringBuilder bedtoolsCMD = new StringBuilder(bedtoolsPath).append(" getfasta -name -bedOut"); 30 | bedtoolsCMD.append(String.format(" -fi '%s'", genomeFASTA)); 31 | bedtoolsCMD.append(String.format(" -bed '%s'", inputBED)); 32 | System.out.println("Running: ".concat(bedtoolsCMD.toString())); 33 | ProcessBuilder processBuilder = new ProcessBuilder("sh", "-c", bedtoolsCMD.toString()); 34 | processBuilder.redirectErrorStream(true); 35 | Process p = processBuilder.start(); 36 | BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream())); 37 | 38 | System.out.println("GenerateIndex - Indexing FASTA Records!"); 39 | while (true) { 40 | try { 41 | line = r.readLine(); 42 | if (line == null || line.isEmpty()) { 43 | if (fastaBEDNotEmpty) { 44 | break; 45 | } else { 46 | System.out.println("GenerateIndex - getfasta Failed! Empty Output was Found"); 47 | System.exit(1); 48 | } 49 | } 50 | if (line.contains("WARNING.")) { 51 | continue; 52 | } 53 | 54 | recs = line.split(BEDUtilsConsts.BED_SEPARATOR); 55 | region = recs[BEDUtilsConsts.REGION_I]; 56 | start = Integer.parseInt(recs[BEDUtilsConsts.START_I]); 57 | fastaSeq = recs[recs.length - BEDUtilsConsts.FASTA_SEQ_NEG_I]; 58 | fastaBEDNotEmpty = true; 59 | if (!fastaSeq.matches("^[acgtnruksymwrbdhvACGTNRUKSYMWRBDHV\\-]+$")) { 60 | System.out.println("GenerateIndex - Input BED is not of the Right Format!"); 61 | System.exit(1); 62 | } 63 | if (!indexedGenomeAtBEDRegions.containsKey(region)) { 64 | Map newI = new TreeMap<>(); 65 | indexedGenomeAtBEDRegions.put(region, (Map) newI); 66 | } 67 | indexedGenomeAtBEDRegions.get(region).put(start, fastaSeq); 68 | } catch (java.lang.ArrayIndexOutOfBoundsException e) { 69 | System.out.println("GenerateIndex - encountered unexpected line from bedtools, skipping line.\n Line:" + line); 70 | } 71 | } 72 | 73 | return indexedGenomeAtBEDRegions; 74 | } 75 | 76 | 77 | public static void main(String[] args) { 78 | Options options = new Options(); 79 | Option input = new Option("i", "inputBED", true, "input BED file path"); 80 | input.setRequired(true); 81 | options.addOption(input); 82 | 83 | Option output = new Option("o", "indexOutputPath", true, "Genome index output path"); 84 | output.setRequired(true); 85 | options.addOption(output); 86 | 87 | 88 | Option genomeOption = new Option("g", "genomeFASTA", true, "The path to the genome."); 89 | genomeOption.setRequired(true); 90 | options.addOption(genomeOption); 91 | 92 | Option bedToolsOption = new Option("b", "bedtools", true, "The bedtools invoke cmd."); 93 | bedToolsOption.setRequired(false); 94 | options.addOption(bedToolsOption); 95 | 96 | CommandLineParser parser = new DefaultParser(); 97 | HelpFormatter formatter = new HelpFormatter(); 98 | CommandLine cmd = null; 99 | 100 | 101 | Map> genomeIndex = null; 102 | 103 | try { 104 | cmd = parser.parse(options, args); 105 | } catch (ParseException e) { 106 | System.out.println(e.getMessage()); 107 | formatter.printHelp("GenerateIndex", options); 108 | System.exit(1); 109 | } 110 | 111 | String inputFilePath = cmd.getOptionValue(input.getOpt()); 112 | String outputFilePath = cmd.getOptionValue(output.getOpt()); 113 | String genomePath = cmd.getOptionValue(genomeOption.getOpt()); 114 | String bedtools = cmd.getOptionValue(bedToolsOption.getOpt(), "bedtools"); 115 | System.out.println("GenerateIndex - Starting!"); 116 | try { 117 | genomeIndex = GenerateIndex(inputFilePath, genomePath, bedtools); 118 | } catch (Exception e) { 119 | System.out.println("GenerateIndex - Failed!"); 120 | e.printStackTrace(); 121 | System.exit(1); 122 | } 123 | 124 | try { 125 | FileOutputStream oStream = new FileOutputStream(outputFilePath); 126 | ObjectOutputStream obejctOutStream = new ObjectOutputStream(oStream); 127 | obejctOutStream.writeObject(genomeIndex); 128 | } catch (IOException e) { 129 | System.out.println("GenerateIndex - Cannot Create Index Output File"); 130 | e.printStackTrace(); 131 | System.exit(1); 132 | } 133 | System.out.println("GenerateIndex - Done Converting, Outputted to " + outputFilePath); 134 | 135 | System.exit(0); 136 | } 137 | 138 | } 139 | -------------------------------------------------------------------------------- /src/EditingIndexJavaUtils/BEDUtilsConsts.java: -------------------------------------------------------------------------------- 1 | /* 2 | This work is licensed under the Creative Commons Attribution-Non-Commercial-ShareAlike 4.0 International License. 3 | To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/4.0/. 4 | For use of the software by commercial entities, please inquire with Tel Aviv University at ramot@ramot.org. 5 | © 2019 Tel Aviv University (Erez Y. Levanon, Erez.Levanon@biu.ac.il; 6 | Eli Eisenberg, elieis@post.tau.ac.il; 7 | Shalom Hillel Roth, shalomhillel.roth@live.biu.ac.il). 8 | */ 9 | 10 | package EditingIndexJavaUtils; 11 | 12 | final class BEDUtilsConsts { 13 | static final int REGION_I = 0; 14 | static final int START_I = 1; 15 | static final int FASTA_SEQ_NEG_I = 1; 16 | static final String BED_SEPARATOR = "\\t"; 17 | static final String A = "As"; 18 | static final String C = "Cs"; 19 | static final String G = "Gs"; 20 | static final String T = "Ts"; 21 | static final String REF = "Ref"; 22 | static final String POSITION = "Position"; 23 | static final String REG_START = "RegionStart"; 24 | static final String REG_END = "RegionEnd"; 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/EditingIndexJavaUtils/EditingIndexBEDUtils.java: -------------------------------------------------------------------------------- 1 | /* 2 | This work is licensed under the Creative Commons Attribution-Non-Commercial-ShareAlike 4.0 International License. 3 | To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/4.0/. 4 | For use of the software by commercial entities, please inquire with Tel Aviv University at ramot@ramot.org. 5 | © 2019 Tel Aviv University (Erez Y. Levanon, Erez.Levanon@biu.ac.il; 6 | Eli Eisenberg, elieis@post.tau.ac.il; 7 | Shalom Hillel Roth, shalomhillel.roth@live.biu.ac.il). 8 | */ 9 | 10 | package EditingIndexJavaUtils; 11 | 12 | import java.util.Arrays; 13 | 14 | public class EditingIndexBEDUtils { 15 | private final static String GENOME_INDEXER = "GenerateIndex"; 16 | private final static String PILEUP_TO_COUNT = "PileupToCount"; 17 | private final static String[] POSSIBLE_TOOLS = new String[] {GENOME_INDEXER, PILEUP_TO_COUNT}; 18 | private final static StringBuilder USAGE = new StringBuilder().append("Please Call One Of The Implemented Utils -"); 19 | 20 | public static void main(String[] args) { 21 | if (args.length < 1) { 22 | for (String possible: POSSIBLE_TOOLS) { 23 | USAGE.append(String.format(", %s", possible)); 24 | } 25 | System.out.println(USAGE); 26 | System.exit(1); 27 | } 28 | switch (args[0]) { 29 | case GENOME_INDEXER: 30 | BEDGenomeIndexer.main(Arrays.copyOfRange(args, 1, args.length)); 31 | break; 32 | case PILEUP_TO_COUNT: 33 | PileupToCount.main(Arrays.copyOfRange(args, 1, args.length)); 34 | break; 35 | default: 36 | System.out.println(USAGE); 37 | System.exit(1); 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/EditingIndexJavaUtils/Makefile: -------------------------------------------------------------------------------- 1 | Source = \ 2 | BEDGenomeIndexer.java \ 3 | BEDUtilsConsts.java \ 4 | EditingIndexBEDUtils.java \ 5 | PileupToCount.java 6 | 7 | Main = EditingIndexBEDUtils 8 | 9 | include $(DEV_ROOT)/Makefile -------------------------------------------------------------------------------- /src/EditingIndexJavaUtils/PileupToCount.java: -------------------------------------------------------------------------------- 1 | /* 2 | This work is licensed under the Creative Commons Attribution-Non-Commercial-ShareAlike 4.0 International License. 3 | To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/4.0/. 4 | For use of the software by commercial entities, please inquire with Tel Aviv University at ramot@ramot.org. 5 | © 2019 Tel Aviv University (Erez Y. Levanon, Erez.Levanon@biu.ac.il; 6 | Eli Eisenberg, elieis@post.tau.ac.il; 7 | Shalom Hillel Roth, shalomhillel.roth@live.biu.ac.il). 8 | */ 9 | 10 | package EditingIndexJavaUtils; 11 | 12 | /* 13 | @author Michal Barak 14 | * @author 06/2018 Shalom Hillel Roth 15 | */ 16 | 17 | import org.apache.commons.cli.*; 18 | 19 | import java.io.*; 20 | import java.util.Map; 21 | import java.util.TreeMap; 22 | 23 | /** 24 | * This class generates a cmpileup file from a pileup using a genome index generated by {@link BEDGenomeIndexer}. 25 | * A cmpile file is a tab file with the following columns (in this order): 26 | * containing region chromosome from the index 27 | * containing region start from the index 28 | * containing region end from the index 29 | * record position 30 | * reference base at the position 31 | * total coverage at the position 32 | * number of reads showing 'A' at the position 33 | * number of reads showing 'C' at the position 34 | * number of reads showing 'G' at the position 35 | * number of reads showing 'T' at the position 36 | * number of reads showing 'N' at the position 37 | * number of reads with Phred quality score under defined threshold at the position 38 | */ 39 | public class PileupToCount { 40 | 41 | /** 42 | * This is the main function of the class. 43 | * @param args The arguments from the command line: input pileup file to convert, path for the output, 44 | * Phred quality score threshold (under which bases are ignored), the offset of the Phred score, and a 45 | * path to a genome index generated by {@link BEDGenomeIndexer}. 46 | */ 47 | public static void main(String[] args) { 48 | PileupToCount pc = new PileupToCount(); 49 | 50 | Options options = new Options(); 51 | Option input = new Option("i", "inputPileup", true, "input pileup file path"); 52 | input.setRequired(true); 53 | options.addOption(input); 54 | 55 | Option output = new Option("o", "outputPath", true, "cmpileup output path"); 56 | output.setRequired(true); 57 | options.addOption(output); 58 | 59 | Option qualityThreshold = new Option("q", "qualityThreshold", true, "The Phred score threshold to use"); 60 | qualityThreshold.setRequired(true); 61 | options.addOption(qualityThreshold); 62 | 63 | Option qualityOffset = new Option("f", "qualityOffset", true, "The PHRED score offset"); 64 | qualityOffset.setRequired(true); 65 | options.addOption(qualityOffset); 66 | 67 | Option genomeOption = new Option("g", "genomeIndex", true, "The path to the genome index file."); 68 | genomeOption.setRequired(true); 69 | options.addOption(genomeOption); 70 | 71 | 72 | CommandLineParser parser = new DefaultParser(); 73 | HelpFormatter formatter = new HelpFormatter(); 74 | CommandLine cmd = null; 75 | 76 | 77 | Map> genomeIndex = null; 78 | 79 | try { 80 | cmd = parser.parse(options, args); 81 | } catch (ParseException e) { 82 | System.out.println(e.getMessage()); 83 | formatter.printHelp("PileupToCount", options); 84 | System.exit(1); 85 | } 86 | 87 | String inputPileupPath = cmd.getOptionValue(input.getOpt()); 88 | String outputFilePath = cmd.getOptionValue(output.getOpt()); 89 | int qThreshold = Integer.parseInt(cmd.getOptionValue(qualityThreshold.getOpt())); 90 | int qOffset = Integer.parseInt(cmd.getOptionValue(qualityOffset.getOpt())); 91 | String genomeIndexPath = cmd.getOptionValue(genomeOption.getOpt()); 92 | 93 | FileInputStream fileInputStream = null; 94 | try { 95 | fileInputStream = new FileInputStream(genomeIndexPath); 96 | } catch (FileNotFoundException e) { 97 | e.printStackTrace(); 98 | System.out.println("PileupToCount - Can't Find Genome Index File!"); 99 | System.exit(1); 100 | } 101 | ObjectInputStream objectInputStream = null; 102 | try { 103 | objectInputStream = new ObjectInputStream(fileInputStream); 104 | } catch (IOException e) { 105 | e.printStackTrace(); 106 | System.out.println("PileupToCount - Can't Open Genome Index File!"); 107 | System.exit(1); 108 | } 109 | try { 110 | genomeIndex = (Map>) objectInputStream.readObject(); 111 | } catch (IOException | ClassNotFoundException | ClassCastException e) { 112 | e.printStackTrace(); 113 | System.out.println("PileupToCount - Can't Load Genome Index File!"); 114 | System.exit(1); 115 | } 116 | 117 | pc.AnalizePileup(inputPileupPath, outputFilePath, qThreshold, qOffset, genomeIndex); 118 | 119 | System.exit(0); 120 | } 121 | 122 | 123 | private void AnalizePileup(String pileupFile, String countFile, int qulTreshold, int qulOffset, 124 | Map> genomeIndex) { 125 | java.io.BufferedReader br = null; 126 | BufferedWriter bw = null; 127 | try { 128 | br = new java.io.BufferedReader(new java.io.FileReader(pileupFile)); 129 | bw = new BufferedWriter(new FileWriter(countFile)); 130 | String line; 131 | CountLocations cl = new CountLocations(); 132 | while (true) { 133 | line = br.readLine(); 134 | if (line == null || line.isEmpty()) 135 | break; 136 | 137 | cl.AddLocationInfo(bw, line, qulTreshold, qulOffset, genomeIndex); 138 | } 139 | 140 | } catch (IOException e) { 141 | System.out.println("error: " + e.getMessage()); 142 | 143 | } finally { 144 | if (br != null) { 145 | try { 146 | br.close(); 147 | } catch (Exception e) { 148 | System.out.println("final error: " + e.getMessage()); 149 | } 150 | try { 151 | assert bw != null; 152 | bw.close(); 153 | } catch (Exception e) { 154 | System.out.println("final error: " + e.getMessage()); 155 | } 156 | } 157 | } 158 | } 159 | 160 | class CountLocation { 161 | String gene; 162 | char strand; 163 | char originalNt; 164 | char originalRefseq; 165 | int count = 0; 166 | int As = 0; 167 | int Cs = 0; 168 | int Gs = 0; 169 | int Ts = 0; 170 | int others = 0; 171 | int low = 0; 172 | char SNP = '.'; 173 | char mut = '.'; 174 | int ntCount = 0; 175 | 176 | void setCountLocation(String inGene, char inStrand, int inCount, char inOriginal, String res, String qul, int qulTreshold, int qulOffset) { 177 | gene = inGene; 178 | strand = inStrand; 179 | originalNt = inOriginal; 180 | count = inCount; 181 | analyseRes(res, qul, qulTreshold, qulOffset); 182 | } 183 | 184 | void printData(BufferedWriter bw, String inChrm, int inLocation, char original, int origStart, int origEnd) { 185 | StringBuilder sb = new StringBuilder(); 186 | 187 | sb.append(inChrm).append("\t"); 188 | 189 | sb.append(origStart).append("\t"); 190 | sb.append(origEnd).append("\t"); 191 | 192 | sb.append(inLocation).append("\t"); 193 | 194 | sb.append(original).append("\t"); 195 | 196 | sb.append(count).append("\t"); 197 | sb.append(As).append("\t"); 198 | sb.append(Cs).append("\t"); 199 | sb.append(Gs).append("\t"); 200 | sb.append(Ts).append("\t"); 201 | sb.append(others).append("\t"); 202 | sb.append(low); 203 | 204 | sb.append("\n"); 205 | try { 206 | bw.write(sb.toString()); 207 | } catch (IOException e) { 208 | System.out.println("error: " + e.getMessage()); 209 | } 210 | } 211 | 212 | void analyseRes(String res, String qul, int qulTreshold, int qulOffset) { 213 | boolean indel = false; 214 | int indelLen = 0; 215 | int qulLoc = 0; 216 | String sLength = ""; 217 | int indelCount = 0; 218 | boolean start = false; 219 | for (int i = 0; i < res.length(); i++) { 220 | if (!start) { 221 | if (indel) { 222 | if (Character.isDigit(res.charAt(i))) { 223 | sLength = sLength.concat(Character.toString(res.charAt(i))); 224 | indelLen = Integer.valueOf(sLength); 225 | } else { 226 | if (res.charAt(i) == 's') { 227 | indel = false; 228 | indelCount = 0; 229 | indelLen = 0; 230 | sLength = ""; 231 | others++; 232 | } else { 233 | indelCount++; 234 | if (indelCount == indelLen) { 235 | indel = false; 236 | indelCount = 0; 237 | indelLen = 0; 238 | sLength = ""; 239 | } 240 | } 241 | } 242 | } else { 243 | if (qulLoc > qul.length()) { 244 | System.out.println("error in qul:\t" + res + "\t" + qul); 245 | } else { 246 | switch (res.charAt(i)) { 247 | case '!': 248 | case '$': 249 | case ':': 250 | case '(': 251 | case ')': 252 | case 'F': 253 | case '%': 254 | case '\'': 255 | case '&': 256 | break; 257 | case '^': 258 | start = true; 259 | break; 260 | case '+': 261 | case '-': 262 | indel = true; 263 | break; 264 | default: { 265 | if (!Character.isDigit(res.charAt(i))) { 266 | if (((int) qul.charAt(qulLoc)) - qulOffset >= qulTreshold) { 267 | switch (res.charAt(i)) { 268 | case 'A': 269 | case 'a': 270 | As++; 271 | break; 272 | case 'C': 273 | case 'c': 274 | Cs++; 275 | break; 276 | case 'G': 277 | case 'g': 278 | Gs++; 279 | break; 280 | case 'T': 281 | case 't': 282 | Ts++; 283 | break; 284 | case '.': 285 | case ',': 286 | ntCount++; 287 | break; 288 | case '*': 289 | default: 290 | others++; 291 | } 292 | } else { 293 | low++; 294 | } 295 | 296 | qulLoc++; 297 | } 298 | } 299 | } 300 | } 301 | } 302 | } else { 303 | start = false; 304 | } 305 | } 306 | switch (originalNt) { 307 | case 'A': 308 | case 'a': 309 | As += ntCount; 310 | break; 311 | case 'C': 312 | case 'c': 313 | Cs += ntCount; 314 | break; 315 | case 'G': 316 | case 'g': 317 | Gs += ntCount; 318 | break; 319 | case 'T': 320 | case 't': 321 | Ts += ntCount; 322 | break; 323 | } 324 | } 325 | 326 | 327 | } 328 | 329 | class CountLocations { 330 | 331 | 332 | final int CHRM_COL = 2; 333 | final int LOCATION_COL = 3; 334 | final int COUNT_COL = 5; 335 | final int ORIGINAL_COL = 4; 336 | final int RES_COL = 6; 337 | final int QUL_COL = 7; 338 | final int RNA_DNA_DIFF = 2; 339 | 340 | void AddLocationInfo(BufferedWriter bw, String line, int qulTreshold, int qulOffset, 341 | Map> genomeIndex) { 342 | String parts[] = line.split("\\s"); 343 | //System.out.println(String.valueOf(parts.length)); 344 | 345 | 346 | String gene, chrm, res, qul, origSeq; 347 | char strand, original; 348 | int location, count, origStart; 349 | 350 | 351 | //changed 10-7-2016: added +1 352 | if ((parts.length < COUNT_COL - RNA_DNA_DIFF + 1) || (Integer.valueOf(parts[COUNT_COL - RNA_DNA_DIFF]) == 0)) 353 | return; 354 | gene = ""; 355 | strand = '?'; 356 | chrm = parts[CHRM_COL - RNA_DNA_DIFF]; 357 | location = Integer.valueOf(parts[LOCATION_COL - RNA_DNA_DIFF]); 358 | original = parts[ORIGINAL_COL - RNA_DNA_DIFF].charAt(0); 359 | count = Integer.valueOf(parts[COUNT_COL - RNA_DNA_DIFF]); 360 | res = parts[RES_COL - RNA_DNA_DIFF]; 361 | qul = parts[QUL_COL - RNA_DNA_DIFF]; 362 | 363 | 364 | try { 365 | Map.Entry entry = genomeIndex.get(chrm).lowerEntry(location); 366 | origSeq = entry.getValue(); 367 | origStart = entry.getKey(); 368 | Character genOriginal = origSeq.charAt(location - origStart - 1); 369 | CountLocation cl = new CountLocation(); 370 | cl.setCountLocation(gene, strand, count, original, res, qul, qulTreshold, qulOffset); 371 | //cl.findEditing(minEditing); 372 | if ((cl.As + cl.Cs + cl.Gs + cl.Ts) > 0) { 373 | 374 | cl.printData(bw, chrm, location, genOriginal, origStart, origStart + origSeq.length()); 375 | } 376 | 377 | } catch (StringIndexOutOfBoundsException | NullPointerException e) { 378 | System.out.println("PileupToCount - Warning: Found Coverage Out Of index! (Ignoring)"); 379 | } 380 | 381 | 382 | } 383 | 384 | 385 | } 386 | 387 | 388 | } 389 | -------------------------------------------------------------------------------- /src/RNAEditingIndex/Configs/DefaultsConfig.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | # ************Please Don't Change These********** 3 | # system multiprocessing restrictions 4 | #per step 5 | max_processes_num = 5 6 | #overall 7 | overall_max_processes_num = 10 8 | 9 | # dependancy and tools run paths 10 | bedtools_path = 11 | samtools_path = 12 | java_home_path = 13 | scripts_dir = 14 | bam_utils_path = 15 | ei_java_utils_jar = 16 | is_paired_end = False 17 | 18 | java_path = %(java_home_path)s/bin/java 19 | 20 | regions_name = 21 | 22 | # ************You May Change These********** 23 | 24 | #If set with True will override existing pileups. 25 | run_force_bam_preprocessing = False 26 | 27 | #If to trimm read enges in the BAM prior to pileup (and how many to trimm) 28 | trimm_edges = True 29 | bases_to_trim = 5 30 | 31 | 32 | # pileup run params 33 | #What flags to filter during pileup (e.g. -ff flag, see samtools documentation for more details) , this is set to samtools default 34 | pileup_filtering = 35 | # -d flag (see samtools documentation for more details), newer samtools versions may not need this at all 36 | pileup_depth_lim = 1000000 37 | 38 | # For cmpileup creation - PHRED score offset and minimal score to count 39 | PileupToCount_quality_offset = 33 40 | PileupToCount_quality_threshold = 30 41 | 42 | 43 | # File names formats 44 | ei_output_dir = %(output_dir)s 45 | 46 | bam_file_suffix = Aligned.sortedByCoord.out.bam 47 | aligner_output_format = %(output_dir)s/%(file_name)s 48 | input_bam_file = %(aligner_output_format)s%(bam_file_suffix)s 49 | 50 | regions_aligments_file_bam = %(ei_output_dir)s/%(file_name)s_region_%(regions_name)s_alignments.bam 51 | 52 | regions_pileup = %(ei_output_dir)s/%(file_name)s_%(regions_name)s.mpileup 53 | regions_pileup_with_count = %(ei_output_dir)s/%(file_name)s_%(regions_name)s_mpileup.cmpileup 54 | 55 | #Stranded Analysis 56 | strand_1_temp_2 = %(ei_output_dir)s/%(file_name)s_region_%(regions_name)s_alignments_strand_fwd_tmp2.bam 57 | strand_1_temp_1 = %(ei_output_dir)s/%(file_name)s_region_%(regions_name)s_alignments_strand_fwd_tmp1.bam 58 | regions_aligments_file_bam_strand_1 = %(ei_output_dir)s/%(file_name)s_region_%(regions_name)s_alignments_strand_1.bam 59 | strand_2_temp_1 = %(ei_output_dir)s/%(file_name)s_region_%(regions_name)s_alignments_strand_rev_tmp1.bam 60 | strand_2_temp_2 = %(ei_output_dir)s/%(file_name)s_region_%(regions_name)s_alignments_strand_rev_tmp2.bam 61 | regions_aligments_file_bam_strand_2 = %(ei_output_dir)s/%(file_name)s_region_%(regions_name)s_alignments_strand_2.bam 62 | 63 | regions_pileup_strand_1 = %(ei_output_dir)s/%(file_name)s_%(regions_name)s_strand_1.mpileup 64 | regions_pileup_with_count_strand_1 = %(ei_output_dir)s/%(file_name)s_%(regions_name)s_mpileup_strand_1.cmpileup 65 | regions_pileup_strand_2 = %(ei_output_dir)s/%(file_name)s_%(regions_name)s_strand_2.mpileup 66 | regions_pileup_with_count_strand_2 = %(ei_output_dir)s/%(file_name)s_%(regions_name)s_mpileup_strand_2.cmpileup 67 | -------------------------------------------------------------------------------- /src/RNAEditingIndex/Configs/FullConfig.ini: -------------------------------------------------------------------------------- 1 | [Step_1] 2 | Enable = True 3 | Type = cmd 4 | name = IntersectBAMWithRegions 5 | description = get bam file with reads intersected with regions 6 | program = %(bedtools_path)s intersect 7 | parameters = -abam %(input_dir)s/%(file_name)s%(bam_file_suffix)s -b %(regions_coordinates_bed)s -split |%(samtools_path)s sort -l 1 -@ 10 -o %(regions_aligments_file_bam)s - 8 | constraint = Exists %(regions_pileup_with_count)s And Not Bool %(run_force_bam_preprocessing)s 9 | next_step = Step_2 10 | error_step = Step_1_backup 11 | 12 | [Step_2] 13 | Enable = %(trimm_edges)s 14 | Type = cmd 15 | name = Trimm edges 16 | description = tream reads edges 17 | program = %(bam_utils_path)s trimBam 18 | parameters = %(regions_aligments_file_bam)s %(regions_aligments_file_bam)s.trimmed_%(bases_to_trim)s.bam %(bases_to_trim)s --noPhoneHome 19 | constraint = Exists %(regions_pileup_with_count)s And Not Bool %(run_force_bam_preprocessing)s 20 | next_step = Step_3,condition_trim;Step_3_untrimmed 21 | condition_trim = Bool %(trimm_edges)s 22 | error_step = Step_-1 23 | 24 | [Step_3] 25 | Enable = True 26 | Type = cmd 27 | name = IndexBam 28 | description = create BAI if doesnt exist 29 | program = %(samtools_path)s index 30 | parameters = %(regions_aligments_file_bam)s.trimmed_%(bases_to_trim)s.bam 31 | constraint = Exists %(regions_pileup_with_count)s And Not Bool %(run_force_bam_preprocessing)s 32 | next_step = Step_4 33 | error_step = Step_-1 34 | 35 | [Step_3_untrimmed] 36 | Enable = True 37 | Type = cmd 38 | name = IndexBam 39 | description = create BAI if doesnt exist 40 | program = %(samtools_path)s index 41 | parameters = %(regions_aligments_file_bam)s 42 | constraint = Exists %(regions_pileup_with_count)s And Not Bool %(run_force_bam_preprocessing)s 43 | next_step = Step_4_untrimmed 44 | error_step = Step_-1 45 | 46 | [Step_4] 47 | Enable = True 48 | Type = cmd 49 | name = pileup 50 | description = pileup 51 | program = %(samtools_path)s mpileup 52 | #parameters = -B %(pileup_filtering)s -d 100000 %(regions_aligments_file_bam)s.trimmed_%(bases_to_trim)s.bam -o %(regions_pileup)s -l %(regions_coordinates_bed)s 53 | parameters = -B %(pileup_filtering)s -d %(pileup_depth_lim)s %(regions_aligments_file_bam)s.trimmed_%(bases_to_trim)s.bam -o %(regions_pileup)s -l %(regions_coordinates_bed)s 54 | constraint = Exists %(regions_pileup_with_count)s And Not Bool %(run_force_bam_preprocessing)s 55 | next_step = Step_5 56 | error_step = Step_-1 57 | 58 | [Step_4_untrimmed] 59 | Enable = True 60 | Type = cmd 61 | name = pileup 62 | description = pileup 63 | program = %(samtools_path)s mpileup 64 | parameters = -B --ff SECONDARY -d %(pileup_depth_lim)s %(regions_aligments_file_bam)s -o %(regions_pileup)s -l %(regions_coordinates_bed)s 65 | constraint = Exists %(regions_pileup_with_count)s And Not Bool %(run_force_bam_preprocessing)s 66 | next_step = Step_5 67 | error_step = Step_-1 68 | 69 | [Step_5] 70 | Enable = True 71 | max_processes_num = 1 72 | Type = cmd 73 | name = GenerateGenomeIndex 74 | description = generate genome index, if doesn't exist 75 | program = %(java_path)s -jar %(ei_java_utils_jar)s GenerateIndex 76 | parameters = -i %(regions_coordinates_bed)s -g %(genome_fasta)s -o %(genome_index_path)s -b %(bedtools_path)s 77 | constraint = Exists %(genome_index_path)s 78 | next_step = Step_6 79 | error_step = Step_-1 80 | 81 | [Step_6] 82 | Enable = True 83 | Type = cmd 84 | name = CountPileup 85 | description = count pileup 86 | program = %(java_path)s -jar %(ei_java_utils_jar)s PileupToCount 87 | parameters = -i %(regions_pileup)s -o %(regions_pileup_with_count)s -q %(PileupToCount_quality_threshold)s -f %(PileupToCount_quality_offset)s -g %(genome_index_path)s 88 | constraint = Exists %(regions_pileup_with_count)s And Not Bool %(run_force_bam_preprocessing)s 89 | next_step = Step_7 90 | error_step = Step_-1 91 | 92 | #remove files 93 | 94 | [Step_7] 95 | Enable = True 96 | Type = cmd 97 | name = remove mpileup file 98 | description = remove tmp vcf file 99 | program = rm 100 | parameters = %(regions_pileup)s 101 | constraint = Not Exists %(regions_pileup)s 102 | next_step = Step_8 103 | error_step = Step_-1 104 | 105 | [Step_8] 106 | Enable = True 107 | Type = cmd 108 | name = remove BAMs, BEDs and BAIs 109 | description = Remove any BAMs, BED and indexes files created 110 | program = find 111 | parameters = %(output_dir)s -name '*.ba?'| xargs rm 112 | constraint = Not Exists %(regions_aligments_file_bam)s 113 | next_step = exit 114 | error_step = exit 115 | 116 | [Step_-1] 117 | Enable = True 118 | Type = cmd 119 | name = error stage 120 | description = error stage 121 | program = echo 122 | parameters = 'Failed To Run On %(input_dir)s/%(file_name)s%(bam_file_suffix)s!' 123 | next_step = exit 124 | error_step = exit 125 | 126 | [DEFAULT] 127 | output_dir = 128 | input_dir = 129 | file_name = 130 | genome_fasta = 131 | regions_coordinates_bed = 132 | bam_file_suffix = 133 | genome_index_path = 134 | 135 | 136 | -------------------------------------------------------------------------------- /src/RNAEditingIndex/Configs/FullConfigStranded.ini: -------------------------------------------------------------------------------- 1 | [Step_1] 2 | Enable = True 3 | Type = cmd 4 | name = IntersectBAMWithRegions 5 | description = get bam file with reads intersected with regions 6 | program = %(bedtools_path)s intersect 7 | parameters = -abam %(input_dir)s/%(file_name)s%(bam_file_suffix)s -b %(regions_coordinates_bed)s -split |%(samtools_path)s sort -l 1 -@ 10 -o %(regions_aligments_file_bam)s - 8 | constraint = Exists %(regions_pileup_with_count)s And Not Bool %(run_force_bam_preprocessing)s 9 | next_step = Step_2_fwd_1, pe_condition; Step_2_fwd_SE 10 | pe_condition = Bool %(is_paired_end)s 11 | error_step = Step_-1 12 | 13 | [Step_2_fwd_1] 14 | Enable = True 15 | Type = cmd 16 | name = SeparateFwdHalf1 17 | description = separated "forward" alignments - second mate mapped to + 18 | program = %(samtools_path)s view 19 | parameters = -b -f 128 -F 16 -o %(strand_1_temp_1)s %(regions_aligments_file_bam)s 20 | constraint = Exists %(regions_pileup_with_count_strand_1)s And Not Bool %(run_force_bam_preprocessing)s 21 | next_step = Step_2_fwd_1_index 22 | error_step = Step_-1 23 | 24 | [Step_2_fwd_SE] 25 | Enable = True 26 | Type = cmd 27 | name = SeparateFwdSE 28 | description = separated "forward" alignments - mapped to + 29 | program = %(samtools_path)s view 30 | parameters = -b -f 16 -o %(regions_aligments_file_bam_strand_1)s %(regions_aligments_file_bam)s 31 | constraint = Exists %(regions_pileup_with_count_strand_1)s And Not Bool %(run_force_bam_preprocessing)s 32 | next_step = Step_2_fwd_index 33 | error_step = Step_-1 34 | 35 | [Step_2_rev_SE] 36 | Enable = True 37 | Type = cmd 38 | name = SeparateFwdSE 39 | description = separated "forward" alignments - mapped to + 40 | program = %(samtools_path)s view 41 | parameters = -b -F 16 -o %(regions_aligments_file_bam_strand_2)s %(regions_aligments_file_bam)s 42 | constraint = Exists %(regions_pileup_with_count_strand_2)s And Not Bool %(run_force_bam_preprocessing)s 43 | next_step = Step_2_rev_index 44 | error_step = Step_-1 45 | 46 | [Step_2_fwd_1_index] 47 | Enable = True 48 | Type = cmd 49 | name = indexFwdHalf1 50 | description = index "forward" alignments - second mate mapped to + 51 | program = %(samtools_path)s index 52 | parameters = %(strand_1_temp_1)s 53 | constraint = Exists %(regions_pileup_with_count_strand_1)s And Not Bool %(run_force_bam_preprocessing)s 54 | next_step = Step_2_fwd_2 55 | error_step = Step_-1 56 | 57 | [Step_2_fwd_2] 58 | Enable = True 59 | Type = cmd 60 | name = SeparateFwdHalf2 61 | description = separated "forward" alignments - first mate mapped to - 62 | program = %(samtools_path)s view 63 | parameters = -b -f 80 -o %(strand_1_temp_2)s %(regions_aligments_file_bam)s 64 | constraint = Exists %(regions_pileup_with_count_strand_1)s And Not Bool %(run_force_bam_preprocessing)s 65 | next_step = Step_2_fwd_2_index 66 | error_step = Step_-1 67 | 68 | [Step_2_fwd_2_index] 69 | Enable = True 70 | Type = cmd 71 | name = indexFwdHalf2 72 | description = index "forward" alignments - first mate mapped to - 73 | program = %(samtools_path)s index 74 | parameters = %(strand_1_temp_2)s 75 | constraint = Exists %(regions_pileup_with_count_strand_1)s And Not Bool %(run_force_bam_preprocessing)s 76 | next_step = Step_2_fwd_merge 77 | error_step = Step_-1 78 | 79 | [Step_2_fwd_merge] 80 | Enable = True 81 | Type = cmd 82 | name = mergeFwd 83 | description = merge all the "forward" alignments 84 | program = %(samtools_path)s merge 85 | parameters = -f %(regions_aligments_file_bam_strand_1)s %(strand_1_temp_1)s %(strand_1_temp_2)s 86 | constraint = Exists %(regions_pileup_with_count_strand_1)s And Not Bool %(run_force_bam_preprocessing)s 87 | next_step = Step_2_fwd_index 88 | error_step = Step_-1 89 | 90 | [Step_2_fwd_index] 91 | Enable = True 92 | Type = cmd 93 | name = indexRevHalf2 94 | description = index "forward" alignments - first mate mapped to - 95 | program = %(samtools_path)s index 96 | parameters = %(regions_aligments_file_bam_strand_1)s 97 | constraint = Exists %(regions_pileup_with_count_strand_1)s And Not Bool %(run_force_bam_preprocessing)s 98 | next_step = Step_2_rev_1, pe_condition; Step_2_rev_SE 99 | pe_condition = Bool %(is_paired_end)s 100 | error_step = Step_-1 101 | 102 | 103 | [Step_2_rev_1] 104 | Enable = True 105 | Type = cmd 106 | name = SeparateRevHalf1 107 | description = separated "forward" alignments - second mate mapped to - 108 | program = %(samtools_path)s view 109 | parameters = -b -f 144 -o %(strand_2_temp_1)s %(regions_aligments_file_bam)s 110 | constraint = Exists %(regions_pileup_with_count_strand_2)s And Not Bool %(run_force_bam_preprocessing)s 111 | next_step = Step_2_rev_1_index 112 | error_step = Step_-1 113 | 114 | [Step_2_rev_1_index] 115 | Enable = True 116 | Type = cmd 117 | name = indexRevHalf1 118 | description = index "forward" alignments - second mate mapped to + 119 | program = %(samtools_path)s index 120 | parameters = %(strand_2_temp_1)s 121 | constraint = Exists %(regions_pileup_with_count_strand_2)s And Not Bool %(run_force_bam_preprocessing)s 122 | next_step = Step_2_rev_2 123 | error_step = Step_-1 124 | 125 | [Step_2_rev_2] 126 | Enable = True 127 | Type = cmd 128 | name = SeparateRevHalf2 129 | description = separated "forward" alignments - first mate mapped to + 130 | program = %(samtools_path)s view 131 | parameters = -b -f 64 -F 16 -o %(strand_2_temp_2)s %(regions_aligments_file_bam)s 132 | constraint = Exists %(regions_pileup_with_count_strand_2)s And Not Bool %(run_force_bam_preprocessing)s 133 | next_step = Step_2_rev_2_index 134 | error_step = Step_-1 135 | 136 | [Step_2_rev_2_index] 137 | Enable = True 138 | Type = cmd 139 | name = indexRevHalf2 140 | description = index "forward" alignments - first mate mapped to - 141 | program = %(samtools_path)s index 142 | parameters = %(strand_2_temp_2)s 143 | constraint = Exists %(regions_pileup_with_count_strand_2)s And Not Bool %(run_force_bam_preprocessing)s 144 | next_step = Step_2_rev_merge 145 | error_step = Step_-1 146 | 147 | [Step_2_rev_merge] 148 | Enable = True 149 | Type = cmd 150 | name = mergeRev 151 | description = merge all the "reverse" alignments 152 | program = %(samtools_path)s merge 153 | parameters = -f %(regions_aligments_file_bam_strand_2)s %(strand_2_temp_1)s %(strand_2_temp_2)s 154 | constraint = Exists %(regions_pileup_with_count_strand_2)s And Not Bool %(run_force_bam_preprocessing)s 155 | next_step = Step_2_rev_index 156 | error_step = Step_-1 157 | 158 | [Step_2_rev_index] 159 | Enable = True 160 | Type = cmd 161 | name = indexRevHalf2 162 | description = index "forward" alignments - first mate mapped to - 163 | program = %(samtools_path)s index 164 | parameters = %(regions_aligments_file_bam_strand_2)s 165 | constraint = Exists %(regions_pileup_with_count_strand_2)s And Not Bool %(run_force_bam_preprocessing)s 166 | next_step = Step_3_strand_1 167 | error_step = Step_-1 168 | 169 | [Step_3_strand_1] 170 | Enable = %(trimm_edges)s 171 | Type = cmd 172 | name = Trimm edges 173 | description = tream reads edges 174 | program = %(bam_utils_path)s trimBam 175 | parameters = %(regions_aligments_file_bam_strand_1)s %(regions_aligments_file_bam_strand_1)s.trimmed_%(bases_to_trim)s.bam %(bases_to_trim)s --noPhoneHome 176 | constraint = Exists %(regions_pileup_with_count_strand_1)s And Not Bool %(run_force_bam_preprocessing)s 177 | next_step = Step_3_strand_2 178 | condition_trim = Bool %(trimm_edges)s 179 | error_step = Step_-1 180 | 181 | [Step_3_strand_2] 182 | Enable = %(trimm_edges)s 183 | Type = cmd 184 | name = Trimm edges 185 | description = tream reads edges 186 | program = %(bam_utils_path)s trimBam 187 | parameters = %(regions_aligments_file_bam_strand_2)s %(regions_aligments_file_bam_strand_2)s.trimmed_%(bases_to_trim)s.bam %(bases_to_trim)s --noPhoneHome 188 | constraint = Exists %(regions_pileup_with_count_strand_2)s And Not Bool %(run_force_bam_preprocessing)s 189 | next_step = Step_4,condition_trim;Step_4_untrimmed 190 | condition_trim = Bool %(trimm_edges)s 191 | error_step = Step_-1 192 | 193 | [Step_4] 194 | Enable = True 195 | Type = cmd 196 | name = IndexBam 197 | description = create BAI if doesnt exist 198 | program = %(samtools_path)s index 199 | parameters = %(regions_aligments_file_bam_strand_1)s.trimmed_%(bases_to_trim)s.bam 200 | constraint = Exists %(regions_pileup_with_count_strand_1)s And Not Bool %(run_force_bam_preprocessing)s 201 | next_step = Step_4_strand2 202 | error_step = Step_-1 203 | 204 | [Step_4_strand2] 205 | Enable = True 206 | Type = cmd 207 | name = IndexBamStrand2 208 | description = create BAI if doesnt exist 209 | program = %(samtools_path)s index 210 | parameters = %(regions_aligments_file_bam_strand_2)s.trimmed_%(bases_to_trim)s.bam 211 | constraint = Exists %(regions_pileup_with_count_strand_2)s And Not Bool %(run_force_bam_preprocessing)s 212 | next_step = Step_5 213 | error_step = Step_-1 214 | 215 | [Step_4_untrimmed] 216 | Enable = True 217 | Type = cmd 218 | name = IndexBam 219 | description = create BAI if doesnt exist 220 | program = %(samtools_path)s index 221 | parameters = %(regions_aligments_file_bam_strand_1)s 222 | constraint = Exists %(regions_pileup_with_count_strand_1)s And Not Bool %(run_force_bam_preprocessing)s 223 | next_step = Step_4_untrimmed_strand_2 224 | error_step = Step_-1 225 | 226 | [Step_4_untrimmed_strand_2] 227 | Enable = True 228 | Type = cmd 229 | name = IndexBam 230 | description = create BAI if doesnt exist 231 | program = %(samtools_path)s index 232 | parameters = %(regions_aligments_file_bam_strand_2)s 233 | constraint = Exists %(regions_pileup_with_count_strand_2)s And Not Bool %(run_force_bam_preprocessing)s 234 | next_step = Step_5_untrimmed 235 | error_step = Step_-1 236 | 237 | [Step_5] 238 | Enable = True 239 | Type = cmd 240 | name = pileup 241 | description = pileup 242 | program = %(samtools_path)s mpileup 243 | parameters = -B %(pileup_filtering)s -d %(pileup_depth_lim)s %(regions_aligments_file_bam_strand_1)s.trimmed_%(bases_to_trim)s.bam -o %(regions_pileup_strand_1)s -l %(regions_coordinates_bed)s 244 | constraint = Exists %(regions_pileup_with_count_strand_1)s And Not Bool %(run_force_bam_preprocessing)s 245 | next_step = Step_5_strand2 246 | error_step = Step_-1 247 | 248 | [Step_5_strand2] 249 | Enable = True 250 | Type = cmd 251 | name = pileup 252 | description = pileup 253 | program = %(samtools_path)s mpileup 254 | parameters = -B %(pileup_filtering)s -d %(pileup_depth_lim)s %(regions_aligments_file_bam_strand_2)s.trimmed_%(bases_to_trim)s.bam -o %(regions_pileup_strand_2)s -l %(regions_coordinates_bed)s 255 | constraint = Exists %(regions_pileup_with_count_strand_2)s And Not Bool %(run_force_bam_preprocessing)s 256 | next_step = Step_6 257 | error_step = Step_-1 258 | 259 | [Step_5_untrimmed] 260 | Enable = True 261 | Type = cmd 262 | name = pileup 263 | description = pileup 264 | program = %(samtools_path)s mpileup 265 | parameters = -B --ff SECONDARY -d %(pileup_depth_lim)s %(regions_aligments_file_bam_strand_1)s -o %(regions_pileup_strand_1)s -l %(regions_coordinates_bed)s 266 | constraint = Exists %(regions_pileup_with_count_strand_1)s And Not Bool %(run_force_bam_preprocessing)s 267 | next_step = Step_5_untrimmed_strand2 268 | error_step = Step_-1 269 | 270 | [Step_5_untrimmed_strand2] 271 | Enable = True 272 | Type = cmd 273 | name = pileup strand2 274 | description = pileup 275 | program = %(samtools_path)s mpileup 276 | parameters = -B --ff SECONDARY -d %(pileup_depth_lim)s %(regions_aligments_file_bam_strand_2)s -o %(regions_pileup_strand_2)s -l %(regions_coordinates_bed)s 277 | constraint = Exists %(regions_pileup_with_count_strand_2)s And Not Bool %(run_force_bam_preprocessing)s 278 | next_step = Step_6 279 | error_step = Step_-1 280 | 281 | [Step_6] 282 | Enable = True 283 | max_processes_num = 1 284 | Type = cmd 285 | name = GenerateGenomeIndex 286 | description = generate genome index, if doesn't exist 287 | program = %(java_path)s -jar %(ei_java_utils_jar)s GenerateIndex 288 | parameters = -i %(regions_coordinates_bed)s -g %(genome_fasta)s -o %(genome_index_path)s -b %(bedtools_path)s 289 | constraint = Exists %(genome_index_path)s 290 | next_step = Step_7 291 | error_step = Step_-1 292 | 293 | [Step_7] 294 | Enable = True 295 | Type = cmd 296 | name = CountPileup strand 1 297 | description = count pileup 298 | program = %(java_path)s -jar %(ei_java_utils_jar)s PileupToCount 299 | parameters = -i %(regions_pileup_strand_1)s -o %(regions_pileup_with_count_strand_1)s -q %(PileupToCount_quality_threshold)s -f %(PileupToCount_quality_offset)s -g %(genome_index_path)s 300 | constraint = Exists %(regions_pileup_with_count_strand_2)s And Not Bool %(run_force_bam_preprocessing)s 301 | next_step = Step_7_strand2 302 | error_step = Step_-1 303 | 304 | [Step_7_strand2] 305 | Enable = True 306 | Type = cmd 307 | name = CountPileup strand2 308 | description = count pileup 309 | program = %(java_path)s -jar %(ei_java_utils_jar)s PileupToCount 310 | parameters = -i %(regions_pileup_strand_2)s -o %(regions_pileup_with_count_strand_2)s -q %(PileupToCount_quality_threshold)s -f %(PileupToCount_quality_offset)s -g %(genome_index_path)s 311 | constraint = Exists %(regions_pileup_with_count_strand_2)s And Not Bool %(run_force_bam_preprocessing)s 312 | next_step = Step_8 313 | error_step = Step_-1 314 | 315 | #remove files 316 | 317 | [Step_8] 318 | Enable = True 319 | Type = cmd 320 | name = remove mpileup file 321 | description = remove tmp vcf file 322 | program = rm 323 | parameters = %(regions_pileup_strand_1)s %(regions_pileup_strand_2)s 324 | constraint = Not Exists %(regions_pileup_strand_1)s And Not Exists %(regions_pileup_strand_2)s 325 | next_step = Step_9 326 | error_step = Step_-1 327 | 328 | [Step_9] 329 | Enable = True 330 | Type = cmd 331 | name = remove BAMs, BEDs and BAIs 332 | description = Remove any BAMs, BED and indexes files created 333 | program = find 334 | parameters = %(output_dir)s -name '*.ba?'| xargs rm 335 | constraint = Not Exists %(regions_aligments_file_bam)s 336 | next_step = exit 337 | error_step = exit 338 | 339 | [Step_-1] 340 | Enable = True 341 | Type = cmd 342 | name = error stage 343 | description = error stage 344 | program = echo 345 | parameters = 'Failed To Run On %(input_dir)s/%(file_name)s%(bam_file_suffix)s!' 346 | next_step = exit 347 | error_step = exit 348 | 349 | [DEFAULT] 350 | output_dir = 351 | input_dir = 352 | file_name = 353 | genome_fasta = 354 | regions_coordinates_bed = 355 | bam_file_suffix = 356 | genome_index_path = 357 | 358 | 359 | -------------------------------------------------------------------------------- /src/RNAEditingIndex/RNAEditingIndex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/RNAEditingIndex -------------------------------------------------------------------------------- /src/RNAEditingIndex/_bisectmodule.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/_bisectmodule.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/_codecs_cn.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/_codecs_cn.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/_codecs_hk.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/_codecs_hk.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/_codecs_iso2022.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/_codecs_iso2022.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/_codecs_jp.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/_codecs_jp.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/_codecs_kr.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/_codecs_kr.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/_codecs_tw.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/_codecs_tw.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/_collectionsmodule.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/_collectionsmodule.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/_csv.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/_csv.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/_ctypes.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/_ctypes.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/_functoolsmodule.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/_functoolsmodule.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/_hashlib.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/_hashlib.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/_heapq.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/_heapq.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/_io.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/_io.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/_json.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/_json.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/_localemodule.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/_localemodule.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/_multibytecodecmodule.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/_multibytecodecmodule.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/_multiprocessing.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/_multiprocessing.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/_randommodule.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/_randommodule.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/_socketmodule.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/_socketmodule.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/_ssl.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/_ssl.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/_struct.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/_struct.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/arraymodule.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/arraymodule.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/binascii.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/binascii.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/bz2.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/bz2.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/cPickle.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/cPickle.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/cStringIO.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/cStringIO.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/datetime.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/datetime.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/fcntlmodule.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/fcntlmodule.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/grpmodule.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/grpmodule.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/itertoolsmodule.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/itertoolsmodule.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/libbz2.so.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/libbz2.so.1 -------------------------------------------------------------------------------- /src/RNAEditingIndex/libcom_err.so.2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/libcom_err.so.2 -------------------------------------------------------------------------------- /src/RNAEditingIndex/libcrypto.so.10: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/libcrypto.so.10 -------------------------------------------------------------------------------- /src/RNAEditingIndex/libffi.so.5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/libffi.so.5 -------------------------------------------------------------------------------- /src/RNAEditingIndex/libgssapi_krb5.so.2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/libgssapi_krb5.so.2 -------------------------------------------------------------------------------- /src/RNAEditingIndex/libk5crypto.so.3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/libk5crypto.so.3 -------------------------------------------------------------------------------- /src/RNAEditingIndex/libkeyutils.so.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/libkeyutils.so.1 -------------------------------------------------------------------------------- /src/RNAEditingIndex/libkrb5.so.3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/libkrb5.so.3 -------------------------------------------------------------------------------- /src/RNAEditingIndex/libkrb5support.so.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/libkrb5support.so.0 -------------------------------------------------------------------------------- /src/RNAEditingIndex/libpython2.7.so.1.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/libpython2.7.so.1.0 -------------------------------------------------------------------------------- /src/RNAEditingIndex/libreadline.so.6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/libreadline.so.6 -------------------------------------------------------------------------------- /src/RNAEditingIndex/libselinux.so.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/libselinux.so.1 -------------------------------------------------------------------------------- /src/RNAEditingIndex/libssl.so.10: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/libssl.so.10 -------------------------------------------------------------------------------- /src/RNAEditingIndex/libtinfo.so.5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/libtinfo.so.5 -------------------------------------------------------------------------------- /src/RNAEditingIndex/math.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/math.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/mmapmodule.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/mmapmodule.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/operator.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/operator.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/path_locator.py: -------------------------------------------------------------------------------- 1 | __author__ = 'Hillel' 2 | """ 3 | This module enables getting the dir's path even from exe 4 | """ 5 | import os 6 | import sys 7 | 8 | 9 | def we_are_frozen(): 10 | # All of the modules are built-in to the interpreter, e.g., by py2exe 11 | return hasattr(sys, "frozen") 12 | 13 | 14 | def module_path(): 15 | encoding = sys.getfilesystemencoding() 16 | if we_are_frozen(): 17 | return os.path.dirname(unicode(sys.executable, encoding)) 18 | return os.path.dirname(unicode(__file__, encoding)) 19 | -------------------------------------------------------------------------------- /src/RNAEditingIndex/pyexpat.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/pyexpat.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/readline.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/readline.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/resource.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/resource.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/selectmodule.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/selectmodule.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/stropmodule.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/stropmodule.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/termios.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/termios.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/timemodule.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/timemodule.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/unicodedata.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/unicodedata.so -------------------------------------------------------------------------------- /src/RNAEditingIndex/zlibmodule.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/a2iEditing/RNAEditingIndexer/8e65afcae7c3a8a1674df945cabdf0f78e5129b5/src/RNAEditingIndex/zlibmodule.so --------------------------------------------------------------------------------