{"action":"created","comment":{"url":"https://api.github.com/repos/broadinstitute/gatk-protected/pulls/comments/50884785","id":50884785,"diff_hunk":"@@ -0,0 +1,354 @@\n+package org.broadinstitute.hellbender.tools.exome.hmm;\n+\n+import com.google.cloud.dataflow.sdk.repackaged.com.google.common.annotations.VisibleForTesting;\n+import org.apache.commons.lang.math.DoubleRange;\n+import org.apache.commons.math3.distribution.NormalDistribution;\n+import org.broadinstitute.hellbender.tools.exome.Target;\n+import org.broadinstitute.hellbender.utils.MathUtils;\n+import org.broadinstitute.hellbender.utils.SimpleInterval;\n+import org.broadinstitute.hellbender.utils.Utils;\n+import org.broadinstitute.hellbender.utils.hmm.CopyNumberTriState;\n+import org.broadinstitute.hellbender.utils.hmm.HiddenMarkovModel;\n+\n+import java.util.Arrays;\n+import java.util.Collections;\n+import java.util.List;\n+import java.util.Random;\n+\n+/**\n+ * Implements the Three state copy number distance dependent model described in\n+ * <a href=\"http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3484655\">Fromer et al. Am J Hum Genet. 2012 Oct 5; 91(4):597-607</a>\n+ *\n+ * <p>\n+ *     This model has the following parameters:\n+ *     <dl>\n+ *         <dt>Event-Rate</dt><dd>(p in the paper) the exome-wide event rate; what is the probability of any given\n+ *         target to be the start target for an event (either a deletion or duplication).</dd>\n+ *         <dt>Mean number of targets per event</dt><dd>(T in the paper) the average number of targets per each event\n+ *         (either a deletion or duplication).</dd>\n+ *         <dt>Mean event target distance</dt><dd>(D in the paper) the expectation of the distance (in bps) between\n+ *         consecutive targets in an event.</dd>\n+ *         <dt>Mean coverage depth shift for deletions</dt><dd>(-M in the paper) what is the average negative shift\n+ *         in coverage in regions that have undergone a copy loss.</dd>\n+ *         <dt>Mean coverage depth shift for duplications</dt><dd>(+M in the paper) what is the average positive\n+ *         shift in coverage depth in regions that have undergone a copy gain</dd>\n+ *     </dl>\n+ *     <p>\n+ *      Notice that this implementation allows a different shift magnitude for deletions and duplications which is fix\n+ *      to the same value in the original paper.\n+ *     </p>\n+ * </p>\n+ *\n+ * <p>\n+ * This model assumes that target are provided in genomic coordinate order although it can handle either ascending\n+ * and descending orders.\n+ * </p>\n+ * <p>\n+ * When any of the targets provided does not have a defined interval, the model automatically switches to the\n+ * non-distance dependent simpler model described in the same publication.\n+ * </p>\n+ *\n+ * @author Valentin Ruano-Rubio &lt;valentin@broadinstitute.org&gt;\n+ */\n+public final class CopyNumberTriStateHiddenMarkovModel\n+        implements HiddenMarkovModel<Double, Target, CopyNumberTriState> {\n+\n+    /**\n+     * Neutral (no-event) depth distribution.\n+     */\n+    private static final NormalDistribution NEUTRAL_DISTRIBUTION = new NormalDistribution(0, 1);\n+\n+    /**\n+     * Immutable list of hidden states.\n+     */\n+    private static final List<CopyNumberTriState> HIDDEN_STATES =\n+            Collections.unmodifiableList(Arrays.asList(CopyNumberTriState.values()));\n+\n+    /**\n+     * Valid range for the event-rate parameter.\n+     */\n+    public static final DoubleRange VALID_EVENT_RATE_RANGE = new DoubleRange(0, .5);\n+\n+    /**\n+     * Valid range for the mean number of targets per event parameter.\n+     */\n+    public static final DoubleRange VALID_MEAN_NUMBER_OF_TARGETS_PER_EVENT_RANGE = new DoubleRange(0, Double.MAX_VALUE);\n+\n+    /**\n+     * Valid range for the deletion event distribution center parameter.\n+     */\n+    public static final DoubleRange VALID_DELETION_CENTER_RANGE = new DoubleRange(- Double.MAX_VALUE, 0);\n+\n+    /**\n+     * Valid range for the duplication event distribution center parameter.\n+     */\n+    public static final DoubleRange VALID_DUPLICATION_CENTER_RANGE = new DoubleRange(0, Double.MAX_VALUE);\n+\n+    /**\n+     * Valid range for the intra-event target distance.\n+     */\n+    public static final DoubleRange VALID_MEAN_INTRA_EVENT_TARGET_DISTANCE_RANGE\n+            = new DoubleRange(1, Double.MAX_VALUE);\n+\n+    /**\n+     * Cached <code>log(p)</code> where <code>p</code> is the <i>event-rate</i>.\n+     */\n+    private final double logP;\n+\n+    /**\n+     * Cached <code>log(1 - 2p)</code> where <code>p</code> is the <i>event-rate</i> .\n+     */\n+    private final double log1Minus2P;\n+\n+    /**\n+     * Cached <code>log(q)</code> where <code>q</code> is the <i>inverse of the mean event size in targets</i>.\n+     */\n+    private final double logQ;\n+\n+    /**\n+     * Cached <code>log(1 - q)</code> where <code>q</code> is the <i>inverse of the mean event size in targets</i>.\n+     */\n+    private final double log1MinusQ;\n+\n+    /**\n+     * Cached <code>1/D</code> where <code>D</code> is the <i>average distance between targets in the same event</i>.\n+     */\n+    private final double invD;\n+\n+    /**\n+     * Deletion emission distribution.\n+     */\n+    private final NormalDistribution deletionDistribution;\n+\n+    /**\n+     * Duplication emission distribution.\n+     */\n+    private final NormalDistribution duplicationDistribution;\n+\n+    /**\n+     * Holds the mean number of bps between targets in the same event.\n+     */\n+    private final double D;\n+\n+    /**\n+     * Holds the event-rate per target.\n+     */\n+    private final double P;\n+\n+    /**\n+     * Mean number of targets per event.\n+     */\n+    private final double T;\n+\n+    /**\n+     * Creates a new model instance.\n+     *\n+     * @param eventRate the event-rate for this instance.\n+     * @param meanNumberOfTargetsPerEvent the expectation for the number of targets in an event.\n+     * @param deletionMean the deletion depth of coverage negative shift.\n+     * @param duplicationMean the duplication depth of coverage positive shift.\n+     * @param meanEventTargetDistance the expectation of the distance between consecutive targets in an event.\n+     *\n+     * @throws IllegalArgumentException if any of the model parameters has an invalid value.\n+     */\n+    public CopyNumberTriStateHiddenMarkovModel(final double eventRate,\n+                                               final double meanNumberOfTargetsPerEvent,\n+                                               final double deletionMean,\n+                                               final double duplicationMean,\n+                                               final double meanEventTargetDistance) {\n+        checkParameterRange(VALID_EVENT_RATE_RANGE, eventRate, \"event rate\");\n+        checkParameterRange(VALID_MEAN_NUMBER_OF_TARGETS_PER_EVENT_RANGE, meanNumberOfTargetsPerEvent,\n+                \"mean number of targets per event\");\n+        checkParameterRange(VALID_DELETION_CENTER_RANGE, deletionMean, \"deletion mean depth coverage shift\");","path":"src/main/java/org/broadinstitute/hellbender/tools/exome/hmm/CopyNumberTriStateHiddenMarkovModel.java","position":162,"original_position":162,"commit_id":"ed694fa96c4e199e590f0bf0d520295d751ee585","original_commit_id":"ed694fa96c4e199e590f0bf0d520295d751ee585","user":{"login":"vruano","id":791104,"avatar_url":"https://avatars.githubusercontent.com/u/791104?v=3","gravatar_id":"","url":"https://api.github.com/users/vruano","html_url":"https://github.com/vruano","followers_url":"https://api.github.com/users/vruano/followers","following_url":"https://api.github.com/users/vruano/following{/other_user}","gists_url":"https://api.github.com/users/vruano/gists{/gist_id}","starred_url":"https://api.github.com/users/vruano/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vruano/subscriptions","organizations_url":"https://api.github.com/users/vruano/orgs","repos_url":"https://api.github.com/users/vruano/repos","events_url":"https://api.github.com/users/vruano/events{/privacy}","received_events_url":"https://api.github.com/users/vruano/received_events","type":"User","site_admin":false},"body":"Same.","created_at":"2016-01-26T19:20:14Z","updated_at":"2016-01-26T19:20:14Z","html_url":"https://github.com/broadinstitute/gatk-protected/pull/313#discussion_r50884785","pull_request_url":"https://api.github.com/repos/broadinstitute/gatk-protected/pulls/313","_links":{"self":{"href":"https://api.github.com/repos/broadinstitute/gatk-protected/pulls/comments/50884785"},"html":{"href":"https://github.com/broadinstitute/gatk-protected/pull/313#discussion_r50884785"},"pull_request":{"href":"https://api.github.com/repos/broadinstitute/gatk-protected/pulls/313"}}},"pull_request":{"url":"https://api.github.com/repos/broadinstitute/gatk-protected/pulls/313","id":56571362,"html_url":"https://github.com/broadinstitute/gatk-protected/pull/313","diff_url":"https://github.com/broadinstitute/gatk-protected/pull/313.diff","patch_url":"https://github.com/broadinstitute/gatk-protected/pull/313.patch","issue_url":"https://api.github.com/repos/broadinstitute/gatk-protected/issues/313","number":313,"state":"open","locked":false,"title":"Germline HMM based CNV segment discovery","user":{"login":"vruano","id":791104,"avatar_url":"https://avatars.githubusercontent.com/u/791104?v=3","gravatar_id":"","url":"https://api.github.com/users/vruano","html_url":"https://github.com/vruano","followers_url":"https://api.github.com/users/vruano/followers","following_url":"https://api.github.com/users/vruano/following{/other_user}","gists_url":"https://api.github.com/users/vruano/gists{/gist_id}","starred_url":"https://api.github.com/users/vruano/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vruano/subscriptions","organizations_url":"https://api.github.com/users/vruano/orgs","repos_url":"https://api.github.com/users/vruano/repos","events_url":"https://api.github.com/users/vruano/events{/privacy}","received_events_url":"https://api.github.com/users/vruano/received_events","type":"User","site_admin":false},"body":"Addresses issue #146.","created_at":"2016-01-20T07:05:40Z","updated_at":"2016-01-26T19:20:14Z","closed_at":null,"merged_at":null,"merge_commit_sha":"08cb5c8aa6d67158fcde65c36f9eebda80145848","assignee":{"login":"vruano","id":791104,"avatar_url":"https://avatars.githubusercontent.com/u/791104?v=3","gravatar_id":"","url":"https://api.github.com/users/vruano","html_url":"https://github.com/vruano","followers_url":"https://api.github.com/users/vruano/followers","following_url":"https://api.github.com/users/vruano/following{/other_user}","gists_url":"https://api.github.com/users/vruano/gists{/gist_id}","starred_url":"https://api.github.com/users/vruano/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vruano/subscriptions","organizations_url":"https://api.github.com/users/vruano/orgs","repos_url":"https://api.github.com/users/vruano/repos","events_url":"https://api.github.com/users/vruano/events{/privacy}","received_events_url":"https://api.github.com/users/vruano/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/broadinstitute/gatk-protected/milestones/4","html_url":"https://github.com/broadinstitute/gatk-protected/milestones/Germline-CNV-Calling","labels_url":"https://api.github.com/repos/broadinstitute/gatk-protected/milestones/4/labels","id":1355796,"number":4,"title":"Germline-CNV-Calling","description":"Implement CNV calling in germline samples. Initiality a \"replica\" of the XHMM method.","creator":{"login":"vruano","id":791104,"avatar_url":"https://avatars.githubusercontent.com/u/791104?v=3","gravatar_id":"","url":"https://api.github.com/users/vruano","html_url":"https://github.com/vruano","followers_url":"https://api.github.com/users/vruano/followers","following_url":"https://api.github.com/users/vruano/following{/other_user}","gists_url":"https://api.github.com/users/vruano/gists{/gist_id}","starred_url":"https://api.github.com/users/vruano/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vruano/subscriptions","organizations_url":"https://api.github.com/users/vruano/orgs","repos_url":"https://api.github.com/users/vruano/repos","events_url":"https://api.github.com/users/vruano/events{/privacy}","received_events_url":"https://api.github.com/users/vruano/received_events","type":"User","site_admin":false},"open_issues":13,"closed_issues":8,"state":"open","created_at":"2015-10-14T17:03:05Z","updated_at":"2016-01-25T22:46:44Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/broadinstitute/gatk-protected/pulls/313/commits","review_comments_url":"https://api.github.com/repos/broadinstitute/gatk-protected/pulls/313/comments","review_comment_url":"https://api.github.com/repos/broadinstitute/gatk-protected/pulls/comments{/number}","comments_url":"https://api.github.com/repos/broadinstitute/gatk-protected/issues/313/comments","statuses_url":"https://api.github.com/repos/broadinstitute/gatk-protected/statuses/ed694fa96c4e199e590f0bf0d520295d751ee585","head":{"label":"broadinstitute:vrr_hmm_based_caller","ref":"vrr_hmm_based_caller","sha":"ed694fa96c4e199e590f0bf0d520295d751ee585","user":{"login":"broadinstitute","id":393552,"avatar_url":"https://avatars.githubusercontent.com/u/393552?v=3","gravatar_id":"","url":"https://api.github.com/users/broadinstitute","html_url":"https://github.com/broadinstitute","followers_url":"https://api.github.com/users/broadinstitute/followers","following_url":"https://api.github.com/users/broadinstitute/following{/other_user}","gists_url":"https://api.github.com/users/broadinstitute/gists{/gist_id}","starred_url":"https://api.github.com/users/broadinstitute/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/broadinstitute/subscriptions","organizations_url":"https://api.github.com/users/broadinstitute/orgs","repos_url":"https://api.github.com/users/broadinstitute/repos","events_url":"https://api.github.com/users/broadinstitute/events{/privacy}","received_events_url":"https://api.github.com/users/broadinstitute/received_events","type":"Organization","site_admin":false},"repo":{"id":34413897,"name":"gatk-protected","full_name":"broadinstitute/gatk-protected","owner":{"login":"broadinstitute","id":393552,"avatar_url":"https://avatars.githubusercontent.com/u/393552?v=3","gravatar_id":"","url":"https://api.github.com/users/broadinstitute","html_url":"https://github.com/broadinstitute","followers_url":"https://api.github.com/users/broadinstitute/followers","following_url":"https://api.github.com/users/broadinstitute/following{/other_user}","gists_url":"https://api.github.com/users/broadinstitute/gists{/gist_id}","starred_url":"https://api.github.com/users/broadinstitute/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/broadinstitute/subscriptions","organizations_url":"https://api.github.com/users/broadinstitute/orgs","repos_url":"https://api.github.com/users/broadinstitute/repos","events_url":"https://api.github.com/users/broadinstitute/events{/privacy}","received_events_url":"https://api.github.com/users/broadinstitute/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/broadinstitute/gatk-protected","description":"GATK4 development of the license-protected part of the toolkit","fork":false,"url":"https://api.github.com/repos/broadinstitute/gatk-protected","forks_url":"https://api.github.com/repos/broadinstitute/gatk-protected/forks","keys_url":"https://api.github.com/repos/broadinstitute/gatk-protected/keys{/key_id}","collaborators_url":"https://api.github.com/repos/broadinstitute/gatk-protected/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/broadinstitute/gatk-protected/teams","hooks_url":"https://api.github.com/repos/broadinstitute/gatk-protected/hooks","issue_events_url":"https://api.github.com/repos/broadinstitute/gatk-protected/issues/events{/number}","events_url":"https://api.github.com/repos/broadinstitute/gatk-protected/events","assignees_url":"https://api.github.com/repos/broadinstitute/gatk-protected/assignees{/user}","branches_url":"https://api.github.com/repos/broadinstitute/gatk-protected/branches{/branch}","tags_url":"https://api.github.com/repos/broadinstitute/gatk-protected/tags","blobs_url":"https://api.github.com/repos/broadinstitute/gatk-protected/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/broadinstitute/gatk-protected/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/broadinstitute/gatk-protected/git/refs{/sha}","trees_url":"https://api.github.com/repos/broadinstitute/gatk-protected/git/trees{/sha}","statuses_url":"https://api.github.com/repos/broadinstitute/gatk-protected/statuses/{sha}","languages_url":"https://api.github.com/repos/broadinstitute/gatk-protected/languages","stargazers_url":"https://api.github.com/repos/broadinstitute/gatk-protected/stargazers","contributors_url":"https://api.github.com/repos/broadinstitute/gatk-protected/contributors","subscribers_url":"https://api.github.com/repos/broadinstitute/gatk-protected/subscribers","subscription_url":"https://api.github.com/repos/broadinstitute/gatk-protected/subscription","commits_url":"https://api.github.com/repos/broadinstitute/gatk-protected/commits{/sha}","git_commits_url":"https://api.github.com/repos/broadinstitute/gatk-protected/git/commits{/sha}","comments_url":"https://api.github.com/repos/broadinstitute/gatk-protected/comments{/number}","issue_comment_url":"https://api.github.com/repos/broadinstitute/gatk-protected/issues/comments{/number}","contents_url":"https://api.github.com/repos/broadinstitute/gatk-protected/contents/{+path}","compare_url":"https://api.github.com/repos/broadinstitute/gatk-protected/compare/{base}...{head}","merges_url":"https://api.github.com/repos/broadinstitute/gatk-protected/merges","archive_url":"https://api.github.com/repos/broadinstitute/gatk-protected/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/broadinstitute/gatk-protected/downloads","issues_url":"https://api.github.com/repos/broadinstitute/gatk-protected/issues{/number}","pulls_url":"https://api.github.com/repos/broadinstitute/gatk-protected/pulls{/number}","milestones_url":"https://api.github.com/repos/broadinstitute/gatk-protected/milestones{/number}","notifications_url":"https://api.github.com/repos/broadinstitute/gatk-protected/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/broadinstitute/gatk-protected/labels{/name}","releases_url":"https://api.github.com/repos/broadinstitute/gatk-protected/releases{/id}","deployments_url":"https://api.github.com/repos/broadinstitute/gatk-protected/deployments","created_at":"2015-04-22T20:24:45Z","updated_at":"2016-01-26T14:20:42Z","pushed_at":"2016-01-26T17:52:33Z","git_url":"git://github.com/broadinstitute/gatk-protected.git","ssh_url":"git@github.com:broadinstitute/gatk-protected.git","clone_url":"https://github.com/broadinstitute/gatk-protected.git","svn_url":"https://github.com/broadinstitute/gatk-protected","homepage":null,"size":61623,"stargazers_count":5,"watchers_count":5,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":100,"forks":1,"open_issues":100,"watchers":5,"default_branch":"master"}},"base":{"label":"broadinstitute:master","ref":"master","sha":"f66d461339bb2b5fcce678a6a09a1e7dc0911e36","user":{"login":"broadinstitute","id":393552,"avatar_url":"https://avatars.githubusercontent.com/u/393552?v=3","gravatar_id":"","url":"https://api.github.com/users/broadinstitute","html_url":"https://github.com/broadinstitute","followers_url":"https://api.github.com/users/broadinstitute/followers","following_url":"https://api.github.com/users/broadinstitute/following{/other_user}","gists_url":"https://api.github.com/users/broadinstitute/gists{/gist_id}","starred_url":"https://api.github.com/users/broadinstitute/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/broadinstitute/subscriptions","organizations_url":"https://api.github.com/users/broadinstitute/orgs","repos_url":"https://api.github.com/users/broadinstitute/repos","events_url":"https://api.github.com/users/broadinstitute/events{/privacy}","received_events_url":"https://api.github.com/users/broadinstitute/received_events","type":"Organization","site_admin":false},"repo":{"id":34413897,"name":"gatk-protected","full_name":"broadinstitute/gatk-protected","owner":{"login":"broadinstitute","id":393552,"avatar_url":"https://avatars.githubusercontent.com/u/393552?v=3","gravatar_id":"","url":"https://api.github.com/users/broadinstitute","html_url":"https://github.com/broadinstitute","followers_url":"https://api.github.com/users/broadinstitute/followers","following_url":"https://api.github.com/users/broadinstitute/following{/other_user}","gists_url":"https://api.github.com/users/broadinstitute/gists{/gist_id}","starred_url":"https://api.github.com/users/broadinstitute/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/broadinstitute/subscriptions","organizations_url":"https://api.github.com/users/broadinstitute/orgs","repos_url":"https://api.github.com/users/broadinstitute/repos","events_url":"https://api.github.com/users/broadinstitute/events{/privacy}","received_events_url":"https://api.github.com/users/broadinstitute/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/broadinstitute/gatk-protected","description":"GATK4 development of the license-protected part of the toolkit","fork":false,"url":"https://api.github.com/repos/broadinstitute/gatk-protected","forks_url":"https://api.github.com/repos/broadinstitute/gatk-protected/forks","keys_url":"https://api.github.com/repos/broadinstitute/gatk-protected/keys{/key_id}","collaborators_url":"https://api.github.com/repos/broadinstitute/gatk-protected/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/broadinstitute/gatk-protected/teams","hooks_url":"https://api.github.com/repos/broadinstitute/gatk-protected/hooks","issue_events_url":"https://api.github.com/repos/broadinstitute/gatk-protected/issues/events{/number}","events_url":"https://api.github.com/repos/broadinstitute/gatk-protected/events","assignees_url":"https://api.github.com/repos/broadinstitute/gatk-protected/assignees{/user}","branches_url":"https://api.github.com/repos/broadinstitute/gatk-protected/branches{/branch}","tags_url":"https://api.github.com/repos/broadinstitute/gatk-protected/tags","blobs_url":"https://api.github.com/repos/broadinstitute/gatk-protected/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/broadinstitute/gatk-protected/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/broadinstitute/gatk-protected/git/refs{/sha}","trees_url":"https://api.github.com/repos/broadinstitute/gatk-protected/git/trees{/sha}","statuses_url":"https://api.github.com/repos/broadinstitute/gatk-protected/statuses/{sha}","languages_url":"https://api.github.com/repos/broadinstitute/gatk-protected/languages","stargazers_url":"https://api.github.com/repos/broadinstitute/gatk-protected/stargazers","contributors_url":"https://api.github.com/repos/broadinstitute/gatk-protected/contributors","subscribers_url":"https://api.github.com/repos/broadinstitute/gatk-protected/subscribers","subscription_url":"https://api.github.com/repos/broadinstitute/gatk-protected/subscription","commits_url":"https://api.github.com/repos/broadinstitute/gatk-protected/commits{/sha}","git_commits_url":"https://api.github.com/repos/broadinstitute/gatk-protected/git/commits{/sha}","comments_url":"https://api.github.com/repos/broadinstitute/gatk-protected/comments{/number}","issue_comment_url":"https://api.github.com/repos/broadinstitute/gatk-protected/issues/comments{/number}","contents_url":"https://api.github.com/repos/broadinstitute/gatk-protected/contents/{+path}","compare_url":"https://api.github.com/repos/broadinstitute/gatk-protected/compare/{base}...{head}","merges_url":"https://api.github.com/repos/broadinstitute/gatk-protected/merges","archive_url":"https://api.github.com/repos/broadinstitute/gatk-protected/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/broadinstitute/gatk-protected/downloads","issues_url":"https://api.github.com/repos/broadinstitute/gatk-protected/issues{/number}","pulls_url":"https://api.github.com/repos/broadinstitute/gatk-protected/pulls{/number}","milestones_url":"https://api.github.com/repos/broadinstitute/gatk-protected/milestones{/number}","notifications_url":"https://api.github.com/repos/broadinstitute/gatk-protected/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/broadinstitute/gatk-protected/labels{/name}","releases_url":"https://api.github.com/repos/broadinstitute/gatk-protected/releases{/id}","deployments_url":"https://api.github.com/repos/broadinstitute/gatk-protected/deployments","created_at":"2015-04-22T20:24:45Z","updated_at":"2016-01-26T14:20:42Z","pushed_at":"2016-01-26T17:52:33Z","git_url":"git://github.com/broadinstitute/gatk-protected.git","ssh_url":"git@github.com:broadinstitute/gatk-protected.git","clone_url":"https://github.com/broadinstitute/gatk-protected.git","svn_url":"https://github.com/broadinstitute/gatk-protected","homepage":null,"size":61623,"stargazers_count":5,"watchers_count":5,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":100,"forks":1,"open_issues":100,"watchers":5,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/broadinstitute/gatk-protected/pulls/313"},"html":{"href":"https://github.com/broadinstitute/gatk-protected/pull/313"},"issue":{"href":"https://api.github.com/repos/broadinstitute/gatk-protected/issues/313"},"comments":{"href":"https://api.github.com/repos/broadinstitute/gatk-protected/issues/313/comments"},"review_comments":{"href":"https://api.github.com/repos/broadinstitute/gatk-protected/pulls/313/comments"},"review_comment":{"href":"https://api.github.com/repos/broadinstitute/gatk-protected/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/broadinstitute/gatk-protected/pulls/313/commits"},"statuses":{"href":"https://api.github.com/repos/broadinstitute/gatk-protected/statuses/ed694fa96c4e199e590f0bf0d520295d751ee585"}}}}