summaryrefslogtreecommitdiff
path: root/academic/pyCRAC
diff options
context:
space:
mode:
Diffstat (limited to 'academic/pyCRAC')
-rw-r--r--academic/pyCRAC/GTF2-scripts.patch79
-rw-r--r--academic/pyCRAC/MANIFEST_slack.txt69
-rw-r--r--academic/pyCRAC/README27
-rw-r--r--academic/pyCRAC/README.tests7
-rw-r--r--academic/pyCRAC/pyCRAC.SlackBuild115
-rw-r--r--academic/pyCRAC/pyCRAC.info12
-rw-r--r--academic/pyCRAC/setup_slack.py104
-rw-r--r--academic/pyCRAC/slack-desc19
8 files changed, 432 insertions, 0 deletions
diff --git a/academic/pyCRAC/GTF2-scripts.patch b/academic/pyCRAC/GTF2-scripts.patch
new file mode 100644
index 0000000000..35f9512876
--- /dev/null
+++ b/academic/pyCRAC/GTF2-scripts.patch
@@ -0,0 +1,79 @@
+diff -Naur sgrann-pycrac-8792459eeef7/pyCRAC/scripts/pyGTF2bedGraph.py sgrann-pycrac-8792459eeef7-slack/pyCRAC/scripts/pyGTF2bedGraph.py
+--- sgrann-pycrac-8792459eeef7/pyCRAC/scripts/pyGTF2bedGraph.py 2017-09-11 15:11:12.000000000 +0100
++++ sgrann-pycrac-8792459eeef7-slack/pyCRAC/scripts/pyGTF2bedGraph.py 2017-09-10 00:47:13.014633000 +0100
+@@ -2,7 +2,7 @@
+ # not compatible with python 3
+ __author__ = "Sander Granneman"
+ __copyright__ = "Copyright 2017"
+-__version__ = "0.0.7"
++__version__ = "0.0.6"
+ __credits__ = ["Sander Granneman"]
+ __maintainer__ = "Sander Granneman"
+ __email__ = "sgrannem@staffmail.ed.ac.uk"
+@@ -80,14 +80,12 @@
+ chromdata = processChromFile(chromlengthfile)
+ ###
+
+- normvalue = 1.0
+- if permillion and normvalue == 1.0:
+- assert data.mapped_reads, "No information on the number of mapped reads could be found in the gtf file. Cannot normalize the data"
+- normvalue = float(data.mapped_reads)/1000000.0
+-
+ while True:
+ lines = data.readLineByLine()
+- # to normalize the data to per million reads
++ normvalue = 1.0
++ if permillion and normvalue == 1.0:
++ assert data.mapped_reads, "No information on the number of mapped reads could be found in the gtf file. Cannot normalize the data"
++ normvalue = float(data.mapped_reads)/1000000.0 # to normalize the data to per million reads
+ if current_chromosome and data.chromosome != current_chromosome or not lines:
+ for strand in chromdict:
+ start = 0
+diff -Naur sgrann-pycrac-8792459eeef7/pyCRAC/scripts/pyGTF2sgr.py sgrann-pycrac-8792459eeef7-slack/pyCRAC/scripts/pyGTF2sgr.py
+--- sgrann-pycrac-8792459eeef7/pyCRAC/scripts/pyGTF2sgr.py 2017-09-11 15:11:12.000000000 +0100
++++ sgrann-pycrac-8792459eeef7-slack/pyCRAC/scripts/pyGTF2sgr.py 2017-09-10 00:47:13.014633000 +0100
+@@ -1,8 +1,8 @@
+ #!/usr/bin/python
+ # not compatible with python 3
+ __author__ = "Sander Granneman"
+-__copyright__ = "Copyright 2017"
+-__version__ = "0.0.6"
++__copyright__ = "Copyright 2015"
++__version__ = "0.0.5"
+ __credits__ = ["Sander Granneman"]
+ __maintainer__ = "Sander Granneman"
+ __email__ = "sgrannem@staffmail.ed.ac.uk"
+@@ -13,7 +13,7 @@
+ # pyGTF2sgr.py
+ #
+ #
+-# Copyright (c) Sander Granneman 2017
++# Copyright (c) Sander Granneman 2015
+ #
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
+ # of this software and associated documentation files (the "Software"), to deal
+@@ -73,12 +73,11 @@
+ ###
+
+ normvalue = 1.0
+- if permillion:
+- assert data.mapped_reads, "No information on the number of mapped reads could be found in the gtf file. Cannot normalize the data"
+- normvalue = float(data.mapped_reads)/1000000.0
+-
+ while True:
+ lines = data.readLineByLine()
++ if permillion and normvalue == 1.0:
++ assert data.mapped_reads, "No information on the number of mapped reads could be found in the gtf file. Cannot normalize the data"
++ normvalue = float(data.mapped_reads)/1000000.0
+ if current_chromosome and data.chromosome != current_chromosome or not lines:
+ for strand in strands:
+ if min_cov:
+@@ -118,6 +117,8 @@
+ if data.substitutions: chromdict[data.strand][data.substitutions] += data.number_of_reads
+ elif type == "deletions":
+ if data.deletions: chromdict[data.strand][data.deletions] += data.number_of_reads
++ else:
++ break
+
+ def gtf2dropoffrates(gtffile,chromosomedata,out_files=[],score=False,log=sys.stdout,zeros=False,min_cov=0):
+ """Produces an sgr output file for hits, substitutions and deletions. It requires, besides data a file containing
diff --git a/academic/pyCRAC/MANIFEST_slack.txt b/academic/pyCRAC/MANIFEST_slack.txt
new file mode 100644
index 0000000000..95a4931773
--- /dev/null
+++ b/academic/pyCRAC/MANIFEST_slack.txt
@@ -0,0 +1,69 @@
+setup.py
+MANIFEST.txt
+LICENCE.txt
+README.txt
+pyCRAC/tests/test.novo
+pyCRAC/tests/test.sh
+pyCRAC/tests/test_coordinates.txt
+pyCRAC/tests/test.gtf
+pyCRAC/tests/test_f.fastq
+pyCRAC/tests/test_f.fastq.gz
+pyCRAC/tests/test_f_dm.fastq
+pyCRAC/tests/test_r.fastq
+pyCRAC/tests/test_r.fastq.gz
+pyCRAC/tests/test_r_dm.fastq
+pyCRAC/tests/indexes.txt
+pyCRAC/tests/barcodes.txt
+pyCRAC/tests/genes.lis
+pyCRAC/Classes/NGSFormatWriters.py
+pyCRAC/Classes/NGSFormatReaders.py
+pyCRAC/Classes/PairedReads.py
+pyCRAC/Classes/Pileups.py
+pyCRAC/Classes/Aligner.py
+pyCRAC/Classes/Motifs.py
+pyCRAC/Classes/Barcodes.py
+pyCRAC/Classes/Coverage.py
+pyCRAC/Classes/Exceptions.py
+pyCRAC/Classes/FDR.py
+pyCRAC/Classes/Clustering
+pyCRAC/db/Saccharomyces_cerevisiae.EF2.59.1.0_chr_lengths.txt
+pyCRAC/db/Saccharomyces_cerevisiae.EF2.59.1.0.fa
+pyCRAC/db/Saccharomyces_cerevisiae.EF2.59.1.0.fa.tab
+pyCRAC/db/Saccharomyces_cerevisiae.EF2.59.1.3.gtf
+pyCRAC/kinetic_crac_pipeline/CRAC_pipeline_PE.py
+pyCRAC/kinetic_crac_pipeline/CRAC_pipeline_PeakFinder.py
+pyCRAC/kinetic_crac_pipeline/CRAC_pipeline_SE.py
+pyCRAC/kinetic_crac_pipeline/TrimNucs.py
+pyCRAC/scripts/pybed2GTF.py
+pyCRAC/scripts/pyGTF2bed.py
+pyCRaC/scripts/pyGTF2bedGraph.py
+pyCRAC/scripts/pyGTF2sgr.py
+pyCRAC/scripts/pyNormalizeIntervalLengths.py
+pyCRAC/scripts/pyFastqDuplicateRemover.py
+pyCRAC/scripts/pyFastqJoiner.py
+pyCRAC/scripts/pyFastqSplitter.py
+pyCRAC/scripts/pyGetGeneNamesFromGTF.py
+pyCRAC/scripts/pySelectMotifsFromGTF.py
+pyCRAC/scripts/pyGetGTFSources.py
+pyCRAC/scripts/pyFilterGTF.py
+pyCRAC/scripts/pyFasta2tab.py
+pyCRAC/scripts/pyAlignment2Tab.py
+pyCRAC/scripts/pyExtractLinesFromGTF.py
+pyCRAC/scripts/pyCheckGTFfile.py
+pyCRAC/scripts/pyCalculateChromosomeLengths.py
+pyCRAC/pyClusterReads.py
+pyCRAC/pyCalculateFDRs.py
+pyCRAC/pyCalculateMutationFrequencies.py
+pyCRAC/pyBinCollector.py
+pyCRAC/pyMotif.py
+pyCRAC/pyPileup.py
+pyCRAC/pyReadAligner.py
+pyCRAC/pyReadCounters.py
+pyCRAC/pyBarcodeFilter.py
+pyCRAC/Parsers/Blast.py
+pyCRAC/Parsers/GTF2.py
+pyCRAC/Parsers/Novoalign.py
+pyCRAC/Parsers/ParseAlignments.py
+pyCRAC/Parsers/SAM.py
+pyCRAC/Parsers/fasta2dict.py
+pyCRAC/Parsers/tab2dict.py
diff --git a/academic/pyCRAC/README b/academic/pyCRAC/README
new file mode 100644
index 0000000000..dd847d0935
--- /dev/null
+++ b/academic/pyCRAC/README
@@ -0,0 +1,27 @@
+The pyCRAC package is a collection of python2-scripts to analyse high
+throughput data generated by RNA-sequencing, especially of molecules
+crosslinked by UV to an immunoprecipitated protein of interest (i.e.
+data generated by CLIP or CRAC protocols).
+It can be used to remove duplicate reads,tackles directional libraries
+and reports sense and anti-sense hits.
+
+Included is the pipeline used for the analysis of a group of CRAC data
+sets.
+
+An R-function used for kinetic CRAC analysis can be found in
+/usr/share/pyCRAC/kinetic_crac_pipeline
+
+References
+
+Genome Biol. 2014 Jan 7;15(1):R8. doi: 10.1186/gb-2014-15-1-r8.
+PAR-CLIP data indicate that Nrd1-Nab3-dependent transcription
+termination regulates expression of hundreds of protein coding genes in
+yeast. Webb S, Hector RD, Kudla G, Granneman S.
+
+Nature Communications, 2017; DOI: 10.1038/s41467-017-00025-5
+Kinetic CRAC uncovers a role for Nab3 in determining gene expression
+profiles during stress. van Nues R, Schweikert G, de Leau E, Selega
+A, Langford A, Franklin R, Iosub I, Wadsworth P, Sanguinetti G,
+Granneman S.
+
+If you want to run the test suite after installation, see README.tests.
diff --git a/academic/pyCRAC/README.tests b/academic/pyCRAC/README.tests
new file mode 100644
index 0000000000..15def4bfeb
--- /dev/null
+++ b/academic/pyCRAC/README.tests
@@ -0,0 +1,7 @@
+To test the pyCRAC scripts after installing the package on Slackware:
+
+ cp -R /usr/share/pyCRAC <path-to-your-work-directory>/
+ cd <path-to-your-work-directory>/pyCRAC/tests
+ sh test.sh
+
+If all tests complete without an error, the package is working.
diff --git a/academic/pyCRAC/pyCRAC.SlackBuild b/academic/pyCRAC/pyCRAC.SlackBuild
new file mode 100644
index 0000000000..7a386f452d
--- /dev/null
+++ b/academic/pyCRAC/pyCRAC.SlackBuild
@@ -0,0 +1,115 @@
+#!/bin/sh
+
+# Slackware build script for pyCRAC
+
+# Copyright 2017 Rob van Nues
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PRGNAM=pyCRAC
+VERSION=${VERSION:-1.2.3.0}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+SRCNAM=sgrann-pycrac
+SRCVER=${SRCVER:-8792459eeef7}
+
+PIPENAM=kinetic_crac_pipeline
+PIPEVER=${PIPEVER:-73dff1be9488}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$SRCVER
+tar xvf $CWD/$SRCNAM-$SRCVER.tar.gz || tar xvf $CWD/$SRCVER.tar.gz
+cd $SRCNAM-$SRCVER
+
+mkdir $PRGNAM/$PIPENAM
+tar xvf $CWD/sgrann-$PIPENAM-$PIPEVER.tar.gz -C $PRGNAM/$PIPENAM --strip-components=1 || \
+ tar xvf $CWD/$PIPEVER.tar.gz -C $PRGNAM/$PIPENAM --strip-components=1
+
+patch -p1 < $CWD/GTF2-scripts.patch
+
+#replace setup.py
+rm setup.py
+cp $CWD/setup_slack.py setup.py
+#replace Manifest
+rm MANIFEST.txt
+cp $CWD/MANIFEST_slack.txt MANIFEST.txt
+
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+
+python setup.py install --root=$PKG
+
+find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+# The pipeline-R script
+mkdir -p $PKG/usr/share/$PRGNAM-$VERSION/$PIPENAM
+cp $PRGNAM/$PIPENAM/gaussianProcessAnalysis.R $PKG/usr/share/$PRGNAM-$VERSION/$PIPENAM
+
+# the manual etc.
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a \
+ LICENCE.txt README.txt "The pyCRAC Manual.pdf" VERSION.txt \
+ $CWD/README.tests $CWD/setup_slack.py $CWD/MANIFEST_slack.txt \
+ $CWD/README \
+ $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a $PRGNAM/$PIPENAM/README.md $PKG/usr/doc/$PRGNAM-$VERSION/$PIPENAM-README.md
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/academic/pyCRAC/pyCRAC.info b/academic/pyCRAC/pyCRAC.info
new file mode 100644
index 0000000000..9051b43654
--- /dev/null
+++ b/academic/pyCRAC/pyCRAC.info
@@ -0,0 +1,12 @@
+PRGNAM="pyCRAC"
+VERSION="1.2.3.0"
+HOMEPAGE="https://bitbucket.org/sgrann/"
+DOWNLOAD="https://bitbucket.org/sgrann/pycrac/get/8792459eeef7.tar.gz \
+ https://bitbucket.org/sgrann/kinetic_crac_pipeline/get/73dff1be9488.tar.gz"
+MD5SUM="a0e05b812dc765a2b1f673078ea43e3d \
+ 8f968d1dca38aa2b3ac401ba8da70cef"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES="flexbar novocraft numpy pysam scipy pandas ruffus"
+MAINTAINER="rob van nues"
+EMAIL="rvnues at tesco {dot} net"
diff --git a/academic/pyCRAC/setup_slack.py b/academic/pyCRAC/setup_slack.py
new file mode 100644
index 0000000000..621b944573
--- /dev/null
+++ b/academic/pyCRAC/setup_slack.py
@@ -0,0 +1,104 @@
+#!/usr/bin/python
+# not compatible with python 3
+__author__ = "Sander Granneman"
+__copyright__ = "Copyright 2017"
+__version__ = "1.2.3.0"
+__credits__ = ["Sander Granneman","Hywell Dunn Davies"]
+__maintainer__ = ["Rob van Nues, via SlackBuilds.org"]
+__email__ = "sgrannem@staffmail.ed.ac.uk"
+__status__ = "Production"
+
+import sys
+import os
+import platform
+import setuptools
+from setuptools import setup
+
+DEFAULT_PATH = "/usr/share/"
+
+if sys.version[0:3] < '2.7' : raise ImportError('Python version 2.7 or above is required for pyCRAC')
+if sys.version[0:3] >= '3.0': raise ImportError('pyCRAC is not compatible with Python 3.0 or higher')
+
+sys.stdout.write("\nInstalling pyCRAC version %s...\n" % __version__)
+
+path_files = open("pyCRAC/defaults.py","w")
+#path_files.write("DEFAULT_PATH=\"%s\"\n" % DEFAULT_PATH)
+path_files.write("GTF=\"%spyCRAC-%s/db/Saccharomyces_cerevisiae.EF2.59.1.3.gtf\"\nTAB=\"%spyCRAC-%s/db/Saccharomyces_cerevisiae.EF2.59.1.0.fa.tab\"\nCHROM=\"%spyCRAC-%s/db/Saccharomyces_cerevisiae.EF2.59.1.0_chr_lengths.txt\"\n" % (DEFAULT_PATH,__version__,DEFAULT_PATH,__version__,DEFAULT_PATH,__version__))
+path_files.close()
+
+setup(name='pyCRAC',
+ version='%s' % __version__,
+ description='Python NextGen sequencing data processing software',
+ author='Sander Granneman',
+ author_email='sgrannem@staffmail.ed.ac.uk',
+ url='http://sandergranneman.bio.ed.ac.uk/Granneman_Lab/pyCRAC_software.html',
+ packages=['pyCRAC','pyCRAC.Parsers','pyCRAC.Classes','pyCRAC.Methods'],
+ install_requires=['numpy >= 1.5.1', 'cython >=0.19', 'pysam >= 0.6'],
+ scripts=[
+ 'pyCRAC/pyReadAligner.py',
+ 'pyCRAC/pyMotif.py',
+ 'pyCRAC/pyPileup.py',
+ 'pyCRAC/pyBarcodeFilter.py',
+ 'pyCRAC/pyReadCounters.py',
+ 'pyCRAC/pyBinCollector.py',
+ 'pyCRAC/pyCalculateFDRs.py',
+ 'pyCRAC/pyClusterReads.py',
+ 'pyCRAC/pyCalculateMutationFrequencies.py',
+ 'pyCRAC/scripts/pyCalculateChromosomeLengths.py',
+ 'pyCRAC/scripts/pyFastqDuplicateRemover.py',
+ 'pyCRAC/scripts/pyAlignment2Tab.py',
+ 'pyCRAC/scripts/pyGetGTFSources.py',
+ 'pyCRAC/scripts/pySelectMotifsFromGTF.py',
+ 'pyCRAC/scripts/pyFasta2tab.py',
+ 'pyCRAC/scripts/pyFastqJoiner.py',
+ 'pyCRAC/scripts/pyFastqSplitter.py',
+ 'pyCRAC/scripts/pyExtractLinesFromGTF.py',
+ 'pyCRAC/scripts/pyGetGeneNamesFromGTF.py',
+ 'pyCRAC/scripts/pyCheckGTFfile.py',
+ 'pyCRAC/scripts/pybed2GTF.py',
+ 'pyCRAC/scripts/pyGTF2sgr.py',
+ 'pyCRAC/scripts/pyGTF2bed.py',
+ 'pyCRAC/scripts/pyGTF2bedGraph.py',
+ 'pyCRAC/scripts/pyFilterGTF.py',
+ 'pyCRAC/scripts/pyNormalizeIntervalLengths.py',
+ 'pyCRAC/kinetic_crac_pipeline/CRAC_pipeline_PE.py',
+ 'pyCRAC/kinetic_crac_pipeline/CRAC_pipeline_PeakFinder.py',
+ 'pyCRAC/kinetic_crac_pipeline/CRAC_pipeline_SE.py',
+ 'pyCRAC/kinetic_crac_pipeline/TrimNucs.py'
+ ],
+ classifiers=[ 'Development Status :: 5 - Production/Stable',
+ 'Environment :: Terminal',
+ 'Intended Audience :: Education',
+ 'Intended Audience :: Developers',
+ 'Intended Audience :: Science/Research',
+ 'License :: Freeware',
+ 'Operating System :: MacOS :: MacOS X',
+ 'Operating System :: POSIX',
+ 'Programming Language :: Python :: 2.7',
+ 'Topic :: Scientific/Engineering :: Bio-Informatics',
+ 'Topic :: Software Development :: Libraries :: Application Frameworks'
+ ],
+ data_files=[ ('%spyCRAC-%s/db/' % (DEFAULT_PATH,__version__), [
+ 'pyCRAC/db/Saccharomyces_cerevisiae.EF2.59.1.0_chr_lengths.txt',
+ 'pyCRAC/db/Saccharomyces_cerevisiae.EF2.59.1.3.gtf',
+ 'pyCRAC/db/Saccharomyces_cerevisiae.EF2.59.1.0.fa',
+ 'pyCRAC/db/Saccharomyces_cerevisiae.EF2.59.1.0.fa.tab']),
+ ('%spyCRAC-%s/tests/' % (DEFAULT_PATH,__version__), [
+ 'tests/test.novo',
+ 'tests/test.sh',
+ 'tests/test_coordinates.txt',
+ 'tests/test.gtf',
+ 'tests/test_f.fastq',
+ 'tests/test_f.fastq.gz',
+ 'tests/test_f_dm.fastq',
+ 'tests/test_r.fastq',
+ 'tests/test_r.fastq.gz',
+ 'tests/test_r_dm.fastq',
+ 'tests/indexes.txt',
+ 'tests/barcodes.txt',
+ 'tests/genes.list'])
+ ]
+ )
+
+
+
diff --git a/academic/pyCRAC/slack-desc b/academic/pyCRAC/slack-desc
new file mode 100644
index 0000000000..fe2f4d9ac1
--- /dev/null
+++ b/academic/pyCRAC/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+pyCRAC: pyCRAC (Next generation sequencing analysis with Python)
+pyCRAC:
+pyCRAC: pyCRAC combines cross-linking and immunoprecipitation (CLIP)/
+pyCRAC: cross-linking and cDNA analysis (CRAC) analysis methods.
+pyCRAC: It can be used to remove duplicate reads, tackles directional
+pyCRAC: libraries and reports sense and anti-sense hits.
+pyCRAC:
+pyCRAC: Included is a pipeline that allows analysis of a group of data-sets.
+pyCRAC:
+pyCRAC: https://bitbucket.org/sgrann/
+pyCRAC: