# HG changeset patch
# User stef
# Date 1424872256 18000
# Node ID 73eda23fb8fd96cb3fa2f5eb41b05a3452250c72
# Parent e7de191375e6ffd980ca2ca414b702fe6da567d4
Uploaded
diff -r e7de191375e6 -r 73eda23fb8fd falco-call.sh
--- a/falco-call.sh Thu Jan 08 06:18:04 2015 -0500
+++ b/falco-call.sh Wed Feb 25 08:50:56 2015 -0500
@@ -65,6 +65,8 @@
## running analysis
## ----------
echo "[INFO] Starting variant calling"
+## NOTE: if $FILTER_PARAM is set it includes the param name (--filter)
+## NOTE: if $MANIFEST_PARAM is set it includes the param name (--manifest)
CALL_STRING="$TOOLDIR/falco/bin/falco --bam $bam_file --output $bam_base --ref $REF_FILE $FILTER_PARAM $MANIFEST_PARAM"
echo "[INFO] "$CALL_STRING
perl $CALL_STRING
@@ -105,6 +107,9 @@
#cp 'index.html' $html_out # this is the overview of samples html
#cp $bam_base'.html' $out_path/'out.html' # this is the sample html
cp $bam_base'.falco.vcf' $vcf_out
+cp $bam_base'.qc.ann.qual.txt' $qc_ann_qual_out
+cp $bam_base'.qc2.ann.txt' $qc2_ann_txt_out
+cp $bam_base'.qc.targets.txt' $qc_targets_txt_out
## ----------
## copy files to keep to output path
diff -r e7de191375e6 -r 73eda23fb8fd falco-call.xml
--- a/falco-call.xml Thu Jan 08 06:18:04 2015 -0500
+++ b/falco-call.xml Wed Feb 25 08:50:56 2015 -0500
@@ -66,6 +66,10 @@
bam_name=$bam.name
html_out=$html_output
vcf_out=$vcf_output
+ qc_ann_qual_out=$qc_ann_qual_output
+ qc2_ann_txt_out=$qc2_ann_txt_output
+ qc_targets_txt_out=$qc_targets_txt_output
+
out_path=${html_output.files_path}
job_name=$jobName
## reference source
@@ -87,6 +91,9 @@
+
+
+
diff -r e7de191375e6 -r 73eda23fb8fd falco-filter-report.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco-filter-report.sh Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,117 @@
+#!/bin/bash
+TOOLDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+echo "Started FALCO calling"
+
+## ----------
+## Variables setup ($1 contains the bash config file path)
+## ----------
+source $1
+
+## ----------
+## make sure all is ok
+## ----------
+#if [ ! -f $REF_FILE".fai" ]
+#then
+# echo "No FAI index (fai) found for reference fasta [$REF_FILE]"
+# exit "No FAI index (fai) found for reference fasta [$REF_FILE]"
+#fi
+
+## ----------
+## set params
+## ----------
+if [[ $filter_file != 'None' && $filter_file != '' ]] # Galaxy default is "None" for some reason
+then
+ FILTER_PARAM=" --filter "$filter_file
+else
+ FILTER_PARAM=""
+fi
+
+if [[ $manifest_file != 'None' && $manifest_file != 'None' ]] # Galaxy default is "None" for some reason
+then
+ MANIFEST_PARAM=" --manifest "$manifest_file
+else
+ MANIFEST_PARAM=""
+fi
+
+## name of file in galaxy not always set so will use a user-set job_name instead
+#bam_base=`echo $bam_name | sed 's#.bam$##' - `
+vcf_base=$job_name
+
+## ----------
+## Status / debug
+## ----------
+DEBUG=1
+if [ $DEBUG ]
+then
+ DBS="[INFO] "
+ echo $DBS"FILTER: "$filter_file
+ echo $DBS"MANIFEST: "$manifest_file
+ echo $DBS"REF FILE: "$REF_FILE
+ echo $DBS"DB KEY: "$DB_KEY
+ echo $DBS"REF SRC: "$REF_SOURCE
+ echo $DBS"BAM FILE: "$bam_file
+ echo $DBS"BAM NAME: "$bam_name
+ echo $DBS"BAM BASE: "$bam_base
+ echo $DBS"OUT PATH: "$out_path
+fi
+
+## ----------
+## create output files dir
+## ----------
+mkdir $out_path
+
+## ----------
+## running analysis
+## ----------
+echo "[INFO] Starting FALCO reporting"
+CMD_STRING="$TOOLDIR/falco/bin/falco-filter-report --vcf $vcf_file --output $vcf_base --qc_ann_qual_txt $qc_ann_qual_file --qc2_ann_txt $qc2_ann_txt_file --qc_targets_txt $qc_targets_txt_file"
+echo "[INFO] "$CMD_STRING
+perl $CMD_STRING
+echo "[INFO] done with FALCO reporting"
+
+
+## ----------
+## create index html for main galaxy output
+## ----------
+echo "" >> $html_out
+echo "" >> $html_out
+echo "
" >> $html_out
+echo "" >> $html_out
+echo "" >> $html_out
+echo "" >> $html_out
+echo " FALCO
" >> $html_out
+echo " This page is way to get output files that are not implemented in galaxy history, it is not intended to be a user-friendly way of displaying anything ;)
" >> $html_out
+#echo " HTML" >> $html_out
+echo " " >> $html_out
+for file in *.vcf *.txt *stderr *stdout
+#for file in *
+do
+ lineCount=`wc -l $file | cut -f 1 -d " "`
+ echo " $file has $lineCount lines |
" >> $html_out
+ echo " --> " `head -1 $file` " |
" >> $html_out
+done
+echo "
" >> $html_out
+echo "" >> $html_out
+echo "" >> $html_out
+
+## ----------
+## creating galaxy history outputs
+## ----------
+cp 'index.html' $html_out # this is the overview of samples html
+#cp $bam_base'.html' $out_path/'out.html' # this is the sample html
+
+## ----------
+## copy files to keep to output path
+## ----------
+#cp -r ./$bam_base/*png $out_path/$bam_base/
+#cp -r ./* $out_path
+cp *.vcf $out_path; cp *.txt $out_path; cp *_std* $out_path
+
+## ----------
+echo "END falco sh"
+exit 0
diff -r e7de191375e6 -r 73eda23fb8fd falco-filter-report.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco-filter-report.xml Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,128 @@
+
+
+
+
+ samtools
+ R
+
+
+
+ FALCO Report: Amplicon Analysis Pipeline
+
+
+ falco-filter-report.sh $falco_cfg;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \S+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ filter_file=$filter_file
+ manifest_file=$manifest_file
+ vcf_file=$vcf
+ vcf_file2=$vcf2
+
+ qc_ann_qual_file=$qc_ann_qual
+ qc2_ann_txt_file=$qc2_ann_txt
+ qc_targets_txt_file=$qc_targets_txt
+
+ vcf_name=$vcf.name
+ html_out=$html_output
+ out_path=${html_output.files_path}
+ job_name=$jobName
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+.. class:: infomark
+
+**Introduction**
+
+This tool is a wrapper for the variant caller FALCO_ which is part of the Amplicon Analysis Pipeline (AAP)
+
+.. _FALCO: https://github.com/tgac-vumc/falco/
+
+Calls and annotates genomic variants for each amplicon in a design.
+
+**Notes**
+
+Because each amplicon is considered separate test, if two amplicons overlap this can cause the same variant position to be present twice in the output VCF. This is intentional, you can use this to evaluate the quality of the variant call beyond the amplicon.
+
+-----
+
+**Citation**
+
+For the underlying tool please cite: Daoud Sie et al. Performance of amplicon-based next generation DNA sequencing for diagnostic gene mutation profiling in oncopathology (Cell Oncol 2014 Oct;37(5):353-61). [Pubmed]
+
+.. _Pubmed: http://www.ncbi.nlm.nih.gov/pubmed/25209392
+
+
+
+
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/COMMIT_EDITMSG
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/COMMIT_EDITMSG Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,1 @@
+cosmic coding filter file
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/FETCH_HEAD
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/FETCH_HEAD Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,1 @@
+3ee7eebff84455cd50c4bcf0fe0184c5f0ccaaf0 branch 'master' of https://github.com/tgac-vumc/falco
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/HEAD
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/HEAD Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,1 @@
+ref: refs/heads/master
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/ORIG_HEAD
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/ORIG_HEAD Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,1 @@
+b65bea4880f8250609838d0f7988378393ce98a0
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/config
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/config Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,11 @@
+[core]
+ repositoryformatversion = 0
+ filemode = true
+ bare = false
+ logallrefupdates = true
+[remote "origin"]
+ url = https://github.com/tgac-vumc/falco.git
+ fetch = +refs/heads/*:refs/remotes/origin/*
+[branch "master"]
+ remote = origin
+ merge = refs/heads/master
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/description
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/description Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,1 @@
+Unnamed repository; edit this file 'description' to name the repository.
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/hooks/applypatch-msg.sample
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/hooks/applypatch-msg.sample Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,15 @@
+#!/bin/sh
+#
+# An example hook script to check the commit log message taken by
+# applypatch from an e-mail message.
+#
+# The hook should exit with non-zero status after issuing an
+# appropriate message if it wants to stop the commit. The hook is
+# allowed to edit the commit message file.
+#
+# To enable this hook, rename this file to "applypatch-msg".
+
+. git-sh-setup
+test -x "$GIT_DIR/hooks/commit-msg" &&
+ exec "$GIT_DIR/hooks/commit-msg" ${1+"$@"}
+:
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/hooks/commit-msg.sample
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/hooks/commit-msg.sample Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,24 @@
+#!/bin/sh
+#
+# An example hook script to check the commit log message.
+# Called by "git commit" with one argument, the name of the file
+# that has the commit message. The hook should exit with non-zero
+# status after issuing an appropriate message if it wants to stop the
+# commit. The hook is allowed to edit the commit message file.
+#
+# To enable this hook, rename this file to "commit-msg".
+
+# Uncomment the below to add a Signed-off-by line to the message.
+# Doing this in a hook is a bad idea in general, but the prepare-commit-msg
+# hook is more suited to it.
+#
+# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
+# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
+
+# This example catches duplicate Signed-off-by lines.
+
+test "" = "$(grep '^Signed-off-by: ' "$1" |
+ sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || {
+ echo >&2 Duplicate Signed-off-by lines.
+ exit 1
+}
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/hooks/post-update.sample
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/hooks/post-update.sample Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,8 @@
+#!/bin/sh
+#
+# An example hook script to prepare a packed repository for use over
+# dumb transports.
+#
+# To enable this hook, rename this file to "post-update".
+
+exec git update-server-info
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/hooks/pre-applypatch.sample
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/hooks/pre-applypatch.sample Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,14 @@
+#!/bin/sh
+#
+# An example hook script to verify what is about to be committed
+# by applypatch from an e-mail message.
+#
+# The hook should exit with non-zero status after issuing an
+# appropriate message if it wants to stop the commit.
+#
+# To enable this hook, rename this file to "pre-applypatch".
+
+. git-sh-setup
+test -x "$GIT_DIR/hooks/pre-commit" &&
+ exec "$GIT_DIR/hooks/pre-commit" ${1+"$@"}
+:
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/hooks/pre-commit.sample
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/hooks/pre-commit.sample Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,49 @@
+#!/bin/sh
+#
+# An example hook script to verify what is about to be committed.
+# Called by "git commit" with no arguments. The hook should
+# exit with non-zero status after issuing an appropriate message if
+# it wants to stop the commit.
+#
+# To enable this hook, rename this file to "pre-commit".
+
+if git rev-parse --verify HEAD >/dev/null 2>&1
+then
+ against=HEAD
+else
+ # Initial commit: diff against an empty tree object
+ against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
+fi
+
+# If you want to allow non-ASCII filenames set this variable to true.
+allownonascii=$(git config --bool hooks.allownonascii)
+
+# Redirect output to stderr.
+exec 1>&2
+
+# Cross platform projects tend to avoid non-ASCII filenames; prevent
+# them from being added to the repository. We exploit the fact that the
+# printable range starts at the space character and ends with tilde.
+if [ "$allownonascii" != "true" ] &&
+ # Note that the use of brackets around a tr range is ok here, (it's
+ # even required, for portability to Solaris 10's /usr/bin/tr), since
+ # the square bracket bytes happen to fall in the designated range.
+ test $(git diff --cached --name-only --diff-filter=A -z $against |
+ LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0
+then
+ cat <<\EOF
+Error: Attempt to add a non-ASCII file name.
+
+This can cause problems if you want to work with people on other platforms.
+
+To be portable it is advisable to rename the file.
+
+If you know what you are doing you can disable this check using:
+
+ git config hooks.allownonascii true
+EOF
+ exit 1
+fi
+
+# If there are whitespace errors, print the offending file names and fail.
+exec git diff-index --check --cached $against --
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/hooks/pre-push.sample
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/hooks/pre-push.sample Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,54 @@
+#!/bin/sh
+
+# An example hook script to verify what is about to be pushed. Called by "git
+# push" after it has checked the remote status, but before anything has been
+# pushed. If this script exits with a non-zero status nothing will be pushed.
+#
+# This hook is called with the following parameters:
+#
+# $1 -- Name of the remote to which the push is being done
+# $2 -- URL to which the push is being done
+#
+# If pushing without using a named remote those arguments will be equal.
+#
+# Information about the commits which are being pushed is supplied as lines to
+# the standard input in the form:
+#
+#
+#
+# This sample shows how to prevent push of commits where the log message starts
+# with "WIP" (work in progress).
+
+remote="$1"
+url="$2"
+
+z40=0000000000000000000000000000000000000000
+
+IFS=' '
+while read local_ref local_sha remote_ref remote_sha
+do
+ if [ "$local_sha" = $z40 ]
+ then
+ # Handle delete
+ :
+ else
+ if [ "$remote_sha" = $z40 ]
+ then
+ # New branch, examine all commits
+ range="$local_sha"
+ else
+ # Update to existing branch, examine new commits
+ range="$remote_sha..$local_sha"
+ fi
+
+ # Check for WIP commit
+ commit=`git rev-list -n 1 --grep '^WIP' "$range"`
+ if [ -n "$commit" ]
+ then
+ echo "Found WIP commit in $local_ref, not pushing"
+ exit 1
+ fi
+ fi
+done
+
+exit 0
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/hooks/pre-rebase.sample
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/hooks/pre-rebase.sample Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,169 @@
+#!/bin/sh
+#
+# Copyright (c) 2006, 2008 Junio C Hamano
+#
+# The "pre-rebase" hook is run just before "git rebase" starts doing
+# its job, and can prevent the command from running by exiting with
+# non-zero status.
+#
+# The hook is called with the following parameters:
+#
+# $1 -- the upstream the series was forked from.
+# $2 -- the branch being rebased (or empty when rebasing the current branch).
+#
+# This sample shows how to prevent topic branches that are already
+# merged to 'next' branch from getting rebased, because allowing it
+# would result in rebasing already published history.
+
+publish=next
+basebranch="$1"
+if test "$#" = 2
+then
+ topic="refs/heads/$2"
+else
+ topic=`git symbolic-ref HEAD` ||
+ exit 0 ;# we do not interrupt rebasing detached HEAD
+fi
+
+case "$topic" in
+refs/heads/??/*)
+ ;;
+*)
+ exit 0 ;# we do not interrupt others.
+ ;;
+esac
+
+# Now we are dealing with a topic branch being rebased
+# on top of master. Is it OK to rebase it?
+
+# Does the topic really exist?
+git show-ref -q "$topic" || {
+ echo >&2 "No such branch $topic"
+ exit 1
+}
+
+# Is topic fully merged to master?
+not_in_master=`git rev-list --pretty=oneline ^master "$topic"`
+if test -z "$not_in_master"
+then
+ echo >&2 "$topic is fully merged to master; better remove it."
+ exit 1 ;# we could allow it, but there is no point.
+fi
+
+# Is topic ever merged to next? If so you should not be rebasing it.
+only_next_1=`git rev-list ^master "^$topic" ${publish} | sort`
+only_next_2=`git rev-list ^master ${publish} | sort`
+if test "$only_next_1" = "$only_next_2"
+then
+ not_in_topic=`git rev-list "^$topic" master`
+ if test -z "$not_in_topic"
+ then
+ echo >&2 "$topic is already up-to-date with master"
+ exit 1 ;# we could allow it, but there is no point.
+ else
+ exit 0
+ fi
+else
+ not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"`
+ /usr/bin/perl -e '
+ my $topic = $ARGV[0];
+ my $msg = "* $topic has commits already merged to public branch:\n";
+ my (%not_in_next) = map {
+ /^([0-9a-f]+) /;
+ ($1 => 1);
+ } split(/\n/, $ARGV[1]);
+ for my $elem (map {
+ /^([0-9a-f]+) (.*)$/;
+ [$1 => $2];
+ } split(/\n/, $ARGV[2])) {
+ if (!exists $not_in_next{$elem->[0]}) {
+ if ($msg) {
+ print STDERR $msg;
+ undef $msg;
+ }
+ print STDERR " $elem->[1]\n";
+ }
+ }
+ ' "$topic" "$not_in_next" "$not_in_master"
+ exit 1
+fi
+
+<<\DOC_END
+
+This sample hook safeguards topic branches that have been
+published from being rewound.
+
+The workflow assumed here is:
+
+ * Once a topic branch forks from "master", "master" is never
+ merged into it again (either directly or indirectly).
+
+ * Once a topic branch is fully cooked and merged into "master",
+ it is deleted. If you need to build on top of it to correct
+ earlier mistakes, a new topic branch is created by forking at
+ the tip of the "master". This is not strictly necessary, but
+ it makes it easier to keep your history simple.
+
+ * Whenever you need to test or publish your changes to topic
+ branches, merge them into "next" branch.
+
+The script, being an example, hardcodes the publish branch name
+to be "next", but it is trivial to make it configurable via
+$GIT_DIR/config mechanism.
+
+With this workflow, you would want to know:
+
+(1) ... if a topic branch has ever been merged to "next". Young
+ topic branches can have stupid mistakes you would rather
+ clean up before publishing, and things that have not been
+ merged into other branches can be easily rebased without
+ affecting other people. But once it is published, you would
+ not want to rewind it.
+
+(2) ... if a topic branch has been fully merged to "master".
+ Then you can delete it. More importantly, you should not
+ build on top of it -- other people may already want to
+ change things related to the topic as patches against your
+ "master", so if you need further changes, it is better to
+ fork the topic (perhaps with the same name) afresh from the
+ tip of "master".
+
+Let's look at this example:
+
+ o---o---o---o---o---o---o---o---o---o "next"
+ / / / /
+ / a---a---b A / /
+ / / / /
+ / / c---c---c---c B /
+ / / / \ /
+ / / / b---b C \ /
+ / / / / \ /
+ ---o---o---o---o---o---o---o---o---o---o---o "master"
+
+
+A, B and C are topic branches.
+
+ * A has one fix since it was merged up to "next".
+
+ * B has finished. It has been fully merged up to "master" and "next",
+ and is ready to be deleted.
+
+ * C has not merged to "next" at all.
+
+We would want to allow C to be rebased, refuse A, and encourage
+B to be deleted.
+
+To compute (1):
+
+ git rev-list ^master ^topic next
+ git rev-list ^master next
+
+ if these match, topic has not merged in next at all.
+
+To compute (2):
+
+ git rev-list master..topic
+
+ if this is empty, it is fully merged to "master".
+
+DOC_END
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/hooks/prepare-commit-msg.sample
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/hooks/prepare-commit-msg.sample Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,36 @@
+#!/bin/sh
+#
+# An example hook script to prepare the commit log message.
+# Called by "git commit" with the name of the file that has the
+# commit message, followed by the description of the commit
+# message's source. The hook's purpose is to edit the commit
+# message file. If the hook fails with a non-zero status,
+# the commit is aborted.
+#
+# To enable this hook, rename this file to "prepare-commit-msg".
+
+# This hook includes three examples. The first comments out the
+# "Conflicts:" part of a merge commit.
+#
+# The second includes the output of "git diff --name-status -r"
+# into the message, just before the "git status" output. It is
+# commented because it doesn't cope with --amend or with squashed
+# commits.
+#
+# The third example adds a Signed-off-by line to the message, that can
+# still be edited. This is rarely a good idea.
+
+case "$2,$3" in
+ merge,)
+ /usr/bin/perl -i.bak -ne 's/^/# /, s/^# #/#/ if /^Conflicts/ .. /#/; print' "$1" ;;
+
+# ,|template,)
+# /usr/bin/perl -i.bak -pe '
+# print "\n" . `git diff --cached --name-status -r`
+# if /^#/ && $first++ == 0' "$1" ;;
+
+ *) ;;
+esac
+
+# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
+# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/hooks/update.sample
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/hooks/update.sample Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,128 @@
+#!/bin/sh
+#
+# An example hook script to blocks unannotated tags from entering.
+# Called by "git receive-pack" with arguments: refname sha1-old sha1-new
+#
+# To enable this hook, rename this file to "update".
+#
+# Config
+# ------
+# hooks.allowunannotated
+# This boolean sets whether unannotated tags will be allowed into the
+# repository. By default they won't be.
+# hooks.allowdeletetag
+# This boolean sets whether deleting tags will be allowed in the
+# repository. By default they won't be.
+# hooks.allowmodifytag
+# This boolean sets whether a tag may be modified after creation. By default
+# it won't be.
+# hooks.allowdeletebranch
+# This boolean sets whether deleting branches will be allowed in the
+# repository. By default they won't be.
+# hooks.denycreatebranch
+# This boolean sets whether remotely creating branches will be denied
+# in the repository. By default this is allowed.
+#
+
+# --- Command line
+refname="$1"
+oldrev="$2"
+newrev="$3"
+
+# --- Safety check
+if [ -z "$GIT_DIR" ]; then
+ echo "Don't run this script from the command line." >&2
+ echo " (if you want, you could supply GIT_DIR then run" >&2
+ echo " $0 [ )" >&2
+ exit 1
+fi
+
+if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then
+ echo "usage: $0 ][ " >&2
+ exit 1
+fi
+
+# --- Config
+allowunannotated=$(git config --bool hooks.allowunannotated)
+allowdeletebranch=$(git config --bool hooks.allowdeletebranch)
+denycreatebranch=$(git config --bool hooks.denycreatebranch)
+allowdeletetag=$(git config --bool hooks.allowdeletetag)
+allowmodifytag=$(git config --bool hooks.allowmodifytag)
+
+# check for no description
+projectdesc=$(sed -e '1q' "$GIT_DIR/description")
+case "$projectdesc" in
+"Unnamed repository"* | "")
+ echo "*** Project description file hasn't been set" >&2
+ exit 1
+ ;;
+esac
+
+# --- Check types
+# if $newrev is 0000...0000, it's a commit to delete a ref.
+zero="0000000000000000000000000000000000000000"
+if [ "$newrev" = "$zero" ]; then
+ newrev_type=delete
+else
+ newrev_type=$(git cat-file -t $newrev)
+fi
+
+case "$refname","$newrev_type" in
+ refs/tags/*,commit)
+ # un-annotated tag
+ short_refname=${refname##refs/tags/}
+ if [ "$allowunannotated" != "true" ]; then
+ echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2
+ echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2
+ exit 1
+ fi
+ ;;
+ refs/tags/*,delete)
+ # delete tag
+ if [ "$allowdeletetag" != "true" ]; then
+ echo "*** Deleting a tag is not allowed in this repository" >&2
+ exit 1
+ fi
+ ;;
+ refs/tags/*,tag)
+ # annotated tag
+ if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1
+ then
+ echo "*** Tag '$refname' already exists." >&2
+ echo "*** Modifying a tag is not allowed in this repository." >&2
+ exit 1
+ fi
+ ;;
+ refs/heads/*,commit)
+ # branch
+ if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then
+ echo "*** Creating a branch is not allowed in this repository" >&2
+ exit 1
+ fi
+ ;;
+ refs/heads/*,delete)
+ # delete branch
+ if [ "$allowdeletebranch" != "true" ]; then
+ echo "*** Deleting a branch is not allowed in this repository" >&2
+ exit 1
+ fi
+ ;;
+ refs/remotes/*,commit)
+ # tracking branch
+ ;;
+ refs/remotes/*,delete)
+ # delete tracking branch
+ if [ "$allowdeletebranch" != "true" ]; then
+ echo "*** Deleting a tracking branch is not allowed in this repository" >&2
+ exit 1
+ fi
+ ;;
+ *)
+ # Anything else (is there anything else?)
+ echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2
+ exit 1
+ ;;
+esac
+
+# --- Finished
+exit 0
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/index
Binary file falco/.git/index has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/info/exclude
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/info/exclude Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,6 @@
+# git ls-files --others --exclude-from=.git/info/exclude
+# Lines that start with '#' are comments.
+# For a project mostly in C, the following would be a good set of
+# exclude patterns (uncomment them if you want to use them):
+# *.[oa]
+# *~
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/logs/HEAD
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/logs/HEAD Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,20 @@
+0000000000000000000000000000000000000000 633c6fa70f199bc9f7215463c2d230be9c0c9a08 stefvanlieshout 1418722908 +0100 clone: from https://github.com/tgac-vumc/falco.git
+633c6fa70f199bc9f7215463c2d230be9c0c9a08 ffd46f76eed989746d7d00786397844f2176036d stefvanlieshout 1418811956 +0100 commit: Fixed vcf output (Numer to Number)
+ffd46f76eed989746d7d00786397844f2176036d 8ffa76915bed1abb8487adf0ca18e75742b244a2 stefvanlieshout 1418816283 +0100 commit: Changed several STDERR msgs to STDOUT and removed some printing
+8ffa76915bed1abb8487adf0ca18e75742b244a2 3c44a79e5d7d0ff4524746e39fc78dbfeae4d991 stefvanlieshout 1418818740 +0100 pull: Fast-forward
+3c44a79e5d7d0ff4524746e39fc78dbfeae4d991 48fe69a0f512583b1df0561b9b4d716953a91514 stefvanlieshout 1418818796 +0100 commit: Changed some more STDERR msgs to STDOUT
+48fe69a0f512583b1df0561b9b4d716953a91514 1052827d55c3533c17322f227ccc3725320f6e8f stefvanlieshout 1422373104 +0100 pull: Fast-forward
+1052827d55c3533c17322f227ccc3725320f6e8f b65bea4880f8250609838d0f7988378393ce98a0 stefvanlieshout 1422377687 +0100 commit: solved no samplename in vcf issue
+b65bea4880f8250609838d0f7988378393ce98a0 3ee7eebff84455cd50c4bcf0fe0184c5f0ccaaf0 stefvanlieshout 1424076759 +0100 pull: Fast-forward
+3ee7eebff84455cd50c4bcf0fe0184c5f0ccaaf0 f8a42149da198bb1ef28a97c04621171a190f881 stefvanlieshout 1424707915 +0100 commit: script to filter vcf from snpeff and report HTML
+f8a42149da198bb1ef28a97c04621171a190f881 f37f880273be83b46c5a1bc9dada2964b7414701 stefvanlieshout 1424707989 +0100 commit: filter file with refseq transcript ids
+f37f880273be83b46c5a1bc9dada2964b7414701 9c22be7ca24c0f7a09d7c3e3976e1e4f033176a9 stefvanlieshout 1424708026 +0100 commit: cosmis non-coding filter file
+9c22be7ca24c0f7a09d7c3e3976e1e4f033176a9 494ffb7683928c9ee8b364437aac09e36f2feaeb stefvanlieshout 1424708077 +0100 commit: dbsnp file
+494ffb7683928c9ee8b364437aac09e36f2feaeb 248f9449bda9e697e5ef6f229dba4e561828ba02 stefvanlieshout 1424708134 +0100 commit: removed some comments
+248f9449bda9e697e5ef6f229dba4e561828ba02 311abdac8ca3c942585ca28a0512792d624f5ef3 stefvanlieshout 1424708191 +0100 commit: filter sh replaced by filter-report perl
+311abdac8ca3c942585ca28a0512792d624f5ef3 35f78a4da68dde8ff310dc8b727908303fb7e267 stefvanlieshout 1424708196 +0100 commit: filter sh replaced by filter-report perl
+35f78a4da68dde8ff310dc8b727908303fb7e267 34ea0ba0f52f73ff9c84563735c00e5322dd2904 stefvanlieshout 1424708335 +0100 commit: mostly indented lines
+34ea0ba0f52f73ff9c84563735c00e5322dd2904 3938fbd5a366744dfbde14d795819c02cf0e234d stefvanlieshout 1424708441 +0100 commit: removed transcript filter for now
+3938fbd5a366744dfbde14d795819c02cf0e234d 0cd1ebf58da06ec3862ffa727733e5baa766fba0 stefvanlieshout 1424708605 +0100 commit: removed the overview INDEX html as input of caller is now one sample
+0cd1ebf58da06ec3862ffa727733e5baa766fba0 6a357ed9620fda6f1d8e7fe24f6285dc923cf62d stefvanlieshout 1424708935 +0100 commit: added filter-report info
+6a357ed9620fda6f1d8e7fe24f6285dc923cf62d 7951a7411611115aa8e84d3186682fd9371036c8 stefvanlieshout 1424709095 +0100 commit: cosmic coding filter file
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/logs/refs/heads/master
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/logs/refs/heads/master Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,20 @@
+0000000000000000000000000000000000000000 633c6fa70f199bc9f7215463c2d230be9c0c9a08 stefvanlieshout 1418722908 +0100 clone: from https://github.com/tgac-vumc/falco.git
+633c6fa70f199bc9f7215463c2d230be9c0c9a08 ffd46f76eed989746d7d00786397844f2176036d stefvanlieshout 1418811956 +0100 commit: Fixed vcf output (Numer to Number)
+ffd46f76eed989746d7d00786397844f2176036d 8ffa76915bed1abb8487adf0ca18e75742b244a2 stefvanlieshout 1418816283 +0100 commit: Changed several STDERR msgs to STDOUT and removed some printing
+8ffa76915bed1abb8487adf0ca18e75742b244a2 3c44a79e5d7d0ff4524746e39fc78dbfeae4d991 stefvanlieshout 1418818740 +0100 pull: Fast-forward
+3c44a79e5d7d0ff4524746e39fc78dbfeae4d991 48fe69a0f512583b1df0561b9b4d716953a91514 stefvanlieshout 1418818796 +0100 commit: Changed some more STDERR msgs to STDOUT
+48fe69a0f512583b1df0561b9b4d716953a91514 1052827d55c3533c17322f227ccc3725320f6e8f stefvanlieshout 1422373104 +0100 pull: Fast-forward
+1052827d55c3533c17322f227ccc3725320f6e8f b65bea4880f8250609838d0f7988378393ce98a0 stefvanlieshout 1422377687 +0100 commit: solved no samplename in vcf issue
+b65bea4880f8250609838d0f7988378393ce98a0 3ee7eebff84455cd50c4bcf0fe0184c5f0ccaaf0 stefvanlieshout 1424076759 +0100 pull: Fast-forward
+3ee7eebff84455cd50c4bcf0fe0184c5f0ccaaf0 f8a42149da198bb1ef28a97c04621171a190f881 stefvanlieshout 1424707915 +0100 commit: script to filter vcf from snpeff and report HTML
+f8a42149da198bb1ef28a97c04621171a190f881 f37f880273be83b46c5a1bc9dada2964b7414701 stefvanlieshout 1424707989 +0100 commit: filter file with refseq transcript ids
+f37f880273be83b46c5a1bc9dada2964b7414701 9c22be7ca24c0f7a09d7c3e3976e1e4f033176a9 stefvanlieshout 1424708026 +0100 commit: cosmis non-coding filter file
+9c22be7ca24c0f7a09d7c3e3976e1e4f033176a9 494ffb7683928c9ee8b364437aac09e36f2feaeb stefvanlieshout 1424708077 +0100 commit: dbsnp file
+494ffb7683928c9ee8b364437aac09e36f2feaeb 248f9449bda9e697e5ef6f229dba4e561828ba02 stefvanlieshout 1424708134 +0100 commit: removed some comments
+248f9449bda9e697e5ef6f229dba4e561828ba02 311abdac8ca3c942585ca28a0512792d624f5ef3 stefvanlieshout 1424708191 +0100 commit: filter sh replaced by filter-report perl
+311abdac8ca3c942585ca28a0512792d624f5ef3 35f78a4da68dde8ff310dc8b727908303fb7e267 stefvanlieshout 1424708196 +0100 commit: filter sh replaced by filter-report perl
+35f78a4da68dde8ff310dc8b727908303fb7e267 34ea0ba0f52f73ff9c84563735c00e5322dd2904 stefvanlieshout 1424708335 +0100 commit: mostly indented lines
+34ea0ba0f52f73ff9c84563735c00e5322dd2904 3938fbd5a366744dfbde14d795819c02cf0e234d stefvanlieshout 1424708441 +0100 commit: removed transcript filter for now
+3938fbd5a366744dfbde14d795819c02cf0e234d 0cd1ebf58da06ec3862ffa727733e5baa766fba0 stefvanlieshout 1424708605 +0100 commit: removed the overview INDEX html as input of caller is now one sample
+0cd1ebf58da06ec3862ffa727733e5baa766fba0 6a357ed9620fda6f1d8e7fe24f6285dc923cf62d stefvanlieshout 1424708935 +0100 commit: added filter-report info
+6a357ed9620fda6f1d8e7fe24f6285dc923cf62d 7951a7411611115aa8e84d3186682fd9371036c8 stefvanlieshout 1424709095 +0100 commit: cosmic coding filter file
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/logs/refs/remotes/origin/HEAD
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/logs/refs/remotes/origin/HEAD Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,1 @@
+0000000000000000000000000000000000000000 633c6fa70f199bc9f7215463c2d230be9c0c9a08 stefvanlieshout 1418722908 +0100 clone: from https://github.com/tgac-vumc/falco.git
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/logs/refs/remotes/origin/master
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/logs/refs/remotes/origin/master Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,9 @@
+633c6fa70f199bc9f7215463c2d230be9c0c9a08 ffd46f76eed989746d7d00786397844f2176036d stefvanlieshout 1418812456 +0100 update by push
+ffd46f76eed989746d7d00786397844f2176036d 8ffa76915bed1abb8487adf0ca18e75742b244a2 stefvanlieshout 1418816294 +0100 update by push
+8ffa76915bed1abb8487adf0ca18e75742b244a2 3c44a79e5d7d0ff4524746e39fc78dbfeae4d991 Stef van Lieshout 1418818740 +0100 pull: fast-forward
+3c44a79e5d7d0ff4524746e39fc78dbfeae4d991 48fe69a0f512583b1df0561b9b4d716953a91514 stefvanlieshout 1418818808 +0100 update by push
+48fe69a0f512583b1df0561b9b4d716953a91514 1052827d55c3533c17322f227ccc3725320f6e8f Stef van Lieshout 1422373104 +0100 pull: fast-forward
+1052827d55c3533c17322f227ccc3725320f6e8f b65bea4880f8250609838d0f7988378393ce98a0 stefvanlieshout 1422377721 +0100 update by push
+b65bea4880f8250609838d0f7988378393ce98a0 3ee7eebff84455cd50c4bcf0fe0184c5f0ccaaf0 Stef van Lieshout 1424076759 +0100 pull: fast-forward
+3ee7eebff84455cd50c4bcf0fe0184c5f0ccaaf0 6a357ed9620fda6f1d8e7fe24f6285dc923cf62d stefvanlieshout 1424708970 +0100 update by push
+6a357ed9620fda6f1d8e7fe24f6285dc923cf62d 7951a7411611115aa8e84d3186682fd9371036c8 stefvanlieshout 1424709106 +0100 update by push
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/01/0bed04c10da029960cb46e80a152f456516e53
Binary file falco/.git/objects/01/0bed04c10da029960cb46e80a152f456516e53 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/02/82aa19c469509b0288bfc0c0bde0137d5f894b
Binary file falco/.git/objects/02/82aa19c469509b0288bfc0c0bde0137d5f894b has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/02/beee0f60a83348d6566d3d20b46b6e320e911c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/objects/02/beee0f60a83348d6566d3d20b46b6e320e911c Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,3 @@
+xA
+1=sd"| cd~>KS4tѹ25pD6d
+R&FyY
<`'QdNKKrz{"p=VZ`ļhMoLEKg$j9XH
\ No newline at end of file
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/04/bce46f82e749e6a756bdf7fceacfc62d6ba03d
Binary file falco/.git/objects/04/bce46f82e749e6a756bdf7fceacfc62d6ba03d has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/07/174dfb5dea7454df17b00ef70810832c80daed
Binary file falco/.git/objects/07/174dfb5dea7454df17b00ef70810832c80daed has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/07/2bbcd05d2e0f4ff940a709f6659ff195db3de4
Binary file falco/.git/objects/07/2bbcd05d2e0f4ff940a709f6659ff195db3de4 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/07/9a5482ec4891d11f52953644770149eee9aaec
Binary file falco/.git/objects/07/9a5482ec4891d11f52953644770149eee9aaec has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/08/d453002fb83700b942be4980869d864ff66940
Binary file falco/.git/objects/08/d453002fb83700b942be4980869d864ff66940 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/09/1c61a70568cde40cc66d0b6f0cc94fc338a78a
Binary file falco/.git/objects/09/1c61a70568cde40cc66d0b6f0cc94fc338a78a has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/09/b20b6d3cc5ee51a12215330cad4a2d9d3d5285
Binary file falco/.git/objects/09/b20b6d3cc5ee51a12215330cad4a2d9d3d5285 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/0a/48502649f0fd9cd1d0eeaeb5736dc2bbb33612
Binary file falco/.git/objects/0a/48502649f0fd9cd1d0eeaeb5736dc2bbb33612 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/0c/d1ebf58da06ec3862ffa727733e5baa766fba0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/objects/0c/d1ebf58da06ec3862ffa727733e5baa766fba0 Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,2 @@
+xj0DS+R$Eiei$X2m̜jq-L."̬QQDBڮ4m-.&iI,Hipk;3l%S_}Oơry
+(Y1óBLWwпj;)X .8LzuC˰1Pu;lm#|g
\ No newline at end of file
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/0e/ef9d2d4f7573e0ebe521991e71d14cd25a84fb
Binary file falco/.git/objects/0e/ef9d2d4f7573e0ebe521991e71d14cd25a84fb has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/0f/7bed01c87924d1f52d028750d13d35aab75550
Binary file falco/.git/objects/0f/7bed01c87924d1f52d028750d13d35aab75550 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/10/52827d55c3533c17322f227ccc3725320f6e8f
Binary file falco/.git/objects/10/52827d55c3533c17322f227ccc3725320f6e8f has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/13/07a0c3b1f331853448b76fd9c850fcf96ff55c
Binary file falco/.git/objects/13/07a0c3b1f331853448b76fd9c850fcf96ff55c has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/13/1e7b1c723f8acc2fb9bbec2f901ae9c45bbf08
Binary file falco/.git/objects/13/1e7b1c723f8acc2fb9bbec2f901ae9c45bbf08 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/15/2a7aa171ae4efd42fd125884e4c9d4d4ee3433
Binary file falco/.git/objects/15/2a7aa171ae4efd42fd125884e4c9d4d4ee3433 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/1a/9d3ffd7ae77012280a9cbf2645d4a28392d25f
Binary file falco/.git/objects/1a/9d3ffd7ae77012280a9cbf2645d4a28392d25f has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/1b/2977bf1a819f7b512837fd5e616bdd9e6ec339
Binary file falco/.git/objects/1b/2977bf1a819f7b512837fd5e616bdd9e6ec339 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/1b/a52f840826405ccbac1a0d0ecfa361bfa23bbb
Binary file falco/.git/objects/1b/a52f840826405ccbac1a0d0ecfa361bfa23bbb has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/1b/e373b2a5067cd54f2410a448e8f5e3063043d7
Binary file falco/.git/objects/1b/e373b2a5067cd54f2410a448e8f5e3063043d7 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/1b/f8471c1f5cfea6d8a044a5ddaee78ab2fac0f2
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/objects/1b/f8471c1f5cfea6d8a044a5ddaee78ab2fac0f2 Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,1 @@
+xKn @3)+P[
$~{{Tm`}],F$4䲐?g6S(Bnv8ӕCVutl@J%8ZIUxskpq貯`h
pFkECOe&}࠾qs^h0^7c{ W
\ No newline at end of file
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/20/52c7676ef0d8db06095e8887830e9d6e23d787
Binary file falco/.git/objects/20/52c7676ef0d8db06095e8887830e9d6e23d787 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/21/065bf192025267a534052536c2020043b087de
Binary file falco/.git/objects/21/065bf192025267a534052536c2020043b087de has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/22/268c7068d89ca7bb617a94ce3e048d78271675
Binary file falco/.git/objects/22/268c7068d89ca7bb617a94ce3e048d78271675 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/22/6549d3626eeadbf83d42f8d41c4c4641167138
Binary file falco/.git/objects/22/6549d3626eeadbf83d42f8d41c4c4641167138 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/23/bf233bb9bb37875f600a2695fa02b88514049e
Binary file falco/.git/objects/23/bf233bb9bb37875f600a2695fa02b88514049e has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/24/1bda2100c557c4d812db54f3de43aa9da071d5
Binary file falco/.git/objects/24/1bda2100c557c4d812db54f3de43aa9da071d5 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/24/1d2c01fbf84f3500d15f722c09ef1ad3e63b7b
Binary file falco/.git/objects/24/1d2c01fbf84f3500d15f722c09ef1ad3e63b7b has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/24/8f9449bda9e697e5ef6f229dba4e561828ba02
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/objects/24/8f9449bda9e697e5ef6f229dba4e561828ba02 Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,2 @@
+x
+1E]+$d:-+2>n.{r-e0U<$iFHq]R#Z1zރHi9ƙ3M"RTtvk]uok:٤"`0zbأGt{"jO@E}4$Wf
\ No newline at end of file
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/25/c9b28a0e93bce2e99b4af1ba069748963dc161
Binary file falco/.git/objects/25/c9b28a0e93bce2e99b4af1ba069748963dc161 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/27/0642579b08c591b60a1e8f73280b1ba2971100
Binary file falco/.git/objects/27/0642579b08c591b60a1e8f73280b1ba2971100 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/29/9c9de4160a2ec3c99835b602e36e646039802d
Binary file falco/.git/objects/29/9c9de4160a2ec3c99835b602e36e646039802d has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/2a/7197e9a1c3becede1451b9d4bd1594aeec35c7
Binary file falco/.git/objects/2a/7197e9a1c3becede1451b9d4bd1594aeec35c7 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/2d/716a304373d4462d569e11125ee8cc71044e83
Binary file falco/.git/objects/2d/716a304373d4462d569e11125ee8cc71044e83 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/2e/f67e411ce54edd2aac73d0581b7c90f48eb7e3
Binary file falco/.git/objects/2e/f67e411ce54edd2aac73d0581b7c90f48eb7e3 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/31/1abdac8ca3c942585ca28a0512792d624f5ef3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/objects/31/1abdac8ca3c942585ca28a0512792d624f5ef3 Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,2 @@
+x
+0ayً
*dB-i|{ܺA{<%RgQ+4Dm1XPPz\\s$֩C$=4:'۸<:\~Vh3M\+(ATRwHg/CKr
yz^
\ No newline at end of file
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/31/c929929ded85ef1a8cbd0e4efcc57c65ee6341
Binary file falco/.git/objects/31/c929929ded85ef1a8cbd0e4efcc57c65ee6341 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/31/ca5a78f1da9c56d3e16c1de2d1f296220754f1
Binary file falco/.git/objects/31/ca5a78f1da9c56d3e16c1de2d1f296220754f1 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/33/df4c8d6f02e423d30f526ac9f63ab0e419cb02
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/objects/33/df4c8d6f02e423d30f526ac9f63ab0e419cb02 Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,2 @@
+xKN0YG3j;86DJbq8Zz*۶0FG9vY}!n>;UK]KDg8`|M1:!@J^̔Q;Z<~z[j%}__@[M>)ZxFp\|#ͫWO]g
CI+W
+Q
\ No newline at end of file
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/34/ea0ba0f52f73ff9c84563735c00e5322dd2904
Binary file falco/.git/objects/34/ea0ba0f52f73ff9c84563735c00e5322dd2904 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/35/578aa7ac8b6a10e22e2c0e2ece9adb4b5488a4
Binary file falco/.git/objects/35/578aa7ac8b6a10e22e2c0e2ece9adb4b5488a4 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/35/f78a4da68dde8ff310dc8b727908303fb7e267
Binary file falco/.git/objects/35/f78a4da68dde8ff310dc8b727908303fb7e267 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/39/38fbd5a366744dfbde14d795819c02cf0e234d
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/objects/39/38fbd5a366744dfbde14d795819c02cf0e234d Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,2 @@
+xAn @Ѭ9HƃU< Iz]v_<[j=fq4-@3)
+$H̃jCdr"KIsuz}|SO ڨni_v>K1N&LU7d(>J~dlۼ٪[%
\ No newline at end of file
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/3c/44a79e5d7d0ff4524746e39fc78dbfeae4d991
Binary file falco/.git/objects/3c/44a79e5d7d0ff4524746e39fc78dbfeae4d991 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/3e/e7eebff84455cd50c4bcf0fe0184c5f0ccaaf0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/objects/3e/e7eebff84455cd50c4bcf0fe0184c5f0ccaaf0 Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,1 @@
+x;N@D}6@,)'-;$@\^x]+o">+mXQO'mr`Be IIE4+rr-U2kU( &\}F_N
\ No newline at end of file
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/3f/8a9531aa38878f3ddade66f5299c601dc0cd5d
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/objects/3f/8a9531aa38878f3ddade66f5299c601dc0cd5d Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,4 @@
+xUTM1
+H:ǞgڱKYg7IBzB?I?mzY10;bfw4'sa-Au~zRE-~B_Eds#Y)[ks0kp'ԯ`x[q&v}&:mJsPw #QЅQ`x>3_q 31=H?̤66O- IQ «hUaX/+
+0z+`V譀1}YemT./NDz$Nf
=
+u\ۡl~0_Lw
\ No newline at end of file
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/40/32d53712d34357c5e23955a74d9fe13ccab13c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/objects/40/32d53712d34357c5e23955a74d9fe13ccab13c Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,2 @@
+xM
+ /5@)]9ѱ
Rs+t=:ԎacIl;.w,#4R[ÔBި,ieQNPpK:|~JX!r8jpEBXSv^G'
\ No newline at end of file
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/40/6d1feee7e925008e20d28e00d81041dfae7a8b
Binary file falco/.git/objects/40/6d1feee7e925008e20d28e00d81041dfae7a8b has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/41/331421db2c8f54d0e811c1f11eb4966ba33b1a
Binary file falco/.git/objects/41/331421db2c8f54d0e811c1f11eb4966ba33b1a has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/43/b62aef499a38b680964366e3297afa066ce3da
Binary file falco/.git/objects/43/b62aef499a38b680964366e3297afa066ce3da has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/44/87f6423b243a1a3b5093e8699f71e2b3feb99a
Binary file falco/.git/objects/44/87f6423b243a1a3b5093e8699f71e2b3feb99a has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/46/288b952060ad697328eab429059bc96cedac98
Binary file falco/.git/objects/46/288b952060ad697328eab429059bc96cedac98 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/48/5a297c3e4208bd3a08e87b557fb2a264c0ff33
Binary file falco/.git/objects/48/5a297c3e4208bd3a08e87b557fb2a264c0ff33 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/48/c6cb1b3c28b0754f927b0cd9ec4bdb82f50bc1
Binary file falco/.git/objects/48/c6cb1b3c28b0754f927b0cd9ec4bdb82f50bc1 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/48/fe69a0f512583b1df0561b9b4d716953a91514
Binary file falco/.git/objects/48/fe69a0f512583b1df0561b9b4d716953a91514 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/49/2c72a8e77efd30329721e2fe22ffd4aaaf05f2
Binary file falco/.git/objects/49/2c72a8e77efd30329721e2fe22ffd4aaaf05f2 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/49/4ffb7683928c9ee8b364437aac09e36f2feaeb
Binary file falco/.git/objects/49/4ffb7683928c9ee8b364437aac09e36f2feaeb has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/4d/5bdb6b8a2c15642b8c379b15dd563fb457493c
Binary file falco/.git/objects/4d/5bdb6b8a2c15642b8c379b15dd563fb457493c has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/4e/43f48cff53ecac889818f882f642219a295cad
Binary file falco/.git/objects/4e/43f48cff53ecac889818f882f642219a295cad has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/53/49974650abff11e2eb2c85ecd1c55376a3ecb3
Binary file falco/.git/objects/53/49974650abff11e2eb2c85ecd1c55376a3ecb3 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/54/31fc196c89151810285caf1cd53d028700a1a8
Binary file falco/.git/objects/54/31fc196c89151810285caf1cd53d028700a1a8 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/54/eca293d00b52d3a712a9aeb9b17a86029332f8
Binary file falco/.git/objects/54/eca293d00b52d3a712a9aeb9b17a86029332f8 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/55/cb85fb029ea3057617d61fe2e7c79160405a3a
Binary file falco/.git/objects/55/cb85fb029ea3057617d61fe2e7c79160405a3a has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/59/a8b425cb339dade718d40f11a9286306af74b7
Binary file falco/.git/objects/59/a8b425cb339dade718d40f11a9286306af74b7 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/59/ce9bf75a9e4ef33872010219eca28279054163
Binary file falco/.git/objects/59/ce9bf75a9e4ef33872010219eca28279054163 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/5d/bfe048f63d1b5c94dccddb565cfe5d99eb137a
Binary file falco/.git/objects/5d/bfe048f63d1b5c94dccddb565cfe5d99eb137a has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/5e/05e53eade879f4bd46f76782886626c1d981ee
Binary file falco/.git/objects/5e/05e53eade879f4bd46f76782886626c1d981ee has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/5f/52d0dad9ff204a9bd729aca444ab82ec0f78c3
Binary file falco/.git/objects/5f/52d0dad9ff204a9bd729aca444ab82ec0f78c3 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/60/088ee3c9c758408193224e15788bdbc827f06a
Binary file falco/.git/objects/60/088ee3c9c758408193224e15788bdbc827f06a has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/61/ba74cfded85c09fe03d3ee0c8a98ee621531d6
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/objects/61/ba74cfded85c09fe03d3ee0c8a98ee621531d6 Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,1 @@
+x];N1}юZ$n zmclED$zL0k|]FĕP;v6DseTupL]B#ik1HLIg蜟\yEn_瞖z}0Gx֨JiS:&\Bǥ
.]U̥~Nd2r
SK
\ No newline at end of file
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/63/3c6fa70f199bc9f7215463c2d230be9c0c9a08
Binary file falco/.git/objects/63/3c6fa70f199bc9f7215463c2d230be9c0c9a08 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/65/c82554b3bff3c8c7a16f15a03b7b660b9caffe
Binary file falco/.git/objects/65/c82554b3bff3c8c7a16f15a03b7b660b9caffe has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/67/d1b21d407a5a8ddd610e12d1f0c74560be1232
Binary file falco/.git/objects/67/d1b21d407a5a8ddd610e12d1f0c74560be1232 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/6a/357ed9620fda6f1d8e7fe24f6285dc923cf62d
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/objects/6a/357ed9620fda6f1d8e7fe24f6285dc923cf62d Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,2 @@
+xλn0@
+A=ȯP@f-2fzKcOC'3H̾(R]PgrqE1|(Xj&PscE)IEk1T<}<o&x}l"\kWߐָS2/-YY
\ No newline at end of file
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/6e/1daf9963f2d9aed47f98b884763f163703dc08
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/objects/6e/1daf9963f2d9aed47f98b884763f163703dc08 Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,2 @@
+xNM SSZV6SSZդ+fK1udJqsd=jn1VgcL#xw&3'xbj}5"pnmDOVXԦKɹyFoW[ٕ8\
f|7$Vэ\Z(Bх>ɻT%a2H<
+y!V$XFSr(|2ȳ߷#RoMr#=|8俻]߆Nh5CJ]/X
\ No newline at end of file
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/7a/c929fa2e9b39e4a292d823bec29cb6f11f7487
Binary file falco/.git/objects/7a/c929fa2e9b39e4a292d823bec29cb6f11f7487 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/7d/159be2ee41839deee7da286a7f10d20c873594
Binary file falco/.git/objects/7d/159be2ee41839deee7da286a7f10d20c873594 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/7d/50eae5d4081d1b41aa885a68e13d7246784652
Binary file falco/.git/objects/7d/50eae5d4081d1b41aa885a68e13d7246784652 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/7f/ade41547b7a2962f73728a90eecfe10770fe0e
Binary file falco/.git/objects/7f/ade41547b7a2962f73728a90eecfe10770fe0e has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/82/a100a6a988d61208b4c67db99b2c4171c6bb3e
Binary file falco/.git/objects/82/a100a6a988d61208b4c67db99b2c4171c6bb3e has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/83/bead353a7473a32521162224f9375a7d0e67b1
Binary file falco/.git/objects/83/bead353a7473a32521162224f9375a7d0e67b1 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/86/be6a3e78d8e8d93f1faca20dc0e7ffa2a6894d
Binary file falco/.git/objects/86/be6a3e78d8e8d93f1faca20dc0e7ffa2a6894d has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/89/5ce472e34024e070b4d34404560b87a4f162e4
Binary file falco/.git/objects/89/5ce472e34024e070b4d34404560b87a4f162e4 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/8a/4d53bb9452d0d87194ee7d0ba8838b6d8a06f6
Binary file falco/.git/objects/8a/4d53bb9452d0d87194ee7d0ba8838b6d8a06f6 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/8b/33780a2ae52a5e8eba8ce9f4013dadd90fecdb
Binary file falco/.git/objects/8b/33780a2ae52a5e8eba8ce9f4013dadd90fecdb has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/8c/6ba24bb61145e406566c278d783a884cdb7dc8
Binary file falco/.git/objects/8c/6ba24bb61145e406566c278d783a884cdb7dc8 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/8f/fa76915bed1abb8487adf0ca18e75742b244a2
Binary file falco/.git/objects/8f/fa76915bed1abb8487adf0ca18e75742b244a2 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/92/72f68e5270b7724642a1864d119833acd3e268
Binary file falco/.git/objects/92/72f68e5270b7724642a1864d119833acd3e268 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/94/469c81ffa7132eba0ec489b4bc74034b5da0a5
Binary file falco/.git/objects/94/469c81ffa7132eba0ec489b4bc74034b5da0a5 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/9a/4f6d8f9b2394f9e3853511311af51940313319
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/objects/9a/4f6d8f9b2394f9e3853511311af51940313319 Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,2 @@
+xAj0s+rIV$Ba둑d>?}BnMC5sYW0j+H!PQv
+dmRJYgTI:<:D?N!: ^UR*\R~uOS}~q&Fsj~vNpLݭt_(,ඐVw.sX% !uPϹNc
\ No newline at end of file
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/9b/ddaa1cef0519fc8a674826a696487e6c249095
Binary file falco/.git/objects/9b/ddaa1cef0519fc8a674826a696487e6c249095 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/9c/0b39f88b3af965e6a860e3c506e0cc23ad41d9
Binary file falco/.git/objects/9c/0b39f88b3af965e6a860e3c506e0cc23ad41d9 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/9c/22be7ca24c0f7a09d7c3e3976e1e4f033176a9
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/objects/9c/22be7ca24c0f7a09d7c3e3976e1e4f033176a9 Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,5 @@
+x P
PʖeEI
+B~G&d^לSeC_Pr z5d=4r-;zD
яC&ՠ45C2aZ
\ No newline at end of file
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/b6/956c781570c17a9d20b06f8c45b46d527f40f9
Binary file falco/.git/objects/b6/956c781570c17a9d20b06f8c45b46d527f40f9 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/b9/c94d6db9f1fbab74c33eb6a4c57f3085277d81
Binary file falco/.git/objects/b9/c94d6db9f1fbab74c33eb6a4c57f3085277d81 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/bb/09c8048e36e67c6de76de8fde8701e01126240
Binary file falco/.git/objects/bb/09c8048e36e67c6de76de8fde8701e01126240 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/bb/24bdb3c02e4c7af013a442cd1cf722d94fc450
Binary file falco/.git/objects/bb/24bdb3c02e4c7af013a442cd1cf722d94fc450 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/bb/40a52673a655c5bc0a592c9b5f7d67f011049d
Binary file falco/.git/objects/bb/40a52673a655c5bc0a592c9b5f7d67f011049d has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/bb/aa6d1400e36893c413016f82edf71132782a32
Binary file falco/.git/objects/bb/aa6d1400e36893c413016f82edf71132782a32 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/c1/1f313026436e7f1207013d8ab5d26d309f6c8b
Binary file falco/.git/objects/c1/1f313026436e7f1207013d8ab5d26d309f6c8b has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/c1/625a7ff82360c75277fe1a7735ea2976843ce9
Binary file falco/.git/objects/c1/625a7ff82360c75277fe1a7735ea2976843ce9 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/c1/a61087d077bda05dbb63fb477ce9250ed812dc
Binary file falco/.git/objects/c1/a61087d077bda05dbb63fb477ce9250ed812dc has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/c2/3f6e1228ca83d6ebcdc0d5bd738f220df0d92e
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/objects/c2/3f6e1228ca83d6ebcdc0d5bd738f220df0d92e Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,2 @@
+xS]k0WW칾b5=I(4/}:}pp)q,NY-o%%b#̬wj OgiSjf!M͠6#dɶ̛Bꊯݩvwr\
.߅9ȭHGxΎN5y'^}ɾ8XB/%CNFJmtF@M(W\}Ik8۾%~3%B<
j:QpXgY@97^ask|JQnnVhNc*ShgI&i6>B2-K~v
\ No newline at end of file
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/db/154789186014c48914c0bd658dc35efc3b18e2
Binary file falco/.git/objects/db/154789186014c48914c0bd658dc35efc3b18e2 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/db/29ee3a9e2c55321bc324ccfd5934155209e558
Binary file falco/.git/objects/db/29ee3a9e2c55321bc324ccfd5934155209e558 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/db/732946757da7ec18e4f577f3ada2700cd16383
Binary file falco/.git/objects/db/732946757da7ec18e4f577f3ada2700cd16383 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/db/cf3d07cd5d1bca36da80ae684e69198be360c1
Binary file falco/.git/objects/db/cf3d07cd5d1bca36da80ae684e69198be360c1 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/dc/0d37452213c4f0a333a0ee3c322fd0c77eb099
Binary file falco/.git/objects/dc/0d37452213c4f0a333a0ee3c322fd0c77eb099 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/dd/1a28dc117519e95e037e70244d708a4a5534be
Binary file falco/.git/objects/dd/1a28dc117519e95e037e70244d708a4a5534be has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/de/35b1c4a2469f0306fd67761d2d2eaac66a570e
Binary file falco/.git/objects/de/35b1c4a2469f0306fd67761d2d2eaac66a570e has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/de/e420c2e0fae88839e75c398b826555f991bf77
Binary file falco/.git/objects/de/e420c2e0fae88839e75c398b826555f991bf77 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/df/806fa70e57b32a29b6e9a8ea4c9f71d72a6b78
Binary file falco/.git/objects/df/806fa70e57b32a29b6e9a8ea4c9f71d72a6b78 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/e0/1f006ccd23309ba4b62ac5dda0814f05fe32ed
Binary file falco/.git/objects/e0/1f006ccd23309ba4b62ac5dda0814f05fe32ed has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/e2/24764fb6c8d5c65d0599a1c7661fb62c8f8b81
Binary file falco/.git/objects/e2/24764fb6c8d5c65d0599a1c7661fb62c8f8b81 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/e2/d57a6d19ce79f652c9fa7b616c222827ff5334
Binary file falco/.git/objects/e2/d57a6d19ce79f652c9fa7b616c222827ff5334 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/e3/7402e617af0b98e46132e62f079f80ec0488b7
Binary file falco/.git/objects/e3/7402e617af0b98e46132e62f079f80ec0488b7 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/e3/74d8f4907ea97abd627f45773414d2fd4b8ba4
Binary file falco/.git/objects/e3/74d8f4907ea97abd627f45773414d2fd4b8ba4 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/e3/c28cded17024e2f2759a1e05090a4174ac4232
Binary file falco/.git/objects/e3/c28cded17024e2f2759a1e05090a4174ac4232 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/e5/d948b4de7cda5ba885f7eed0ab708f5968f61f
Binary file falco/.git/objects/e5/d948b4de7cda5ba885f7eed0ab708f5968f61f has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/e6/d26ec10b8e96f8bb0f00de067c6e5308cdc28f
Binary file falco/.git/objects/e6/d26ec10b8e96f8bb0f00de067c6e5308cdc28f has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/ea/c2694e66ee0f303690459ef09de81e08749d28
Binary file falco/.git/objects/ea/c2694e66ee0f303690459ef09de81e08749d28 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/eb/d967f7f14ac17899658bbdeeb7e27070da6918
Binary file falco/.git/objects/eb/d967f7f14ac17899658bbdeeb7e27070da6918 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/eb/fe8c7b135ff28773fda8939772ec7976e327f6
Binary file falco/.git/objects/eb/fe8c7b135ff28773fda8939772ec7976e327f6 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/ed/8c0b8eeb86af1257fe8605348f4e901c27b987
Binary file falco/.git/objects/ed/8c0b8eeb86af1257fe8605348f4e901c27b987 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/ee/10caf228ea7fd9e0f1b205802c1ff4145f74a1
Binary file falco/.git/objects/ee/10caf228ea7fd9e0f1b205802c1ff4145f74a1 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/ee/88347635007f1798d8a03cf8a1339907dc4ba8
Binary file falco/.git/objects/ee/88347635007f1798d8a03cf8a1339907dc4ba8 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/f1/0f2ae97f584a06e8c9af1443977a3bc683e4a2
Binary file falco/.git/objects/f1/0f2ae97f584a06e8c9af1443977a3bc683e4a2 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/f2/379fe438939b0162f54ffe7e117da72b68a12d
Binary file falco/.git/objects/f2/379fe438939b0162f54ffe7e117da72b68a12d has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/f2/eae04fecbd5ab83619287f081a5fe12b7fd882
Binary file falco/.git/objects/f2/eae04fecbd5ab83619287f081a5fe12b7fd882 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/f2/f83ee76c269e9f7a0c69502dbf887b453e7b99
Binary file falco/.git/objects/f2/f83ee76c269e9f7a0c69502dbf887b453e7b99 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/f3/7f880273be83b46c5a1bc9dada2964b7414701
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/objects/f3/7f880273be83b46c5a1bc9dada2964b7414701 Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,3 @@
+xKj1)˭i\Ec˴?[~:YfՃWT>
+,B4r"bƜ=ݥnPP@JE0
(?'5Ft0Lkӱ?Ze&m} b)&x˿9
+ftC?#v7heo[
\ No newline at end of file
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/f8/a42149da198bb1ef28a97c04621171a190f881
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/objects/f8/a42149da198bb1ef28a97c04621171a190f881 Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,3 @@
+x=n!@ԜbzK@..H˲ϟ2mW|z[
+>'qY%E,X%'o0>{Ýw91"9-
+[EDb
LeyU~W8 oSY+CkwWߐ4ꡠn?ds?Xpǻ.`
\ No newline at end of file
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/fb/6597fc3190d5689e8f1136e6896f02df1aca96
Binary file falco/.git/objects/fb/6597fc3190d5689e8f1136e6896f02df1aca96 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/fd/5ee2b183c668b1d54ccfc6b9052d942ec159af
Binary file falco/.git/objects/fd/5ee2b183c668b1d54ccfc6b9052d942ec159af has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/fd/780b14263ded14aa7bbb863b927d41102f5fe6
Binary file falco/.git/objects/fd/780b14263ded14aa7bbb863b927d41102f5fe6 has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/.git/objects/ff/d46f76eed989746d7d00786397844f2176036d
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/.git/objects/ff/d46f76eed989746d7d00786397844f2176036d Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,1 @@
+xλj1z)aZW)^fWkY\uw8skS!T*+B)y"DLsH-rQm΅18HfLm catalog of each assayed bp
- *.qc2.ann.txt -> catalog of transitions
@@ -19,6 +17,17 @@
example:
-falco --bam input.bam --output outputBase --ref [hg19.fa]
+OUTBASE="HCT116-TEST"
+
+## variant calling
+falco --bam data/HCT-116/HCT116.bam --output $OUTBASE --ref genome.fa
+
+file1=$OUTBASE".qc.ann.qual.txt"
+file2=$OUTBASE".qc2.ann.txt"
+file3=$OUTBASE".qc.targets.txt"
+file4=$OUTBASE".res.filtered.tsv"
+
+## variant filtering and reporting
+falco-filter-report --vcf snpeff.vcf --output $OUTBASE --qc_ann_qual_txt $file1 --qc2_ann_txt $file2 --qc_targets_txt $file3 --res_filtered_tsv $file4
diff -r e7de191375e6 -r 73eda23fb8fd falco/bin/falco
--- a/falco/bin/falco Thu Jan 08 06:18:04 2015 -0500
+++ b/falco/bin/falco Wed Feb 25 08:50:56 2015 -0500
@@ -50,11 +50,6 @@
exit 1;
}
-# perl perAmpliconAnalysis
-# R addQual.R
-# perl qcFilt
-# perl qc2vcf
-
print STDOUT localtime() . " [$$] $perAmpliconAnalysis $bam $ref $manifest $base $samtools\n";
system("$perAmpliconAnalysis $bam $ref $manifest $base $samtools");
diff -r e7de191375e6 -r 73eda23fb8fd falco/bin/falco-filter-report
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/bin/falco-filter-report Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,94 @@
+#!/usr/bin/perl
+use strict;
+use Cwd 'abs_path';
+use Getopt::Long;
+use File::Basename;
+
+my $absPath = abs_path($0);
+my $dir = dirname($absPath);
+my $lib = "$dir/../lib/";
+
+my $vcf2tsv = "$lib/perl/vcf2tsv.pl";
+my $spliteff = "$lib/perl/splitEff.pl";
+my $filter = "$lib/perl/filter.pl";
+my $plotPng = "$lib/R/plotsPng.R";
+my $mkReport = "$lib/perl/mkHtmlReport.pl";
+
+my $locifilt = "$dir/../ref/filters/filter.tsv";
+my $manifest = "$dir/../ref/TSACP/TruSeq_Amplicon_Cancer_Panel_Manifest_AFP1_PN15032433.txt";
+
+my $canonicals = "$dir/../ref/TSACP/canonicals.tsv";
+my $clinvar = "$dir/../ref/filters/clinvar_00-latest.f.vcf";
+my $cosmic = "$dir/../ref/filters/CosmicCodingMuts_v64_26032013_noLimit_wgs.f.vcf";
+my $cosmicNC = "$dir/../ref/filters/CosmicNonCodingVariants_v64_26032013_noLimit_wgs.f.vcf";
+
+my $base = undef;
+my $vcf = undef;
+my $vcfOther = undef;
+my $noFilt = undef;
+my $noPlot = undef;
+
+my $qc_ann_qual_txt = undef;
+my $qc2_ann_txt = undef
+my $qc_targets_txt = undef;
+
+GetOptions (
+ "vcf=s" => \$vcf,
+ "vcfOther=s" => \$vcfOther,
+ "output=s" => \$base,
+ "canonicals=s" => \$canonicals,
+ "clinvar=s" => \$clinvar,
+ "cosmic=s" => \$cosmic,
+ "cosmicNC=s" => \$cosmicNC,
+ "noFilt" => \$noFilt,
+ "noPlot" => \$noPlot,
+ "qc_ann_qual_txt=s" => \$qc_ann_qual_txt,
+ "qc2_ann_txt=s" => \$qc2_ann_txt,
+ "qc_targets_txt=s" => \$qc_targets_txt,
+)
+or die("Error in command line arguments\n");
+
+## sanity checks
+die( "No base name provided [-output]\n" ) unless defined($base) and $base ne '';
+die( "No VCF file provided [-vcf]\n" ) unless defined($vcf) and -f $vcf;
+die( "Missing input [-qc_ann_qual_txt]\n" ) unless defined($qc_ann_qual_txt) and -f $qc_ann_qual_txt;
+die( "Missing input [-qc2_ann_txt]\n" ) unless defined($qc2_ann_txt) and -f $qc2_ann_txt;
+die( "Missing input [-qc_targets_txt]\n" ) unless defined($qc_targets_txt) and -f $qc_targets_txt;
+die( "Required file does not exists [$canonicals]\n" ) unless -f $canonicals;
+die( "Required file does not exists [$clinvar]\n" ) unless -f $clinvar;
+die( "Required file does not exists [$cosmic]\n" ) unless -f $cosmic;
+die( "Required file does not exists [$cosmicNC]\n" ) unless -f $cosmicNC;
+
+
+## Rscript check
+my $rscript = `which Rscript`;
+chomp $rscript;
+if ($rscript !~ /Rscript$/) {
+ print STDERR "No Rscript present in PATH\n";
+ exit 1;
+}
+
+## FILTERING
+print STDOUT localtime() . " [$$] converting vcf to tsv\n";
+system( "$vcf2tsv $vcf > $base\.tsv" );
+
+print STDOUT localtime() . " [$$] splitting vcf columns\n";
+system( "$spliteff $base\.tsv Falco >> $base\.res\.tsv" );
+
+if ( defined($vcfOther) ){
+ print STDOUT localtime() . " [$$] converting vcf to tsv\n";
+ system( "$vcf2tsv $vcf > $base\.Other\.tsv" );
+ print STDOUT localtime() . " [$$] splitting vcf columns\n";
+ system( "$spliteff $base\.Other\.tsv Other >> $base\.res\.tsv" );
+}
+
+print STDOUT localtime() . " [$$] filtering data\n";
+system( "$filter $base\.res\.tsv $canonicals $clinvar $cosmic $cosmicNC > $base\.res\.filtered\.tsv" );
+
+## PLOTTING
+print STDOUT localtime() . " [$$] Creating plots\n";
+system( "Rscript $plotPng $qc_ann_qual_txt $qc2_ann_txt $qc_targets_txt $base\.res\.filtered\.tsv $clinvar $locifilt $base" );
+
+## REPORTING
+print STDOUT localtime() . " [$$] Creating HTML report\n";
+system( "perl $mkReport" );
diff -r e7de191375e6 -r 73eda23fb8fd falco/data/HCT-116/HCT116.bam
Binary file falco/data/HCT-116/HCT116.bam has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/data/HCT-116/HCT116.bam.bai
Binary file falco/data/HCT-116/HCT116.bam.bai has changed
diff -r e7de191375e6 -r 73eda23fb8fd falco/lib/R/plotsPng.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/lib/R/plotsPng.R Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,504 @@
+#!/usr/bin/Rscript
+
+args <- commandArgs(T)
+
+print(args[1]) # qc.ann.qual.txt
+print(args[2]) # qc2.ann.qtxt
+print(args[3]) # qc.targets.txt
+print(args[4]) # res.txt (unfiltered)
+print(args[5]) # clinvar
+print(args[6]) # lociFilt
+print(args[7]) # basename
+options(warn=1)
+print(paste("Reading", args[1], sep=" "));
+read.delim(args[1], header=T, stringsAsFactors=F) -> d
+print(paste("Reading", args[2], sep=" "));
+read.delim(args[2], header=T, stringsAsFactors=F) -> d2
+print(paste("Reading", args[3], sep=" "));
+read.delim(args[3], header=T, stringsAsFactors=F) -> qc
+print(paste("Reading", args[4], sep=" "));
+read.delim(args[4], header=T, stringsAsFactors=F, row.names=NULL) -> res
+print(paste("Reading", args[5], sep=" "));
+## clinvar is a VCF with "##" header lines to skip
+headerLineCount <- length( grep('^##', readLines(args[5])) )
+read.delim(args[5], header=T, stringsAsFactors=F, skip=headerLineCount) -> dclin
+print(paste("Reading", args[6], sep=" "));
+read.delim(args[6], header=F, stringsAsFactors=F) -> lociFilt
+base <- args[7]
+
+# Error rate per cycle
+# VAF distribution
+# varDepth distribution ?
+# Print coverage plots per amplicon
+
+tmpCP <- paste(d$X.chr, d$pos, sep=":")
+tmpClin <- paste(paste("chr", dclin[,1], sep=""), dclin[,2], sep=":")
+tmpSnp <- paste(paste("chr", lociFilt[,1], sep=""), lociFilt[,2], sep=":")
+
+inClin <- tmpCP %in% tmpClin
+
+inSnp <- tmpCP %in% tmpSnp
+
+dir.create(base)
+setwd(base)
+#unique(unlist(strsplit(d$V3, "\\|"))) -> targets
+targets <- qc[,1]
+if (1) {
+ print("Plotting variant heatmap")
+ # Including off targets increases the amplicon length set at median amplicon length + 10%.
+ median(qc$end - qc$start) -> maxAmpLn
+ maxAmpLn <- ceiling(1.2 * maxAmpLn)
+ print(maxAmpLn)
+ ampHeatF <- matrix(ncol=maxAmpLn, nrow=nrow(qc))
+ ampHeatR <- matrix(ncol=maxAmpLn, nrow=nrow(qc))
+ #dPos <- paste(d$chr, d$pos, sep=":")
+ #errPos <- paste(dclin$chr, dclin$pos, sep=":")
+ #dPosClin <- dPos %in% errPos
+
+ dPosClin <- !inClin & !inSnp
+
+ for (i in 1:nrow(qc)) {
+ d$pos %in% qc$start[i]:qc$end[i] -> sel
+ poss <- d$pos[sel & !dPosClin] - qc$start[i] + 1
+ poss <- poss[poss <= maxAmpLn]
+ ampHeatF[i, poss] <- d$nVar[sel & !dPosClin] + d$nN[sel & !dPosClin]
+ ampHeatR[i, poss] <- rev(d$nVar[sel & !dPosClin] + d$nN[sel & !dPosClin])
+ }
+ png(paste(base,"heat","png", sep="."), width=960, height=480)
+ par(mar=c(4,4,4,2) + .1)
+
+ ampHeatF[is.na(ampHeatF)] <- 0
+ ampHeatR[is.na(ampHeatR)] <- 0
+ layout(matrix(1:2, nrow=2))
+ maxN <- quantile(ampHeatF, .99)
+ #heatmap(ampHeat)
+ boxplot(ampHeatF, ylim=c(0, maxN), pch=20, cex=.4, main="Non reference counts R1")
+ rect(150, 0, ncol(ampHeatF), maxN, col="#00000040")
+ boxplot(ampHeatR, ylim=c(0, maxN), pch=20, cex=.4, main="Non reference counts R2")
+ rect(150, 0, ncol(ampHeatR), maxN, col="#00000040")
+ dev.off()
+
+ #d[,7]/d[,4] * 100 -> d$pctREF
+ #d[,8]/d[,4] * 100 -> d$pctVAR
+ d$nRef/d$dp * 100 -> d$pctREF
+ d$nVar/d$dp * 100 -> d$pctVAR
+ d$vaf <- d$nVar / (d$nVar + d$nRef) * 100
+ print("Plotting ref frequencies")
+ png(paste(base,"raf","png", sep="."), width=480, height=480)
+ dref <- density(d$pctREF[!dPosClin])
+ #plot(dref, ylim=range(dref$y[dref$x < 80] ))
+ hist(d$pctREF[!dPosClin], breaks=100, ylim=c(0, 30), col="#00000040", border=NA)
+ dev.off()
+
+ print("Plotting var frequencies")
+ png(paste(base,"vaf","png", sep="."), width=480, height=480)
+ dvar <- density(d$pctVAR[!dPosClin])
+ #plot(dvar, ylim=range(dvar$y[dvar$x > 20] ))
+ hist(d$pctVAR[!dPosClin], breaks=100, ylim=c(0, 30), col="#00000040", border=NA)
+ dev.off()
+
+ # Set vaf cutoff
+ #q95 <- quantile(d$qScore, .95, na.rm=T)
+ q95 <- 20
+ vs95 <- sd(d$pctVAR[!dPosClin & d$qScore < q95], na.rm=T)
+ v95 <- mean(d$pctVAR[!dPosClin & d$qScore < q95], na.rm=T) + vs95 * 3
+
+ nCall <- sum((d$pctVAR > v95) & d$qScore > q95 & !inSnp, na.rm=T)
+ print(nCall)
+ print("Plotting vaf vs q")
+ png(paste(base,"snv-q","png", sep="."), width=480, height=480)
+ plot(d$qScore, d$pctVAR, pch=20, cex=.5, main=paste("q:", q95, "-", "v:", v95, "--", "s:", nCall, sep=" "))
+ abline(h=c(1,5), v=c(20,13), lty=2)
+ abline(v=q95, h=v95, lty=3, col=2)
+ points(d$qScore[d$dp < 100], d$pctVAR[d$dp < 100], pch=20, cex=1.2, col=2)
+ points(d$qScore[d$nVar < 10], d$pctVAR[d$nVar < 10], pch=20, cex=1, col=4)
+ legend(30,80, c("pass", "dp < 100", "nVar < 10"), col=c(1,2,4), pch=20)
+ dev.off()
+
+ print("Plotting vaf vs q zoomed")
+ png(paste(base,"snv-q-zoom","png", sep="."), width=480, height=480)
+ plot(d$qScore, d$pctVAR, pch=20, cex=.5, xlim=c(0, 40),ylim=c(0,10))
+ abline(h=c(1,5), v=c(20,13), lty=2)
+ abline(v=q95, h=v95, lty=3, col=2)
+ points(d$qScore[d$dp < 100], d$pctVAR[d$dp < 100], pch=20, cex=1.2, col=2)
+ points(d$qScore[d$nVar < 10], d$pctVAR[d$nVar < 10], pch=20, cex=1, col=4)
+ legend("topright", c("pass", "dp < 100", "nVar < 10"), col=c(1,2,4), pch=20)
+ dev.off()
+
+ print("Plotting ins vs q")
+ d$vafI <- 0
+ d$occI <- 0
+ if (sum(d$ins != ".") > 0) {
+ png(paste(base,"ins-q","png", sep="."), width=480, height=480)
+ data.frame(matrix(unlist(strsplit(unlist(strsplit(as.character(d$ins[d$ins != "."]), "\\|")), ":")), ncol=2, byrow=T)) -> insDat
+ colnames(insDat) <- c("seq", "occ")
+ insDat$seq <- as.character(insDat$seq)
+ insDat$occ <- as.numeric(as.vector(insDat$occ))
+ nchar(insDat$seq) -> insDat$ln
+ d$occI[d$ins != "."] <- insDat$occ
+ d$vafI[d$ins != "."] <- insDat$occ / d$nRef[d$ins != "."]
+ d$qScoreI[d$qScoreI > 1000] <- 1000
+ plot(d$qScoreI, d$occI, pch=20, cex=1)
+ abline(h=c(10), v=c(20,13), lty=2)
+ # dp 500
+ sel <- d$dp < 100
+ points(d$qScoreI[sel], d$occI[sel], pch=20, cex=1.2, col=2)
+ # nVar 10
+ #sel <- d$occI < 10
+ #points(d$qScoreI[sel], d$occI[sel], pch=20, cex=1, col=3)
+ # vaf < 0.01
+ sel <- d$vafI < 0.01
+ points(d$qScoreI[sel], d$occI[sel], pch=20, cex=1, col=4)
+ legend("topleft", c("pass", "dp < 100", "vaf < 0.01"), col=c(1,2,4), pch=20)
+ dev.off()
+ }
+
+ print("Plotting del vs q")
+ d$vafD <- 0
+ d$occD <- 0
+ if (sum(d$del != "." ) > 0) {
+ png(paste(base,"del-q","png", sep="."), width=480, height=480)
+ data.frame(matrix(unlist(strsplit(unlist(strsplit(as.character(d$del[d$del != "."]), "\\|")), ":")), ncol=2, byrow=T)) -> delDat
+ colnames(delDat) <- c("seq", "occ")
+ delDat$seq <- as.character(delDat$seq)
+ delDat$occ <- as.numeric(as.vector(delDat$occ))
+ nchar(delDat$seq) -> delDat$ln
+ d$occD[d$del != "."] <- delDat$occ
+ d$vafD[d$del != "."] <- d$occD[d$del != "."] / d$nRef[d$del != "."]
+ d$qScoreD[d$qScoreD > 1000] <- 1000
+ #hist(d$qScoreD, breaks=1000, ylim=c(0,100))
+ #print(sum(d$qScoreD > 20))
+ #Sys.sleep(1)
+ plot(d$qScoreD, d$occD, pch=20, cex=1)
+ abline(h=c(10), v=c(20,13), lty=2)
+ # dp 500
+ sel <- d$dp < 100
+ points(d$qScoreD[sel], d$occD[sel], pch=20, cex=1.2, col=2)
+ # nVar 10
+ #sel <- d$occD < 10
+ #points(d$qScoreD[sel], d$occD[sel], pch=20, cex=1, col=3)
+ # vaf < 0.01
+ sel <- d$vafD < 0.01
+ points(d$qScoreD[sel], d$occD[sel], pch=20, cex=1, col=4)
+ legend("topleft", c("pass", "dp < 100", "vaf < 0.01"), col=c(1,2,4), pch=20)
+ dev.off()
+ }
+
+ sub("chr", "", qc$chr) -> qc$chrn
+ ampOrd <- order(qc$chrn, qc$start)
+
+ print("Plotting amplicon depths")
+ png(paste(base,"amp-dp","png", sep="."), width=960, height=480)
+ barplot(qc$depth[ampOrd])
+ abline(h=100, lty=2)
+ totRead <- sum(qc$depth, na.rm=T)
+ legend("topright", paste("Total read count: ", totRead, sep=""))
+ dev.off()
+}
+
+res$POS <- as.numeric(as.vector(res$POS))
+d$pos <- as.numeric(as.vector(d$pos))
+
+grepl("a", d$ntRef, ignore.case=T) -> Asel
+grepl("c", d$ntRef, ignore.case=T) -> Csel
+grepl("g", d$ntRef, ignore.case=T) -> Gsel
+grepl("t", d$ntRef, ignore.case=T) -> Tsel
+cntr <- 0
+
+biasTable <- data.frame(matrix(NA, nrow=length(targets), ncol=12), row.names=targets)
+colnames(biasTable) <- c("AC", "AG", "AT", "CA", "CG", "CT", "GA", "GC", "GT", "TA", "TC", "TG")
+
+for (i in targets) {
+ sel <- grepl(i, d$amp)
+ print(i)
+ for (c in unique(d[sel,1])) {
+ csel <- d[,1] == c
+ print(c)
+ reg <- paste(range(d[sel & csel,2]), collapse="-", sep="-")
+ creg <- paste(c, reg, sep=":")
+
+ qcsel <- qc[,1] == i
+ allsel <- sel & csel
+ clinSel <- dclin$amp == i
+ clinPos <- dclin$pos[clinSel]
+# inClin <- d$pos %in% clinPos
+
+ #dels <- (d[,15] != ".") & allsel
+ #ins <- (d[,14] != ".") & sel
+ # print(reg)
+ # print(creg)
+
+ # Select annotations
+ # calculate quantiles and plot them
+# quantile(d$pctVAR[sel & csel], c(.75,.90,.95,.99), na.rm=T) -> cutoffs
+ tmp <- d[sel & csel,]
+ #dels <- tmp[,15] != "."
+ #ins <- tmp[,14] != "."
+ dels <- allsel & d$del != "."
+ ins <- allsel & d$ins != "."
+
+ resTmp <- res[(res$POS >= min(tmp[,2])) & (res$POS <= max(tmp[,2])) & (res$X.CHROM == c),]
+ #resSel <- res$TARGET == i
+ png(paste(base, i, "cov", "png", sep="."), width=960, height=480)
+
+ xvec <- c(0, rep(1:(sum(allsel) - 1), each=2), sum(allsel))
+ layout(matrix(1:2, ncol=1), heights=c(2,1))
+ par(mar=c(0, 4, 4, 7) + .1, xaxt="n")
+ print("Cov")
+ plot(NULL, type="n", main=i, xlab="Position", ylab="Depth", xlim=range(d$pos[allsel]), ylim=range(0, d$dp[allsel]))
+ xvec <- d$pos[allsel]
+ yvec <- d$dp[allsel]
+
+ polygon(rep(c(xvec, max(xvec) + 1), each=2) - .5, c(0, rep(yvec, each=2), 0), col="#00000010", border=1)
+ polygon(rep(c(xvec, max(xvec) + 1), each=2) - .5, c(0, rep(rowSums(d[allsel, 7:8]), each=2), 0), col="#00000010")
+# polygon(rep(c(xvec, max(xvec) + 1), each=2) - .5, c(0, rep(d$nVar[allsel], each=2), 0), col=2)
+ varCol <- rep(2, sum(allsel))
+ varCol[grepl("^a", d$ntVar[allsel], ignore.case=T)] <- "green"
+ varCol[grepl("^c", d$ntVar[allsel], ignore.case=T)] <- "blue"
+ varCol[grepl("^g", d$ntVar[allsel], ignore.case=T)] <- "black"
+ varCol[grepl("^t", d$ntVar[allsel], ignore.case=T)] <- "red"
+ rect(xvec-.5,d$nVar[allsel],xvec+.5,0, col=varCol)
+
+
+ ampMax <- max(d[allsel,4])
+ #abline(v=resTmp$POS, lty=2, col=2)
+ #delMark <- list()
+ #insMark <- list()
+
+ for (idx in which(dels)) {
+ matrix(unlist(strsplit(as.character(as.vector(d[idx,15])), "[:|]")), ncol=2, byrow=T) -> delDat
+ nchar(delDat[,1]) -> lngts
+ dpths <- as.numeric(delDat[,2])
+ x1 <- d[idx,2] + .5
+ x2 <- x1 + lngts - 1
+ if (x2 > max(d$pos[allsel])) {
+ next
+ }
+ # delMark[[length(delMark) + 1]] <- c(x1, x2)
+ rect(x1, ampMax - dpths , x2, ampMax, col="#00000040")
+ }
+
+ for (idx in which(ins)) {
+ matrix(unlist(strsplit(as.character(as.vector(d[idx,14])), "[:|]")), ncol=2, byrow=T) -> insDat
+ nchar(insDat[,1]) -> lngts
+ dpths <- as.numeric(insDat[,2])
+ x1 <- d$pos[idx] + 1
+ # insMark[length(insMark) + 1] <- x1
+ for (ii in 1:ncol(insDat)) {
+ polygon(
+ c(x1, x1 - (.5 * lngts[ii]), x1 + (.5 * lngts[ii])),
+ c(ampMax, ampMax - dpths[ii], ampMax - dpths[ii]),
+ , col="#00000040")
+ }
+ }
+ par(xpd=NA)
+ legend(max(d$pos[allsel]) + sum(allsel) * 0.05, ampMax, legend=c("Filtered nt", "Ref nt", "Non-ref nt"), col=c("#00000040", "#00000080", "red"), pch=15)
+ legend(max(d$pos[allsel]) + sum(allsel) * 0.05, 0, legend=c("A", "C", "G", "T"), col=c("green", "blue", "black", "red"), pch=15)
+ par(xpd=F)
+ par(mar=c(5, 4, 0, 7) + .1, xaxt="s")
+ plot(NULL, type="n", xlab="Position", ylab=NA, xlim=range(d$pos[allsel]), ylim=c(0,4.5), yaxt="n")
+ axis(side=2, at=1:4, labels=c("ins", "del", "snv", "ref"), las=2)
+ abline(h=1:4, col="#00000040")
+ sres <- nchar(as.character(resTmp$REF)) == nchar(as.character(resTmp$ALT))
+ dres <- nchar(resTmp$REF) > nchar(resTmp$ALT)
+ ires <- nchar(resTmp$REF) < nchar(resTmp$ALT)
+
+ resTmp$marks <- rep(3.4, nrow(resTmp))
+
+ resTmp$cols <- rep("#00000040", nrow(resTmp))
+ resTmp$cols[grepl("^a", resTmp$ALT, ignore.case=T) & sres] <- "green"
+ resTmp$cols[grepl("^c", resTmp$ALT, ignore.case=T) & sres] <- "blue"
+ resTmp$cols[grepl("^g", resTmp$ALT, ignore.case=T) & sres] <- "black"
+ resTmp$cols[grepl("^t", resTmp$ALT, ignore.case=T) & sres] <- "red"
+
+ #resTmp$cols[dres] <- 2
+ #resTmp$cols[ires] <- 2
+ resTmp$marks[dres] <- 2.4
+ resTmp$marks[ires] <- 1.4
+ resTmp$markP1 <- resTmp$POS -.5
+ resTmp$markP2 <- resTmp$POS +.5
+ resTmp$markP1[dres] <- resTmp$POS[dres] +.5
+ resTmp$markP2[dres] <- resTmp$POS[dres] +.5 + nchar(resTmp$REF[dres]) - 1
+ resTmp$markP1[ires] <- resTmp$POS[ires] +.5
+ resTmp$markP2[ires] <- resTmp$POS[ires] +.5 + 1
+ ntCol <- rep(1, sum(allsel))
+ ntCol[grepl("a", d$ntRef[allsel], ignore.case=T)] <- "green"
+ ntCol[grepl("c", d$ntRef[allsel], ignore.case=T)] <- "blue"
+ ntCol[grepl("g", d$ntRef[allsel], ignore.case=T)] <- "black"
+ ntCol[grepl("t", d$ntRef[allsel], ignore.case=T)] <- "red"
+
+ rect(d$pos[allsel] -.5, 4.4, d$pos[allsel] +.5, 3.6, col=ntCol, border=0)
+ rect(resTmp$markP1, resTmp$marks, resTmp$markP2, resTmp$marks - .8, col=resTmp$cols, border=0)
+
+ if(length(clinPos != 0)) {
+ rect(clinPos - .5, 3.5, clinPos + .5, .5, border="black", lwd=2)
+ }
+ #lapply(delMark, function(x) { rect(x[1], 2, x[2], 1, col=2, border=NA) })
+ #lapply(insMark, function(x) { rect(x[1], 1, x[1] + 1, 0, col=3, border=NA) })
+
+ # Highlight clinically relevant loci
+ #for (i in which(dclin$amp == i)) {
+ # if (dclin$REF[i] == nchar
+ #}
+
+ dev.off()
+
+ sansClin <- allsel & !inClin
+ sansSnp <- allsel & !inSnp
+
+ d$nA[sansClin & sansSnp & Asel] -> AA
+ d$nC[sansClin & sansSnp & Asel] -> AC
+ d$nG[sansClin & sansSnp & Asel] -> AG
+ d$nT[sansClin & sansSnp & Asel] -> AT
+
+ d$nA[sansClin & sansSnp & Csel] -> CA
+ d$nC[sansClin & sansSnp & Csel] -> CC
+ d$nG[sansClin & sansSnp & Csel] -> CG
+ d$nT[sansClin & sansSnp & Csel] -> CT
+
+ d$nA[sansClin & sansSnp & Gsel] -> GA
+ d$nC[sansClin & sansSnp & Gsel] -> GC
+ d$nG[sansClin & sansSnp & Gsel] -> GG
+ d$nT[sansClin & sansSnp & Gsel] -> GT
+
+ d$nA[sansClin & sansSnp & Tsel] -> TA
+ d$nC[sansClin & sansSnp & Tsel] -> TC
+ d$nG[sansClin & sansSnp & Tsel] -> TG
+ d$nT[sansClin & sansSnp & Tsel] -> TT
+
+ print("Bias")
+ png(paste(base, i, "bias", "png", sep="."), width=960, height=480)
+
+ Acnt <- sum(sum(AA), sum(AC), sum(AG), sum(AT))
+ Ccnt <- sum(sum(CA), sum(CC), sum(CG), sum(CT))
+ Gcnt <- sum(sum(GA), sum(GC), sum(GG), sum(GT))
+ Tcnt <- sum(sum(TA), sum(TC), sum(TG), sum(TT))
+
+ NTsums <- c(
+ sum(AC)/Acnt, sum(AG)/Acnt, sum(AT)/Acnt,
+ sum(CA)/Ccnt, sum(CG)/Ccnt, sum(CT)/Ccnt,
+ sum(GA)/Gcnt, sum(GC)/Gcnt, sum(GT)/Gcnt,
+ sum(TA)/Tcnt, sum(TC)/Tcnt, sum(TG)/Tcnt)
+ NTsums[!is.finite(NTsums)] <- 0
+ NTsums[is.nan(NTsums)] <- 0
+ NTsums[is.na(NTsums)] <- 0
+
+ barplot(NTsums, names.arg=c("AC", "AG", "AT", "CA", "CG", "CT", "GA", "GC", "GT", "TA", "TC", "TG"), main=i)
+ dev.off()
+ biasTable[rownames(biasTable) == i, ] <- NTsums
+
+ print("Cov2")
+ png(paste(base, i, "cov2", "png", sep="."), width=960, height=480)
+ layout(matrix(1:2, ncol=1), heights=c(2,1))
+ par(mar=c(0, 4, 4, 7) + .1, xaxt="n")
+
+
+ dat <- d2[d2$amp == i,]
+ rled <- rle(sort(dat$pos))
+ rds <- sort(unique(dat$X.read))
+ lst <- c()
+ for (ii in order(rled$lengths, decreasing=T))
+ {
+
+ rled$values[ii] -> pos
+ dat$X.read[dat$pos == pos]
+ lst <- c(lst, rds %in% dat$X.read[dat$pos == pos])
+
+ }
+ #xlim <- range(dat$pos)
+ xlim=range(d$pos[allsel])
+ ylim=range(0, d$dp[allsel])
+ plot(NULL, xlim=xlim, ylim=ylim, main=i, ylab="Depth")
+ rect(xlim[1] - 0.5, 0, xlim[2] + .5, ylim[2], col="#00000010")
+ if (length(lst) > 0) {
+ matrix(lst, nrow=length(rds), byrow=F) -> mat
+ do.call( order, data.frame(mat) ) -> ord
+ for (e in 1:length(ord)) {
+ sel <- dat$X.read == rds[ord[e]]
+ colvec <- rep(1, sum(sel))
+ colvec[grepl("A$", dat$event[sel], ignore.case=T)] <- "green"
+ colvec[grepl("C$", dat$event[sel], ignore.case=T)] <- "blue"
+ colvec[grepl("G$", dat$event[sel], ignore.case=T)] <- "black"
+ colvec[grepl("T$", dat$event[sel], ignore.case=T)] <- "red"
+ #points(dat$pos[ sel ], rep(e, sum(sel)), col=colvec, pch=20, cex=.2)
+ segments(dat$pos[ sel ] - .5, rep(e, sum(sel)), dat$pos[ sel ] + .5, rep(e, sum(sel)), col=colvec, pch=20, cex=.2)
+ }
+ }
+
+ par(xpd=NA)
+ legend(max(d$pos[allsel]) + sum(allsel) * 0.05, ampMax, legend=c("Filtered nt", "Ref nt", "Non-ref nt"), col=c("#00000040", "#00000080", "red"), pch=15)
+ legend(max(d$pos[allsel]) + sum(allsel) * 0.05, 0, legend=c("A", "C", "G", "T"), col=c("green", "blue", "black", "red"), pch=15)
+ par(xpd=F)
+ par(mar=c(5, 4, 0, 7) + .1, xaxt="s")
+ plot(NULL, type="n", xlab="Position", ylab=NA, xlim=range(d$pos[allsel]), ylim=c(0,4.5), yaxt="n")
+ axis(side=2, at=1:4, labels=c("ins", "del", "snv", "ref"), las=2)
+ abline(h=1:4, col="#00000040")
+ sres <- nchar(as.character(resTmp$REF)) == nchar(as.character(resTmp$ALT))
+ dres <- nchar(resTmp$REF) > nchar(resTmp$ALT)
+ ires <- nchar(resTmp$REF) < nchar(resTmp$ALT)
+
+ resTmp$marks <- rep(3.4, nrow(resTmp))
+
+ resTmp$cols <- rep("#00000040", nrow(resTmp))
+ resTmp$cols[grepl("^a", resTmp$ALT, ignore.case=T) & sres] <- "green"
+ resTmp$cols[grepl("^c", resTmp$ALT, ignore.case=T) & sres] <- "blue"
+ resTmp$cols[grepl("^g", resTmp$ALT, ignore.case=T) & sres] <- "black"
+ resTmp$cols[grepl("^t", resTmp$ALT, ignore.case=T) & sres] <- "red"
+
+ #resTmp$cols[dres] <- 2
+ #resTmp$cols[ires] <- 2
+ resTmp$marks[dres] <- 2.4
+ resTmp$marks[ires] <- 1.4
+ resTmp$markP1 <- resTmp$POS -.5
+ resTmp$markP2 <- resTmp$POS +.5
+ resTmp$markP1[dres] <- resTmp$POS[dres] +.5
+ resTmp$markP2[dres] <- resTmp$POS[dres] +.5 + nchar(resTmp$REF[dres]) - 1
+ resTmp$markP1[ires] <- resTmp$POS[ires] +.5
+ resTmp$markP2[ires] <- resTmp$POS[ires] +.5 + 1
+ ntCol <- rep(1, sum(allsel))
+ ntCol[grepl("a", d$ntRef[allsel], ignore.case=T)] <- "green"
+ ntCol[grepl("c", d$ntRef[allsel], ignore.case=T)] <- "blue"
+ ntCol[grepl("g", d$ntRef[allsel], ignore.case=T)] <- "black"
+ ntCol[grepl("t", d$ntRef[allsel], ignore.case=T)] <- "red"
+
+ rect(d$pos[allsel] -.5, 4.4, d$pos[allsel] +.5, 3.6, col=ntCol, border=0)
+ rect(resTmp$markP1, resTmp$marks, resTmp$markP2, resTmp$marks - .8, col=resTmp$cols, border=0)
+
+ if(length(clinPos != 0)) {
+ rect(clinPos - .5, 3.5, clinPos + .5, .5, border="black", lwd=2)
+ }
+
+
+ dev.off()
+
+# png(paste(base, i, "vaf", "png", sep="."), width=960, height=480)
+# plot(d[sel & csel,2], d$vaf[sel & csel], type="l", ylim=c(0,100), main=paste(i, creg, cutoffs[3], sep=" "), xlab="position", ylab="%", col=2)
+ #lines(d[sel & csel,2], d$pctVAR[sel & csel], type="l", col=2)
+# abline(h=100)
+# abline(h=c(1,5,10,50,90,95,99), lty=3, col=1)
+# abline(h=cutoffs[3], lty=4, col=2)
+# abline(v=c(limP[1], limP[1] + 150, limP[2] - 150, limP[2]),lty=4)
+# abline(v=c(qc[qcsel,8:9]), lty=5, col=2)
+# if (length(labs != 0)) {
+# text(resTmp$POS[resTmp$vaf > (cutoffs[3]/100)], 50, labels=resTmp$Amino_Acid_change[resTmp$vaf > (cutoffs[3]/100)])
+# abline(v=resTmp$POS[resTmp$vaf > (cutoffs[3]/100)], col="grey", lty=4)
+# }
+# dev.off()
+ }
+}
+
+png(paste(base, "biasheat", "png", sep="."), width=960, height=960)
+write.table(biasTable, paste(base, "bias", "tsv", sep="."), sep="\t")
+biasTable[is.na(biasTable)] <- 0
+heatmap(data.matrix(biasTable), Colv=NA, scale="r")
+dev.off()
+png(paste(base, "bias", "png", sep="."), width=960, height=480)
+boxplot(data.matrix(biasTable), pch=20, cex=.5)
+dev.off()
+warnings()
+#hist(d$pctVAR[d$pctVAR < 20], breaks=40, ylim=c(0,1000))
+#hist(d$pctREF[d$pctREF > 80], breaks=40, ylim=c(0,1000))
+
+#print(summary(d$pctVAR))
+
+
diff -r e7de191375e6 -r 73eda23fb8fd falco/lib/perl/filter.pl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/lib/perl/filter.pl Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,133 @@
+#!/usr/bin/perl -w
+
+use strict;
+
+my $file = shift;
+my $canonicals = shift;
+my $clinvar = shift;
+my $cosmic = shift;
+my $cosmicNC = shift;
+
+my $minDP = 100;
+my $minVAR = 10;
+my $minVAF = 0.01;
+
+my %can = ();
+my %nm = ();
+my %cvHsh = ();
+
+print STDERR "Reading in canonicals,...";
+open CAN, "<$canonicals";
+while () {
+ chomp;
+ my @row = split(/\t/, $_);
+ $can{$row[0]} = @row[1 .. $#row];
+ my $pri = 0;
+ $nm{$_} = $pri++ foreach @row[1 .. $#row];
+}
+close CAN;
+
+print STDERR "Reading clinvars...\n";
+open CV, "<$clinvar";
+while () { last if (/#CHROM/); }
+while () {
+ chomp;
+ my @row = split(/\t/, $_);
+ push @{$cvHsh{"chr".$row[0].":".$row[1]}}, [@row];
+}
+close CV;
+
+print STDERR "Reading COSMIC...\n";
+open CV, "<$cosmic";
+while () { last if (/#CHROM/); }
+while () {
+ chomp;
+ my @row = split(/\t/, $_);
+ push @{$cvHsh{"chr".$row[0].":".$row[1]}}, [@row];
+}
+close CV;
+
+print STDERR "Reading COSMICNC...\n";
+open CV, "<$cosmicNC";
+while () { last if (/#CHROM/); }
+while () {
+ chomp;
+ my @row = split(/\t/, $_);
+ push @{$cvHsh{"chr".$row[0].":".$row[1]}}, [@row];
+}
+
+close CV;
+print STDERR "done!\n";
+
+print STDERR "Processing $file\n";
+
+open F, "<$file";
+my $head = readline(F);
+chomp $head;
+
+print $head . "\tvaf\n";
+
+my @rowHead = split(/\t/, $head);
+my $colN = 0;
+my %col = map {
+ $_ => $colN++ } @rowHead;
+
+while () {
+ chomp;
+ my $line = $_;
+ my @row = split(/\t/, $_);
+ next unless (exists($can{$row[$col{Gene_Name}]}));
+ my $trans = $row[$col{Transcript_ID}];
+ $trans =~ s/\..*$//;
+
+ ## impossible to switch off these two transcript filters
+ ## so commented out for now
+ # if (not exists($nm{$trans})) {
+ # print STDERR "Unknown transcript: $row[$col{Gene_Name}] $trans\n";
+ # next;
+ # }
+ # elsif ($nm{$trans} != 0) {
+ # print STDERR "Non cannonical: $row[$col{Gene_Name}] $trans\n";
+ # next;
+ # }
+
+ # Annotate clinincal variants and cosmic mutations
+
+ my $chr = $row[$col{"#CHROM"}];
+ my $pos = $row[$col{POS}];
+
+ if (exists($cvHsh{"$chr:$pos"})) {
+ my $rows = $cvHsh{"$chr:$pos"};
+ my $cv = join("|", map { $_->[2] } @$rows);
+ $row[2] .= "|$cv";
+ }
+
+ # Filter INTERGENIC
+ next if ($row[$col{Context}] eq "INTERGENIC");
+
+ # Filter SYNONYMOUS_CODING
+ # Dubbel mutatie BRAF
+# next if ($row[$col{Context}] eq "SYNONYMOUS_CODING");
+
+ # Filter INTRON
+ next if ($row[$col{Context}] eq "INTRON");
+
+ # Filter dbSNP
+# next if ($row[2] ne ".");
+
+ # Filter depth
+ next if ($row[$col{DP}] < $minDP);
+
+ my ($nref, $nvar) = split(/,/, $row[$col{AD}]);
+ # Filter var depth
+# print STDERR "DEBUG: " . $nvar . "\n"; sleep 1;
+ next if ($nvar < $minVAR);
+
+ my $vaf = $nvar / ($nref + $nvar);
+# print STDERR "DEBUG: " . $vaf . "\n";
+ # Filter vaf
+ next if ($vaf < $minVAF);
+
+ print join("\t", @row, $vaf) . "\n";
+}
+close F;
diff -r e7de191375e6 -r 73eda23fb8fd falco/lib/perl/mkHtmlReport.pl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/falco/lib/perl/mkHtmlReport.pl Wed Feb 25 08:50:56 2015 -0500
@@ -0,0 +1,234 @@
+#!/usr/bin/perl -w
+
+use strict;
+use Cwd;
+use Spreadsheet::WriteExcel;
+
+$| = 1;
+my $dir = shift || "./";
+my $outdir = shift || "./";
+my $pat = shift || "";
+my $cwd = cwd();
+(my $runName = $cwd) =~ s/^.*\/(.*?)$/$1/;
+
+# QC
+# Results
+my @samples = ();
+#open INDEX, ">$outdir/index.html";
+my $htmlHead = qq(
+
+
+
+
+
+
+);
+#print INDEX $htmlHead;
+opendir DIR, "$dir";
+while (my $cd = readdir DIR) {
+ if ($cd =~ /(.*$pat)\.qc\.targets\.txt$/) {
+ my $sam = $1;
+# next if ($sam =~ /R[12]/);
+ print STDERR $1 . "\n";
+ push @samples, $1;
+ }
+}
+close DIR;
+
+#print INDEX "]";
+#print INDEX "Download: | runQC.xls | ";
+#print INDEX "
---|
Sample | BAM | snp | indel | readCnt | Amp > 100 | \n";
+#foreach my $sam (sort @samples) {
+# print INDEX "
---|
$sam | BAM | BAI |
\n";
+
+#}
+my %link = ();
+my $excelBook0 = Spreadsheet::WriteExcel->new("$outdir/runQC.xls");
+my $excel0 = $excelBook0->add_worksheet("table1");
+my $excel0Ref = [[qw/sampleName runName totalReads pct100 ntbGenes/]];
+
+
+foreach my $sample (sort @samples) {
+ print STDERR "Processing $sample\n";
+# next if ($sample =~ /R[12]/);
+
+ my $readCnt = 0;
+ my $amp100 = 0;
+ my %ntbGenes = ();
+
+ open OUT, ">$outdir/$sample.html";
+ open OUT2, ">$outdir/$sample.tsv";
+ my $excelBook = Spreadsheet::WriteExcel->new("$outdir/$sample.xls");
+ my $excel1 = $excelBook->add_worksheet("table1");
+ my $excel2 = $excelBook->add_worksheet("table2");
+ print OUT $htmlHead;
+ my %QC = ();
+ open QC, "<$dir/$sample.qc.targets.txt";
+ readline QC;
+ print STDERR "Reading in $sample.qc.targets.txt\n";
+ while () {
+ chomp;
+ my @row = split(/\t/, $_);
+ my @id = split(/[\_\.\-:]/, $row[0]);
+ $row[-1] = 0 if ($row[-1] eq "NA");
+ $readCnt += $row[-1]; # DP
+ if ($#id != 10) {
+ $id[0] =~ /(\D+)(\d+)/;
+ $id[0] = $2;
+ unshift @id, $1;
+ }
+
+ if ($row[-1] >= 100) {
+ $amp100++
+ }
+ else {
+ $ntbGenes{$row[0]}{dp} = $row[-1];
+ $ntbGenes{$row[0]}{id} = [@id];
+ }
+
+ $QC{$row[0]}{QC} = [@id, @row];# if ($id[0]);
+ foreach my $c ($row[4] .. $row[5]) {
+ $link{$id[-3] . ":" . $c}{$row[0]} = "Assay";
+ }
+ foreach my $c ($row[2] .. $row[4], $row[5] .. $row[3]) {
+ $link{$id[-3] . ":" . $c}{$row[0]} = "LSO";
+ }
+ }
+ close QC;
+
+ open RES, "<$dir/$sample.res.filtered.tsv" or die "Unable to open $dir/$sample\n";
+ my %uniq = ();
+ my $colCnt = 0;
+ my $resHead = readline(RES);
+ chomp $resHead;
+ $resHead =~ s/^#//;
+ $resHead =~ s/\s+$//;
+ my %resCol = map { $_ => $colCnt++ } split(/\t/, $resHead);
+ my @keyColsN = qw/QUAL Gene_Name Codon_Change Amino_Acid_change vaf DP AD Tag CHROM POS ID REF ALT Context Effect_Impact Functional_Class Amino_Acid_length Gene_Coding Transcript_ID Exon_Rank/;
+# my @keyColsN = qw/CHROM POS ID REF ALT QUAL DP AD vaf Context Effect_Impact Functional_Class Codon_Change Amino_Acid_change Amino_Acid_length Gene_Name Coding Transcript Exon Tag/;
+ my @keyColsI = map { $resCol{$_} } @keyColsN;
+ foreach my $i (0 .. $#keyColsN) {
+ print STDERR join(":", $i, $keyColsN[$i], $keyColsI[$i]) . "\n";
+ }
+
+ print STDERR "Processing results\n";
+ while () {
+ chomp;
+ my @row = split(/\t/, $_);
+ my $cpos = join(":", @row[0, 1]);
+ if (exists $link{$cpos}) {
+# my $key = join(":", @row[0 .. 4,6, 9,10,11,12,14 .. 21]);
+ my $key = join(":", @row[@keyColsI]);
+ #print STDERR join(":", @keyColsI) . "\n";
+# print STDERR join(":", @row) . "\n"; sleep 1;
+ if (not exists($uniq{$key})) {
+ foreach my $locus (keys(%{$link{$cpos}})) {
+ next if ($link{$cpos}{$locus} eq "LSO");
+ push @{$QC{$locus}{RES}}, [@row, $link{$cpos}{$locus}];
+ # print STDERR "Adding $key to $locus\n\n"; #sleep 1;
+ }
+ $uniq{$key} = 0;
+ }
+ else {
+ # print STDERR $key . " : Exists\n\n"; #sleep 1;
+ }
+ }
+ }
+ close RES;
+
+ ## Rplots that are not self-explanatory enough
+ #print OUT "";
+ #print OUT "";
+ #print OUT "";
+ #print OUT "";
+ #print OUT "";
+ #print OUT "";
+
+ print OUT "";
+ #print OUT "";
+ #print OUT "";
+ #print OUT "";
+ #print OUT "";
+ print OUT "Download: | TSV | ";
+ print OUT "XLS |
---|
";
+ print OUT "\n";
+# my @colnames = qw/depth chr pos id ref var qual DP AD vaf context impact effectClass codonChange AAChange RefSeqLength geneName RefSeqClass RefSeqID Exon Tag/;
+ my @colnames = ("depth", @keyColsN);
+ print OUT "" . join("", map { "$_ | " } ("Amplicon", "c","c2", "b", @colnames)) . "
";
+ print OUT2 join("\t", "Amplicon", @colnames) . "\n";
+ my $excelAref = [["Amplicon", @colnames]];
+ my $excelAref2 = [[qw/gene exon protein vaf func depth /]];
+ my %rescnt = ();
+ foreach my $locus (sort keys(%QC)) {
+ # my @targets = keys(%{$QC{$locus}{QC}});
+# print OUT "";
+ my $nres = 1;
+ $nres = scalar(@{$QC{$locus}{RES}}) if ($QC{$locus}{RES});
+
+ print OUT "$locus | \n";
+ print OUT "c | \n";
+ print OUT "c2 | \n";
+ print OUT "b | \n";
+ print OUT "$QC{$locus}{QC}->[-1] | \n"; #";
+
+ foreach my $res (@{$QC{$locus}{RES}}) {
+ $res = [map {$_ || ""} @$res];
+ print OUT " | \n";
+ print OUT join(" | \n", @{$res}[@keyColsI]);
+ print OUT " |
\n";
+ print OUT2 join("\t", $locus, $QC{$locus}{QC}->[-1], @{$res}[@keyColsI]) . "\n";
+ push @$excelAref, [$locus, $QC{$locus}{QC}->[-1], @{$res}[@keyColsI]];
+
+ # qw/QUAL Gene_Name Codon_Change Amino_Acid_change vaf DP AD Tag CHROM POS ID REF ALT Context Effect_Impact Functional_Class Amino_Acid_length Coding Transcript Exon/;
+ push @$excelAref2, [map {$_ || "NA"} @{$res}[map { $resCol{$_} } (qw/Gene_Name Exon_Rank Amino_Acid_change vaf Functional_Class/)], $QC{$locus}{QC}->[-1]];
+# push @$excelAref2, [map {$_ || "NA"} @{$res}[[qw/Gene_Name Exon_Rank Cdna_change Amino_Acid_change vaf Functional_Class/]], $QC{$locus}{QC}->[-1]];
+ my $pl = $res->[$keyColsI[7]];
+ my $ref = $res->[$keyColsI[11]];
+ my $var = $res->[$keyColsI[12]];
+# print STDERR "$pl $ref $var\n"; sleep 1;
+ if (length($ref) == length($var)) {
+ $rescnt{$pl . "snp"}++;
+ }
+ else {
+ $rescnt{$pl . "indel"}++;
+ }
+# $rescnt++;
+ }
+ print STDERR $locus . ":" . $nres . "\n";
+ print STDERR $locus . ":" . join("-", @{$QC{$locus}{RES}}) . "\n";
+ if (scalar(@{$QC{$locus}{RES}}) == 0) { #$nres == 0) {
+ print OUT2 join("\t", $locus, $QC{$locus}{QC}->[-1], ("-") x scalar(@keyColsI)) . "\n";
+ push @$excelAref, [$locus, $QC{$locus}{QC}->[-1], ("-") x scalar(@keyColsI)];
+ }
+ print OUT "
\n";
+ }
+ print OUT "
\n";
+ print OUT "\n";
+ close OUT;
+ close OUT2;
+ $excel1->write_col(0,0, $excelAref);
+ $excel2->write_col(0,0, $excelAref2);
+ $excelBook->close();
+ my @resCnt = map { $rescnt{$_} || 0 } qw/Falcosnp Falcoindel/;
+ my $pctGood = sprintf("%.2f", $amp100 / scalar(keys(%QC)) * 100);
+ #print INDEX "$sample | BAM | $resCnt[0] | $resCnt[1] | $readCnt | $pctGood |
\n";
+ my $ntbsAmps = join(",", map { s/^(.*?)\.chr.*$/$1/; $_; } keys(%ntbGenes));
+ push @{$excel0Ref}, [$sample, $runName, $readCnt, $pctGood, $ntbsAmps];
+}
+
+$excel0->write_col(0,0, $excel0Ref);
+$excelBook0->close();
+
+#print INDEX "
";
+#print INDEX "";
+#print INDEX "";
+#print INDEX "";
+#print INDEX "