{"action":"created","comment":{"url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/pulls/comments/170712757","pull_request_review_id":97287162,"id":170712757,"diff_hunk":"@@ -667,15 +686,305 @@ def getRefAltScores(refSeq, altSeq, donor=False):\n                                \"zScore\": altZScore}}\n     return scoreDict\n \n+def getMaxMaxEntScanScoreSlidingWindowSNS(variant):\n+    '''\n+    Given a variant, determines the maximum alt MaxEntScan score in a 9 bp sliding window\n+       with the variant in each position (1-9)\n+    Returns a dictionary containing the ref and alt MaxEntScan score and z-score and position of variant for the highest scoring window\n+    Dictionary also containing value \"inFirstThree\" that has value either True or False\n+       If inFirstThree = True, then variant is in firt 3 bp of highest scoring sliding window\n+       If inFirstThree = False, then variant is in last 6 bp of highest scoring sliding window \n+    '''\n+    varGenPos = int(variant[\"Pos\"])\n+    varStrand = getVarStrand(variant)\n+    # use +- 8 to get 17 bp region so that have sequence for each 9 bp window with variant in positions 1-9\n+    # minus strand and plus strand are opposite for +- 8 to preserve sequence returned by getRefAltSeqs\n+    if varStrand == \"-\":\n+        regionStart = varGenPos + 8\n+        regionEnd = varGenPos - 8\n+    else:\n+        regionStart = varGenPos - 8\n+        regionEnd = varGenPos + 8\n+    refAltSeqs = getRefAltSeqs(variant, regionStart, regionEnd)\n+    refSeq = refAltSeqs[\"refSeq\"]\n+    altSeq = refAltSeqs[\"altSeq\"]\n+    varPos = 9\n+    windowStart = 0\n+    windowEnd = 9\n+    windowSeqs = {}\n+    windowScores = {}\n+    windowAltMaxEntScanScores = {}\n+    while windowStart < 9:\n+        refWindowSeq = refSeq[windowStart:windowEnd]\n+        altWindowSeq = altSeq[windowStart:windowEnd]\n+        windowSeqs[varPos] = {\"refSeq\": refWindowSeq,\n+                              \"altSeq\": altWindowSeq}\n+        refAltWindowScores = getRefAltScores(refWindowSeq, altWindowSeq, donor=True)\n+        windowScores[varPos] = {\"refMaxEntScanScore\": refAltWindowScores[\"refScores\"][\"maxEntScanScore\"],\n+                                \"refZScore\": refAltWindowScores[\"refScores\"][\"zScore\"],\n+                                \"altMaxEntScanScore\": refAltWindowScores[\"altScores\"][\"maxEntScanScore\"],\n+                                \"altZScore\": refAltWindowScores[\"altScores\"][\"zScore\"]}\n+        windowAltMaxEntScanScores[varPos] = refAltWindowScores[\"altScores\"][\"maxEntScanScore\"]\n+        varPos -= 1\n+        windowStart += 1\n+        windowEnd += 1\n+        \n+    # to get tuple containing sequence with variant position with maximum alt MaxEntScan score\n+    maxAltWindowScore = max(windowAltMaxEntScanScores.items(), key=lambda k: k[1])\n+    maxVarPosition = maxAltWindowScore[0]\n+    maxScores = windowScores[maxVarPosition]\n+\n+    # determines if variant is in the first three bases of the 9 bp donor sequence\n+    inFirstThree = False\n+    if maxVarPosition <= 3:\n+        inFirstThree = True\n+            \n+    return {\"refMaxEntScanScore\": maxScores[\"refMaxEntScanScore\"],\n+            \"refZScore\": maxScores[\"refZScore\"],\n+            \"altMaxEntScanScore\": maxScores[\"altMaxEntScanScore\"],\n+            \"altZScore\": maxScores[\"altZScore\"],\n+            \"varWindowPosition\": maxVarPosition,\n+            \"inFirstThree\": inFirstThree}\n+\n+def varInFirstThree(variant):\n+    '''\n+    Given a variant, determines if variant in in first 3 bp of highest scoring sliding window\n+    Returns true if variant in first 3 bp, False otherwise\n+    '''\n+    slidingWindowInfo = getMaxMaxEntScanScoreSlidingWindowSNS(variant)\n+    if slidingWindowInfo[\"inFirstThree\"] == True:\n+        return True\n+    return False\n+\n+def getVarWindowPosition(variant):\n+    '''\n+    Given a variant, determines window position for highest scoring sliding window\n+    Returns integer 1-9 based on variant position with higest scoring window\n+    '''\n+    slidingWindowInfo = getMaxMaxEntScanScoreSlidingWindowSNS(variant)\n+    varWindowPos = slidingWindowInfo[\"varWindowPosition\"]\n+    return varWindowPos\n+\n+def getSubsequentDonorScores(variant):\n+    '''\n+    Given a variant, checks if variant is in an exon\n+    If exonic variant, returns a dictionary containing:\n+       MaxEntScan score and z-score for reference subsequent donor sequence\n+    '''\n+    varGenPos = int(variant[\"Pos\"])\n+    inExon = varInExon(variant)\n+    if inExon == True:\n+        varChrom = getVarChrom(variant)\n+        varStrand = getVarStrand(variant)\n+        exonNumber = getVarExonNumberSNS(variant)\n+        refSpliceDonorBounds = getRefSpliceDonorBoundaries(variant)\n+        subDonorBounds = refSpliceDonorBounds[exonNumber]\n+        refSeq = getFastaSeq(varChrom, subDonorBounds[\"donorStart\"], subDonorBounds[\"donorEnd\"])\n+        subMaxEntScanScore = runMaxEntScan(refSeq, donor=True)\n+        subZScore = getZScore(subMaxEntScanScore, donor=True)\n+        return {\"maxEntScanScore\": subMaxEntScanScore,\n+                \"zScore\": subZScore}\n+\n+def isCIDomainInRegion(regionStart, regionEnd, boundaries, gene):\n+    '''\n+    Given a region of interest, boundaries (either enigma or priors) and gene of interest\n+    Determines if there is an overlap between the region of interest and a CI domain\n+    For minus strand gene (BRCA1) regionStart > regionEnd\n+    For plus strand gene (BRCA2) regionStart < regionEnd\n+    Returns True if there is an overlap, False otherwise\n+    '''\n+    if gene == \"BRCA1\":\n+        for domain in brca1CIDomains[boundaries].keys():\n+            domainStart = brca1CIDomains[boundaries][domain][\"domStart\"]\n+            domainEnd = brca1CIDomains[boundaries][domain][\"domEnd\"]\n+            overlap = range(max(regionEnd, domainEnd), min(regionStart, domainStart) + 1)\n+            if len(overlap) > 0:\n+                return True\n+    elif gene == \"BRCA2\":\n+        for domain in brca2CIDomains[boundaries].keys():\n+            domainStart = brca2CIDomains[boundaries][domain][\"domStart\"]\n+            domainEnd = brca2CIDomains[boundaries][domain][\"domEnd\"]\n+            overlap = range(max(regionStart, domainStart), min(regionEnd, domainEnd) + 1)\n+            if len(overlap) > 0:\n+                return True\n+    return False\n+\n+def getRefExonLength(variant):\n+    '''Given a variant, returns the length of the reference exon'''\n+    if varInExon(variant) == True:\n+        varExonNum = getVarExonNumberSNS(variant)\n+        exonBounds = getExonBoundaries(variant)\n+        if getVarStrand(variant) == \"-\":\n+            varExonStart = int(exonBounds[varExonNum][\"exonStart\"])\n+            # varExonEnd - 1 to account for RefSeq numbering which starts to the right of the first base\n+            varExonEnd = int(exonBounds[varExonNum][\"exonEnd\"]) - 1\n+            exonLength = varExonStart - varExonEnd\n+        else:\n+            # varExonStart -1 to account for RefSeq numbering which starts to the right of the first base\n+            varExonStart = int(exonBounds[varExonNum][\"exonStart\"]) - 1\n+            varExonEnd = int(exonBounds[varExonNum][\"exonEnd\"])\n+            exonLength = varExonEnd - varExonStart\n+        return exonLength\n+\n+def getNewSplicePosition(varGenPos, varStrand, varWindowPos, inFirstThree):\n+    '''\n+    Given a variant's:\n+    genetic postion, strand, sliding window position with max MES score AND\n+      whether that position is within first three bases of highest scoring window\n+    Returns the position where splicing occurs for a de novo splice donor\n+    '''\n+    if varStrand == \"+\":\n+        if inFirstThree == False:\n+            newSplicePos = int(varGenPos) - (varWindowPos - 3)\n+        else:\n+            newSplicePos = int(varGenPos) + abs(varWindowPos - 3)\n+    else:\n+        if inFirstThree == False:\n+            newSplicePos = int(varGenPos) + (varWindowPos - 3)\n+        else:\n+            newSplicePos = int(varGenPos) - abs(varWindowPos - 3)\n+    return newSplicePos\n+    \n+def getAltExonLength(variant):\n+    '''Given a variant, returns the length of the alternate exon after splicing occurs in max MES window'''\n+    if varInExon(variant) == True:\n+        varExonNum = getVarExonNumberSNS(variant)\n+        exonBounds = getExonBoundaries(variant)\n+        slidingWindowInfo = getMaxMaxEntScanScoreSlidingWindowSNS(variant)\n+        newSplicePos = getNewSplicePosition(variant[\"Pos\"], getVarStrand(variant),\n+                                            slidingWindowInfo[\"varWindowPosition\"], slidingWindowInfo[\"inFirstThree\"])\n+        if getVarStrand(variant) == \"-\":\n+            varExonStart = int(exonBounds[varExonNum][\"exonStart\"])\n+            # newSplicePos -1 to account for RefSeq numbering which starts to the right of the first base\n+            exonLength = varExonStart - (newSplicePos - 1)\n+        else:\n+            varExonEnd = int(exonBounds[varExonNum][\"exonEnd\"])\n+            refExonLength = getRefExonLength(variant)\n+            # need to compare to refExonLength because of + strand gene\n+            # newSplicePos -1 to account for RefSeq numbering which starts to the right of the first base\n+            exonLength = refExonLength - (varExonEnd - (newSplicePos - 1))\n+        return exonLength\n+\n+def compareRefAltExonLengths(refLength, altLength):\n+    '''\n+    Compares ref and alt exon lengths\n+    If both exon lengths % 3 are equal, then both ref and alt have the same reading frame\n+    Returns true if both ref and alt exon have the same reading frame, false otherwise\n+    '''\n+    if refLength % 3 == altLength % 3:\n+        return True\n+    else:\n+        return False\n+\n+def isSplicingWindowInFrame(variant):\n+    '''\n+    Given a variant, determines ref and alt exon length and compares them\n+    If ref and alt exon are in the same reading frame, returns True\n+    '''\n+    refLength = getRefExonLength(variant)\n+    altLength = getAltExonLength(variant)\n+    inFrame = compareRefAltExonLengths(refLength, altLength)\n+    if inFrame == True:\n+        return True\n+    return False\n+\n+def compareDeNovoWildTypeSplicePos(variant):\n+    '''\n+    Given a variant, compares de novo splicing position with wild-type splicign position\n+    If distance between de novo and wild-type donors is divisible by 3, returns True\n+    returns False otherwise\n+    '''\n+    if varInExon(variant) == True:\n+        varStrand = getVarStrand(variant)\n+        varExonNum = getVarExonNumberSNS(variant)\n+        refExonBounds = getExonBoundaries(variant)\n+        wildTypeSplicePos = refExonBounds[varExonNum][\"exonEnd\"]\n+        slidingWindowInfo = getMaxMaxEntScanScoreSlidingWindowSNS(variant)\n+        deNovoSplicePos = getNewSplicePosition(variant[\"Pos\"], varStrand,\n+                                               slidingWindowInfo[\"varWindowPosition\"], slidingWindowInfo[\"inFirstThree\"])\n+        if varStrand == \"+\":\n+            distanceBetween = wildTypeSplicePos - deNovoSplicePos\n+        else:\n+            # +1 because of RefSeq numbering\n+            distanceBetween = deNovoSplicePos - (wildTypeSplicePos + 1)\n+        if distanceBetween % 3 == 0:\n+            return True\n+        else:\n+            return False\n+        \n+def determineSpliceRescueSNS(variant, boundaries):\n+    '''\n+    Given a variant, determines if there is a possibility of splice rescue\n+    If there is a possibility of splice rescue, flags variant for further analysis\n+    Else assigns prior probability of pathogenecity and predicted qualitative ENIGMA class\n+    '''\n+    varCons = getVarConsequences(variant)\n+    # check that variant causes a premature stop codon in an exon\n+    if varCons == \"stop_gained\" and varInExon(variant) == True:\n+        spliceFlag = 0\n+        spliceRescue = 0\n+        frameshift = 0\n+        # if variant is in first 3 bp of highest scoring sliding window, no splice rescue\n+        if varInFirstThree(variant) == True:\n+            priorProb = 0.97\n+            spliceRescue = 0\n+            frameshift = 0\n+        else:\n+            inFrame = isSplicingWindowInFrame(variant)\n+            # if variant causes a frameshift, no splice rescue\n+            if inFrame == False:\n+                priorProb = 0.99\n+                spliceRescue = 0\n+                frameshift = 1\n+            else:\n+                varGenPos = int(variant[\"Pos\"])\n+                varStrand = getVarStrand(variant)\n+                varExonNum = getVarExonNumberSNS(variant)\n+                # varExonNum returns a string in the format \"exonN\"\n+                # nextExonNum parses out N from varExonNum and adds 1 to get next exon number key \"exonN+1\"\n+                nextExonNum = \"exon\" + str(int(varExonNum[4:]) + 1)","path":"pipeline/splicing/calcVarPriors.py","position":326,"original_position":326,"commit_id":"89248724bca5cbc8a10e973ff2363c3321f52af1","original_commit_id":"89248724bca5cbc8a10e973ff2363c3321f52af1","user":{"login":"melissacline","id":1714823,"avatar_url":"https://avatars3.githubusercontent.com/u/1714823?v=4","gravatar_id":"","url":"https://api.github.com/users/melissacline","html_url":"https://github.com/melissacline","followers_url":"https://api.github.com/users/melissacline/followers","following_url":"https://api.github.com/users/melissacline/following{/other_user}","gists_url":"https://api.github.com/users/melissacline/gists{/gist_id}","starred_url":"https://api.github.com/users/melissacline/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/melissacline/subscriptions","organizations_url":"https://api.github.com/users/melissacline/orgs","repos_url":"https://api.github.com/users/melissacline/repos","events_url":"https://api.github.com/users/melissacline/events{/privacy}","received_events_url":"https://api.github.com/users/melissacline/received_events","type":"User","site_admin":false},"body":"I'm confused.  What is the significance of the '4'?","created_at":"2018-02-26T19:45:59Z","updated_at":"2018-02-26T19:49:49Z","html_url":"https://github.com/BRCAChallenge/brca-exchange/pull/734#discussion_r170712757","pull_request_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/pulls/734","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/BRCAChallenge/brca-exchange/pulls/comments/170712757"},"html":{"href":"https://github.com/BRCAChallenge/brca-exchange/pull/734#discussion_r170712757"},"pull_request":{"href":"https://api.github.com/repos/BRCAChallenge/brca-exchange/pulls/734"}}},"pull_request":{"url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/pulls/734","id":168722069,"html_url":"https://github.com/BRCAChallenge/brca-exchange/pull/734","diff_url":"https://github.com/BRCAChallenge/brca-exchange/pull/734.diff","patch_url":"https://github.com/BRCAChallenge/brca-exchange/pull/734.patch","issue_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/issues/734","number":734,"state":"open","locked":false,"title":"Adds functions to determine if splice rescue can occur for a given variant","user":{"login":"ccdlott","id":28713075,"avatar_url":"https://avatars3.githubusercontent.com/u/28713075?v=4","gravatar_id":"","url":"https://api.github.com/users/ccdlott","html_url":"https://github.com/ccdlott","followers_url":"https://api.github.com/users/ccdlott/followers","following_url":"https://api.github.com/users/ccdlott/following{/other_user}","gists_url":"https://api.github.com/users/ccdlott/gists{/gist_id}","starred_url":"https://api.github.com/users/ccdlott/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ccdlott/subscriptions","organizations_url":"https://api.github.com/users/ccdlott/orgs","repos_url":"https://api.github.com/users/ccdlott/repos","events_url":"https://api.github.com/users/ccdlott/events{/privacy}","received_events_url":"https://api.github.com/users/ccdlott/received_events","type":"User","site_admin":false},"body":"","created_at":"2018-02-13T00:08:16Z","updated_at":"2018-02-26T19:49:49Z","closed_at":null,"merged_at":null,"merge_commit_sha":"bf1a09d3de2cf1ad9e4ceafab92265688692ac26","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":381903814,"url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/labels/in%20progress","name":"in progress","color":"ededed","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/pulls/734/commits","review_comments_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/pulls/734/comments","review_comment_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/pulls/comments{/number}","comments_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/issues/734/comments","statuses_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/statuses/89248724bca5cbc8a10e973ff2363c3321f52af1","head":{"label":"ccdlott:determineSpliceRescue","ref":"determineSpliceRescue","sha":"89248724bca5cbc8a10e973ff2363c3321f52af1","user":{"login":"ccdlott","id":28713075,"avatar_url":"https://avatars3.githubusercontent.com/u/28713075?v=4","gravatar_id":"","url":"https://api.github.com/users/ccdlott","html_url":"https://github.com/ccdlott","followers_url":"https://api.github.com/users/ccdlott/followers","following_url":"https://api.github.com/users/ccdlott/following{/other_user}","gists_url":"https://api.github.com/users/ccdlott/gists{/gist_id}","starred_url":"https://api.github.com/users/ccdlott/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ccdlott/subscriptions","organizations_url":"https://api.github.com/users/ccdlott/orgs","repos_url":"https://api.github.com/users/ccdlott/repos","events_url":"https://api.github.com/users/ccdlott/events{/privacy}","received_events_url":"https://api.github.com/users/ccdlott/received_events","type":"User","site_admin":false},"repo":{"id":101673816,"name":"brca-exchange","full_name":"ccdlott/brca-exchange","owner":{"login":"ccdlott","id":28713075,"avatar_url":"https://avatars3.githubusercontent.com/u/28713075?v=4","gravatar_id":"","url":"https://api.github.com/users/ccdlott","html_url":"https://github.com/ccdlott","followers_url":"https://api.github.com/users/ccdlott/followers","following_url":"https://api.github.com/users/ccdlott/following{/other_user}","gists_url":"https://api.github.com/users/ccdlott/gists{/gist_id}","starred_url":"https://api.github.com/users/ccdlott/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ccdlott/subscriptions","organizations_url":"https://api.github.com/users/ccdlott/orgs","repos_url":"https://api.github.com/users/ccdlott/repos","events_url":"https://api.github.com/users/ccdlott/events{/privacy}","received_events_url":"https://api.github.com/users/ccdlott/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/ccdlott/brca-exchange","description":"Overall management and deployment of the BRCA Exchange web portal and pipeline scripts","fork":true,"url":"https://api.github.com/repos/ccdlott/brca-exchange","forks_url":"https://api.github.com/repos/ccdlott/brca-exchange/forks","keys_url":"https://api.github.com/repos/ccdlott/brca-exchange/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ccdlott/brca-exchange/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ccdlott/brca-exchange/teams","hooks_url":"https://api.github.com/repos/ccdlott/brca-exchange/hooks","issue_events_url":"https://api.github.com/repos/ccdlott/brca-exchange/issues/events{/number}","events_url":"https://api.github.com/repos/ccdlott/brca-exchange/events","assignees_url":"https://api.github.com/repos/ccdlott/brca-exchange/assignees{/user}","branches_url":"https://api.github.com/repos/ccdlott/brca-exchange/branches{/branch}","tags_url":"https://api.github.com/repos/ccdlott/brca-exchange/tags","blobs_url":"https://api.github.com/repos/ccdlott/brca-exchange/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ccdlott/brca-exchange/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ccdlott/brca-exchange/git/refs{/sha}","trees_url":"https://api.github.com/repos/ccdlott/brca-exchange/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ccdlott/brca-exchange/statuses/{sha}","languages_url":"https://api.github.com/repos/ccdlott/brca-exchange/languages","stargazers_url":"https://api.github.com/repos/ccdlott/brca-exchange/stargazers","contributors_url":"https://api.github.com/repos/ccdlott/brca-exchange/contributors","subscribers_url":"https://api.github.com/repos/ccdlott/brca-exchange/subscribers","subscription_url":"https://api.github.com/repos/ccdlott/brca-exchange/subscription","commits_url":"https://api.github.com/repos/ccdlott/brca-exchange/commits{/sha}","git_commits_url":"https://api.github.com/repos/ccdlott/brca-exchange/git/commits{/sha}","comments_url":"https://api.github.com/repos/ccdlott/brca-exchange/comments{/number}","issue_comment_url":"https://api.github.com/repos/ccdlott/brca-exchange/issues/comments{/number}","contents_url":"https://api.github.com/repos/ccdlott/brca-exchange/contents/{+path}","compare_url":"https://api.github.com/repos/ccdlott/brca-exchange/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ccdlott/brca-exchange/merges","archive_url":"https://api.github.com/repos/ccdlott/brca-exchange/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ccdlott/brca-exchange/downloads","issues_url":"https://api.github.com/repos/ccdlott/brca-exchange/issues{/number}","pulls_url":"https://api.github.com/repos/ccdlott/brca-exchange/pulls{/number}","milestones_url":"https://api.github.com/repos/ccdlott/brca-exchange/milestones{/number}","notifications_url":"https://api.github.com/repos/ccdlott/brca-exchange/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ccdlott/brca-exchange/labels{/name}","releases_url":"https://api.github.com/repos/ccdlott/brca-exchange/releases{/id}","deployments_url":"https://api.github.com/repos/ccdlott/brca-exchange/deployments","created_at":"2017-08-28T18:22:31Z","updated_at":"2017-08-28T18:22:35Z","pushed_at":"2018-02-23T01:31:13Z","git_url":"git://github.com/ccdlott/brca-exchange.git","ssh_url":"git@github.com:ccdlott/brca-exchange.git","clone_url":"https://github.com/ccdlott/brca-exchange.git","svn_url":"https://github.com/ccdlott/brca-exchange","homepage":"http://brcaexchange.org","size":146341,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"BRCAChallenge:master","ref":"master","sha":"5f240033836f7a2db054c85cc293360470437cd2","user":{"login":"BRCAChallenge","id":26631600,"avatar_url":"https://avatars2.githubusercontent.com/u/26631600?v=4","gravatar_id":"","url":"https://api.github.com/users/BRCAChallenge","html_url":"https://github.com/BRCAChallenge","followers_url":"https://api.github.com/users/BRCAChallenge/followers","following_url":"https://api.github.com/users/BRCAChallenge/following{/other_user}","gists_url":"https://api.github.com/users/BRCAChallenge/gists{/gist_id}","starred_url":"https://api.github.com/users/BRCAChallenge/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BRCAChallenge/subscriptions","organizations_url":"https://api.github.com/users/BRCAChallenge/orgs","repos_url":"https://api.github.com/users/BRCAChallenge/repos","events_url":"https://api.github.com/users/BRCAChallenge/events{/privacy}","received_events_url":"https://api.github.com/users/BRCAChallenge/received_events","type":"Organization","site_admin":false},"repo":{"id":57995916,"name":"brca-exchange","full_name":"BRCAChallenge/brca-exchange","owner":{"login":"BRCAChallenge","id":26631600,"avatar_url":"https://avatars2.githubusercontent.com/u/26631600?v=4","gravatar_id":"","url":"https://api.github.com/users/BRCAChallenge","html_url":"https://github.com/BRCAChallenge","followers_url":"https://api.github.com/users/BRCAChallenge/followers","following_url":"https://api.github.com/users/BRCAChallenge/following{/other_user}","gists_url":"https://api.github.com/users/BRCAChallenge/gists{/gist_id}","starred_url":"https://api.github.com/users/BRCAChallenge/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BRCAChallenge/subscriptions","organizations_url":"https://api.github.com/users/BRCAChallenge/orgs","repos_url":"https://api.github.com/users/BRCAChallenge/repos","events_url":"https://api.github.com/users/BRCAChallenge/events{/privacy}","received_events_url":"https://api.github.com/users/BRCAChallenge/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/BRCAChallenge/brca-exchange","description":"Overall management and deployment of the BRCA Exchange web portal and pipeline scripts","fork":false,"url":"https://api.github.com/repos/BRCAChallenge/brca-exchange","forks_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/forks","keys_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/keys{/key_id}","collaborators_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/teams","hooks_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/hooks","issue_events_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/issues/events{/number}","events_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/events","assignees_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/assignees{/user}","branches_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/branches{/branch}","tags_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/tags","blobs_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/git/refs{/sha}","trees_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/git/trees{/sha}","statuses_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/statuses/{sha}","languages_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/languages","stargazers_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/stargazers","contributors_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/contributors","subscribers_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/subscribers","subscription_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/subscription","commits_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/commits{/sha}","git_commits_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/git/commits{/sha}","comments_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/comments{/number}","issue_comment_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/issues/comments{/number}","contents_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/contents/{+path}","compare_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/compare/{base}...{head}","merges_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/merges","archive_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/downloads","issues_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/issues{/number}","pulls_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/pulls{/number}","milestones_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/milestones{/number}","notifications_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/labels{/name}","releases_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/releases{/id}","deployments_url":"https://api.github.com/repos/BRCAChallenge/brca-exchange/deployments","created_at":"2016-05-03T19:26:44Z","updated_at":"2018-02-14T21:52:18Z","pushed_at":"2018-02-23T21:22:55Z","git_url":"git://github.com/BRCAChallenge/brca-exchange.git","ssh_url":"git@github.com:BRCAChallenge/brca-exchange.git","clone_url":"https://github.com/BRCAChallenge/brca-exchange.git","svn_url":"https://github.com/BRCAChallenge/brca-exchange","homepage":"http://brcaexchange.org","size":146327,"stargazers_count":8,"watchers_count":8,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":22,"mirror_url":null,"archived":false,"open_issues_count":56,"license":null,"forks":22,"open_issues":56,"watchers":8,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/BRCAChallenge/brca-exchange/pulls/734"},"html":{"href":"https://github.com/BRCAChallenge/brca-exchange/pull/734"},"issue":{"href":"https://api.github.com/repos/BRCAChallenge/brca-exchange/issues/734"},"comments":{"href":"https://api.github.com/repos/BRCAChallenge/brca-exchange/issues/734/comments"},"review_comments":{"href":"https://api.github.com/repos/BRCAChallenge/brca-exchange/pulls/734/comments"},"review_comment":{"href":"https://api.github.com/repos/BRCAChallenge/brca-exchange/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/BRCAChallenge/brca-exchange/pulls/734/commits"},"statuses":{"href":"https://api.github.com/repos/BRCAChallenge/brca-exchange/statuses/89248724bca5cbc8a10e973ff2363c3321f52af1"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"melissacline"}}