{"action":"created","issue":{"url":"https://api.github.com/repos/BioJulia/Bio.jl/issues/138","repository_url":"https://api.github.com/repos/BioJulia/Bio.jl","labels_url":"https://api.github.com/repos/BioJulia/Bio.jl/issues/138/labels{/name}","comments_url":"https://api.github.com/repos/BioJulia/Bio.jl/issues/138/comments","events_url":"https://api.github.com/repos/BioJulia/Bio.jl/issues/138/events","html_url":"https://github.com/BioJulia/Bio.jl/pull/138","id":140415212,"number":138,"title":"add GFF3 parser","user":{"login":"bicycle1885","id":905683,"avatar_url":"https://avatars.githubusercontent.com/u/905683?v=3","gravatar_id":"","url":"https://api.github.com/users/bicycle1885","html_url":"https://github.com/bicycle1885","followers_url":"https://api.github.com/users/bicycle1885/followers","following_url":"https://api.github.com/users/bicycle1885/following{/other_user}","gists_url":"https://api.github.com/users/bicycle1885/gists{/gist_id}","starred_url":"https://api.github.com/users/bicycle1885/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bicycle1885/subscriptions","organizations_url":"https://api.github.com/users/bicycle1885/orgs","repos_url":"https://api.github.com/users/bicycle1885/repos","events_url":"https://api.github.com/users/bicycle1885/events{/privacy}","received_events_url":"https://api.github.com/users/bicycle1885/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/BioJulia/Bio.jl/labels/stage:%20WIP","name":"stage: WIP","color":"d4c5f9"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2016-03-12T20:37:33Z","updated_at":"2016-09-30T06:44:19Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/BioJulia/Bio.jl/pulls/138","html_url":"https://github.com/BioJulia/Bio.jl/pull/138","diff_url":"https://github.com/BioJulia/Bio.jl/pull/138.diff","patch_url":"https://github.com/BioJulia/Bio.jl/pull/138.patch"},"body":"This adds GFF3 (http://www.sequenceontology.org/gff3.shtml) parser.\r\n\r\n- [ ] Parse *attributes* (to `Dict`?)\r\n- [ ] Percent-encoding support\r\n- [ ] \"###\" directive\r\n- [ ] \"##FASTA\" directive\r\n- [ ] Add tests."},"comment":{"url":"https://api.github.com/repos/BioJulia/Bio.jl/issues/comments/250671661","html_url":"https://github.com/BioJulia/Bio.jl/pull/138#issuecomment-250671661","issue_url":"https://api.github.com/repos/BioJulia/Bio.jl/issues/138","id":250671661,"user":{"login":"dcjones","id":210361,"avatar_url":"https://avatars.githubusercontent.com/u/210361?v=3","gravatar_id":"","url":"https://api.github.com/users/dcjones","html_url":"https://github.com/dcjones","followers_url":"https://api.github.com/users/dcjones/followers","following_url":"https://api.github.com/users/dcjones/following{/other_user}","gists_url":"https://api.github.com/users/dcjones/gists{/gist_id}","starred_url":"https://api.github.com/users/dcjones/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dcjones/subscriptions","organizations_url":"https://api.github.com/users/dcjones/orgs","repos_url":"https://api.github.com/users/dcjones/repos","events_url":"https://api.github.com/users/dcjones/events{/privacy}","received_events_url":"https://api.github.com/users/dcjones/received_events","type":"User","site_admin":false},"created_at":"2016-09-30T06:44:19Z","updated_at":"2016-09-30T06:44:19Z","body":"I suppose this is done.\r\n\r\nAttributes are stored in a structure that acts like a dictionary but can be overwritten efficiently.\r\n\r\nFASTA in the GFF3 file is accessible by calling `getfasta` on the gff reader after the input has been exhausted, which will return a fasta reader. There's also a `hasfasta` function to check if there is trailing fasta data. This is ugly, but it's an ugly part of the format, and it's the best solution I could think of.\r\n\r\nDirectives can be optionally saved and when a gff entry is read, you can check for directives occurring since the last entry by calling `directives(reader)`.\r\n\r\nPercent encodings are unescaped, which adds a dependency on URIParser.\r\n\r\nAs an added bonus, I fixed a bug where StringFields always allocate way too much space.\r\n\r\n"}}
{"actor":{"display_login":"dcjones"}}