{"action":"created","comment":{"url":"https://api.github.com/repos/broadinstitute/gatk/pulls/comments/67706890","id":67706890,"diff_hunk":"@@ -0,0 +1,500 @@\n+package org.broadinstitute.hellbender.tools.spark.sv;\n+\n+import com.esotericsoftware.kryo.DefaultSerializer;\n+import com.esotericsoftware.kryo.Kryo;\n+import com.esotericsoftware.kryo.io.Input;\n+import com.esotericsoftware.kryo.io.Output;\n+import org.broadinstitute.hellbender.exceptions.GATKException;\n+import org.broadinstitute.hellbender.utils.read.GATKRead;\n+\n+/**\n+ * Various types of read anomalies that provide evidence of genomic breakpoints.\n+ * There is a shallow hierarchy based on this class that classifies the anomaly as, for example, a split read,\n+ *   or a pair that has both reads on the same reference strand.\n+ * Each BreakpointEvidence object comes from examining a single read, and describing its funkiness, if any, by\n+ *   instantiating one of the subclasses that addresses that type of funkiness.\n+ */\n+public class BreakpointEvidence implements Comparable<BreakpointEvidence> {\n+    private final short contigIndex; // which reference contig (as an index into the sequence dictionary)\n+    private final short eventWidth; // i.e., eventEndPosition would be eventStartPosition+eventWidth\n+    private final int eventStartPosition; // offset on the contig of the starting position of the event\n+    private final String templateName; // QNAME of the read that was funky (i.e., the name of the fragment)\n+    private final TemplateEnd templateEnd; // which read we're talking about (first or last, for paired-end reads)\n+\n+    // Typically UNPAIRED (single read from the template), PAIRED_FIRST (first read from the template), or\n+    // PAIRED_LAST (second read from the template).  The SAM format, however, describes other weird possibilities,\n+    // and to avoid lying, we also allow the pairedness to be unknown, or for a read to be paired, but neither\n+    // first nor last (interior).\n+    public enum TemplateEnd {\n+        UNPAIRED(\"\"), PAIRED_UNKNOWN(\"/?\"), PAIRED_FIRST(\"/1\"), PAIRED_SECOND(\"/2\"), PAIRED_INTERIOR(\"/0\");\n+\n+        TemplateEnd( final String value ) { this.value = value; }\n+\n+        @Override\n+        public String toString() { return value; }\n+\n+        private final String value;\n+    }\n+\n+    /**\n+     * evidence offset and width is set to \"the rest of the fragment\" not covered by this read\n+     */\n+    protected BreakpointEvidence( final GATKRead read, final ReadMetadata metadata ) {\n+        final int templateLen = Math.round(metadata.getStatistics(read.getReadGroup()).getMedianFragmentSize());\n+        final int width;\n+        final int start;\n+        if ( read.isReverseStrand() ) {\n+            final int readStart = read.getStart();\n+            width = readStart - (read.getUnclippedEnd() + 1 - templateLen);\n+            start = readStart - width;\n+        } else {\n+            final int readEnd = read.getEnd() + 1;\n+            width = read.getUnclippedStart() + templateLen - readEnd;\n+            start = readEnd;\n+        }\n+        this.contigIndex = metadata.getContigID(read.getContig());\n+        this.templateName = read.getName();\n+        if ( templateName == null ) throw new GATKException(\"Read has no name.\");\n+        this.templateEnd = findTemplateEnd(read);\n+        this.eventWidth = (short)width;\n+        this.eventStartPosition = start;\n+    }\n+\n+    /**\n+     * for use when the uncertainty in location has a fixed size\n+     */\n+    protected BreakpointEvidence( final GATKRead read, final ReadMetadata metadata,\n+                        final int contigOffset, final short offsetUncertainty ) {\n+        this.contigIndex = metadata.getContigID(read.getContig());\n+        this.templateName = read.getName();\n+        if ( templateName == null ) throw new GATKException(\"Read has no name.\");\n+        this.templateEnd = findTemplateEnd(read);\n+        this.eventStartPosition = contigOffset - offsetUncertainty;\n+        this.eventWidth = (short)(2*offsetUncertainty);\n+    }\n+\n+    /**\n+     * a technical constructor for use in Kryo (de-)serialization.\n+     * this creates an object by reading a Kryo-serialized stream.\n+     * it will be called by subclasses in their own constructors from Kryo streams (as super(kryo, input)).\n+     */\n+    protected BreakpointEvidence( final Kryo kryo, final Input input ) {\n+        this.contigIndex = input.readShort();\n+        this.eventWidth = input.readShort();\n+        this.eventStartPosition = input.readInt();\n+        this.templateName = kryo.readObject(input, String.class);\n+        this.templateEnd = TemplateEnd.values()[input.readByte()];\n+    }\n+\n+    /**\n+     * to make a sentinel (a bit of evidence that serves no function other than to mark the end of a stream).\n+     * used by the MapPartitioner to flush pending evidence in the FindBreakEvidenceSpark.WindowSorter.\n+     */\n+    public BreakpointEvidence( final int contigIndex ) {\n+        this.contigIndex = (short)contigIndex;\n+        this.templateName = \"sentinel\";\n+        this.templateEnd = TemplateEnd.PAIRED_UNKNOWN;\n+        this.eventStartPosition = 0;\n+        this.eventWidth = 0;\n+    }\n+\n+    protected void serialize( final Kryo kryo, final Output output ) {\n+        output.writeShort(contigIndex);\n+        output.writeShort(eventWidth);\n+        output.writeInt(eventStartPosition);\n+        kryo.writeObject(output, templateName);\n+        output.writeByte(templateEnd.ordinal());\n+    }\n+\n+    public int getContigIndex() { return contigIndex; }\n+    public int getEventStartPosition() { return eventStartPosition; }\n+    public int getEventWidth() { return eventWidth; }\n+    public int getContigEnd() { return eventStartPosition +eventWidth; }\n+    public String getTemplateName() { return templateName; }\n+    public TemplateEnd getTemplateEnd() { return templateEnd; }\n+\n+    @Override\n+    public int compareTo( final BreakpointEvidence that ) {\n+        if ( this == that ) return 0;\n+        int result = Short.compare(this.contigIndex, that.contigIndex);\n+        if ( result == 0 ) {\n+            result = Integer.compare(this.eventStartPosition, that.eventStartPosition);\n+            if ( result == 0 ) {\n+                result = Short.compare(this.eventWidth, that.eventWidth);\n+                if ( result == 0 ) {\n+                    result = this.templateEnd.compareTo(that.templateEnd);\n+                    if ( result == 0 ) {\n+                        result = this.templateName.compareTo(that.templateName);\n+                        if ( result == 0 ) {\n+                            result = this.getClass().getName().compareTo(that.getClass().getName());\n+                        }\n+                    }\n+                }\n+            }\n+        }\n+        return result;\n+    }\n+\n+    @Override\n+    public String toString() {\n+        return contigIndex + \"[\" + eventStartPosition + \":\" + getContigEnd() + \"] \" + templateName + templateEnd;\n+    }\n+\n+    @Override\n+    public boolean equals( final Object obj ) {\n+        return obj instanceof BreakpointEvidence && compareTo((BreakpointEvidence)obj) == 0;\n+    }\n+\n+    @Override\n+    public int hashCode() {\n+        final int mult = 1103515245;\n+        int result = 12345;\n+        result = mult * result + contigIndex;\n+        result = mult * result + eventStartPosition;\n+        result = mult * result + eventWidth;\n+        result = mult * result + templateName.hashCode();\n+        result = mult * result + templateEnd.hashCode();\n+        result = mult * result + getClass().getSimpleName().hashCode();\n+        return mult * result;\n+    }\n+\n+    private static TemplateEnd findTemplateEnd( final GATKRead read ) {\n+        return !read.isPaired() ? TemplateEnd.UNPAIRED :\n+               !read.isFirstOfPair() && !read.isSecondOfPair() ? TemplateEnd.PAIRED_UNKNOWN :\n+                read.isFirstOfPair() && !read.isSecondOfPair() ? TemplateEnd.PAIRED_FIRST :\n+               !read.isFirstOfPair() &&  read.isSecondOfPair() ? TemplateEnd.PAIRED_SECOND :\n+                       TemplateEnd.PAIRED_INTERIOR;\n+    }\n+\n+    @DefaultSerializer(SplitRead.Serializer.class)\n+    public static final class SplitRead extends BreakpointEvidence {\n+        private static final short UNCERTAINTY = 2;","path":"src/main/java/org/broadinstitute/hellbender/tools/spark/sv/BreakpointEvidence.java","position":171,"original_position":171,"commit_id":"1a314ea0c3ed7e652b052e432fa878696ac4cdc3","original_commit_id":"1a314ea0c3ed7e652b052e432fa878696ac4cdc3","user":{"login":"cwhelan","id":709477,"avatar_url":"https://avatars.githubusercontent.com/u/709477?v=3","gravatar_id":"","url":"https://api.github.com/users/cwhelan","html_url":"https://github.com/cwhelan","followers_url":"https://api.github.com/users/cwhelan/followers","following_url":"https://api.github.com/users/cwhelan/following{/other_user}","gists_url":"https://api.github.com/users/cwhelan/gists{/gist_id}","starred_url":"https://api.github.com/users/cwhelan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cwhelan/subscriptions","organizations_url":"https://api.github.com/users/cwhelan/orgs","repos_url":"https://api.github.com/users/cwhelan/repos","events_url":"https://api.github.com/users/cwhelan/events{/privacy}","received_events_url":"https://api.github.com/users/cwhelan/received_events","type":"User","site_admin":false},"body":"Brainstorming a thought here but it seems like we might be able to get rid of this uncertainty if we compared the cigars of the two alignments (the one in the primary read and the one in the supplementary) and computed the microhomology/microinsertion size between them. I'll create a ticket to investigate that.","created_at":"2016-06-20T15:10:06Z","updated_at":"2016-06-20T15:10:06Z","html_url":"https://github.com/broadinstitute/gatk/pull/1860#discussion_r67706890","pull_request_url":"https://api.github.com/repos/broadinstitute/gatk/pulls/1860","_links":{"self":{"href":"https://api.github.com/repos/broadinstitute/gatk/pulls/comments/67706890"},"html":{"href":"https://github.com/broadinstitute/gatk/pull/1860#discussion_r67706890"},"pull_request":{"href":"https://api.github.com/repos/broadinstitute/gatk/pulls/1860"}}},"pull_request":{"url":"https://api.github.com/repos/broadinstitute/gatk/pulls/1860","id":71601626,"html_url":"https://github.com/broadinstitute/gatk/pull/1860","diff_url":"https://github.com/broadinstitute/gatk/pull/1860.diff","patch_url":"https://github.com/broadinstitute/gatk/pull/1860.patch","issue_url":"https://api.github.com/repos/broadinstitute/gatk/issues/1860","number":1860,"state":"open","locked":false,"title":"New tool to dump evidence of SVs.","user":{"login":"tedsharpe","id":9284156,"avatar_url":"https://avatars.githubusercontent.com/u/9284156?v=3","gravatar_id":"","url":"https://api.github.com/users/tedsharpe","html_url":"https://github.com/tedsharpe","followers_url":"https://api.github.com/users/tedsharpe/followers","following_url":"https://api.github.com/users/tedsharpe/following{/other_user}","gists_url":"https://api.github.com/users/tedsharpe/gists{/gist_id}","starred_url":"https://api.github.com/users/tedsharpe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tedsharpe/subscriptions","organizations_url":"https://api.github.com/users/tedsharpe/orgs","repos_url":"https://api.github.com/users/tedsharpe/repos","events_url":"https://api.github.com/users/tedsharpe/events{/privacy}","received_events_url":"https://api.github.com/users/tedsharpe/received_events","type":"User","site_admin":false},"body":"","created_at":"2016-05-26T18:25:36Z","updated_at":"2016-06-20T15:10:06Z","closed_at":null,"merged_at":null,"merge_commit_sha":"84008fc58bf5531525b00fca07f3d3b1324aa634","assignee":{"login":"cwhelan","id":709477,"avatar_url":"https://avatars.githubusercontent.com/u/709477?v=3","gravatar_id":"","url":"https://api.github.com/users/cwhelan","html_url":"https://github.com/cwhelan","followers_url":"https://api.github.com/users/cwhelan/followers","following_url":"https://api.github.com/users/cwhelan/following{/other_user}","gists_url":"https://api.github.com/users/cwhelan/gists{/gist_id}","starred_url":"https://api.github.com/users/cwhelan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cwhelan/subscriptions","organizations_url":"https://api.github.com/users/cwhelan/orgs","repos_url":"https://api.github.com/users/cwhelan/repos","events_url":"https://api.github.com/users/cwhelan/events{/privacy}","received_events_url":"https://api.github.com/users/cwhelan/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/broadinstitute/gatk/pulls/1860/commits","review_comments_url":"https://api.github.com/repos/broadinstitute/gatk/pulls/1860/comments","review_comment_url":"https://api.github.com/repos/broadinstitute/gatk/pulls/comments{/number}","comments_url":"https://api.github.com/repos/broadinstitute/gatk/issues/1860/comments","statuses_url":"https://api.github.com/repos/broadinstitute/gatk/statuses/1a314ea0c3ed7e652b052e432fa878696ac4cdc3","head":{"label":"broadinstitute:tws_breakpoint_scalability","ref":"tws_breakpoint_scalability","sha":"1a314ea0c3ed7e652b052e432fa878696ac4cdc3","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":27452807,"name":"gatk","full_name":"broadinstitute/gatk","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","description":"GATK4 development","fork":false,"url":"https://api.github.com/repos/broadinstitute/gatk","forks_url":"https://api.github.com/repos/broadinstitute/gatk/forks","keys_url":"https://api.github.com/repos/broadinstitute/gatk/keys{/key_id}","collaborators_url":"https://api.github.com/repos/broadinstitute/gatk/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/broadinstitute/gatk/teams","hooks_url":"https://api.github.com/repos/broadinstitute/gatk/hooks","issue_events_url":"https://api.github.com/repos/broadinstitute/gatk/issues/events{/number}","events_url":"https://api.github.com/repos/broadinstitute/gatk/events","assignees_url":"https://api.github.com/repos/broadinstitute/gatk/assignees{/user}","branches_url":"https://api.github.com/repos/broadinstitute/gatk/branches{/branch}","tags_url":"https://api.github.com/repos/broadinstitute/gatk/tags","blobs_url":"https://api.github.com/repos/broadinstitute/gatk/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/broadinstitute/gatk/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/broadinstitute/gatk/git/refs{/sha}","trees_url":"https://api.github.com/repos/broadinstitute/gatk/git/trees{/sha}","statuses_url":"https://api.github.com/repos/broadinstitute/gatk/statuses/{sha}","languages_url":"https://api.github.com/repos/broadinstitute/gatk/languages","stargazers_url":"https://api.github.com/repos/broadinstitute/gatk/stargazers","contributors_url":"https://api.github.com/repos/broadinstitute/gatk/contributors","subscribers_url":"https://api.github.com/repos/broadinstitute/gatk/subscribers","subscription_url":"https://api.github.com/repos/broadinstitute/gatk/subscription","commits_url":"https://api.github.com/repos/broadinstitute/gatk/commits{/sha}","git_commits_url":"https://api.github.com/repos/broadinstitute/gatk/git/commits{/sha}","comments_url":"https://api.github.com/repos/broadinstitute/gatk/comments{/number}","issue_comment_url":"https://api.github.com/repos/broadinstitute/gatk/issues/comments{/number}","contents_url":"https://api.github.com/repos/broadinstitute/gatk/contents/{+path}","compare_url":"https://api.github.com/repos/broadinstitute/gatk/compare/{base}...{head}","merges_url":"https://api.github.com/repos/broadinstitute/gatk/merges","archive_url":"https://api.github.com/repos/broadinstitute/gatk/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/broadinstitute/gatk/downloads","issues_url":"https://api.github.com/repos/broadinstitute/gatk/issues{/number}","pulls_url":"https://api.github.com/repos/broadinstitute/gatk/pulls{/number}","milestones_url":"https://api.github.com/repos/broadinstitute/gatk/milestones{/number}","notifications_url":"https://api.github.com/repos/broadinstitute/gatk/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/broadinstitute/gatk/labels{/name}","releases_url":"https://api.github.com/repos/broadinstitute/gatk/releases{/id}","deployments_url":"https://api.github.com/repos/broadinstitute/gatk/deployments","created_at":"2014-12-02T20:50:36Z","updated_at":"2016-06-17T00:18:44Z","pushed_at":"2016-06-20T14:41:34Z","git_url":"git://github.com/broadinstitute/gatk.git","ssh_url":"git@github.com:broadinstitute/gatk.git","clone_url":"https://github.com/broadinstitute/gatk.git","svn_url":"https://github.com/broadinstitute/gatk","homepage":"","size":113149,"stargazers_count":73,"watchers_count":73,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":29,"mirror_url":null,"open_issues_count":374,"forks":29,"open_issues":374,"watchers":73,"default_branch":"master"}},"base":{"label":"broadinstitute:master","ref":"master","sha":"543ceb7e5c1a2dbd184a572c10f23eea3111f44c","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":27452807,"name":"gatk","full_name":"broadinstitute/gatk","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","description":"GATK4 development","fork":false,"url":"https://api.github.com/repos/broadinstitute/gatk","forks_url":"https://api.github.com/repos/broadinstitute/gatk/forks","keys_url":"https://api.github.com/repos/broadinstitute/gatk/keys{/key_id}","collaborators_url":"https://api.github.com/repos/broadinstitute/gatk/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/broadinstitute/gatk/teams","hooks_url":"https://api.github.com/repos/broadinstitute/gatk/hooks","issue_events_url":"https://api.github.com/repos/broadinstitute/gatk/issues/events{/number}","events_url":"https://api.github.com/repos/broadinstitute/gatk/events","assignees_url":"https://api.github.com/repos/broadinstitute/gatk/assignees{/user}","branches_url":"https://api.github.com/repos/broadinstitute/gatk/branches{/branch}","tags_url":"https://api.github.com/repos/broadinstitute/gatk/tags","blobs_url":"https://api.github.com/repos/broadinstitute/gatk/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/broadinstitute/gatk/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/broadinstitute/gatk/git/refs{/sha}","trees_url":"https://api.github.com/repos/broadinstitute/gatk/git/trees{/sha}","statuses_url":"https://api.github.com/repos/broadinstitute/gatk/statuses/{sha}","languages_url":"https://api.github.com/repos/broadinstitute/gatk/languages","stargazers_url":"https://api.github.com/repos/broadinstitute/gatk/stargazers","contributors_url":"https://api.github.com/repos/broadinstitute/gatk/contributors","subscribers_url":"https://api.github.com/repos/broadinstitute/gatk/subscribers","subscription_url":"https://api.github.com/repos/broadinstitute/gatk/subscription","commits_url":"https://api.github.com/repos/broadinstitute/gatk/commits{/sha}","git_commits_url":"https://api.github.com/repos/broadinstitute/gatk/git/commits{/sha}","comments_url":"https://api.github.com/repos/broadinstitute/gatk/comments{/number}","issue_comment_url":"https://api.github.com/repos/broadinstitute/gatk/issues/comments{/number}","contents_url":"https://api.github.com/repos/broadinstitute/gatk/contents/{+path}","compare_url":"https://api.github.com/repos/broadinstitute/gatk/compare/{base}...{head}","merges_url":"https://api.github.com/repos/broadinstitute/gatk/merges","archive_url":"https://api.github.com/repos/broadinstitute/gatk/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/broadinstitute/gatk/downloads","issues_url":"https://api.github.com/repos/broadinstitute/gatk/issues{/number}","pulls_url":"https://api.github.com/repos/broadinstitute/gatk/pulls{/number}","milestones_url":"https://api.github.com/repos/broadinstitute/gatk/milestones{/number}","notifications_url":"https://api.github.com/repos/broadinstitute/gatk/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/broadinstitute/gatk/labels{/name}","releases_url":"https://api.github.com/repos/broadinstitute/gatk/releases{/id}","deployments_url":"https://api.github.com/repos/broadinstitute/gatk/deployments","created_at":"2014-12-02T20:50:36Z","updated_at":"2016-06-17T00:18:44Z","pushed_at":"2016-06-20T14:41:34Z","git_url":"git://github.com/broadinstitute/gatk.git","ssh_url":"git@github.com:broadinstitute/gatk.git","clone_url":"https://github.com/broadinstitute/gatk.git","svn_url":"https://github.com/broadinstitute/gatk","homepage":"","size":113149,"stargazers_count":73,"watchers_count":73,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":29,"mirror_url":null,"open_issues_count":374,"forks":29,"open_issues":374,"watchers":73,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/broadinstitute/gatk/pulls/1860"},"html":{"href":"https://github.com/broadinstitute/gatk/pull/1860"},"issue":{"href":"https://api.github.com/repos/broadinstitute/gatk/issues/1860"},"comments":{"href":"https://api.github.com/repos/broadinstitute/gatk/issues/1860/comments"},"review_comments":{"href":"https://api.github.com/repos/broadinstitute/gatk/pulls/1860/comments"},"review_comment":{"href":"https://api.github.com/repos/broadinstitute/gatk/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/broadinstitute/gatk/pulls/1860/commits"},"statuses":{"href":"https://api.github.com/repos/broadinstitute/gatk/statuses/1a314ea0c3ed7e652b052e432fa878696ac4cdc3"}}}}
{"actor":{"display_login":"cwhelan"}}