# HG changeset patch
# User eric-rasche
# Date 1488426440 18000
# Node ID e8475d0195fea42159a7e1b1e7653d5190ad865f
planemo upload for repository https://github.com/TAMU-CPT/galaxy-circos-tool commit 358dd35a2150af4183d9303af1df4f63be0737cd
diff -r 000000000000 -r e8475d0195fe LICENSE
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LICENSE Wed Mar 01 22:47:20 2017 -0500
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ Copyright (C)
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+.
diff -r 000000000000 -r e8475d0195fe README.rst
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/README.rst Wed Mar 01 22:47:20 2017 -0500
@@ -0,0 +1,43 @@
+Galaxy Circos Tool
+==================
+
+.. figure:: ./media/example.png
+ :alt:
+
+Features
+--------
+
+- [x] Ideograms
+
+ - [x] Can configure most aspects of these. More features on demand
+
+- [x] 2d Data sources
+
+ - [x] Histograms
+
+ - [x] Stacked histograms
+ - [x] gff3 scores
+ - [x] wig files
+ - [x] bed
+ - [x] Rules
+
+ - [x] Complex colouring rules
+
+ - [x] Heatmaps
+
+ - [ ] Bugs here.
+
+ - [x] Tiles
+ - [x] Scatter Plots
+ - [x] Line Plots
+
+- [ ] Links
+- [x] Axes
+- [x] Backgrounds
+- [ ] Highlights
+
+ - [ ] Wedge
+
+- [ ] Grids?
+- [x] Test cases
+- [ ] Fine grained Z-depth control
diff -r 000000000000 -r e8475d0195fe circgraph.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/circgraph.xml Wed Mar 01 22:47:20 2017 -0500
@@ -0,0 +1,391 @@
+
+
+ creates circos plots from standard bioinformatics datatypes.
+
+ macros.xml
+ macros_conffiles.xml
+
+
+ circos/conf/karyotype.txt &&
+
+ mv $circos_conf circos/conf/circos.conf &&
+ mv $ticks_conf circos/conf/ticks.conf &&
+ mv $ideogram_conf circos/conf/ideogram.conf &&
+ mv $data_conf circos/conf/2d.conf &&
+ mv $links_conf circos/conf/links.conf &&
+ mv $plot_highlight_conf circos/conf/plot_highlight.conf &&
+ mv $highlight_conf circos/conf/highlight.conf &&
+ mv $test_case_conf circos/conf/galaxy_test_case.xml &&
+
+ ## 2D Data Plots
+ #for $hi, $data in enumerate($sec_tdd.data):
+ #if str($data.plot_format.plot_format_select) == 'tile':
+ python $__tool_directory__/unified-tiles.py
+ "${data.plot_format.data_source}" "${data.plot_format.data_source.ext}"
+ > circos/data/data-${hi}.txt &&
+ #else:
+ python $__tool_directory__/unified-histogram.py
+ $data.plot_format.plot_format_select
+ #if str($data.plot_format.plot_format_select) in ('histogram', 'heatmap'):
+ #for $fi, $file in enumerate($data.plot_format.data_source):
+ "${file}" "${file.ext}"
+ #end for
+ #else:
+ "${data.plot_format.data_source}" "${data.plot_format.data_source.ext}"
+ #end if
+ > circos/data/data-${hi}.txt &&
+ #end if
+ #end for
+
+ ## Link Tracks
+ #for $hi, $data in enumerate($sec_links.data):
+ cp "${data.data_source}" circos/data/links-${hi}.txt &&
+ #end for
+
+ tar cvfz circos.tar.gz circos &&
+
+ circos -conf circos/conf/circos.conf
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 000000000000 -r e8475d0195fe fasta-to-karyotype.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/fasta-to-karyotype.py Wed Mar 01 22:47:20 2017 -0500
@@ -0,0 +1,46 @@
+#!/usr/bin/env python
+from Bio import SeqIO
+import sys
+
+for idx, seq in enumerate(SeqIO.parse(sys.argv[1], 'fasta')):
+ print "chr - {seq_id} {idx} 0 {length} set3-12-qual-{color}".format(
+ seq_id=seq.id, idx=idx, length=len(seq), color=((idx + 1) % 12)
+ )
+
+if len(sys.argv) > 2:
+ # band hs1 p36.32 p36.32 2200000 5100000 gpos25
+ # band hs1 p36.31 p36.31 5100000 6900000 gneg
+ # band hs1 p36.23 p36.23 6900000 8800000 gpos25
+ COLS = ('chrom', 'chromStart', 'chromEnd', 'name', 'score', 'strand',
+ 'thickStart', 'thickEnd', 'itemRgb')
+ with open(sys.argv[2], 'r') as handle:
+ for line in handle:
+ lineData = dict(zip(COLS, line.split()))
+ print "band {chrom} {name} {name} {chromStart} {chromEnd} {color}".format(
+ # Can access name because requiring >bed3
+ name=lineData['name'],
+ chrom=lineData['chrom'],
+ chromStart=lineData['chromStart'],
+ chromEnd=lineData['chromEnd'],
+ # ????
+ color=lineData.get('itemRgb', 'gpos50'),
+ )
+ # band
+ # ID
+ # parentChr
+ # parentChr
+ # START
+ # END COLOR
+
+# chrom - The name of the chromosome (e.g. chr3, chrY, chr2_random) or scaffold (e.g. scaffold10671).
+# chromStart - The starting position of the feature in the chromosome or scaffold. The first base in a chromosome is numbered 0.
+# chromEnd - The ending position of the feature in the chromosome or scaffold. The chromEnd base is not included in the display of the feature. For example, the first 100 bases of a chromosome are defined as chromStart=0, chromEnd=100, and span the bases numbered 0-99.
+# name - Defines the name of the BED line. This label is displayed to the left of the BED line in the Genome Browser window when the track is open to full display mode or directly to the left of the item in pack mode.
+# score - A score between 0 and 1000. If the track line useScore attribute is set to 1 for this annotation data set, the score value will determine the level of gray in which this feature is displayed (higher numbers = darker gray). This table shows the Genome Browser's translation of BED score values into shades of gray:
+# strand - Defines the strand - either '+' or '-'.
+# thickStart - The starting position at which the feature is drawn thickly (for example, the start codon in gene displays). When there is no thick part, thickStart and thickEnd are usually set to the chromStart position.
+# thickEnd - The ending position at which the feature is drawn thickly (for example, the stop codon in gene displays).
+# itemRgb - An RGB value of the form R,G,B (e.g. 255,0,0). If the track line itemRgb attribute is set to "On", this RBG value will determine the display color of the data contained in this BED line. NOTE: It is recommended that a simple color scheme (eight colors or less) be used with this attribute to avoid overwhelming the color resources of the Genome Browser and your Internet browser.
+# blockCount - The number of blocks (exons) in the BED line.
+# blockSizes - A comma-separated list of the block sizes. The number of items in this list should correspond to blockCount.
+# blockStarts - A comma-separated list of block starts. All of the blockStart positions should be calculated relative to chromStart. The number of items in this list should correspond to blockCount.
diff -r 000000000000 -r e8475d0195fe images/Generated_Color_Fixes.png
Binary file images/Generated_Color_Fixes.png has changed
diff -r 000000000000 -r e8475d0195fe images/Generated_Data_Non_Ribbon.png
Binary file images/Generated_Data_Non_Ribbon.png has changed
diff -r 000000000000 -r e8475d0195fe images/links.png
Binary file images/links.png has changed
diff -r 000000000000 -r e8475d0195fe images/miro.png
Binary file images/miro.png has changed
diff -r 000000000000 -r e8475d0195fe images/thumbs/Generated_Color_Fixes.png
Binary file images/thumbs/Generated_Color_Fixes.png has changed
diff -r 000000000000 -r e8475d0195fe images/thumbs/Generated_Data_Non_Ribbon.png
Binary file images/thumbs/Generated_Data_Non_Ribbon.png has changed
diff -r 000000000000 -r e8475d0195fe images/thumbs/links.png
Binary file images/thumbs/links.png has changed
diff -r 000000000000 -r e8475d0195fe images/thumbs/miro.png
Binary file images/thumbs/miro.png has changed
diff -r 000000000000 -r e8475d0195fe macros.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/macros.xml Wed Mar 01 22:47:20 2017 -0500
@@ -0,0 +1,322 @@
+
+
+ 0.9-RC1
+
+
+ bcbiogff
+ circos
+
+
+
+
+
+ 10.1101/gr.092759.109
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 000000000000 -r e8475d0195fe macros_conffiles.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/macros_conffiles.xml Wed Mar 01 22:47:20 2017 -0500
@@ -0,0 +1,426 @@
+
+
+
+ >
+<>
+karyotype = karyotype.txt
+
+
+ <>
+
+
+<>
+<>
+
+ <>
+ <>
+
+
+ <>
+
+
+<>
+ ]]>
+
+
+
+ radius = ${ticks.radius}r
+ color = $circosColor($ticks.color)
+ thickness = 2p
+ multiplier = ${ticks.multiplier}
+
+ #for $tick_group in $ticks.tick_group:
+
+ spacing = ${tick_group.spacing}
+ size = ${tick_group.size}p
+ show_label = ${tick_group.show_tick_labels}
+ label_size = ${tick_group.label_size}p
+ label_offset = ${tick_group.label_offset}p
+ format = ${tick_group.format} kb
+ ## TODO: figure out automated tick labels
+ ##if ${ticks.multiplier} * ${tick_group.spacing}
+
+ #end for
+
+]]>
+
+
+
+
+
+
+ ## spacing between ideograms
+ default = ${ideogram.spacing}r
+
+
+ # ideogram position, thickness and fill
+ radius = ${ideogram.radius}r
+ thickness = ${ideogram.thickness}p
+ fill = yes
+
+ show_label = ${ideogram.ideogram_labels.show_label}
+ label_radius = dims(ideogram,radius) + 0.075r
+ label_size = 24
+ label_parallel = ${ideogram.ideogram_labels.parallel}
+
+ show_bands = yes
+ fill_bands = yes
+ band_transparency = 4
+
+
+]]>
+
+
+
+ #set plot_type = str($data.plot_format.plot_format_select)
+ #def circosColor($value)
+ #set $value = str($value)
+ #set $r = int($value[1:3], 16)
+ #set $g = int($value[3:5], 16)
+ #set $b = int($value[5:], 16)
+ $r, $g, $b
+ #end def
+
+ type = ${plot_type}
+ file = data/data-${hi}.txt
+
+ r1 = ${data.r1}r
+ r0 = ${data.r0}r
+ orientation = ${data.orientation}
+
+#if str($plot_type) == 'histogram':
+ extend_bin = ${data.plot_format.format_specific.extend_bins}
+ fill_color = ${data.plot_format.format_specific.fill_color}
+#else if str($plot_type) == 'heatmap':
+ fill_color = $circosColor($data.plot_format.format_specific.fill_color)
+ scale_log_base = ${data.plot_format.format_specific.scale_log_base}
+#else if str($plot_type) == 'line':
+ color = $circosColor($data.plot_format.format_specific.color)
+ thickness = ${data.plot_format.format_specific.thickness}
+#else if str($plot_type) == 'scatter':
+ glyph = ${data.plot_format.format_specific.glyph}
+ glyph_size = ${data.plot_format.format_specific.glyph_size}
+ color = $circosColor($data.plot_format.format_specific.color)
+ stroke_color = $circosColor($data.plot_format.format_specific.stroke_color)
+ stroke_thickness = ${data.plot_format.format_specific.stroke_thickness}
+#else if str($plot_type) == 'tile':
+ color = ${data.plot_format.format_specific.color}
+ stroke_color = $circosColor($data.plot_format.format_specific.color)
+ stroke_thickness = ${data.plot_format.format_specific.stroke_thickness}
+ layers = ${data.plot_format.format_specific.layers}
+ thickness = ${data.plot_format.format_specific.thickness}
+ padding = ${data.plot_format.format_specific.padding}
+
+ layers_overflow = ${data.plot_format.format_specific.overflow.overflow_behavior}
+ #if str($data.plot_format.format_specific.overflow.overflow_behavior) != "hide":
+ layers_overflow_color = $circosColor($data.plot_format.format_specific.overflow.layer_overflow_color)
+ #end if
+#end if
+
+
+ #for $rule in $data.sec_rule.rules:
+
+ #for $condition in $rule.conditions
+ #if str($condition.application.application_select) == "1":
+ condition = 1
+ #elif str($condition.application.application_select) == "on":
+ #set on_str = ' '.join([ "on(%s)" % $chr.strip() for $chr in $condition.application.on_genomes.split(',') ])
+ condition = $on_str
+ #elif str($condition.application.application_select) == "pos":
+ #if $condition.application.pos_gt != 0:
+ condition = var(start) > $condition.application.pos_gt
+ #end if
+
+ #if $condition.application.pos_lt != 0:
+ condition = var(start) < $condition.application.pos_lt
+ #end if
+ #elif str($condition.application.application_select) == "value":
+ #if $condition.application.pos_gt != 0:
+ condition = var(value) > $condition.application.pos_gt
+ #end if
+
+ #if $condition.application.pos_lt != 0:
+ condition = var(value) < $condition.application.pos_lt
+ #end if
+ #elif str($condition.application.application_select) == "var":
+ condition = var(${condition.application.varname}) ${condition.application.cond_select} "${condition.application.varvalue}"
+ #end if
+ #end for
+
+ #for $action in $rule.actions:
+ #set x_fill_color = $action.action.action_value
+ #set x_fill_color_count = int(str($x_fill_color).split('-')[1]) + 1
+ #set x_fill_color_qw = ' '.join(["%s-%s" % ($action.action.action_value, $i) for i in range(1, $x_fill_color_count)])
+
+ #if str($action.action.action_select) == "fill_color_value":
+ fill_color = eval(qw(${x_fill_color_qw})[remap_int(var(value), ${action.action.min_value}, ${action.action.max_value}, 0, ${x_fill_color_count - 1})])
+ #else
+ $action.action.action_select = ${action.action.action_value}
+ #end if
+ #end for
+ $rule.continue_flow
+
+ #end for
+
+
+
+ #for $axis in $data.sec_axes.axes:
+
+ color = $circosColor($axis.color)
+ thickness = ${axis.thickness}
+ spacing = ${axis.spacing}r
+ y0 = ${axis.y0}r
+ y1 = ${axis.y1}r
+
+ #end for
+
+
+ #for $bkg in $data.sec_bkgs.backgrounds:
+
+ color = $circosColor($bkg.color)
+ y0 = ${bkg.y0}r
+ y1 = ${bkg.y1}r
+
+ #end for
+
+
+#end for
+ ]]>
+
+
+
+
+ #def circosColor($value)
+ #set $value = str($value)
+ #set $r = int($value[1:3], 16)
+ #set $g = int($value[3:5], 16)
+ #set $b = int($value[5:], 16)
+ $r, $g, $b
+ #end def
+
+ file = data/links-${hi}.txt
+
+ radius = ${data.radius}r
+ ribbon = ${data.linktype.ribbon}
+ #if $data.linktype.ribbon == 'yes'
+ ${data.linktype.twist}
+ #end if
+ color = $circosColor($data.color)
+ bezier_radius = ${data.bezier_radius}r
+ thickness = ${data.thickness}
+ crest = ${data.advanced.crest}
+ bezier_radius_purity = ${data.advanced.bezier_radius_purity}
+
+ #if $data.advanced.perturbation.perturb == 'yes'
+ perturb = yes
+ perturb_crest = ${data.advanced.perturbation.perturb_crest_min},${data.advanced.perturbation.perturb_crest_max}
+ perturb_bezier_radius = ${data.advanced.perturbation.perturb_bezier_radius_min},${data.advanced.perturbation.perturb_bezier_radius_max}
+ perturb_bezier_radius_purity = ${data.advanced.perturbation.perturb_bezier_radius_purity_min},${data.advanced.perturbation.perturb_bezier_radius_purity_max}
+ #end if
+
+ #if $data.advanced.zdepth
+ z = ${data.advanced.zdepth}
+ #end if
+
+
+ #for $rule in $data.sec_link_rule.rules:
+
+ #for $condition in $rule.conditions
+ #set cond = $condition.application.application_select
+ #if $cond == 'interchr' or $cond == 'intrachr' or $cond == 'inv' or $cond == 'rev'
+ condition = var($cond)
+ #else
+ #set op = $condition.application.comparison.compare
+ #set val = $condition.application.comparison.compval
+ #if $cond == 'chr'
+ #if $op == 'between' or $op == 'fromto'
+ #set val2 = $condition.application.comparison.compval2
+ #set c=''.join([str($op),"(",str($val),",",str($val2),")"])
+ #else
+ #set c=''.join([str($op),"(",str($val),")"])
+ #end if
+ condition = $c
+ #else
+ #if $cond == 'dist' and $op == 'lt'
+ condition = abs(var(pos1) - var(pos2)) < $val
+ #elif $cond == 'dist' and $op == 'gt'
+ condition = abs(var(pos1) - var(pos2)) > $val
+ #elif $op == 'lt'
+ condition = var($cond) < $val
+ #elif $op == 'gt'
+ condition = var($cond) > $val
+ #end if
+ #end if
+ #end if
+ #end for
+
+ #for $action in $rule.actions:
+ #set actiontype = $action.action.action_select
+ #set actionval = $action.action.action_value
+ #if $actiontype == 'color':
+ #set actionval = $circosColor($actionval)
+ #end if
+ $actiontype = $actionval
+ #end for
+
+ $rule.continue_flow
+
+
+ #end for
+
+
+#end for
+ ]]>
+
+
+
+
+## type = highlight
+## file = data/highlight-${hi}.txt
+## r1 = ${highlight.r1}r
+## r0 = ${highlight.r0}r
+## color = ${highlight.fill_color}
+##
+## #end if
+###end for
+ ]]>
+
+
+
+###for $hi, $highlight in enumerate($sec_heat.highlights):
+## #if $highlight.type_select == "normal":
+##
+## file = data/highlight-${hi}.txt
+## r1 = ${highlight.r1}r
+## r0 = ${highlight.r0}r
+## color = ${highlight.fill_color}
+##
+## #end if
+###end for
+##
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ #if $ideogram.bands:
+
+ #end if
+
+
+
+
+
+ #for $idx, $tick_group in enumerate($ticks.tick_group):
+
+
+
+
+
+
+ #end for
+
+ #for $idx, $data_group in enumerate($sec_tdd.data):
+
+
+
+
+
+ #if str($data_group.plot_format.plot_format_select) == 'histogram':
+ #set my_files = ','.join([ "my-test-case/%s-%s.%s" % ($idx, $j, $file.ext) for ($j, $file) in enumerate($data_group.plot_format.data_source)])
+
+
+
+ #else if str($data_group.plot_format.plot_format_select) == 'heatmap':
+ #set my_files = ','.join([ "my-test-case/%s-%s.%s" % ($idx, $j, $file.ext) for ($j, $file) in enumerate($data_group.plot_format.data_source)])
+
+
+
+ #else if str($data_group.plot_format.plot_format_select) == 'line':
+
+
+
+ #else if str($data_group.plot_format.plot_format_select) == 'scatter':
+
+
+
+
+
+
+
+
+ #else if str($data_group.plot_format.plot_format_select) == 'tile':
+
+
+
+
+
+
+
+
+ #if str($data_group.plot_format.format_specific.overflow.overflow_behavior) != 'hide':
+
+ #end if
+ #end if
+ ## Next line intentionally blank
+
+ #end for
+
+
+
+
+
+
+ ]]>
+
+
diff -r 000000000000 -r e8475d0195fe media/a.png
Binary file media/a.png has changed
diff -r 000000000000 -r e8475d0195fe media/example.png
Binary file media/example.png has changed
diff -r 000000000000 -r e8475d0195fe requirements.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/requirements.txt Wed Mar 01 22:47:20 2017 -0500
@@ -0,0 +1,2 @@
+bcbio-gff
+biopython
diff -r 000000000000 -r e8475d0195fe test-data/1/0-0.wig
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/1/0-0.wig Wed Mar 01 22:47:20 2017 -0500
@@ -0,0 +1,503 @@
+track type=wiggle_0 name="example" description="discontinuous sine wave"
+fixedStep chrom=ctgA start=1 step=100 span=20
+0
+-0.506365641109759
+-0.873297297213995
+-0.999755839901149
+-0.850919359639177
+-0.467771805322476
+0.0441824483318732
+0.543970523363376
+0.893969648197021
+0.99780327442197
+0.826879540532003
+0.428264391396659
+-0.0882786064717262
+-0.580513008156313
+-0.91289603861164
+-0.993901956906654
+-0.801224790676895
+-0.387920558984219
+0.132202352755937
+0.615921726468774
+0.930039504416137
+0.988059506793465
+0.774005214886395
+0.34681910129778
+-0.175867902248536
+-0.650127523574896
+-0.945366563696042
+-0.980287334634812
+-0.745273974144339
+-0.305040291224202
+0.219189974282818
+0.683063594104854
+0.958847282055722
+0.970600619811948
+0.71508718178021
+0.262665724548229
+-0.262083959018097
+-0.714665612518583
+-0.970455331081526
+-0.959018280889002
+-0.683503793877429
+-0.219778160592474
+0.304466082686301
+0.744871858736274
+0.980168039762288
+0.945562938664219
+0.650585494129627
+0.176461360584952
+-0.346253571205695
+-0.773623338680308
+-0.987966438766777
+-0.930260871990585
+-0.61639657336978
+-0.132799924069858
+0.38736481184216
+0.800863899493182
+0.993835297491596
+0.913141966452114
+0.581003804007494
+0.0888791236810795
+-0.427719512602322
+-0.826540339206424
+-0.997763153807204
+-0.894239655996039
+-0.544476309619657
+-0.044784738601126
+0.467238859047214
+0.850602510646281
+0.999742336443933
+0.873590857634893
+0.50688542994917
+0.000602887030758908
+-0.505845668220208
+-0.873003419373278
+-0.999768979974307
+-0.851235899346026
+-0.468304581575409
+0.043580142003502
+0.543464539388603
+0.893699315464349
+0.997843032362382
+0.827218441309355
+0.428809114528536
+-0.0876780571755001
+-0.580022001304441
+-0.912649778958282
+-0.993968255065378
+-0.801585390637186
+-0.388476165127704
+0.131604733390055
+0.615446655696971
+0.929817798797622
+0.988152215687393
+0.774386809762636
+0.347384505330554
+-0.17527437998892
+-0.64966931671649
+-0.945169845112828
+-0.980406273199548
+-0.745675818665582
+-0.305614388888252
+0.218601708303567
+0.682623146057239
+0.958675934707531
+0.97074555575544
+0.715508491127093
+0.263247394606515
+-0.261502098227572
+-0.714243783495441
+-0.970309689616982
+-0.959188931145217
+-0.683943745214962
+-0.220366267018746
+0.303891763483259
+0.744469472587545
+0.980048388625338
+0.945758969945982
+0.651043228214223
+0.177054754782462
+-0.345687915259853
+-0.773241181283175
+-0.987873011641156
+-0.930481901440504
+-0.616871196227395
+-0.133397447114619
+0.386808923903526
+0.800502717217221
+0.993768276844436
+0.913387562390317
+0.581494388679593
+0.0894796085852885
+-0.427174478343574
+-0.82620083745591
+-0.997722670532666
+-0.89450933876326
+-0.544981897973607
+-0.0453870125923442
+0.466705742943332
+0.850285352482504
+0.999728469607566
+0.873884100529272
+0.507405034549512
+0.00120577384238478
+-0.505325511469513
+-0.87270922421956
+-0.999781756658628
+-0.851552129651776
+-0.468837187612361
+0.0429778198349343
+0.542958357879249
+0.893428657896279
+0.997882427613987
+0.827557041415301
+0.429353681799962
+-0.0870774760106846
+-0.579530783630345
+-0.912403187581549
+-0.994034191943674
+-0.801945699242987
+-0.389031630070668
+0.131007066189432
+0.614971361227045
+0.929595755215624
+0.988244565414863
+0.774768123170331
+0.347949783098507
+-0.174680794021833
+-0.649210873720956
+-0.94497278298608
+-0.980524855413266
+-0.746077392153944
+-0.306188375469783
+0.21801336286854
+0.682182449894674
+0.958504238906709
+0.970890138859323
+0.715929540406099
+0.263828968981531
+-0.260920142388146
+-0.713821694864108
+-0.970163695471254
+-0.959359232762341
+-0.684383447957544
+-0.220954293347872
+0.303317333823826
+0.744066815844409
+0.979928381267452
+0.94595465747008
+0.651500725662311
+0.177648084625384
+-0.345122133665854
+-0.772858742833902
+-0.987779225450561
+-0.930702592685557
+-0.617345594869105
+-0.133994921673036
+0.386252895370368
+0.800141243980293
+0.993700894989533
+0.91363282633698
+0.581984761994295
+0.0900800609660932
+-0.42662928881852
+-0.825861035403859
+-0.99768182461307
+-0.894778696400663
+-0.545487288241457
+-0.0459892700866177
+0.466172457204606
+0.849967885263126
+0.999714239397087
+0.874177025790545
+0.507924454721923
+0.00180866021574464
+-0.504805171046737
+-0.872414711859773
+-0.999794169949471
+-0.851868050441484
+-0.469369623239746
+0.0423754820450979
+0.542451979019298
+0.893157675591189
+0.997921460162468
+0.827895340726768
+0.429898093013001
+-0.0864768631955748
+-0.579039355312569
+-0.91215626457107
+-0.994099767517573
+-0.802305716363335
+-0.389586953611214
+0.130409351371303
+0.614495843231754
+0.929373373750848
+0.98833655594231
+0.775149154970883
+0.348514934396177
+-0.174087144563029
+-0.648752194754925
+-0.944775377387424
+-0.980643081232865
+-0.746478694463463
+-0.306762250760167
+0.217424938191585
+0.681741505777341
+0.958332194715663
+0.971034369071043
+0.716350329464186
+0.264410447461892
+-0.260338091711345
+-0.713399346778001
+-0.970017348697407
+-0.959529185678474
+-0.684822901945355
+-0.221542239366122
+0.302742793916791
+0.743663888653221
+0.979808017732248
+0.946150001165385
+0.651957986307603
+0.178241349898059
+-0.344556226629346
+-0.772476023471494
+-0.98768508022908
+-0.930922945645528
+-0.617819769122481
+-0.134592347527942
+0.385696726444787
+0.799779479913782
+0.993633151951378
+0.913877758202957
+0.582474923773363
+0.0906804806052454
+-0.426083944225323
+-0.825520933173783
+-0.997640616063263
+-0.895047728810343
+-0.545992480239513
+-0.0465915108650422
+0.465639002024868
+0.849650109103536
+0.99969964581767
+0.874469633312244
+0.508443690277607
+0.00241154593170571
+-0.50428464714101
+-0.872119882400963
+-0.999806219842322
+-0.852183661600323
+-0.469901888264038
+0.0417731288529262
+0.541945402992805
+0.892886368647573
+0.997960129993637
+0.828233339120793
+0.430442347969774
+-0.0858762189484769
+-0.578547716529735
+-0.911909010016595
+-0.994164981763242
+-0.802665441867374
+-0.390142135547497
+0.129811589152921
+0.614020101883935
+0.929150654484127
+0.988428187236296
+0.775529905025798
+0.349079959018146
+-0.173493431828281
+-0.648293279985113
+-0.944577628388612
+-0.980760950615372
+-0.746879725448277
+-0.307336014550815
+0.216836434486577
+0.68130031386551
+0.958159802196927
+0.971178246338178
+0.716770858148409
+0.264991829836246
+-0.259755946408727
+-0.712976739390632
+-0.969870649348633
+-0.959698789831842
+-0.685262107018665
+-0.222130104859792
+0.302168143970983
+0.743260691160433
+0.979687298063475
+0.946345000960895
+0.652415009983898
+0.17883455038485
+-0.34399019435602
+-0.772093023335059
+-0.987590576010932
+-0.931142960240324
+-0.618293718815172
+-0.13518972446219
+0.385140417328934
+0.79941742514918
+0.993565047754595
+0.914122357899222
+0.582964873838637
+0.091280867284509
+-0.425538444762198
+-0.825180530889296
+-0.997599044898223
+-0.895316435894515
+-0.546497473784151
+-0.0471937347087195
+0.465105377598017
+0.849332024119238
+0.999684688874618
+0.874761922988011
+0.508962741027838
+0.00301443077113541
+-0.503763939941528
+-0.871824735950293
+-0.999817906332802
+-0.852498963013576
+-0.470433982491772
+0.0411707604773582
+0.541438629983896
+0.892614737164045
+0.997998437093437
+0.828571036474523
+0.430986446472459
+-0.0852755434877088
+-0.57805586746054
+-0.911661424007995
+-0.994229834656976
+-0.803024875624353
+-0.390697175677724
+0.129213779751557
+0.613544137356508
+0.92892759749641
+0.988519459263516
+0.775910373196683
+0.349644856759043
+-0.17289965603339
+-0.647834129578325
+-0.944379536061519
+-0.980878463517946
+-0.747280484962623
+-0.30790966663318
+0.216247851967423
+0.680858874319544
+0.957987061413159
+0.971321770608431
+0.717191126305919
+0.265573115893276
+-0.259173706691886
+-0.712553872855609
+-0.969723597478254
+-0.959868045160799
+-0.685701063017834
+-0.22271788961521
+0.301593384195272
+0.742857223512596
+0.979566222305013
+0.946539656785734
+0.652871796525078
+0.179427685870145
+-0.343424037051613
+-0.771709742563807
+-0.987495712830468
+-0.931362636389977
+-0.618767443774911
+-0.13578705225865
+0.384583968225014
+0.799055079818084
+0.993496582423937
+0.91436662533687
+0.583454612012034
+0.0918812207856598
+-0.424992790627422
+-0.824839828674128
+-0.997557111133059
+-0.895584817555511
+-0.547002268691819
+-0.0477959413987577
+0.464571584118009
+0.849013630425847
+0.999669368573369
+0.87505389471161
+0.509481606783953
+0.0036173145149015
+-0.503243049637554
+-0.871529272615042
+-0.999829229416663
+-0.85281395456664
+-0.470965905729547
+0.0405683771373384
+0.540931660176769
+0.892342781239334
+0.998036381447947
+0.828908432665215
+0.431530388323292
+-0.0846748370315997
+-0.577563808283757
+-0.911413506635259
+-0.994294326175203
+-0.803384017503629
+-0.391252073800153
+0.128615923384498
+0.613067949822471
+0.928704202868774
+0.988610371990796
+0.776290559345248
+0.350209627413543
+-0.172305817394175
+-0.647374743701449
+-0.944181100478148
+-0.980995619897873
+-0.747680972860835
+-0.308483206798754
+0.215659190848055
+0.680417187299892
+0.957813972427147
+0.971464941829636
+0.717611133783957
+0.266154305421701
+-0.258591372772452
+-0.71213074732663
+-0.969576193139719
+-0.960036951603826
+-0.686139769783315
+-0.223305593418733
+0.301018514798568
+0.742453485856362
+0.979444790500868
+0.946733968569148
+0.653328345765115
+0.180020756138357
+-0.342857754921908
+-0.77132618129705
+-0.987400490722168
+-0.931581974014641
+-0.619240943829511
+-0.13638433070021
+0.38402737933528
+0.798692444052197
+0.993427755984289
+0.914610560427116
+0.583944138115545
+0.0924815408904855
+-0.424446982019324
+-0.824498826652114
+-0.997514814783015
+-0.895852873695781
+-0.547506864779039
+-0.048398130716271
+0.464037621778865
+0.848694928139091
+0.99965368491949
+0.875345548376914
+0.51000028735736
+0.00422019694387214
+-0.502721976418416
+-0.871233492502601
+
diff -r 000000000000 -r e8475d0195fe test-data/1/1.gff3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/1/1.gff3 Wed Mar 01 22:47:20 2017 -0500
@@ -0,0 +1,268 @@
+##gff-version 3
+# Note: See http://song.sourceforge.net
+ctgA example contig 1 50001 . . . Name=ctgA
+ctgA example remark 1659 1984 1110 + . Name=f07;Note=This is an example
+ctgA example remark 3014 6130 999 + . Name=f06;Note=This is another example
+ctgA example remark 4715 5968 444 - . Name=f05;Note=Ok! Ok! I get the message.
+ctgA example remark 13280 16394 203 + . Name=f08
+ctgA example remark 15329 15533 1000 + . Name=f10
+ctgA example remark 19157 22915 100 - . Name=f13
+ctgA example remark 22132 24633 320 + . Name=f15
+ctgA example remark 23072 23185 850 + . Name=f14
+ctgA example remark 24562 28338 208 + . Name=f02
+ctgA example remark 36034 38167 100 + . Name=f09
+ctgA example remark 36649 40440 300 - . Name=f03
+ctgA example remark 37242 38653 10 + . Name=f04
+ctgA example remark 44705 47713 400 - . Name=f01
+ctgA example remark 46990 48410 100 - . Name=f11
+ctgA example remark 49758 50000 3040 - . Name=f12
+
+ctgA example SNP 1000 1000 0.987 . . ID=FakeSNP1;Name=FakeSNP;Note=This is a fake SNP that should appear at 1000 with length 1
+
+ctgA example remark 1000 2000 . . . Name=Remark:hga;Alias=hga
+ctgA example protein_coding_primary_transcript 1100 2000 . + . Name=Gene:hga;Alias=hga
+ctgA example polypeptide 1200 1900 . + . Name=Protein:HGA;Alias=hga
+ctgA example protein_coding_primary_transcript 1600 3000 . - . Name=Gene:hgb;Alias=hgb
+ctgA example polypeptide 1800 2900 . - . Name=Protein:HGB;Alias=hgb
+
+ctgA example polypeptide_domain 11911 15561 . + . Name=m11;Note=kinase
+ctgA example polypeptide_domain 13801 14007 . - . Name=m05;Note=helix loop helix
+ctgA example polypeptide_domain 14731 17239 . - . Name=m14;Note=kinase
+ctgA example polypeptide_domain 15396 16159 . + . Name=m03;Note=zinc finger
+ctgA example polypeptide_domain 17023 17675 . + . Name=m08;Note=7-transmembrane
+ctgA example polypeptide_domain 17667 17690 . + . Name=m13;Note=DEAD box
+ctgA example polypeptide_domain 18048 18552 . - . Name=m07;Note=7-transmembrane
+ctgA example polypeptide_domain 21748 25612 . + . Name=m12;Note=kinase
+ctgA example polypeptide_domain 28332 30033 . - . Name=m02;Note=HOX
+ctgA example polypeptide_domain 28342 28447 . - . Name=m10;Note=DEAD box
+ctgA example polypeptide_domain 30578 31748 . + . Name=m06;Note=SUSHI repeat
+ctgA example polypeptide_domain 33325 35791 . + . Name=m04;Note=Ig-like
+ctgA example polypeptide_domain 37497 40559 . - . Name=m15;Note=7-transmembrane
+ctgA example polypeptide_domain 46012 48851 . + . Name=m09;Note=kinase
+ctgA example polypeptide_domain 48253 48366 . + . Name=m01;Note=WD40
+
+ctgA example match 32329 32359 . + . Name=seg01
+ctgA example match 26122 26126 . + . Name=seg02
+ctgA example match 26497 26869 . + . Name=seg02
+ctgA example match 27201 27325 . + . Name=seg02
+ctgA example match 27372 27433 . + . Name=seg02
+ctgA example match 27565 27565 . + . Name=seg02
+ctgA example match 27813 28091 . + . Name=seg02
+ctgA example match 28093 28201 . + . Name=seg02
+ctgA example match 28329 28377 . + . Name=seg02
+ctgA example match 28829 29194 . + . Name=seg02
+ctgA example match 29517 29702 . + . Name=seg02
+ctgA example match 29713 30061 . + . Name=seg02
+ctgA example match 30329 30774 . + . Name=seg02
+ctgA example match 30808 31306 . + . Name=seg02
+ctgA example match 31516 31729 . + . Name=seg02
+ctgA example match 31753 32154 . + . Name=seg02
+ctgA example match 32595 32696 . + . Name=seg02
+ctgA example match 32892 32901 . + . Name=seg02
+ctgA example match 33127 33388 . + . Name=seg02
+ctgA example match 33439 33443 . + . Name=seg02
+ctgA example match 33759 34209 . + . Name=seg02
+ctgA example match 34401 34466 . + . Name=seg02
+ctgA example match 6885 7241 . - . Name=seg03
+ctgA example match 7410 7737 . - . Name=seg03
+ctgA example match 8055 8080 . - . Name=seg03
+ctgA example match 8306 8999 . - . Name=seg03
+ctgA example match 5233 5302 . - . Name=seg04
+ctgA example match 5800 6101 . - . Name=seg04
+ctgA example match 6442 6854 . - . Name=seg04
+ctgA example match 7106 7211 . - . Name=seg04
+ctgA example match 7695 8177 . - . Name=seg04
+ctgA example match 8545 8783 . - . Name=seg04
+ctgA example match 8869 8935 . - . Name=seg04
+ctgA example match 9404 9825 . - . Name=seg04
+ctgA example match 26503 26799 . - . Name=seg05
+ctgA example match 27172 27185 . - . Name=seg05
+ctgA example match 27448 27860 . - . Name=seg05
+ctgA example match 27887 28076 . - . Name=seg05
+ctgA example match 28225 28316 . - . Name=seg05
+ctgA example match 28777 29058 . - . Name=seg05
+ctgA example match 29513 29647 . - . Name=seg05
+ctgA example match 30108 30216 . - . Name=seg05
+ctgA example match 30465 30798 . - . Name=seg05
+ctgA example match 31232 31236 . - . Name=seg05
+ctgA example match 31421 31817 . - . Name=seg05
+ctgA example match 32010 32057 . - . Name=seg05
+ctgA example match 32208 32680 . - . Name=seg05
+ctgA example match 33053 33325 . - . Name=seg05
+ctgA example match 33438 33868 . - . Name=seg05
+ctgA example match 34244 34313 . - . Name=seg05
+ctgA example match 34605 34983 . - . Name=seg05
+ctgA example match 35333 35507 . - . Name=seg05
+ctgA example match 35642 35904 . - . Name=seg05
+ctgA example match 19249 19559 . + . Name=seg06
+ctgA example match 19975 20260 . + . Name=seg06
+ctgA example match 20379 20491 . + . Name=seg06
+ctgA example match 20533 21005 . + . Name=seg06
+ctgA example match 21122 21331 . + . Name=seg06
+ctgA example match 21682 22176 . + . Name=seg06
+ctgA example match 22374 22570 . + . Name=seg06
+ctgA example match 23025 23427 . + . Name=seg06
+ctgA example match 44191 44514 . - . Name=seg07
+ctgA example match 44552 45043 . - . Name=seg07
+ctgA example match 45373 45600 . - . Name=seg07
+ctgA example match 45897 46315 . - . Name=seg07
+ctgA example match 46491 46890 . - . Name=seg07
+ctgA example match 47126 47297 . - . Name=seg07
+ctgA example match 47735 47983 . - . Name=seg07
+ctgA example match 48447 48709 . - . Name=seg07
+ctgA example match 48931 49186 . - . Name=seg07
+ctgA example match 49472 49699 . - . Name=seg07
+ctgA example match 49957 50000 . - . Name=seg07
+ctgA example match 18509 18985 . + . Name=seg08
+ctgA example match 18989 19388 . + . Name=seg08
+ctgA example match 19496 19962 . + . Name=seg08
+ctgA example match 20093 20580 . + . Name=seg08
+ctgA example match 20970 21052 . + . Name=seg08
+ctgA example match 21270 21277 . + . Name=seg08
+ctgA example match 21685 22168 . + . Name=seg08
+ctgA example match 22564 22869 . + . Name=seg08
+ctgA example match 22958 23298 . + . Name=seg08
+ctgA example match 23412 23469 . + . Name=seg08
+ctgA example match 23932 23932 . + . Name=seg08
+ctgA example match 24328 24787 . + . Name=seg08
+ctgA example match 25228 25367 . + . Name=seg08
+ctgA example match 36616 37057 . - . Name=seg09
+ctgA example match 37208 37227 . - . Name=seg09
+ctgA example match 29771 29942 . + . Name=seg10
+ctgA example match 30042 30340 . + . Name=seg10
+ctgA example match 30810 31307 . + . Name=seg10
+ctgA example match 31761 31984 . + . Name=seg10
+ctgA example match 32374 32937 . + . Name=seg10
+ctgA example match 24228 24510 . + . Name=seg11
+ctgA example match 24868 25012 . + . Name=seg11
+ctgA example match 25212 25426 . + . Name=seg11
+ctgA example match 25794 25874 . + . Name=seg11
+ctgA example match 26075 26519 . + . Name=seg11
+ctgA example match 26930 26940 . + . Name=seg11
+ctgA example match 26975 27063 . + . Name=seg11
+ctgA example match 27415 27799 . + . Name=seg11
+ctgA example match 27880 27943 . + . Name=seg11
+ctgA example match 28225 28346 . + . Name=seg11
+ctgA example match 28375 28570 . + . Name=seg11
+ctgA example match 28758 29041 . + . Name=seg11
+ctgA example match 29101 29302 . + . Name=seg11
+ctgA example match 29604 29702 . + . Name=seg11
+ctgA example match 29867 29885 . + . Name=seg11
+ctgA example match 30241 30246 . + . Name=seg11
+ctgA example match 30575 30738 . + . Name=seg11
+ctgA example match 12531 12895 . + . Name=seg12
+ctgA example match 13122 13449 . + . Name=seg12
+ctgA example match 13452 13745 . + . Name=seg12
+ctgA example match 13908 13965 . + . Name=seg12
+ctgA example match 13998 14488 . + . Name=seg12
+ctgA example match 14564 14899 . + . Name=seg12
+ctgA example match 15185 15276 . + . Name=seg12
+ctgA example match 15639 15736 . + . Name=seg12
+ctgA example match 15745 15870 . + . Name=seg12
+ctgA example match 49406 49476 . + . Name=seg13
+ctgA example match 49762 50000 . + . Name=seg13
+ctgA example match 41137 41318 . - . Name=seg14
+ctgA example match 41754 41948 . - . Name=seg14
+ctgA example match 42057 42474 . - . Name=seg14
+ctgA example match 42890 43270 . - . Name=seg14
+ctgA example match 43395 43811 . - . Name=seg14
+ctgA example match 44065 44556 . - . Name=seg14
+ctgA example match 44763 45030 . - . Name=seg14
+ctgA example match 45231 45488 . - . Name=seg14
+ctgA example match 45790 46022 . - . Name=seg14
+ctgA example match 46092 46318 . - . Name=seg14
+ctgA example match 46816 46992 . - . Name=seg14
+ctgA example match 47449 47829 . - . Name=seg14
+ctgA example match 39265 39361 . - . Name=seg15
+ctgA example match 39753 40034 . - . Name=seg15
+ctgA example match 40515 40954 . - . Name=seg15
+ctgA example match 41252 41365 . - . Name=seg15
+ctgA example match 41492 41504 . - . Name=seg15
+ctgA example match 41941 42377 . - . Name=seg15
+ctgA example match 42748 42954 . - . Name=seg15
+ctgA example match 43401 43897 . - . Name=seg15
+ctgA example match 44043 44113 . - . Name=seg15
+ctgA example match 44399 44888 . - . Name=seg15
+ctgA example match 45281 45375 . - . Name=seg15
+ctgA example match 45711 46041 . - . Name=seg15
+ctgA example match 46425 46564 . - . Name=seg15
+ctgA example match 46738 47087 . - . Name=seg15
+ctgA example match 47329 47595 . - . Name=seg15
+ctgA example match 47858 47979 . - . Name=seg15
+ctgA example match 48169 48453 . - . Name=seg15
+
+# single exon gene - one CDS only
+ctgA bare_predicted CDS 10000 11500 . + 0 Name=Apple1;Note=CDS with no parent
+
+# multi-exon gene - several linked CDSs
+ctgA predicted mRNA 13000 17200 . + 0 ID=cds-Apple2;Name=Apple2;Note=mRNA with CDSs but no UTRs
+ctgA predicted CDS 13500 13800 . + 0 Parent=cds-Apple2
+ctgA predicted CDS 15000 15500 . + 1 Parent=cds-Apple2
+ctgA predicted CDS 16500 17000 . + 2 Parent=cds-Apple2
+
+ctgA exonerate mRNA 17400 23000 . + . ID=rna-Apple3;Name=Apple3;Note=mRNA with both CDSs and UTRs
+ctgA exonerate UTR 17400 17999 . + . Parent=rna-Apple3
+ctgA exonerate CDS 18000 18800 . + 0 Parent=rna-Apple3
+ctgA exonerate CDS 19000 19500 . + 1 Parent=rna-Apple3
+ctgA exonerate CDS 21000 21200 . + 2 Parent=rna-Apple3
+ctgA exonerate UTR 21201 23000 . + . Parent=rna-Apple3
+
+ctgA example gene 1050 9000 . + . ID=EDEN;Name=EDEN;Note=protein kinase
+ctgA example mRNA 1050 9000 . + . ID=EDEN.1;Parent=EDEN;Name=EDEN.1;Note=Eden splice form 1;Index=1
+ctgA example five_prime_UTR 1050 1200 . + . Parent=EDEN.1
+ctgA example CDS 1201 1500 . + 0 Parent=EDEN.1
+ctgA example CDS 3000 3902 . + 0 Parent=EDEN.1
+ctgA example CDS 5000 5500 . + 0 Parent=EDEN.1
+ctgA example CDS 7000 7608 . + 0 Parent=EDEN.1
+ctgA example three_prime_UTR 7609 9000 . + . Parent=EDEN.1
+
+ctgA example mRNA 1050 9000 . + . ID=EDEN.2;Parent=EDEN;Name=EDEN.2;Note=Eden splice form 2;Index=1
+ctgA example five_prime_UTR 1050 1200 . + . Parent=EDEN.2
+ctgA example CDS 1201 1500 . + 0 Parent=EDEN.2
+ctgA example CDS 5000 5500 . + 0 Parent=EDEN.2
+ctgA example CDS 7000 7608 . + 0 Parent=EDEN.2
+ctgA example three_prime_UTR 7609 9000 . + . Parent=EDEN.2
+
+ctgA example mRNA 1300 9000 . + . ID=EDEN.3;Parent=EDEN;Name=EDEN.3;Note=Eden splice form 3;Index=1
+ctgA example five_prime_UTR 1300 1500 . + . Parent=EDEN.3
+ctgA example five_prime_UTR 3000 3300 . + . Parent=EDEN.3
+ctgA example CDS 3301 3902 . + 0 Parent=EDEN.3
+ctgA example CDS 5000 5500 . + 1 Parent=EDEN.3
+ctgA example CDS 7000 7600 . + 1 Parent=EDEN.3
+ctgA example three_prime_UTR 7601 9000 . + . Parent=EDEN.3
+
+ctgA example BAC 1000 20000 . . . ID=b101.2;Name=b101.2;Note=Fingerprinted BAC with end reads
+ctgA example clone_start 1000 1500 . + . Parent=b101.2
+ctgA example clone_end 19500 20000 . - . Parent=b101.2
+
+ctgA est EST_match 1050 3202 . + . ID=Match1;Name=agt830.5;Target=agt830.5 1 654
+ctgA est match_part 1050 1500 . + . Parent=Match1;Name=agt830.5;Target=agt830.5 1 451
+ctgA est match_part 3000 3202 . + . Parent=Match1;Name=agt830.5;Target=agt830.5 452 654
+
+ctgA est EST_match 5410 7503 . - . ID=Match2;Name=agt830.3;Target=agt830.3 1 595
+ctgA est match_part 5410 5500 . - . Parent=Match2;Name=agt830.3;Target=agt830.3 505 595
+ctgA est match_part 7000 7503 . - . Parent=Match2;Name=agt830.3;Target=agt830.3 1 504
+
+ctgA est EST_match 1050 7300 . + . ID=Match3;Name=agt221.5;Target=agt221.5 1 1253
+ctgA est match_part 1050 1500 . + . Parent=Match3;Name=agt221.5;Target=agt221.5 1 451
+ctgA est match_part 5000 5500 . + . Parent=Match3;Name=agt221.5;Target=agt221.5 452 952
+ctgA est match_part 7000 7300 . + . Parent=Match3;Name=agt221.5;Target=agt221.5 953 1253
+
+ctgA est EST_match 7500 8000 . - . ID=Match4;Name=agt221.3;Target=agt221.3 1 501
+
+ctgA est EST_match 1150 7200 . + . ID=Match5;Name=agt767.5;Target=agt767.5 1 1153
+ctgA est match_part 1150 1500 . + . Parent=Match5;Name=agt767.5;Target=agt767.5 1 351
+ctgA est match_part 5000 5500 . + . Parent=Match5;Name=agt767.5;Target=agt767.5 352 852
+ctgA est match_part 7000 7200 . + . Parent=Match5;Name=agt767.5;Target=agt767.5 853 1153
+
+ctgA est EST_match 8000 9000 . - . ID=Match6;Name=agt767.3;Target=agt767.3 1 1001
+
+
+
+ctgB example contig 1 6079 . . . Name=ctgB
+ctgB example remark 1659 1984 . + . Name=f07;Note=This is an example
+ctgB example remark 3014 6130 . + . Name=f06;Note=This is another example
+ctgB example remark 4715 5968 . - . Name=f05;Note=ああ、この機能は、世界中を旅しています!
+##FASTA
+>foobar
+ACTGATGATCGCTAGATGCTCGACTAGC
diff -r 000000000000 -r e8475d0195fe test-data/1/2.wig
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/1/2.wig Wed Mar 01 22:47:20 2017 -0500
@@ -0,0 +1,503 @@
+track type=wiggle_0 name="example" description="discontinuous sine wave"
+fixedStep chrom=ctgA start=1 step=100 span=20
+0
+-0.506365641109759
+-0.873297297213995
+-0.999755839901149
+-0.850919359639177
+-0.467771805322476
+0.0441824483318732
+0.543970523363376
+0.893969648197021
+0.99780327442197
+0.826879540532003
+0.428264391396659
+-0.0882786064717262
+-0.580513008156313
+-0.91289603861164
+-0.993901956906654
+-0.801224790676895
+-0.387920558984219
+0.132202352755937
+0.615921726468774
+0.930039504416137
+0.988059506793465
+0.774005214886395
+0.34681910129778
+-0.175867902248536
+-0.650127523574896
+-0.945366563696042
+-0.980287334634812
+-0.745273974144339
+-0.305040291224202
+0.219189974282818
+0.683063594104854
+0.958847282055722
+0.970600619811948
+0.71508718178021
+0.262665724548229
+-0.262083959018097
+-0.714665612518583
+-0.970455331081526
+-0.959018280889002
+-0.683503793877429
+-0.219778160592474
+0.304466082686301
+0.744871858736274
+0.980168039762288
+0.945562938664219
+0.650585494129627
+0.176461360584952
+-0.346253571205695
+-0.773623338680308
+-0.987966438766777
+-0.930260871990585
+-0.61639657336978
+-0.132799924069858
+0.38736481184216
+0.800863899493182
+0.993835297491596
+0.913141966452114
+0.581003804007494
+0.0888791236810795
+-0.427719512602322
+-0.826540339206424
+-0.997763153807204
+-0.894239655996039
+-0.544476309619657
+-0.044784738601126
+0.467238859047214
+0.850602510646281
+0.999742336443933
+0.873590857634893
+0.50688542994917
+0.000602887030758908
+-0.505845668220208
+-0.873003419373278
+-0.999768979974307
+-0.851235899346026
+-0.468304581575409
+0.043580142003502
+0.543464539388603
+0.893699315464349
+0.997843032362382
+0.827218441309355
+0.428809114528536
+-0.0876780571755001
+-0.580022001304441
+-0.912649778958282
+-0.993968255065378
+-0.801585390637186
+-0.388476165127704
+0.131604733390055
+0.615446655696971
+0.929817798797622
+0.988152215687393
+0.774386809762636
+0.347384505330554
+-0.17527437998892
+-0.64966931671649
+-0.945169845112828
+-0.980406273199548
+-0.745675818665582
+-0.305614388888252
+0.218601708303567
+0.682623146057239
+0.958675934707531
+0.97074555575544
+0.715508491127093
+0.263247394606515
+-0.261502098227572
+-0.714243783495441
+-0.970309689616982
+-0.959188931145217
+-0.683943745214962
+-0.220366267018746
+0.303891763483259
+0.744469472587545
+0.980048388625338
+0.945758969945982
+0.651043228214223
+0.177054754782462
+-0.345687915259853
+-0.773241181283175
+-0.987873011641156
+-0.930481901440504
+-0.616871196227395
+-0.133397447114619
+0.386808923903526
+0.800502717217221
+0.993768276844436
+0.913387562390317
+0.581494388679593
+0.0894796085852885
+-0.427174478343574
+-0.82620083745591
+-0.997722670532666
+-0.89450933876326
+-0.544981897973607
+-0.0453870125923442
+0.466705742943332
+0.850285352482504
+0.999728469607566
+0.873884100529272
+0.507405034549512
+0.00120577384238478
+-0.505325511469513
+-0.87270922421956
+-0.999781756658628
+-0.851552129651776
+-0.468837187612361
+0.0429778198349343
+0.542958357879249
+0.893428657896279
+0.997882427613987
+0.827557041415301
+0.429353681799962
+-0.0870774760106846
+-0.579530783630345
+-0.912403187581549
+-0.994034191943674
+-0.801945699242987
+-0.389031630070668
+0.131007066189432
+0.614971361227045
+0.929595755215624
+0.988244565414863
+0.774768123170331
+0.347949783098507
+-0.174680794021833
+-0.649210873720956
+-0.94497278298608
+-0.980524855413266
+-0.746077392153944
+-0.306188375469783
+0.21801336286854
+0.682182449894674
+0.958504238906709
+0.970890138859323
+0.715929540406099
+0.263828968981531
+-0.260920142388146
+-0.713821694864108
+-0.970163695471254
+-0.959359232762341
+-0.684383447957544
+-0.220954293347872
+0.303317333823826
+0.744066815844409
+0.979928381267452
+0.94595465747008
+0.651500725662311
+0.177648084625384
+-0.345122133665854
+-0.772858742833902
+-0.987779225450561
+-0.930702592685557
+-0.617345594869105
+-0.133994921673036
+0.386252895370368
+0.800141243980293
+0.993700894989533
+0.91363282633698
+0.581984761994295
+0.0900800609660932
+-0.42662928881852
+-0.825861035403859
+-0.99768182461307
+-0.894778696400663
+-0.545487288241457
+-0.0459892700866177
+0.466172457204606
+0.849967885263126
+0.999714239397087
+0.874177025790545
+0.507924454721923
+0.00180866021574464
+-0.504805171046737
+-0.872414711859773
+-0.999794169949471
+-0.851868050441484
+-0.469369623239746
+0.0423754820450979
+0.542451979019298
+0.893157675591189
+0.997921460162468
+0.827895340726768
+0.429898093013001
+-0.0864768631955748
+-0.579039355312569
+-0.91215626457107
+-0.994099767517573
+-0.802305716363335
+-0.389586953611214
+0.130409351371303
+0.614495843231754
+0.929373373750848
+0.98833655594231
+0.775149154970883
+0.348514934396177
+-0.174087144563029
+-0.648752194754925
+-0.944775377387424
+-0.980643081232865
+-0.746478694463463
+-0.306762250760167
+0.217424938191585
+0.681741505777341
+0.958332194715663
+0.971034369071043
+0.716350329464186
+0.264410447461892
+-0.260338091711345
+-0.713399346778001
+-0.970017348697407
+-0.959529185678474
+-0.684822901945355
+-0.221542239366122
+0.302742793916791
+0.743663888653221
+0.979808017732248
+0.946150001165385
+0.651957986307603
+0.178241349898059
+-0.344556226629346
+-0.772476023471494
+-0.98768508022908
+-0.930922945645528
+-0.617819769122481
+-0.134592347527942
+0.385696726444787
+0.799779479913782
+0.993633151951378
+0.913877758202957
+0.582474923773363
+0.0906804806052454
+-0.426083944225323
+-0.825520933173783
+-0.997640616063263
+-0.895047728810343
+-0.545992480239513
+-0.0465915108650422
+0.465639002024868
+0.849650109103536
+0.99969964581767
+0.874469633312244
+0.508443690277607
+0.00241154593170571
+-0.50428464714101
+-0.872119882400963
+-0.999806219842322
+-0.852183661600323
+-0.469901888264038
+0.0417731288529262
+0.541945402992805
+0.892886368647573
+0.997960129993637
+0.828233339120793
+0.430442347969774
+-0.0858762189484769
+-0.578547716529735
+-0.911909010016595
+-0.994164981763242
+-0.802665441867374
+-0.390142135547497
+0.129811589152921
+0.614020101883935
+0.929150654484127
+0.988428187236296
+0.775529905025798
+0.349079959018146
+-0.173493431828281
+-0.648293279985113
+-0.944577628388612
+-0.980760950615372
+-0.746879725448277
+-0.307336014550815
+0.216836434486577
+0.68130031386551
+0.958159802196927
+0.971178246338178
+0.716770858148409
+0.264991829836246
+-0.259755946408727
+-0.712976739390632
+-0.969870649348633
+-0.959698789831842
+-0.685262107018665
+-0.222130104859792
+0.302168143970983
+0.743260691160433
+0.979687298063475
+0.946345000960895
+0.652415009983898
+0.17883455038485
+-0.34399019435602
+-0.772093023335059
+-0.987590576010932
+-0.931142960240324
+-0.618293718815172
+-0.13518972446219
+0.385140417328934
+0.79941742514918
+0.993565047754595
+0.914122357899222
+0.582964873838637
+0.091280867284509
+-0.425538444762198
+-0.825180530889296
+-0.997599044898223
+-0.895316435894515
+-0.546497473784151
+-0.0471937347087195
+0.465105377598017
+0.849332024119238
+0.999684688874618
+0.874761922988011
+0.508962741027838
+0.00301443077113541
+-0.503763939941528
+-0.871824735950293
+-0.999817906332802
+-0.852498963013576
+-0.470433982491772
+0.0411707604773582
+0.541438629983896
+0.892614737164045
+0.997998437093437
+0.828571036474523
+0.430986446472459
+-0.0852755434877088
+-0.57805586746054
+-0.911661424007995
+-0.994229834656976
+-0.803024875624353
+-0.390697175677724
+0.129213779751557
+0.613544137356508
+0.92892759749641
+0.988519459263516
+0.775910373196683
+0.349644856759043
+-0.17289965603339
+-0.647834129578325
+-0.944379536061519
+-0.980878463517946
+-0.747280484962623
+-0.30790966663318
+0.216247851967423
+0.680858874319544
+0.957987061413159
+0.971321770608431
+0.717191126305919
+0.265573115893276
+-0.259173706691886
+-0.712553872855609
+-0.969723597478254
+-0.959868045160799
+-0.685701063017834
+-0.22271788961521
+0.301593384195272
+0.742857223512596
+0.979566222305013
+0.946539656785734
+0.652871796525078
+0.179427685870145
+-0.343424037051613
+-0.771709742563807
+-0.987495712830468
+-0.931362636389977
+-0.618767443774911
+-0.13578705225865
+0.384583968225014
+0.799055079818084
+0.993496582423937
+0.91436662533687
+0.583454612012034
+0.0918812207856598
+-0.424992790627422
+-0.824839828674128
+-0.997557111133059
+-0.895584817555511
+-0.547002268691819
+-0.0477959413987577
+0.464571584118009
+0.849013630425847
+0.999669368573369
+0.87505389471161
+0.509481606783953
+0.0036173145149015
+-0.503243049637554
+-0.871529272615042
+-0.999829229416663
+-0.85281395456664
+-0.470965905729547
+0.0405683771373384
+0.540931660176769
+0.892342781239334
+0.998036381447947
+0.828908432665215
+0.431530388323292
+-0.0846748370315997
+-0.577563808283757
+-0.911413506635259
+-0.994294326175203
+-0.803384017503629
+-0.391252073800153
+0.128615923384498
+0.613067949822471
+0.928704202868774
+0.988610371990796
+0.776290559345248
+0.350209627413543
+-0.172305817394175
+-0.647374743701449
+-0.944181100478148
+-0.980995619897873
+-0.747680972860835
+-0.308483206798754
+0.215659190848055
+0.680417187299892
+0.957813972427147
+0.971464941829636
+0.717611133783957
+0.266154305421701
+-0.258591372772452
+-0.71213074732663
+-0.969576193139719
+-0.960036951603826
+-0.686139769783315
+-0.223305593418733
+0.301018514798568
+0.742453485856362
+0.979444790500868
+0.946733968569148
+0.653328345765115
+0.180020756138357
+-0.342857754921908
+-0.77132618129705
+-0.987400490722168
+-0.931581974014641
+-0.619240943829511
+-0.13638433070021
+0.38402737933528
+0.798692444052197
+0.993427755984289
+0.914610560427116
+0.583944138115545
+0.0924815408904855
+-0.424446982019324
+-0.824498826652114
+-0.997514814783015
+-0.895852873695781
+-0.547506864779039
+-0.048398130716271
+0.464037621778865
+0.848694928139091
+0.99965368491949
+0.875345548376914
+0.51000028735736
+0.00422019694387214
+-0.502721976418416
+-0.871233492502601
+
diff -r 000000000000 -r e8475d0195fe test-data/1/input.fa
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/1/input.fa Wed Mar 01 22:47:20 2017 -0500
@@ -0,0 +1,897 @@
+>ctgA
+cattgttgcggagttgaacaACGGCATTAGGAACACTTCCGTCTCtcacttttatacgat
+tatgattggttctttagccttggtttagattggtagtagtagcggcgctaatgctacctg
+aattgagaactcgagcgggggctaggcaaattctgattcagcctgacttctcttggaacc
+ctgcccataaatcaaagggttagtgcggccaaaacgttggacaacggtattagaagacca
+acctgaccaccaaaccgtcaattaaccggtatcttctcggaaacggcggttctctcctag
+atagcgatctgtggtctcaccatgcaatttaaacaggtgagtaaagattgctacaaatac
+gagactagctgtcaccagatgctgttcatctgttggctccttggtcgctccgttgtaccc
+aggctactttgaaagagcgcagaatacttagacggtatcgatcatggtagcatagcattc
+tgataacatgtatggagttcgaacatccgtctggggccggacggtccgtttgaggttggt
+tgatctgggtgatagtcagcaagatagacgttagataacaaattaaaggattttacctta
+gattgcgactagtacaacggtacatcggtgattcgcgctctactagatcacgctatgggt
+accataaacaaacggtggaccttctcaagctggttgacgcctcagcaacataggcttcct
+cctccacgcatctcagcataaaaggcttataaactgcttctttgtgccagagcaactcaa
+ttaagcccttggtaccgtgggcacgcattctgtcacggtgaccaactgttcatcctgaat
+cgccgaatgggactatttggtacaggaatcaagcggatggcactactgcagcttatttac
+gacggtattcttaaagtttttaagacaatgtatttcatgggtagttcggtttgttttatt
+gctacacaggctcttgtagacgacctacttagcactacggccgagcgcaataacccccgg
+aaagcacttgctactgggaggcgggtttatccatcggcaataggggttatcagtactacc
+aagaagattgtgaagatattaacagcattgaaaaaagttcggactgggcatgaaacgtgt
+gtcagagttagagtccttgagggactgaatgggtttgtcccaggcccaagcttgaggtgg
+atgtcacctcgggtactgcctctattacagaggtatcttaatggcgcatccagccttgtg
+gctgggtctacgtacgcgtgggcaccatacgtatgttggcaggaaaggtcaatcatgctt
+gtttcctcgtcgcagaaacgttcacactattggctcgcgggatcgaacgggcctgattat
+ttttccagctcctgcgttcctatcacgccaactgtcgctaataaaatgttatatagagat
+aacccattgctatgcaaggatggagaaaccgcttcacaacaccctagaattacttcagca
+ctaacatctaagataccgggaaaaccgtaggtgccacttggttttgagggcaatgcctct
+tgcactggcgattcgtggagtaaccttgctaccgatttccaccttttctaggtatgatta
+catgcgatcgccattgtcagtcgtcgtacgaaatccaggaaggaattcgaatacatgacc
+gaaagctatggcatcataagcgtggctctttactaaggacacgtgtagtcggctgatttc
+gcgcagaacttcgctcaccggacagtgactgctgtccgaacttgggggcagcgtagattc
+tagctagagaccgcagcgaaaatgccactcgctaggtggctatggacgtccagctatagg
+cccccacattcgtatgtatactccggtaattgagtctacctttcgaaagatcaaagttca
+caaaccttctctcacgttaacatagatgctcgcacatagctagtccggtgataaagcggc
+cgtgcatgcgagtatttagcgcacggaacagatattaggctgcgaaataccctcatatgc
+tacagcgcaggtaacagacggttgatctccccgtagaattccctcaaggccggatcgttc
+tcatgagtagcctttgtctgacatttcctctcaatagattgcagactcctgtgtcgtggg
+aaaacttcgcggaatcgctgtcgttacataaatctaaacagtgcagtccaagctatttac
+taccacgtatcataatgaacatctctttgtgaaatacgccggtacgccgagagatcgccc
+acattgcgtgtcaccaagacccagtgtctattgggcgcgctggttatagtatgcggaggc
+acccgatgtgctgctaatcactacaaactcgacaccaagaggcgaccgcgtgcgggaggg
+ctagaacgcgagagccacgtcaacgtggtggtaccgctcctgatgatacgagcactgtgc
+tggcaccgctgccctatgtccagctaacaggtgtcacataatatcgcatctatagttgag
+tatcttatcgctagcgttacttgtgagttctcgggtagaatcgtcgtagcattctagtcc
+ttagcgtaagcaacgatatcgccgatattataggggcaataggtctcacccaccacgggt
+gtatatttaacgccctaagtagttaacggagactattaaacaattatgcacgtgaaagat
+tagggtactgcacacgtgtcacgttgacgatgtaaacaccataaaggttgttctgtgatg
+cgatgcccatacctgcggtgcaacgtcctaaacttatgcggatcaccttctaattcagcc
+gacgttgagaacgccagctatactctgtgagtacaaggtgaaagccccagatcaaaatat
+tggagtcttgtccgtagctcttgggtggagagtgtgaccacgtttatcccttaatactga
+gactcttctcgttccacgccccggacattcgcgatacagcctagtttgataggtggctac
+aagggctctatccgaatagcacaaaactcagtcctagtgcgtataggtcgtgctctgcgg
+ttatacgctccacagaagaaagtacccactgcagtttgtcggtgggacttagcaaaacct
+gtaaccaaaaccgcacatggactctgttttggtggcgtggagtgtgcccgccgcctttat
+gctgggtcaaaatactatatgatttgttgtggtcgggcgcgacattggctcttatggttt
+ataactattattcggtgcacagaaccgacttatgccccgattttgcacctcccgagagaa
+atggtactagtcattgtctcggggttttacaactcaaggataatctgccagcggtacccc
+gaaaaatcccatcccgaacggctggtacctatgctggagaccgaaatggagccagtgcta
+tgcaaaccctcgctctttctatttggcccgaccagctgcgagagtcattcgacatacatt
+gcgatggctggttcatctctctgcttcggattccgatcctgctgcctatggccacaacac
+gaaagagatcttggatacgtcctcaccatagtccaacggacaaatatggaggtgtacgcg
+cacggatacgagtacgacgggccgcccaatgctggtccttcgtgttatactgtttacttg
+cctccggtaagagtgtacagcttgtacccacgcggtggaggaccttacgcgtcgtccgca
+ggtgtggagatttcgctacctgttgcattggggcctcgccttacgtttttttcgacggag
+gcccgacccgccaggccagaccctcatcattgggatttttactgccttggacggcagatt
+ctgatgctggtaacgcgcttggcacacaccctggtcgtaattacgtactatcacctctat
+tttaccaggggcgggccccgcctcaacgatcggtagtctcgttagaacagttgcttatac
+tccgttagcactcacaactcggagaatgagcttacacagtccgtaatagtctccacagct
+tcccctggaaggttcgtacaggggccctggggtctaatgtgctaccgcctaacttcgtta
+gtgtaaggtctcgtgtgcacctccaataacgctgcatttttgtatagaactcctttatag
+gcctgactcttcggaacagcccactaattgacgtgcacgatgctgcatatacccttctca
+atgacgcataccggtgactaaatcctgtggctggttgacactttgcataacccaccacga
+aaacgcggtttgcacgtggttggaagcgagtaccggttaagggaagttacgtaaacccaa
+catagtgagcgatgcttaaaacactgcatgcgaacaacgaccggaacgagagcctaatag
+aaccaaatggataggtggttacgaaatccgcgcacaagtgtcgtgccactctcgtaaaga
+atgattgcttgcttatctatgagaaacctaataggcacgcacgtgtcgccagggaaaaac
+caccatccgacaagacgctgaaaatcgagatagatgcagcccgcgcgtactttaagcacg
+atagccatcttgagcgcgacgattcagcttacggagattacttctcaaagcggacacctc
+gacgctgaagctctctatcgatgcacttgcatgtccatctacggcttgagcgaaccatgc
+ttaacgcttggatgacgttgttagtcggattcgatcgtaccatactgtcctatccatcat
+aacttcccgaattaaaactcattttctaccctcatttgtttcattggcgcatatgagcgc
+cccatgggcgctgatcgacacaggcttgtagcgcacggctcgtcttgcagtagataacca
+tagtctttacgtcgcatatattaatatatcctcagacttccactgcggtattttggatcg
+tggcgtctgggacagtcacactctttaacgggagcgcgttcaatgtctgagtccatccgt
+gcagttcggtgcgattttattcttccctgcatcttccggattccttcttcttgtcggaga
+attcgccgctcgatcaaactcatcattggtacttattgaccgtttcatgctattacaccg
+gtacactgatgataacgctgcggttttatcccccccaatacgcgcacacacgcttctttc
+ggtgcgtcctgtcgtacccctattgcgcatcatggcactccagccgagcaatgctttgga
+caggtgtaaccaagctggatctagcgtgggttcgacacagctcggttcgtataaccacac
+gcatgaactgcgagtgcctcgccccagcgccgctgtctacttgctgtttagaggaagaag
+caacagcttgcacccaatccgcatatctgcatataggtggccgttcctccgtggcgcgcc
+gctacgttgtagcgcacggatcaaaagcgctgtgttactatacactggttcggagacggt
+tcatgacgagcgcgctatatgtcggcatctgcgccccatgagcggccgctgtccggcggc
+acgaataatatagtgcaagaaaaaccgaagactacggttatatatgatggaacggccctc
+acagcattctaacaggtttgacaaacttaataaatgatgggccgcgcctgctgtgaatcc
+cggacggtttggccggaaatacctaggcagtctttggaaaagcttttcctagatcaccat
+atcgttgtcagtggccaaggtttcgttaactctcggcgtacccagtatcggcgcaatagg
+cctttgatcaacccttggaagattagtcgatcgtaacttcctacatcccggtgaaaggct
+ttaattctaagtcttcgccacaaacgcttcaggagcgtcgagttctatcactttcgaggt
+actgccacttactatacaccggtacacttgttaagcaagtgtttgcggatgtggttaaat
+tttgatggcagatttctgggtgttttagctatagctgtatcctcgaggtcgtcgtttaac
+cgctcctgttgctagatcatatgtatcgttgttcgagacgctagtagtcgctcctaccga
+atcttacaggttcgatctctgctcggcttttgccgcgggccggtgcttgtgctataatta
+taatgataagggcagtggccgcacaactgcagattactgacacttgagtgagaactaagc
+cttgaagcatagtgttgaatgttgtagaaaagtatactgtgacaaaaacagggcctggtg
+tcaagtgtcctcagtgatctggatatcatcacgccttgttagcaggatttacccgcatag
+taatggccggactttatattgccctgctgcgctagctagtactgcgggggctctcttccc
+cctattgatattccgggcagaatgcgcgggtagtcagcattcatgtcaggcttctatcaa
+cgtctcattcacccttggagtgtgacctacgtgttagaggcaatgtagcccgagagcccg
+ttcaaagacaaactcccgaattaaacagacaccggttatgggagtgtgagtagtgacttc
+cgaccagtgtttggtttcagcctgtcggttaacctcgcagggctaggagaatgagctgct
+agtaggtgattaccgaagtctccccagaaagggaacagtcttatagagtagagaatgtca
+aatagcgttattgagttctgtctactgcactaccaagagcatgcccaccagagatgcgtc
+gcagtcgtagcgtagacgtcgtaatgacccaggtggcgttcggcctattcgcgtcggacg
+cgcgcgctactacaacgaagggttctgaaagtgcatgttcacactgaaattctaagtgtt
+agtaaacaaacgcgtgtattccagggtcgtgtgtgacattatggctgtctgcgcccctca
+atgatcatcaagacgttcaattgtatgttaacgtagatatcaggtttagttatccgtata
+ctttttacgccgcgcgcttggaacagattctcctaacagccctcgcggtttcaaaaagaa
+ccaaagtctataccatccttgttcccaattctgcctggttgcggagaaaagaccgcctcc
+atacgtacccgactcggtattggtaagtggggaagcagtcgaacgcatatttcttggtta
+tatcacaggccacgttctatatcggaagtggccggattacgatttgacgttctatccccg
+agagcgcattcttgtttgttactactaccacgcgggcgcttcttattcccagaccagagg
+gaatgtgcggaagctttttccacagattggcggaactccagcgtgcttagtgcaggcgga
+gaacgtccgttcagtggtgcgtgctttatttttcaatctgacccgacctgcgctcaaggg
+ttgcaagttgttgtgcgcccgagtaataggcgactcgtcgcaatgggtctggtacattgc
+attttcatcggtacggcgcttcataaagtgcggcaaatttctcaccccagtactcatgtt
+tatagggtatcaggacccgaagcttctctgttccaaagaaatgtactgtttggctcccct
+gtccatattggaggtagatcacttgtggattatgcaatgaatgaatgaaagtttggtgct
+ccccaccggggcgctctcaaagagagtgagctaaatttgaacatttaaattgctattcca
+acccggagtcctgaccggaacagtaatgaaacttcaaccatgccggacagactagaagaa
+gggaaagttgcttgtatatgggagtaaaaatgatgttggtgccgtaatggtgccggaagt
+gactatagagcatgtcgtgacgcaccggtaggcagtgctataatcgtatgtccttcaggc
+gccgccggacctacgaagctgaaattagacaccggcacactagccccgtcagcgacggtg
+cgcggccgctgccctgcagcgaatggggctaacacgcataaaacgcccgcataaccactc
+gagctacgggaattcactcaggctgttgcttcgacgtgtagtctcattacataatcataa
+tacctccaagaccaacggctgctcatgactctcttaccttgttagggacatttcggcact
+agggaagagctgaggactttgaaaacgtcgataaaaccatcgcgggaactagctgcgtta
+gaactccatattttacgggtcgcaagcttgaggtcctgtcccggcagctgcaagtgctac
+ggcaggaggggatctacctaacgtgcagtaacgagcccctgcccgtaatgaggcgtactc
+gtctctaatcgtcagtaagttactatgtccgaggacgcctctacgagttgaactctggct
+aggcccacctgtccgcgccctgctcgggtaccccatctgcttatccaacttcacctcgcc
+ttacggaatctctggttgccagtcatccgatggtcattaagcagcgtggtacatcgtagc
+caatacttcagggcgccagccatattcccagccaagcggctgcataattacagcgcctgg
+cacgactaatcgatcccacaagcctggtagatgacccttagccctaaagcgccctctgac
+ctatctgcacgtgatacttgattatttgtaatgagcggacagggtagatgactaatatac
+agggtcgtctaggtttgcacaatgcagacatcatccgcgcaaggcccggacggctgtact
+cacacagctagctccatctccctcagcagcactaagattcccacgtgaccagggcgacgg
+gcctcagccaaacgtatccttgatatctacttaagtcaaggttgactccgaaccctatgg
+gtcggtgccgttaacagggagtctatatctcggcgttccattgcttgtttcaaactcctg
+ctataaggtgaaagcgctggagggcatagtttatgcccaaagttgcgcgtagatccgtcg
+ggatatgtgctataataaggactgctcgaggtaggcggtaacggctcccgccttcagtag
+gcgcggaactcgaatcggagttacaggacttgaccgagtcatatccaagtttatgttacc
+cgatcggatccggatgctcgtatctgcgacgaggtcggaagacggacgaaatacgattca
+accgcgcgaaccattagcatctaacctttagcctcaatgggtgttaacgtggtgggctca
+ctcggcgtactctttgtgcaactattccgtatgaacaacagtcaagttgcgacatgatgc
+tcttacgtgattcccacagtttcccacctcaggatgctttctttagctaaacccaatagt
+tatggcggcaccttcagactcccacgaggacggctatgacgttgctaaaccattcgccgc
+caaaggctagcgctaacgagttctgtgagtttgttccgggccagatctccaggatggtcg
+caacaacgcagtaccggttttatactggtgaccctctacctgttattaagttacagcgtt
+gtcctacgtacatggtcgtgagtactcgcgtagtcaaacgccaggactagcagcgagaat
+tattgtcgcgatacttactacaatacttacccgatattgacgtgcagggttgaaagagat
+ggacagttgaatatctattttgacggaatcctcaaaactccctccacctcaggtaacggc
+cctgtccgggaccgcattcttgcatatattggttcccagagcgtatctaagttagtctct
+tgaccgttcaccgactctagggcgactcgttatcgccctccgaaacgatgctttcgttac
+ctcaatgatgacaggctgtaacgtaagtgatcccaatctcactcgtgccttgtccaccgt
+tccgtgaagacgaagcaatacgcggaatacgtggcttcgtaatattttgacgatatgggg
+ctgggacgctcaagacttccatgacaaacaaagtgaagagcaactgcatccctcatcatg
+atcactattaccagagtagcgatggataacgctaatttggtcagggcagctatcgcatcc
+cgcaggtgtaggcggagactttttcttttgttgcgagttgacaggtaatctcacggtata
+agcacggttatttacgcaagcgacgtccctgggagaatccgcccacgtaggaccccataa
+tccataaatactgcggtcgaaaccttcatatcgtgacagaaccgctttctagggatgcgg
+tccccgcattcagagttctactttggccagcgtgagacttaacaactccacttacgcggt
+acattgaagtcgttcagtccagtgtgacctgtgtaccgaataacgtgtagaccagcgcgt
+ctacgacttagcgcggctccactccaaagcaccttttgggactttccaacgagcctgttg
+gccgttaagcggtatttcacaaatagatcaccctagtgtcggtaaccgactaccctattg
+ggatcatcgtgagctcgaaacactagaggcggaccaacggatgacatttgattcggctct
+acagagcttgtcgccagagaaaaactgtggcaatctacgctcgcggggaattgactttag
+cggcccctagacaggtgtgggacactagtctagattcacgtcctacacgacataacagca
+ccttcctggccagcccagaaatagtacctggacgacatccagccttccgacgccataatg
+tgagccgtagcgcccacgacgatcaacgaggagaaatttacaaaggctgtgtgaatgcta
+cgtcgtctaccattgctcatcgaaacgaacgcaacgcacagcatacaacgtttaccatgc
+cggagcgggatcctcaagtacagaaaacagaggtctaaacatgatccgaacaaatcggta
+ggtttacacagctacctcgtccattggcgtactgcatcgatcgtgcttactacggtcatg
+ccggcccgcgatgcacgtacgaaggaataccctgtctgcccccgcgcgagttacgctgtc
+tcgcacataccgagcactgtcgttcgaagctaaactatgagcccagccgagctccttatg
+gccgcaacgctggtgcggccagctgataaattccacagtacacgatcctcgtgtaagatc
+tcgggcatagtaagtcatttcacatggttaggagagatagaatacatggttctggtagct
+caaccaggatttgtggaacccttggcccttggtgagtgctacaataaaattctccgtatg
+ggacaaccaaagggtgctggatgtgacttcccggcccaggttagatgtccatatcattca
+tacattgcccgaccgacccaatgcctaaatcagaggcgccttagctagttcttgtagtgt
+gccacgtccggccacgcagacacgaccctcggcgagtgatcaccattaccggattggcat
+cgaagtctttttctgggaagttagccagtttggtgtgcggtgcttagaatcttattccca
+gtcaaacgcccctgggacgaattgctaaccctagttgccacgccggaaccatcttcggga
+gagtagacaaatccgagttagatatgttagcgtcttcgtgagtctgaaatgtatcacttc
+accgcagaatacgcgaatgtctgtttgccctggactgacggaattggcttaaaagccgac
+tagagcattttggtacggttcctatccgcgatgtaattacctatctaggttatcgctaga
+cgaatagcgagtacagtgtagcaggccctttgttagcaagttgctctaaacagttgtcaa
+aacgtaggcacaatagtgcgattcttctaaatccgggaagctcatggcgctgggcagaaa
+tatcacatacgggaataatcaacctccattttggttcgttttactcgatgagtgcccctt
+gcttgagacgagcgttctgagttgatggcatgtcgaaaggtttacgcggtgagtagagca
+ctttacccctacagatcggaatcctcgaggaggacagttggaacttcacattaacctttg
+ttcgattgcatgaaggttgtgttctgggagtaggctcccaaggtagcggttcatgctggg
+ggcagccctaagtttgtattatgtgagtttgcgtctgaaactacatttagcatgaggaac
+gtaagctttctggagggatcttctaaagccaggtatcgcccgctacgatgccggagccgg
+tggttcacagctacctgtgctcaaaggcttaaggctaatcatagcaacagtgcgaaagga
+cgtctttcagatttcgaaaggtgctgacacaacaagggtcagggcggtcctacccttctg
+attccctacctggttttttagcaagggtcaaggctaggcttatactcccgaacgctttaa
+acactatcccacccctgacggggggaagttgcgcgttaagtataagaataagatttaaca
+gtacactttaggttcctcttccgcgagccgtcatacagcaccgagcgccgttgaaacgcg
+attaacgcgtattgtcgtgcgaaaaaaaaacgctcgccagcatattggagtgtcgacttg
+aaatattgaacaacaccgcatatcaaggacgaatagtagggcttcactacctccacctga
+cggccctaggacttatactcgaaaaagaccttccatcacgatgtcccttaccggcgagag
+ggctatatacgcatgaatagcagatcttgccgtcgctgagtgtcacccagggttgctcca
+gaaaggagatagggcggagagccatcgacagcagctctcgtctaggtggtagcagctaag
+gagtcgtgtcgtcgcgccgagttggaacattatcgatgtacatcaatgcagtaatgatgc
+tgatagactcgggagtttcctcaaacccagagttacgagaagacgcaggtctatcagtta
+gaaggagtcagtattggcctttgaaagatcttatgctcatgcccaatcgtagttaaacgc
+gaatcgggaaggccaatctggcggttttgacccccggactcttaagacgtccaatgtggc
+tagacataagtaacgaattactctataccgaggggcgggaaccggccaatttattacgag
+agcacgagagccttgtagcggccagcacactatcctcgagtccctctatcctgagacgta
+gatatacatatacgcctagagagaatagccgtctaggcttccgtcgccctctccgtcgtt
+cgcgtgaaccgtaagtcttccgcattcccttcctcaagcgcgttggtgtgagagtggtat
+tgaggcccagtcttataacgcatatacttgtgcactctattacttaccatgggaaccaat
+ggcactctcgaatcatgctcacagctgagcaacggtgctgctcaccaattacatatgagt
+cgtggtttagcgttggagcggaagatgaatttccatctgttcgcgcgcatcactaaccaa
+tatacggttatcccagcgctatctagttctgaccgggttggtagcgaacccttttgcaag
+ccggcttagtggatgtgaagtgggagtgataacttaagccgccacgttcgggggggactc
+gtttatattggtgctggaatacgaacggcgtgattcgtagtcgccctaatcgggcgcgac
+aacacatgtagtactgtcgaggcggtttaaacccacagtaggtactctatcagcagaatt
+atgctagaagtttcacaacaactttccgcatgaggctcagcggcagcgtcgcactcccaa
+tggccagtgccggtagcgatgtttggtggaattagttccttcggaatacgaaccggattt
+aaagagcctcggagaacctaaacgaatccgtacgcatcttgcccaaggtgctgagccttg
+tcgcctttctcagttccacctacattaatgcaatgcgttcgaagctctgaccgcaaacag
+gaatcaagttcagacagagtgcaagagtttcgcaataattgggaacgacccacttgatat
+aggtgcttttagagatgtgtgtacgaccgtccttcgagcatacctacgggttacaattgc
+tccggtaagtcaaggcacatagaaaacatagccaactgagagtgtatacaagattacctc
+atgtagactgaaatacacacatcgctttaagctctcaaccgatgtagaacagattttggg
+cggcgttgacagcgtgcccgctcaccggtttgctcccttctcaccaaataaccatgagac
+gactttggtgactggactgccagatgacgggctacaaccgttttggttccgaattcgctc
+taactcaactaacatcatactatatgcgccaggatattctcgcggttggacccccctgcc
+aattcgggttaaaaccactccccccatgtagggagctgccgcaattacaatatcgacgat
+cccagatggacgctcacaaaatatcagtcctttcacgatccgctcatatagacggatgaa
+gggactgaggctgttagatagtgacgtcgagcatggcgtagacgagcgcaaccgggtcga
+ggcccgcattaccgtgacacccagttgaaaggatttacactgcttcattcgatatttacc
+actttgtatgaggagctcaacctaagtcaacacggaccatcatacaggtcgccagtaatg
+agaaggctgctgtgccatggagaagcgctgctacagcacacaacgaacatcttgcaatgt
+gaaggagggtgctcttttgggatgagcctacggggatgtgtatccctgccctgtaggcag
+ttgggacttagcgcgactatctagataactaaggcgccagccgcggctgtttgccgaagt
+cgtgctgatgctgtacaacgaagggcgagcgtgttaacatgctacacgttgacctagact
+agtccaagtctgaaagtcccaatttaggtcgggtagtacagtcctcggttccagtcccat
+gttgtgccgacaaggacaagcgatcatcaaatcgactgaaattgaatcagctacctcaga
+ccacattcagctctcggtaacatgggaggcttgtggttgcaccgtaaaagggggatagcc
+catccatcctgtaaacctacaatcgcgcgtagcttaatacgctcacattagacattcgat
+cgagagacctggtttcaagagccttcccttttgctttagtgggccaaatcgcaaccctgc
+tcccctcccttacgccttatacacttcagtgcaaattcatgcgttcagcgaacaactgga
+cttctgttgtacgtagtccacgggggcttattcattatagaaagccccctactgtcaccg
+ttatatggttcacacatgagctgatcacctagagagtcgtcatgcacattcgcctaacaa
+ggacatatgagtaaccgggaggggatatcttcgatttgcagcaccaatcgacgttgtact
+ggtctattgtcggttaggtccgattatccgaccggcaatgaggcaagcccatctattcag
+gaaacttaggcagttccctgtgctggcccgacgtcgatgagttaagtctatacaggccgg
+ccgcgagtagttaacgagaccaacatagaactatcatactagccggcaatgatcaatagg
+gtcttagtgccactgtccttcgagccctcgcctaatttagcgcgaccggtttcctattgg
+cctgtggggttgcgggcgcgtccgctttaagaatggtccttaacacctacccggagatcc
+attgcatagcacactctccccattagcctagacacgtcgtcgcccgtcgactttggctgg
+aatttaatcgccggggatatcgaactttcacgccctttaacgacgaggaaacctaccgtc
+gcctggctggtaaatgggtgccttacggggactcacgatgctgtgaaccgcccgccagtc
+tctggggctcccaaaatccaggttggaattacggacctccgccggtactacgcattacgg
+ggtggaaagtcctaagataggtgaatgaaagggcttcgctaaaccagtaagtcattaaca
+ggacatcggcgtcacgtctcgcgggtttacacggcgcacaaatcctattcccatgataaa
+caccttatgccaatccacatccctcgctgcctaataaaattgtcacacctgcgctactga
+ctaacgtttacgcaatgagagatgaattccgacacccacgcttgttgcaagcacagccgt
+atgggttctcgggtaaggtaacacgaggcacactccggcgcggccacttcggcccctccc
+tgacgatgaccctcattggtcaagcatcagtcgaatgattcgtaacaaggagcaaccgac
+tcagtagagagggtgaatctcacgcgctagcctgaggaccgcctaagtgcttgctgtgcg
+tcgcggcagtcgcgaggtgcgggctaaagtaaataattactggtcttacctaattaaagt
+tggtggttagggacaacgttaccactaccagggtgcgcccctgaattcgggtatcggact
+atccagggcgccttttgcggccttaaatacctttttaatcacgctggagctagaaggcca
+tcgggatagacggggttctaggtactcgaaaaaacaggcctaataactttattgcgcttg
+gactaacctatgtacaacacgttgtagcatactatggaatgttactgacctacacggata
+gcatttgttcgggagcgtcattgacctcccagaccctatgccgatctgcaccattcagtg
+accatccacaagtctctaggtttagccaaaggtgacaggtcaagcacttgcgcatgtcca
+ctagtcgattatgcaacgtctctgaacagttagcacttatctcccgccgtgtgactcacg
+cagtgaacttacctatagcatacgcctactattgaatgttcgttgttctaacacagcgct
+aatacctcactggcagaggtgcgcacgctcctagtatgggagggagtcaggtcagagtgt
+atgagactgatttttattcccgataggggttcagtgaaatcgacctctcaaaagagaggc
+gcagaattcgctgataagctctgctacgatcgctaaggcacgataagcagggcggtgaag
+gttggagcaagataatatcacccggacgcgggtcctgtcgcaacgagcggccgtgagacc
+tggtgcgcaccgtgtctcgatcggccgaatatcggaacccactgcgtgactcaaatgata
+tttttgctatctgtgggggatttatgtcccggtagaactctgcttctagcagaggataaa
+ctttacaaggacggcgaatatggtgtcagagcgccctaatgatcccgtgctattccgcgg
+gccaccggccgttaatggacttcgggttagaaggatgggttattcatcttccacagaaac
+gcccagccgcaatcgtgggtttactcgaccgcggttatctgcctacttagctgcattcct
+aaaacaggattaaaaaggccgcgagggttgcgaacctatggttgagaacagagtcataga
+gtcagatgcgcagggacggcacggatccacatggcagttaactaatattaataccccctt
+agcctcgtatatgggcgtgtgcagtcttgtccactcgcggacgcgtatccgagcgattct
+gtcttccaacgctattcgttaccactttggcacctctttgctaagcaggatgagaacatc
+tcactcactacgagccttgactttcagcacgcggtacgagggcactgggcttctcgtcct
+ttgctagatgtaggtgccttcccgccctcatgacgatgtcacgtctatcggtttattaag
+gtcggggaccattacgagattaccccgcgaccttcgtccaaatgggatcacggcaacgtt
+ccacgaggggcgcgttgcctgagccactcgggtatccccttccgatatccgcagaagtct
+agctaggagcaccgccaagcattacccgattaagcaaagcctactcatcgcatacacggt
+tcttggggtttgcgtcagatagcaacttccggcggcagtagagatgatattttatccgat
+tgagcttgcccagcgcaccctcgggccccgtggctcttctcttaaatgtgccctgcacga
+tgttagcggttcctactcctccccgagccctatgggtggacagactcgccctctgaggct
+gcgtgttcaactggttccaagtccggcgcctgtggatctacgacgcgaccagcaacatta
+taccaatgtctaggcttagctcgaaaactagtaagccttagaactagggtcgtagcttct
+tctaaatgaagggcagcgtcatagccatccacgttagcgcttactcaatcgcctgtcggc
+tgtcatgttaccgctgccgtaagttcgtgaacataaaatacaacacattttaggtttaac
+aaggattgtttaccgccacgtactggtgccggtagtgaaacgaaaaacctcagcatcggg
+aggaggagaacggaatccctaccaatcttatctctacttaaagaacaaagcgcgcggtac
+atggcgcagacgagaatgaatccccgaacgggccgagttagactcctcaacctgtcgaaa
+agttgcgatccgctagatcgtagagtacggacttaaaaaagaaaagaaggtctctacccg
+agcggtgagcccaaccagttccaggttgctgccggattcttccacacggcggtgccatat
+ggacgaccccgtactttgggcattctaggctacctactgcgaacgcctcgcgttcatgcg
+caaagttttctctagataggcgcgctttggtaagcatagtaataggttcttcagcgtcta
+aagcccgcccattaggcctggcgactctgctttagtggtaaagagatagcatcgatgtac
+atcgatggagagagtattttcacgaaagtgcgcgccgtacactatttatcggcatgcgcg
+ctaaactggagggtctaataaccagatcacgcaacgaggtcccatgtacggttcgcattg
+cgaaagtatgggatactagaggttttatcgggcctcgcttgaggtctgtctgggactggc
+gcacatcgctcgtcgcccagtcgatagcggggtgattaaataagaaatatgttagtgccc
+ggatttggaaccaaccagtcccggtagcggtacaaaaagcctttcctgctagttctatgc
+ttaaagcgtactcctgttacaatccgtaggcaacctgaagaggcaacctggttttccttt
+atttcgactttgtttgccatttccaatgtgatactgtgcggcgaccttaatgctttttgg
+taaaaccataccgagatccagcgcacgcgacattcagaccggtcccggtttggcggtcaa
+cctcgtactctgcactgttcagctagaggggtctcctatcccgaggtaccggtcgtctaa
+cgggtggttacaggggctggtcctactctaccaacagttaaggagggcaacaagttcgat
+ggggcatcgtataacttgaatgccattggacaaataataattgctccacgtcccaaacct
+caactgaccttgtacgcataggtgccacctgcacgcaaccgagctcgttcaagtgtcctt
+cttagctggcgccgagtgaacctgcatctgagagtctacccaacgatctagtatcataat
+gtctgtagccagcgactatgacacttagagagccgcctaagaaagtgtttgcggctcctg
+ccccggtgcgcttgttcggtgggaggtcgttatatagaaccatggggatataatgaatgg
+taacatatctgccacgttgacaagccgctattatgaattcagggttggatactattatgg
+cccttcacggtcacttgtaggacggccccaaacaggattagtaaagtcggtggtctaagt
+gtaagcgataggcaaactgcggttattcgcgtagaccgcttgatgatgtaaaataacagt
+tttcatgtctttgcaattaccgcgtgtagtctgaggacttaaggccccttctcggatagt
+gaaatagttcaggtccggctgttgacaggtgtcctgaccggaacgctttacagctcctga
+ggagcgtagcgccctacgtccttcctgatccagccgcacccatagctagtaaacaagttg
+actgcgagacacaaagtcaagggcctgggcaagcgcgggccggactgcttgtcgaatatt
+gaagcgtactcgatccagatctgcgccattgagttaaaaggactatacgcctgtctccag
+ccgattgcagaaaggacagatcctaatagaagaactggggctccattctctcaccgacac
+cctcctattcctatcccactggccccattgctggtaacccaaacctctcacgacgattca
+gcgctgcgattaaagagtggagtaaggttaaaatcggttggggcgagtagtgtttgatgc
+aagatccattgattatcgccagtgggatggcggcaaaggtaccatacctcgagcttattt
+gggtgcctcactcctcggggaaccatatagacttgcacttggcaaaatatggtcgggttc
+aaccgaccttttatgcctggaccctctgctgagggcctcttgatcaaaatgcttgcgttg
+cttataagttgccgcttgatgtccaggattattattccagcgtggaacgggaaatgatag
+cttatctgttactcagggcgcctgaattagggttgccattacataaaggaacgacaaggt
+gagcactgggagggcgcattcttataaccgggcatatgcgcggaacaccagcgttggatg
+gcctacctccgcggaggtcggggtcgaaggcccccgtttcctggaacaataacactgtcc
+cacttggtttgtaaagaacctccactcgtcatgacacggcctagcggtgttatcggcgac
+gataatcatgggtctttacaagtgaatcaggcttaccaggcggaccaggaggaaacactc
+cacgagtgagacctggatccggggggatggcatacatcccatacgctcactcagcatgca
+cgttcctagcacatgctggaatcttgcaagctggacagagtgtattgtggcccttgagct
+atacttctaacgccagatccatgtttgcaaacatagctccagtggcctattcgacggttt
+agcctctgcaccatgttatggctcttataggtgttgggtcgacagtgggtgactagacgt
+aaagagagtatgccgtggttgaaccgagacctaaaaagctcaagatcacgacggatatct
+ttaacggataccagcaatcggctaagaccagtgtctactactcgtgatcggcaccggccg
+cccgttatctggtgtagtagtcagccccgcatcacccgtgcctatgcgagccttgactct
+atcagtctaagagcacacgtttagacctgagccaagcgtaggtcactatcgagtcaacct
+taaccctagttgattaatgctcttgacgtgtatgattacaccgaccgcgaataaactctc
+acgcgcgtgacggtttcctcgctagaagaagccatatactgtacacactgctgtgaccga
+caagacttacctttggtttacgtacaggtggacagttgtttctcccctcgggtcgatagc
+gtttggtcgtgattccaataagtgccagatgtcggaacaacatgtttccataaagacgcg
+tgacatgatatggtttgctatgaagccactacgaaaatgccagtgcttctctttatattt
+tgcagatgtggaagaagtgcatccattatagtccttttacgtacctggattctccgccag
+cactgccactactttcttactatccgttggggggggacgctcaacagagcgcggactcag
+gaatcagataacgaccggaacggggcatatgcccagcattcgttgttgtaaagcgattga
+gtttgggctgctaaggggccggcagttcgttccgggatacccgcaaaatttatgcctttg
+tccggtgattctaggtttagctcgatccacgaatacgacaatacaaggtttgcctcctct
+ttcgtctatcacgcaagcttagagttgctaaaatttcgtagtccgtgcgttaaagctccc
+tacatttctaagctgtacgacaccacactatcttgcaacaagagtcactctatttctcat
+atccgaatgaatatcgtcctgtacacgggtggcaatctcggcaagatggccgagatgtgt
+agcactgtcacgttcaaaagctcaaacttctgcccactgccagccctaacagaatctgga
+gacatcataccagcgctgtcccatgtggcggagagttgcttcaatagaacgctatcaccg
+tgggatcacatacgtcactactccgtgtgacactatttattattcctttacctccaatac
+gcccgtccttgcatcgcattttgtagtaagacatcagacgacgttactgccacggaacca
+taaaacgtgctgagcccacgtaaacgtcctatcggtgaggtccgctcatcgtacgactct
+gaaatttggaaactaccagtttgttggcggtgaatatccaacctgtcggcatacacgctc
+acgcgtatggttggtacatgcgaaaaactacccaagcaccgggcgcgcgagacactatga
+gtttagtgatgatttacggagcacgttttttgaactcaacagaccgattgaatccttcaa
+acagggttactcgttcgtgacaaccgattacagcattctgaacgtggtacgtgcacatag
+cttggagagttgcgcgaatctctttcgtaccgtattctacctgatcgctagctttccggg
+gtaacgacatcggcaatgatgagtagcagccagtatccatactggacaggtactccatat
+aaaactcccgcttcaacacgcgagatttgaaccgcacagtgattgtgctgagtcctagtc
+accatcccgatcttgtacacgggtaggggtgtaacgtgggcagatgatgcttacccttcc
+gctggcttgtaaaggtgccccgcttcacttgatgagctgcgtcgacaagaccacccaacc
+cgagccacgtggttccgacgactcaatgatttccagtatggtccaatcgagcaccttcca
+ctcatgaaatttgagcactgttggggatcgagtatgtgttttgcagtgggtctgtagcat
+ggaaagatgtaccctaacccggctctggcattatcaacggtggattgggtggttaaacag
+cttcccttcggagacttaatggactaaaacgaatgaatcagacgccgagaacgagaactc
+accatctggcccaggagccatatttttgattggtaaatcgctcgcatagtgcccgatacg
+atgcgtacttgagcgtaaacggcgcagcctctaatcataggtgattgctaagtctacggt
+catccccagtggctgacgaggaattaaagacctatttccgtacttgttgcgcgccttcaa
+ttatccagcgtataccccgatggctactgctacatgtctaaagtgactagccagaaaaac
+ctaaccctcgcccacgaggccttgatcatctcaatcatagagtaatgttcattgaattgc
+acggctcttggtgtgcacattgagacaatttctaaaccgacaagtttaatggccgagctc
+ctcctgcgtccagctggaccttcatgcaggcatgaaggtccatatatattgtcctcccat
+agcccgccgaccgggtctgactcaactgtgttttcgctatcccaggctagcacttctatt
+ctttgttacgtccagtcatagtgttactatagggtaattttagtcatagtagacggccgc
+tttttcgtatggcccgagaccgtccaccggctacccaattaagtcacatccggatcttgg
+gtctagatattcctatcgaaaatagtctcgccgcctcactgcgtagttcagggggcgtca
+cacttgttcgcggcttttcctcatgggatctttacccgatggttgatgcaataaatgtct
+acaccggactggcgtgtccgagacgactttatacacgtgtgacgagtagatcagatcgta
+cgaatggtctgtctcacctatcccagtgggaggatggaaaacactcctgcctaccgggtc
+gaattatttacgcgtgttacaatatgtaatttagaaaaagggattgctggtcgatgcgtc
+tccaagggattttttatctaaaagcatccttttgggtgtactctgatcgcacgtcgcaga
+cagcagtgggttttgacgcagtccgtaggcccacagactcgtttgttgtttattaatccc
+aggggagcgttgaagccacacctattctgtagctgtttgaaaggtagctagcccggatat
+tactcaaggtgactcccttcagaatcacacgtcgctggagtcgccacagggtggcatata
+cgagtgatagagcaccttactttcgaggtagcggtacattagtgcaacgatgaacccact
+atagtcttagtgatttcatgttttacttacgcgaaaacgtggggttttgtcaacacgtat
+acgttgaatgcacatgcctcatcctaaactgatgcactgccacaagtctgaaagagcgac
+agtctgcaacatagcggaaggttacgcccaagccagtggtgatcccccataagcttggag
+ggactccccttagcgttggatgtctttgccccagcggcctcggtgtacgggttctccacc
+ccactatggtttggaactatgaagaggtacggcaacctacccgaggcaccaaatcgtgaa
+cctacgcctatatatacggatagcagggtatccattcttaccatgagctcgtaaaccact
+ccgctgaattcgatgggctttggcgcacatcaccgtttctatcacagatctgtcaacgga
+atctaacgctatttactcggcgcacacagatcggaaaacccaactgtggcgcgggacgga
+ctccaggaatcgttacgcgttatcaccttcggctaagtcttgacgacattagagctatat
+ggtattaatagtagctgtacatcaaatgataaaattatctgaattataagtgatagcgcc
+cacataatgacacacacgttttagatagttagtagacgctcgagactttgcgagcaagaa
+tggactgttaaccttaggggcgggttcccgcttacaaaagctgattcgctcctagagatc
+tataagcgaagttcaacccctaattaccattgcataagaccgggagaacctgtgacacct
+gttcccatgggattagcgaaggattgttgacttattgccgagtgacctagtattgattaa
+aaatgcgacgtgaagtaaccaggccttcgatgggcgtctccgaatgggccagtaacaacc
+atatacaaactacaagttaaacccgaaaccgtggctaccatgctcatctagtcgggttcc
+cgatggaacattccacggtgagcggccttggatgtcggaccaccatttggcaggacaacc
+gtcacgattcgcaacagcggttaaagcaagatggacgccaataatgatattcgaaagtgg
+ggttaaaactggccgccgcttgatcggtcctacttagtagcgtctcagatgctagaacca
+ttccgagtgcaatgtgtgctagcaacagtggaatcggtctataacggtttcatgatccct
+tctccggccatccattgagaacgattctacattaatctgttaagcgaccgccaatcactg
+attagctccagaaaacctaagattaccgtatataagaatcaacctgctaaagtaggaagg
+cgcaggttgccgatgaacagatcaagttcatacaggagctcttaatccaccgtacccaag
+acctagtcaagcgggatgtcgttaacaactttgtacagacatttgggagcattgcaccac
+agactccaatgaataacgcatccgctaggaccggatatagactgaagaaagtatagtcag
+ctgcctcctaaaggaggcagtagtaggagccaacctaacgtcgtggatacgcattactcg
+gtagcgtggtaaacacacgaacccgatctcagaattttagcggcgagaagttccataaat
+catatttctacttcgtgctccggcttcatctgatggtggtcattattctccatatgcatc
+cagtagagcttgcgcttcacgcaaagttccaggatgctcacatatgtccatacggcgcta
+ctacatttactcgaacacttggaagcccgccgtcgggtgtatgactagcctttgactgag
+actcagcctcgcaattgtatgtaactagcgtatcccggcaaagtttataggtccatatta
+acaacagatgggagtagagcagcagcttttattcggactggcacctcatcgctttcgctg
+tctgcgggatcaccggtctctcttgaacgtgttagagcctgagggatctgagggcacaca
+cggcacttgtatccggaaaacctatgtatagagcctcggttgccagtactagttcgtggt
+ccatagcgcctgaggggattaaacgcctccggaaacacgcgagttgttcttgtgcacgta
+aaaatcacttgatgttatcgtgttcggccccagtcgctgtctcacttcaaaccagcgccg
+tatccattctatgcaattacgattatacttttgacccgatctacgaatcagttacccatg
+aatgcgacctgcgataacatacagtgcgacctccagtcctgttcgattaaatcgacagag
+ggtcccgaacgcatccaagcggcttgggtcccgctggcaccgctgggaagtaggtagaga
+cgtattgaaggaagcgtgtacagattggtgattacggtgctcttataggaccagactcgg
+gcgattctacggggtcgtccacactatggacccgagcatcgaatcagtatgtcaatctga
+agggactaatcggggagacgctggactccgtcaggagtgaccagaagcagggatgcaaag
+acatcccggacgtggatagactacaaatcggacactcagatacatacctctagaaaatac
+tattccccgtttctattccgttccgcggccttttacgtttagcttggagcaaactatata
+gccgaggagggtactacaacgcgacgcacttatatcccaatgaaagaataaaagctggta
+agacaacgctagccactctacctgtgttgcactcgcgatattagggagacaggttacaat
+cagctgacacatgactagctgacccggagcactcaattctgcccatcggggatctgatca
+aattcgtcgtcgcattggacggcttccctgcgtagcgaaggaatggttaccgtacgcctc
+ccaacacacggcggtcaaaatagtcttcagcaacagtaacacaaatctcttcctagtact
+cttggtacacggccctagagttaattgtgtgcccccccatactctctacatgtgataaca
+gcgacccactaggttgccaaacagagtcggaagtcctatcgagtccagggcgctgtaggg
+cctacagactctccgatgtcctgtgttcttcgtaattgcaatattttcgggacccttctg
+ctgttgtcagattcagtctgttccatcttctggaaatgttgaggaactcgaaaacgctaa
+ctccctgatatttgtggccttacatcaaccgtcctcaggtgaagcccaatgctaaaggag
+tgaaccagacgtgcaggaagaagctgttgaccctttaaagctctagttcttgtcaggtgt
+tccgactcgctggcgagagtatgatccagtaagcggcggacctgcgaccacatgatgagg
+tccctacaaaatcctatgctccctgcgaattacaactcacagagaacagcctaggctttc
+ttagttattgatgcacattctactgacgaacgcagcattcgaactaaaccattggtaatg
+taattgtgacacgtgggaatctatttaaagctgcaagaactccaccacgtgttcatccac
+atcggtctctgtggaatggtccaggaccgtcccaatagggggaattgcgagacccaacta
+atcgagtgattgaacatgggagcaattcccgaatagaaacttgcaacgcgcagtactacg
+acgatggtagcaataacgacgcgctacttcagctcatgggtctaaattagggcgaacgat
+tgcacctaatctgctggcttctctagattgtagatccacagggccaattaacagtgcaaa
+gaatagcgtcatatgattagtttgaaaataatatacatgaaaatcgagcacccgcatcaa
+taagctacgagagtctttggagagtgccaatacacctagcacatgctgtgcttatgttat
+gaaaattcatacttgactaacgttagccaccagccgatggcgctgtcacaacgaccctgg
+gttaccgtttagttctctaagaagggtcactctaccagcggggttaaatataccggccga
+ctgtctcgagagtgggttgagataactcaatttggatcagcattaagtctagagcgattc
+tcgcggagcgatctatgcgcactgacttactcttggaatgtcactcgcggcttacatgcc
+tccttgttccgcggattgaatattttatgcggtagtcatgactttaatcgtttctacaga
+aaagaccgtttgaaatggcagaggaaacaaccctgctggatcctccctaagtcacatccg
+gacggacagattctacttaacctccaataaattgagaaaaatgcaaaaggatgccaatac
+ctatagtacattttacgtttcccgtgtggttcgtgccaacccctggacggtggatgtccc
+cggtgggtttttggaccgggcgaaattattggccaacccggaaacccaccgagagcctaa
+gacgtgcatgatagttataagtttaatgggagccttaattgcaaccgatgggggcgggta
+tttgtctcctacaccgacactatggttgttatttgcggcttcactcaactacaatctggt
+ctgtagagagtaaccccgtattatcttcccttgcgccctgggtgcgttagcggaagtatg
+gggattaaggggcgtgaacaatgcttctaagagcccggcgctaacggacggtgtcacaga
+gtgtctaggcagagtccccactgtggaatacgcatgcgtagcgaaccgcgcgagtcagta
+ggaacacattgggagcgattgttcctcctatcagccggcctagcaagcatgacgtcaaac
+cttagtgagcagcccaagaaataacgctcggactgcaacagatctaagcgggaaatatat
+cgatagcgaggaagccgagaggactaagcagagagacgaagaggtgagccggagtgattt
+agccccagatggcaggtatagcttccgttcacaacgaattgaacagaaagtccggcgccc
+ctggaatttcgaaacgtcaccaggttggccgtaaggttggtaactcaacaccctaagact
+agcggtcttgcgtcatgcaagcggggcgtgtagcctgcacagacataatacggtagggag
+gttaggcgtggggcgacacagtaagatctgatgaatccatgtacgttgcctccccgtcgt
+acgcagttgatacttcgcatcatacttagcagaaagcatcatcgcgacctctcgtacaat
+ggcaaaaaggagggcttcgtgcacggggtagagtcttccgcactctaatgaatcaacagt
+cgaggttcatggccacaaatgtaacgacgcgatatgactcgttatgtctaggtcccactg
+cggatctccttagaagcgaattgtataaatctcatagccccccccttagcaagtggtacg
+tagcccacacgatttacgcagagtggggtaagacctcccccacgacttggggaacgcgcg
+ctcaccggatagctactgccactgtagagccactagcgcatagtgtatccatagtgatgt
+acgtagccaagcggggagtccttgtcttatgactagcgccatggggctatcaactgagaa
+cggatgcacaaacggtccggccattcgcacagtccgccggtcactaatgaccggtctgca
+tggggctgcaacgatcgcccaaggattggaaattgttaataagagtccagtggacaattt
+agtaacgcgacgcgcatctctccccgcctaacaaggctcatttttagcttgacggcgcgt
+ctcacgttgccgggctcagctcgagctcacgtgccgcgcggggttacctcaggtttgagg
+aatgtgtcttgaacggttcgtaccggcttagcgtcgggtgctcctcagggttcccagcaa
+cattcttaccgcaatccaatactgagggcgctaccaatctaacgtatcactgacccagta
+aaactcggtattacgggggcgatatatgtgcttgcctcaacatagaactaccgccttgac
+gttagaacgttaagttagagcacctgcccatctggattgcggcgataaaatcgattattg
+tcacctggatgaggaatatggcggacaaacgatcgtgtggacctgcgccgcaaccgtggg
+atgccgcagcagaatatctacagagcgtttgcaggagggccacgcggtatccacgtaagt
+tcgcgcaatagcagcatcatctcgttcggggttgctgctctcagactgtcgatacgtccg
+aataccagcaacccctcgaggctttgtaatatttacggagtcctaagggatttggtgccc
+caagtatagttttgccgaagggggggcacagtgccgtgactacgattgggctattgggca
+acccgaccccgtgcgcacacgtttgatctcagacagagggcaaaaagacgaagccacgag
+ctcttcgaaatcaatctacatctatgctgggataagttctggtccacacctagatccgag
+aatggaccgtggataacgagcaccgttacctttgaggcggcagcacttttaacaccgtaa
+aagtaactctatagttgtcagcctttaaagattgcgttcccaatacggtacgcaccgtct
+actaccgtcaacacaccgtagcttaggtccccccgcggcagcgcttccatcgtggagggc
+tgtcccccatcctccgtagaactgcgtttaccggtctggggagactccctaaagaaacac
+cacaggtgaggtggacgggaatcaagttaacgcattcacgtaattcactcctgttcactt
+acataagagaagttctggttcgcgccttaagtgccatccatgaggcatacgatgcgatgg
+ggaccacgcctgtagactagagaaacaccatcaagttgataaggagtgaaaattagtata
+ggtctggcccgctcgtctgttgatagggcctttaaatgtaataggcctccgctctgaacg
+agtccgtacttatctgttggatagtaagaacacggttctcagtccgcaaggtagtatatg
+actacgcgtcgatggacctaaagatacgtttggcatcgtcctgagcagcttatgaaaatt
+gctgcgcgtttcaggtggaagaatctgtgttattagtgcggggacggtagtttcgtaggg
+aattatgggtagtacagatctatggacgggaggtgactgtcagcagactgtgcgcaggcg
+ctggtggtataatcgctgggaccacgtactggcaagacgcatgcagcctggtgacatcca
+caccgccctcgctcagataggacggacgtgcggcaataccctatctggctcctggacacg
+gaaaaacagcagtttaaaaaaaagtgggttttgtgcattatcactttgtccgttcgacag
+tttattgcacctcccagcatgctagtaaccccttgctctgatttgagatttattatcgta
+acacggagtcgacgtgaagtttgatctgcggagaataggccgagaagcccctacgtaccc
+tatgattcccgccatgtgcggtgtaaaattaaccactacttatggatttcatccaaatta
+actgacgcattatatatacctcgagtgtgtaagccggccctcgcggtaccaaatttcggg
+ctgcatacctagaagtgtatgtcatctaaacctaaggatcgggtagtgacgtgtaactaa
+cacgtgggacaatgtctgtcctgagctacgtcttaagaagtatttagtcctacgtactca
+ggcatcgatactccccgatgttgggtgcagtggggcgtccgggcggctaagatagtccag
+ccactccttatgtgaatttatcaaaccgggaagaccagtgcataggccacgacctacgta
+gcacctccgtacaaccttgctccagggcacgtctaaatgtcgtactgggttcggactcca
+tgcctggcgactagcctggcggtccacatattttacaaatccgagacaacaaagcacttc
+caaagtcgcgtggaccttaaggaaggcaacacaggggacatttagccactctaaagaccc
+gcatactccagggcatacacgtaacgcgttctcttcactacggagtccgcgagcgaacga
+ctaagggcgagggccgtagatctccttctcgtaaatataatcaaggttgccagcgcttat
+cggtgccaccgatccgaagagcgtaaggacgttacagtgtaggatacatggtttgcgccc
+gtccatacataatcgaccatcaaatcgaaagcgcgtatgcagtacctcgtactgcccaaa
+ggacagagcgcattacgtcaccccgagcgtagcttaccatgttaagaccgtgctcatggt
+ttccacccgtaagatgagcacagattgcttgctctaggtaacatagtaataagagaacat
+tcatagacgttggaccacggttgaaagaccgcctcttaactactgaaaaacaatatttgt
+ccttagtaaccaagatacattaatcaatcctccgctaatgaagttggtaggcaagccttc
+agtagcgtaccgtggatttgtgtttactgcatttacaccgcggctgggtacgaagcggtg
+tcgggcacgcacacgcgttcgatactgtaggtttcgttggggttgcttgttgccgctaac
+gttcgggtcgcttacttctgcaggcttgattactgagttcattcgatcggttcccaactt
+cggactattgcgccatcatcaatgtgggaaatcatttttaggaatacacctcgtacatgc
+atatgaagtctgcgtgcaacagactttccatgatgcgagctgggcttcccgtcctgcggg
+atgcaattggcccagtgcgcgaaggctgggctgattacggacatatctgctgtcctgaca
+atcgatggtgtagagcgtaacaatcattccaatttttcgacacgggccagggctttaggc
+cactacgcacctgggttaacactcggcgacccgcctaacactgggtggacattcccgagt
+tataacgacacctcattttcaacaaccacaaaaaggcataggcaaccgaactaacctttt
+gtttagttacttctggtatgttcatagtgtagggcaggtgatcggttaaacgcttgtacg
+gaccccattctgtagcgcttttctgaacgataacactacgttgggagatacttgttgcgc
+agtcgtgggttaaaagcgagccgacgataaactgcaataaggaaagcggacctgtcacct
+cccgcgggtaaatctactcgctcgtttagaggccgtaaagcgacataacggtgtccagta
+caagcccaactggtttagagaattcttctcctactacattcaccgtccgtatttcggcgc
+gccctacggtattcgtggtgttctgagcatacatgggatggactatcacccctgcgcgta
+aggactagcagttgtaagtcacgttaaggttgcgtaggcaactgttggagtgcgtccata
+cttttcagcaccccgaatttgtacgcccaagttgtatcgtcgtgctgggacgagactcag
+cctttaccctaagcgtttaggaaagcgatgttttaccgcagacgcatatgagagaacgtt
+gcaagatcgatctttctcgcgcacgttctgtagctagacctgcagctaatctaactgccg
+aactgttaggatgttttctctcctagacgcagggaccagttgtaagtaagggtttctcat
+cgctaggctagggtgatggtaggtgataccaatggagcggcgcgttaaaagggttgtaat
+ctcggtgatatgtgcaccatagattgttccgttattttccttggtcatttagatacgaga
+taggggcgccccagtgccacgaggtccatcttatgctgttgcgtagctagagccctacaa
+ctttctaagtaaaacctccatcgagtgcgcttggagaatttcatgtaccgtggcggtacc
+ttacttgatgccgcgacccctatctaattaaagaccgcttcccgatgggcgaccttaatc
+ttgctgcagtccaagttaacttcctctacgcccgatgacaaatttagccggagtaagttg
+ttaacctagcctaatttgtaccgaattttgggttgtgagaagaccatttctacccgacga
+tcatgggttcctctcaactatacctagtgtcggttaatgatttatggcaaacaatccccc
+aatgtagcacccatatgggcgcaattatgtgaacttcaacactaactattggtttagtta
+gtgatatttagcgcaaataagaggcatgggctgcgaaaagattgtgtttccgcaatgcta
+gggaacctgacggcatacccgagatgatagttaggtgagcccgaatcatgcttgattaac
+gtaacgtctatcactacccgtgggcttttgcgattgcgatgcgttactcaaggcatactc
+aatggggctggtaataccgatatgggcctgtgtcttagcagcgacgtgtcgataatcgaa
+gtacaatacgccagtctacgttagggctttgctaacacatcacccacagttgaagcatca
+cgcacagccctcattaggttgtcgtcaacctggaactcctagcaggctgggcagtatggc
+atccttcacgaacaatcttaagagacgcacttgacacaggttgcgacagtcaggatgggg
+agcttctgaaaatctctacataaggtggcctcgtgatatcgtattaactcggagagcggt
+tggactaatgagtgagtccaatcagtgatcggtttttaatgccgggaccacggcttgcgg
+ctgcgcgatctatttccctcgcgttacacaaggggtaggcataagcaacaagcccaaaaa
+aatcctcacgcaggcgtcaggtacagactttttccctcagcaacgcaaggtacacgtgta
+gtcgaatgtggtcataaccagcagctgtcttgcgcaagggcggtgctacacgcatgtttc
+actccacagtgacatgatgcccgctcttcggttgttctatgcagcgcgctggtcgcacct
+taagcccagttcaatccatgcaattcaccgttgcagcactagatcatataccgcatactt
+cgtcagagcacaaccagatcacttacaacgaccgcaagctaagcatccctatcgtgcgta
+tgtgtcgaggcgcaagtactatggtcggatgaggaggtgtgccctcaggacacacagtat
+cgctcctcattcgacgacgcaagtcgtctagttctatgataggcgaagtgagtactgcgg
+atcactacgcccaagacttggagtgacgacgccggctactagcgatggcagttcagaatg
+gtgccttccaagggacactcggtcctaatcaggcacacgcgtctcaaagccactactcat
+tcatgagctcgctggcgtggcagtggtcttatgcggctagcgaccagaatttctactagc
+cttaggcgtacaagcgttgggcaggtcgcgagtaacctctacactctatcatggaccaca
+cccatccatgttttaaacacagaggtcttaagaatagcgatggtacggttgagaacgtgg
+gagttttttgctctacagcaagcacgttgcagtgaggagagctttaatcctaaatcataa
+gtgatactggtgccgagcatctttcggacgaatatgaagacccaacgctaatgtgcctgt
+tcgtcggcacattctcttgggacacccgctacccacatgtatgtgaattgggcccgtctt
+gattgtgtcgtagatgccaacggttcaatcagccccgacgacgagaagcatttctacgtc
+tccagccttgcaacggtttctagagtcttgctgttcgtaaattgaagaatctactgtgca
+gactttatcgacccacgatacgctaatccgagcgcgactcggtctcggaaaattatccga
+gggagctcgttcaatgcggcggaggctctgagtgaagtttaaggctgagatagtcacacg
+cattcgggtccctacaccttgtttcgaatgtccaacgcgaactctgggcaacatcgcgag
+actttgaaagatgagggggctgtgacagggcctttgtaataggggtactttaagggcggc
+acaatgtgatacctatgtattcctatggtctgggtcagttatttaaattgaccggacaag
+aatctgactcgtagactgctgtatagatcacgattagagtttggcaatggttctgaaagt
+gatcatgtctaacgtaccggatgacactagtaataactgcagcagcgtgacgatgtaggg
+gacttactctgtttacgggtctcgtctgccataaacatcctgctccggcagcggtcaaag
+acgtcctattatcgcactcgggcagaaactccagtcatggtgaggcacaccaacagtgtg
+gggtcggttcgtggttaccaagccaccatttttcggcccaaactcatcttgaatagtcgt
+cctcattcatttgatcgatcgtcattacaaggttcataaatgcccagcgccgcgtctccg
+gccagatggaagagctacgtgcaggcggtaagcaattgacgctatagccctatatacgta
+tgtgggactcaaggcgacatgctataccgactggtatcgaggcgaacgacaattgctatg
+ggtcatcacctcatatttagattcagcccctggtggcgtcgctttgaccaactagttaag
+gttgaggagttcgctctcaaacctgataacgagctaggccatgtaccaaccttggctgtg
+caccgacgagctgaaggaccgagctgctaggaggtcgcagtatcgattgctctttcagcc
+ttctaaaggtgcgacagaaacttgaacctctcggtactctaacactaggggtacgagtgg
+ataactcgattacattagtcctggtacaaaagtcctccttccgggcgccttaagctgctt
+taaagctatgtccgcttacgagaaaggggcgcacggtccgatctacttacagactgtcaa
+aacggtgtagtcggaatgggctcgaacgacgctaatagatacacgcgcattggcatggta
+cttcaccaatactatatctttaaagaagggcggcgagcctatttacccacttcgattagg
+ggataacacaggtgattgagttttctggaaccgtcatctaatagccgaagcagtccacat
+tacagtccattgcatttaaccactaggaatcgcgccaatcttgcgcttatgttgtttagg
+aggggccacgctagatcttgcctatcctgagttatatgagggacgatcctacatgtatcc
+tcaaagttcgcgctcatccttagattctaggagatggattactaagtgtgtgtccatagt
+ttaacgcaacacataatgttcgtgtcgtgatgcgtatccttggtcccgacctactactct
+agacctatacgatagcgttcaaagctccaccatcgatgcaacgtggtcgtaccagtactt
+atgaaaccttttttcgcagttcgaaccgcctggaaagaagcatacgcaatatcgtgtgat
+cagcacgcagggtatcagttaaagagcccaagacttagtctatcgagcagaagaccgatt
+agggtatacaccatgtcagaatcgcctccagactagtggctgatatcgtacgttacacga
+ggtcgctcttgtcgagtgctcgaacgatctatcccctagatcacgcgtcccagtcggagt
+atcccgcctcggatcgaaatgacggctaaaaggtgtaatcacgcgcgtaattcctgcaag
+ctctctgagttctgctcgctggttcgaatgagcctgcaggcagtacctacaattcctgct
+cggaggacctgttgcgagggatgcccccatacactgctgagggtaagtagctgaagtata
+aaggcggcaatcttctgacaaacacccttcttccccttggttaaccagacaagctggatt
+tatcacccctcccggggacactgccctgttttatatcgcggacttgcatcagtcgcagta
+gtccgcgtagatgtggggacccctcccaccttacatggcaacgcgtgatggagtagtatc
+tcgcgtcagtgagcgagttcgcatatttgtagggcgtcataacaaatgtaaatgctagta
+agtgaaagatgtcaacatgcgggctcggttttgcgctccaggtatatcctgcatctgatg
+aacttttcaatgaccgtgtctggcgcagggctgtcgttttgcaggaggggatgcccagcg
+catctcgagaatcatcggctaatcaacgcgaaaaagttaatcttctatcagtcagcgggc
+tataactccttgaccaacagaggatcgcaggtatttgtactgtggagaaacaatcgtaag
+atggccggccatgaggcaaggattgtaatataccggggtggttatcgaagaagtaaagta
+aggcctaccttctggggagcaatggggttctcagacgctaactcttcgttcacctacaac
+acgattggacttagagagggacctacggacccgaaattcacataggggggttccccgata
+agccaaggcaggatagagtctgaatccatggacttccatcaaacccctgtggtggttccg
+ttcaagtcagggagtatcacgactcacttactgagtcacgtcctcaatatgactgaagtc
+gataagacgaaggcttaatttacggaacccccgtttagtaatcaagaaacgcattggcgc
+gggtctaacgtaagctcttcacaccgccgtctacgaaccagttcccggcgttgcatggtg
+atcgccgggttcccttggagggagtaccttgtgccctgcccgtatggtcgttcctaaata
+gcgaccaagtattagttgactgttgcgacttaaaatccaacccataagcatatatcgtgc
+acccagggactggagggcctcagccccttctttcgaaacttaaaccgtcttcttatgggt
+gaaatgtaagtttctacgtctggaataaacggttcgggccaccatgaagcgtctcgtgtg
+atagagattcgcaatgagtctgggaagtagaatcacaccaagttagaaaaattctccaac
+tcagctaccgcgacccatccgttggggtaacgcaagggtattagccgctcagaggccaaa
+gattagagaaacgcgacgcctgcggctgtcttgtgactactccgaccatgccgtcagctg
+gagaccctacggtgggtagttgggtagagcgccgatagctaattctcgagtggaactgcg
+gaatgtgtcatatgaggtagcgatattgggctatcacaagtacgtgagcctgtgaaaacg
+gacgactcactagcaagtaagcacggccctggcgtggcggcggtacgcgtacaaacctcc
+actgcttggggaataaggtgcgaacaccgtgatccattgaggcgtggaggcatagggccg
+gagtgttcccgtaccaattacgagctaagaccgcctgtccagccctggtgattacgtagt
+aagctcggtacaagcctgtaattagcttccgggtggcggacattcgttcatattgccagt
+cacggcagaggccgcgctagctaggccagccccgatgaaacacgtgctagttttctatcg
+tgcctaaggatcgatggctatcgcggcattgttaacttatcaagcagccgaatcggcgat
+agtggacacaacatgaacacgctaagctctgagtgccagactctaccgcggcgaatccta
+ggccctgctggggctcccccacagagcagtaatggtcttctgcggccgcgtgcattcaat
+ccgcgctggtcaatgcgttccatcgtgccttaagcggggcagtgtgataagacaattttg
+ggggtttcatggagatatcttcagaaacctcgcgaggtgcgtttagataccacacgcgcg
+gcggtcttttcacacaattcagtccgcggccggtaacctaactttgcttatcaatacata
+atcctcccaaatgtacggtttcgaaggagatacctctcccctgttagactctaggttttg
+cagtgctacctagagatcacaccagcattaaaccaaggtatcagcatcgtaacatgggga
+ggcacgcgcttggcggtaagtacccgccacgattactctgtttcatagcgccaacgcccg
+tatagtgtgcttttaacgtcctcagaaatcaccgactgatcagtatggcgacatcggagg
+gaggttggcgaaatgttgcttttatagatcgttaaaacctatcgttggcgcgtatcgcct
+ccatagaacttcttactcacctagtctgatcccgggactggtcgaaatggagacgacgta
+gcttgagatctggatcgatcgactgatatcacacttaaatatgatcagattttactacgg
+tcgatctccatatatctatcccagcacttgatacctcctgtccagccgactgcttggacc
+ctagcacgcgatattagagggcgcgttgtagctcaaagtaaccagtgggacgacccgagt
+gaggttaccgctggcacgtaagggtgacatgactcccccagaaacactgaatttgtctag
+cagtacatcataatctgagaacatttagcgaagacgagaacaagctgtctcaatggacgt
+aggacgagaggaatgtgacggttataatacgcgacctctatgtgtctattaaatccctac
+gggccgtagcgagcaagctcgggatctttagtagcggatcgggtcttctacatggcgcac
+caggtttgatatttcgagctagagttgctctaaagaaacgctcttgcttgggaaagtgac
+ctggggtacgacgaagacacgggcctggttgcataccgtctcaccttcattcatcgagcg
+cgatagcgtagcattatccagcacgggaggcacctggcatgggcgtgaaatacaatccga
+agagcagcatgaaaaaaaaatgagcggtcgtgacccgagggtgcgtccctccgaacgttg
+ttcgttgccaaggtaagggacccacgccaagcatggttagggaagcgtgaccgacacaac
+atagaggacaatctcaatatgccttctgggtatcacctgggtgtgtagcagtgctactgt
+tacaagtcgcgccatctgcgacgtcgttcgtccctattccctcctaaaggccccgactct
+gaaaaaacctacaatcctagacacgttgtggcccagcacaacgcgtctgctatacagcaa
+gtcattcgtcgaatggggcaacacgtataagaaggccgtgattccaagggcacatggcgg
+gtctctcaatgatctacgacgtgacgcaaacggggaaaggctggaccgttgtccggtagg
+cgatccatcataaaaggcgtctggttctgtggttattgtgtacacgtttgaaatatctga
+ctgtagaacgatggaggtctctacgtagctctgcacgattccctcgggctcacgttcatg
+gcaaggcgacatcacatgaacagggttgggtaacagccatctctgaagcattcccccagc
+tcgcacggctcctttacccgctactacgtcatgcactggctagagacccaccaactattg
+tgcaagtaaagaccataaaattttggagctgtagcgaaagcgagttgctgcgatggttag
+accaacattgggtcaaactattctaatccggctaggctcattaagcatcgcagattgccg
+atactaatgctaacgagcgatgaatgggcctcttcgagacgcgtccgtacctgcgaatat
+caaccatgaaccctaatctggaaagtttgatgccgctgtgatagccactcctgtgtcgcg
+acggcaacgtaatgtacgtgcttggtttgagctctaaacataccttcgttagagttggtc
+agaggaggatattgtcatagcgctacaaccagcgccaaaggatagctccgtggctggtcg
+gacgcgctagaatctaggcagaacacgtgcggcttcttgcactctgacgctcacgcattg
+gactttggcggtcatctggttctcataagtccgaatcacagtagataaagatccgcgtga
+taagatatgcctacgtacttaagtagcaccctctgttcttggcgatcctatcattgcggg
+ttctatacatatgttgatccaaccatcggccgccgggccgtcgtaggatctaatggccaa
+cacatcaatcaaatcactcgcgaggacgcggaggtcccgtccataggtgtgtatgttggt
+acgcagcacctaatctggtctggtcaagcaactggcttgttccagtatataatctcagat
+agactgccctgaaagtagacaatgataaatatgtaagagcggggaaatcccatcgtcgac
+tgtgttgcggacgattagcttgcaaagagaggtgtgagcggctgtcttaaattatggact
+cctcgcttccgtcgaacgtctgactagagaatctcttggaggtacacacgaacgtaggtt
+cctcacagtatgtggcatggacaccggacaggtcacttgtatttatccattgaacgtgat
+atagtgtgtcgagtcgttatacaatacatactccaagcgtactccctttgggtaacgggt
+ttgggtacatattaccatggtgtggaccgatttgtaaccctataagcgttccgggtactt
+taccatcgcggatgcgatcgcggatctacctatgtcagcgacatactgcccgtccaaaag
+tgattcagtatgtgttaatcagcgtattgcatcatcagtcattgagagtggaccgttctc
+gaagagcaagattcctgaccctttccactgggccatccagtacacccaattatatgcaga
+cgaaaagctccatacatatataatacctcttcacaccgtgtgcagagaccaacttgatcg
+atattgtactcactcgtacggaataattagaagggcccgactgtcgagaccgttagcatt
+tgcattatcgcggtgagcgtatagaaacaattataggctttgctgcgatcgcagtgtctg
+ggacagagtctcctagacctagatcagcttaaaacaatgattgtaggtaatgtgcgttgc
+cgtcgggccacacctttcagttcggttacaccgactcagaattatcttctatcgggaccc
+tcaaactgataatggggtcaaatggtggtggtcccgtctttctgcagtgctttgtgagca
+gaatagctctcgagcgctccagtacgcctgagtatggctgcgcccaccaattggcgccgt
+taatgcgtggcgacacaagagaaccagtccacataagttatgcccttaagaagatcaccg
+ggtttgcgccatcctgattcaggtaacggacgtccgtgtacacgaaccatactaatgagt
+tctacatcgctccaacgcgtcttgaaccctatcgacaattacaaatgcaaagtattagtt
+gggtcagtgcgtagcttatccaagggctgcagtaagtcgtccccatgacagacggacggc
+ataagggccaaaaattccgccgcattagctgttaataatgccatccagaaccggacagtc
+tcgatatataacttacggctgcgaactggcccttatgaattacatccacgtgctagttaa
+caggacggatcgcccggactaattgccgatcggccgtcccattctccgtacgatgtactg
+aacccaggcgtgtgaatgggtatgtcaacgtttacccatcgaccctgcctatagacctga
+gtttcattccagttgagcgtagaatgggatgagcagctttgcttgaggtgcgatattcgg
+gagacctggtcagcaggattgatggttttatagtgctggattccctgctgaaattctctc
+ttctgccgcatgtgaagaaggccttgcttcccttccacatgattgtaagatttcctaagg
+cctcccagctgcgtggaactgtgagtcaattaaacctctttcctttataaattacccagt
+ctcaggtatttccttatcgtggtatgagaacggattaatacagttgtgtaagccagctcc
+ttataataaatctctctccctctctctgcctctcatctatgtatgtatgtatctgtcatc
+tatctcctataagttgtttcttttgagaactctgactaacatagacattaaataaacaat
+ttgtatactgaataattatataactactgcttgggggtgtggttgtgttgtgtggtgagg
+gggtgtagaaatgtctaggggttgatctagcctaacaccttccagatgaccctaggttct
+ggcctttccccaaagagtcctggtctactcagtcatctcccacaatttggccatcttctt
+gggtgctcaggacaataaatgacccagccagatcctctagagtcgacctgcaggcatgca
+agcttggcgtaatcatggtcatagctgtttgctgtgtgaaattgttatgcgctcacattg
+cacacaacatacgagccggaagcatacagtgtagagcctggggtggcgtatgagtgagct
+aactcacattaatttgcgtttgcgctcactgccgcttttcagtcggggaaactgtcgtga
+cagctgcatttaatgatcggtcatcgcgcggggagatgcggttttgcgtattgtgccgca
+ggtggttatttctctcaacagtgagacgggcacagctgattgccctcaccggctgggctg
+agagagttgcagcaagcgtacacgcggggtttgcccagcagggcgaaattcctgttgtga
+tgtggattccgaatcgggcaaatgccctataaatcaaagcatagtccgagatagggtttg
+agtgtgttcagttttgggacagaggtcactataaagaacgttgactgcacgtcaagggcg
+agaaacgtcatcaggcgattgcactacgtgacatcaccaatcagttttttgggtcaggtg
+cgtgagacttatcggaactaaaggagcccgttttagcttcggggaaacgcgaagtgtcgg
+aagaaggaaaacgaagagcgggtatcgcggaatgtacgtgctgagcgaaaccaacgcgcg
+ttacggtcaagcgtgtatgtgttttggaggtaagtttccctgataaagcggaacaggggc
+tatgtgtttacgggggtcgcatggagtacaagggggcaggacaagatttgcgcgacatgg
+ttttttttaaattgcgggagatggttggctgtcccgatgagattagaacctgcttttgtt
+ttagtttcggttcggtcagttcggactttggattggttttgttgggtatttaagaagggt
+gtttgtgggatgtttttttttgggtcgagcatcactggactatgtgtgtcctgcgtatcg
+tggcggggcctcgaacttagaggtaggacgattccgatgcaacaaccttatgctttactc
+caagcgatggtgaggcaaccttgtacagaagtgcaaccgccattgtggctgggtcggccc
+aaggaacggatattctcctgggtactgacaacccaggtctactgggttctatcgacggta
+cagtcaagcctcgagtttactgtctcccacttaagtccgctctgggcattaatgagtctg
+tggggtatcaagggtcacccaacgaagtagctagtcccgttgtacatttcgcgcgttacc
+tagggagcacggtgagctacgagggtgtagctgcacacagcacggtatataggaacgcaa
+acatagtagtatgtccctatgcataacagggagaagtgactctccgacggtcatttatcc
+cagactctcctcgctccctactaattgttctatatacaatcggagtaaattggtacctct
+ctgacaacataggggggttgaagtttatgccacgcagtctgttacacttttgccggggaa
+ttgtgtagaccatgactcaaggtggtggtgcgagttactctactatctactgcttctcat
+tacacatctcttggcttacaggccccagttatcagttacgaggctgccttaagagaaggc
+caacattcatgatcagatccccgcacacgggatgatagtctgagatctgccggacgctcg
+tctgctacaagtgtgggttgagcatagggtaagcctaagggctcgtaatggtacttcgcg
+atgtttattcgatatgagctacaaggtataacgttgccttcaccatttcggctcacgact
+cttacctcgcctcaccgctagacaccctgaccaaccgttagggtactgacaaccgatcag
+gcgactcctaaaggacctctcagcctcccagacatgaggtccgctcgcatgctgttcagc
+gagtccatatcaggaacagcaacgagacaaggcgagagcaacactagacttggagacata
+ccaccacatctgtttactcttgattcaggaagacctgtggtaactgggcgacgcgtgcgt
+ttatccgtcttccaatctccacagaatctgctccgtcagagggatgtatgactaacgcac
+tgattttttgttcagtaaccgggcgcggattacggggcgtattccaggggtacattcaac
+gggaccccaaggaaaagttcggggtatttaaggaggcggtccaactctcggacttattgg
+gcgacgtaatgataagcacacctctgctcatacagtgcacgaagaccggcattgttcaaa
+cacagccgtccattccgcgactattgtcctgtgtacaggtgcctcgggtcccaaatccag
+cttatacccaaaactctcccggacttttttcgtccttgcaggaggaaaggacctgactcc
+acgtttattaggggatcgttgggcccggacaatcgtgtattcaacataataaatgggttc
+tagtttaaagccggaggtgacggtggattatggactagaggtaaacatttccggcgtagg
+tcagaaagaatatagaccctaaatttacgcaaaacgtgcacacgattgtaggtggagtcg
+tattaggaactcagggcgggtggaacgagtgtgttttaggcttaccatgaaccgtcgcgc
+ggaaaatgatgacagaatggacggtgcttttttgcggggccaacaaaactcgcttatgtt
+cgccattggatgtaagtaccgctatactacgcagcgaccccttacgacattgttgatttc
+caatgctttcatggaggtttgtgagcggtcgctaggaatcttcctccagcgagtagccag
+ctggccactagttagcaaccagagttcatatgagctccagtaacacgaaggtacataagg
+aacgcaagcaagttcgggactacatagaacttggggtgcgtctaagccggggatcttaat
+agacaagaggccatcgtatgggtcaaatttcatgtttcgtcagatgccctatccgtggac
+acctaaatcaagcatcatatcctaatgctatttgctctcgctttggtatgattcatatgc
+agccctgtccgtaaaatgacgggccagaggatacctgtcactacctatttcagattacca
+ctgttcgaaaccttgctctgaaatcgatcttcgtagagtgttcgttaatcgccgcgtgaa
+ttatataatcccccaaggagtacccttcgtcggtgcagtctacgtaactttcccaggtta
+gcccccatctaatcgacgtacgtgagggggctacgggagatcgcacaagccgaagcattt
+ctgctctgtttcgttacaactggaatcctcatcacgcagcgctaccggatgccatcccta
+gtcatccccgcgagtttaaccagtcgagatggctcgaaccgtgtttcgaaggctggctat
+tgaaccagttataaagcaggggcgactgtccgtcggacttcgatataaactatcacaaat
+ttggcataagtatatacagccaagaaggctcagataggcacacgcacccaaatagtgacc
+gcctacgttcaggttgcccggcaacgaagcgcgcttgctccattaatccactatcagagg
+taacgaccctctttcaccgtagctgcccccatgtcggggcaacagtttcccaccgataac
+gtgttctgtctagtacgtgaaacggattggctaacccctgtcagcctaattagatgacat
+cctcgtacctctagagaaggtgaggagaccgctggaacataagtaaacagtttaccaaac
+aatgatcatacatataacagaaaggagagatgcccggtggggtcgaagatacagctgtgg
+ttgatatctgcaacggccaggctgtcatgaagatcacgcgcacgaagctatttatgaaag
+atacccatgccggggcggcagcggtacctagtcctaaataccgacacgtagcaacgcgtc
+ccctgaggcccaccctagtcaagggaacttaaaatatacgctgactttgtctaccaatca
+tcttcgattaacaccggcatactaagtctaccctggacccagcaatgagaaaaacttttc
+cgaatgatcattgtgagtttacagagattaggaacaccaaaaaaatttacgtacgtccgg
+ttacccctgtgtgacccttggccacaaaccgtaaggtgcagcatgggcgttgagtccagg
+gtttgtgacaccagacatgaataccctgtggcgggttgttagcatgttattcggatccga
+tttcagagggtccgttgataccgggcagtacaagacaccccacaccactgaggtggtacg
+tccgccagtctgctccctacgttatgcaaaattccttccccggcgttcttgcctgtacta
+ctcctaaagggccgtgaaatccgacgttgctgctccgtctcgggacacccacacaacagc
+tacggaaaatcgtgaggatgcacaagggtcttgcattgttgatctatacagctcttcgca
+cggtgtgctactgttttccacaatgggcaaggggcgtgtaggtcttatgtaggagtaccc
+cgtgatctggctataccttgctatctattccaccaaaatagccggggtcttatagtttta
+ttccggatctatcaagtgacaagtccatggggtaaacggtaagtttcgtacgctgggcgg
+tgatccccgcttataaacgagcaaaccgccaaagcaaccattgccgggcttccagctagt
+aaatgttgggtgtcaatcgtgcatgtgactacttacccacaaagggacgcttgaagcgcc
+tgaactcgtcacgtcatgcctagctcccggttgaaacacgaagacgcgtgaacctatctt
+tgcttactattcgcctcctttaagaggcttcttgatgtggctctgcgacatggacagtag
+tagttgtacctgggtatgttagtgaaattacaagtacctcaaaaacgaattacgtgtata
+gagattatgtcactccgtcac
+>ctgB
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGAT
+ACATGCTAGCTACGTGCATGCTCGACATGCATCATCAGCCTGATGCTGATACATGCTAGCTACGTGCATGCTCGACATG
diff -r 000000000000 -r e8475d0195fe test-data/1/links.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/1/links.txt Wed Mar 01 22:47:20 2017 -0500
@@ -0,0 +1,21 @@
+ctgA 0 500 ctgA 1000 1500
+ctgA 2500 3000 ctgA 3500 4000
+ctgA 5000 5500 ctgA 6000 6500
+ctgA 7500 8000 ctgA 8500 9000
+ctgA 10000 10500 ctgA 11000 11500
+ctgA 12500 13000 ctgA 13500 14000
+ctgA 15000 15500 ctgA 16000 16500
+ctgA 17500 18000 ctgA 18500 19000
+ctgA 20000 20500 ctgA 21000 21500
+ctgA 22500 23000 ctgA 23500 24000
+ctgA 25000 25500 ctgA 26000 26500
+ctgA 27500 28000 ctgA 28500 29000
+ctgA 30000 30500 ctgA 31000 31500
+ctgA 32500 33000 ctgA 33500 34000
+ctgA 35000 35500 ctgA 36000 36500
+ctgA 37500 38000 ctgA 38500 39000
+ctgA 40000 40500 ctgA 41000 41500
+ctgA 42500 43000 ctgA 43500 44000
+ctgA 45000 45500 ctgA 46000 46500
+ctgA 47500 48000 ctgA 48500 49000
+ctgA 50000 50500 ctgA 51000 51500
diff -r 000000000000 -r e8475d0195fe test-data/1/links2.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/1/links2.txt Wed Mar 01 22:47:20 2017 -0500
@@ -0,0 +1,21 @@
+ctgB 2000 2000 ctgA 500 1000
+ctgB 2000 2000 ctgA 3000 3500
+ctgB 2000 2000 ctgA 5500 6000
+ctgB 2000 2000 ctgA 8000 8500
+ctgB 2000 2000 ctgA 10500 11000
+ctgB 2000 2000 ctgA 13000 13500
+ctgB 2000 2000 ctgA 15500 16000
+ctgB 2000 2000 ctgA 18000 18500
+ctgB 2000 2000 ctgA 20500 21000
+ctgB 2000 2000 ctgA 23000 23500
+ctgB 2000 2000 ctgA 25500 26000
+ctgB 2000 2000 ctgA 28000 28500
+ctgB 2000 2000 ctgA 30500 31000
+ctgB 2000 2000 ctgA 33000 33500
+ctgB 2000 2000 ctgA 35500 36000
+ctgB 2000 2000 ctgA 38000 38500
+ctgB 2000 2000 ctgA 40500 41000
+ctgB 2000 2000 ctgA 43000 43500
+ctgB 2000 2000 ctgA 45500 46000
+ctgB 2000 2000 ctgA 48000 48500
+ctgB 2000 2000 ctgA 50500 51000
diff -r 000000000000 -r e8475d0195fe test-data/1/output.png
Binary file test-data/1/output.png has changed
diff -r 000000000000 -r e8475d0195fe test-data/1/output.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/1/output.svg Wed Mar 01 22:47:20 2017 -0500
@@ -0,0 +1,2784 @@
+
+
+
diff -r 000000000000 -r e8475d0195fe tmp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tmp Wed Mar 01 22:47:20 2017 -0500
@@ -0,0 +1,206 @@
+H4sIAOlNaVcAA+19a3MdR5KdPvNXXGtiI+ywQHa9q9bSRMzErtdfPN6Y9XcEBFySsPAaANSIDv14
+n5NVmX3xuJfNEUR5YrolQSQ6b3VVVmXWOZlZt0/Pb0+v79589WteE65SEv/vSpp2/6/XV86X4H3M
+8nuH2/GrTfpVezWuD3f3J7ebzVf3tyc/nt/tl/vU/b/T67TP/+n11dtfbRF8/vz7Mrl1/r/EtTv/
+P5zcfry+/3izfX3/0/0LPoMTnHPcO/9uKo/mP+EPX22mF+zD3usfff7f326ONqf37/6wmfBP4nRs
+7rb34cj5o798OLk4cq9M5o8bB5k8lfZQxL/6rYexXn/jtWv//c+v+ecXfYbYf9xv/zHl2f5jpv1P
+0a/2/yWuV99+e351evHhbLs5vb64vr07fnt9dX93fHNyf7+9veqr4fe/3xF7f/3hbvvDdntzfvVO
+79rOsflu82AXefXq2/PLk3fb37/abOYmtvenb+TX1vqbIbXznPvz0x+eefz52fb63e3Jpd25ubi+
+v2P7u0/wZ3r/4e8pfPz+/N37C/x3Pz9+NLI7zMdCbOi3nq2Xv3btf9b4yz7jE/bvYO6P7D/mnFb7
+/xLXq7v31389lpnf2PXd5uP2br5zfHHy/fbibr6D61v5SLeK25Oz8w87H4eUez3dyj1xKpsH93j5
+8M0mxW82LbwSsfv3aO5qe3c3i/kbuXP54eL+/ObifHtrd6bXWDT9c9KN3gtedzcnp3BLcyPEM6+n
++f75/90+6IvH3Zv5Nkcsg91Rg96U3x9bC48/229fv30LZNRV8OD22+vby5P7nSf/09nmh+/7GN7M
+g/il43GHx3N1/eWG0/9Pp8rf/tbrfL2ev3b9/4Ot9QWf8Sn8l3N5jP9CCqv//xIXAdqY9mGp3w6n
+M3uhs+3bE3jh4XnT7TBzk5O//86Q2ebm+u78/vz66psdt35ydbZ5e35xsW/DmF632307wex62MJm
+8+CDsh894+x23Xd3ZjtP/W5zdn5595+1x9/0W/9l8185wjJG+MhDio+MO3duTm5PLi7kceJZ5158
+j9HuDm+nKxzBofu8dYy1dgXt3m6vTj+O+/EVQbLN1IvN/679D9D8Ym3r9Qn79+6J/Uf4hNX+v8TV
++dOw4cHg3p/f3cs60xXLX56d3J+84Y+jqRM7MWQ3jLcO672d9Bf979e359ur+xN6A/z6+sP43Pan
++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
+Rta2HgzBm7RzcLksPz20/i0Pzi+kpHQ+ZLNz24yFsDB1WU8KdMxTwMt6Qr7CL4w5NItzVeaUMos7
+y8GezPWZgEr8oqRF/QZyayyNLIc8tbUdGCJm0eHBmd8pmJwo3RaNEgbgpcjwkKHvSGMNyjc0LOkJ
+63mlZPCgoWuZDb/RinV/9eBcWk9SkvK+eNBBWdsF64nlRE+lo9q6FTqW7NlyWDQ3yUOOXyq1aAUm
+8CgWCpZFtsDTwFLxd3A/t5q+4iZW4x1Mjc1tF67AzGjzkn5X+il+xf2SnvD76Vk3lPZvpVa0R2LL
+hhepj1+/z/K9vMjIcuTyy7UtUh9PwG/kBOGititUwa8xWKS+3KhsfjvrE2kLY1vJGvwla/UOmu80
+l+0BxMWS2qIFxVdksGLOHwryWK/51T4snjuMAawnoMOULgfbttIyBnmhkbTI7fCbxVk7txe6XJr1
+gsBnqW47GMey0r5G622uHqQQKo3tI/HnwcxTMOEiNWKHA2rWNIMEaXou9cuvQOhLxJtwdg+FD/Wj
+wVk/3/LjfvxxM214CEoFny1b+WOX3FvnMCTfapN7ixZMMHfB/UULJpn+DkrintR/+d/6/W+u139N
+a/3Xl7jE6tb3v/UD2Ov730Y9/fr+t1HJv77/bX3/2/r+t/X9b/0ozfr+t/X9b0Nmff/b+v639f1v
+6/vf1ve/re9/26zvf1vf/zZk1ve/DVy2vv9tff/b+v639f1v6/vfhsj6/jcFduv737rM+v43w3Xr
++99UZn3/27S+/219/9v6/rf1/W9H6/vf1ve/icj6/rdpff/b+v43FVrf/7a+/219/1uXWd//drS+
+/219/1uXWd//tr7/bX3/2/r+t/X9b+v739b3v4nI+v639f1v6/vf/rC+/+1off/b+v63LrO+/219
+/9v6/jeVWd//1lHd+v639f1v6/vfBq5b3/+2vv9tff+bwLr1/W/r+9/Wa73Wa73Wa73Wa73Wa73W
+a73Wa73Wa73Wa73Wa73Wa73Wa73Wa73Wa73Wa73Wa73Wa73Wa73+v7v+H4jxd2QAGAEA
diff -r 000000000000 -r e8475d0195fe tmp2/circos/circos.png
Binary file tmp2/circos/circos.png has changed
diff -r 000000000000 -r e8475d0195fe tmp2/circos/circos.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tmp2/circos/circos.svg Wed Mar 01 22:47:20 2017 -0500
@@ -0,0 +1,4050 @@
+
+
+
diff -r 000000000000 -r e8475d0195fe tmp2/circos/conf/2d.conf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tmp2/circos/conf/2d.conf Wed Mar 01 22:47:20 2017 -0500
@@ -0,0 +1,22 @@
+
+
+
+ type = histogram
+ file = data/data-0.txt
+
+ r1 = 0.89r
+ r0 = 0.8r
+ orientation = out
+
+ extend_bin = no
+ fill_color = purples-13-seq
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff -r 000000000000 -r e8475d0195fe tmp2/circos/conf/circos.conf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tmp2/circos/conf/circos.conf Wed Mar 01 22:47:20 2017 -0500
@@ -0,0 +1,21 @@
+
+<>
+<>
+karyotype = karyotype.txt
+
+
+ <>
+
+
+<>
+<>
+
+ <>
+ <>
+
+
+ <>
+
+
+<>
+
\ No newline at end of file
diff -r 000000000000 -r e8475d0195fe tmp2/circos/conf/galaxy_test_case.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tmp2/circos/conf/galaxy_test_case.xml Wed Mar 01 22:47:20 2017 -0500
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff -r 000000000000 -r e8475d0195fe tmp2/circos/conf/highlight.conf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tmp2/circos/conf/highlight.conf Wed Mar 01 22:47:20 2017 -0500
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff -r 000000000000 -r e8475d0195fe tmp2/circos/conf/ideogram.conf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tmp2/circos/conf/ideogram.conf Wed Mar 01 22:47:20 2017 -0500
@@ -0,0 +1,23 @@
+
+
+
+
+
+ default = 0.005r
+
+
+ # ideogram position, thickness and fill
+ radius = 0.9r
+ thickness = 10.0p
+ fill = yes
+
+ show_label = no
+ label_radius = dims(ideogram,radius) + 0.075r
+ label_size = 24
+ label_parallel = no
+
+ show_bands = yes
+ fill_bands = yes
+ band_transparency = 4
+
+
diff -r 000000000000 -r e8475d0195fe tmp2/circos/conf/karyotype.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tmp2/circos/conf/karyotype.txt Wed Mar 01 22:47:20 2017 -0500
@@ -0,0 +1,2 @@
+chr - ctgA 0 0 50001 set3-12-qual-1
+chr - ctgB 1 0 6079 set3-12-qual-2
diff -r 000000000000 -r e8475d0195fe tmp2/circos/conf/links.conf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tmp2/circos/conf/links.conf Wed Mar 01 22:47:20 2017 -0500
@@ -0,0 +1,20 @@
+
+
+
+ file = data/links-0.txt
+
+ radius = 0.8r
+ ribbon = no
+ color = 141, 179, 226
+
+ bezier_radius = 0.1r
+ thickness = 15.0
+ crest = 0.5
+ bezier_radius_purity = 0.75
+
+
+
+
+
+
+
\ No newline at end of file
diff -r 000000000000 -r e8475d0195fe tmp2/circos/conf/plot_highlight.conf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tmp2/circos/conf/plot_highlight.conf Wed Mar 01 22:47:20 2017 -0500
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff -r 000000000000 -r e8475d0195fe tmp2/circos/conf/ticks.conf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tmp2/circos/conf/ticks.conf Wed Mar 01 22:47:20 2017 -0500
@@ -0,0 +1,24 @@
+
+show_ticks = yes
+show_tick_labels = yes
+
+
+
+
+ radius = 1.0r
+ color = 0, 0, 0
+
+ thickness = 2p
+ multiplier = 0.001
+
+
+ spacing = 5000.0
+ size = 10.0p
+ show_label = no
+ label_size = 20.0p
+ label_offset = 10.0p
+ format = %d kb
+
+
+
+
\ No newline at end of file
diff -r 000000000000 -r e8475d0195fe tmp2/circos/data/data-0.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tmp2/circos/data/data-0.txt Wed Mar 01 22:47:20 2017 -0500
@@ -0,0 +1,499 @@
+ctgA 1 19 -0.506365641109759,-0.506365641109759
+ctgA 101 119 -0.873297297213995,-0.873297297213995
+ctgA 201 219 -0.999755839901149,-0.999755839901149
+ctgA 301 319 -0.850919359639177,-0.850919359639177
+ctgA 401 419 -0.467771805322476,-0.467771805322476
+ctgA 501 519 0.0441824483318732,0.0441824483318732
+ctgA 601 619 0.543970523363376,0.543970523363376
+ctgA 701 719 0.893969648197021,0.893969648197021
+ctgA 801 819 0.99780327442197,0.99780327442197
+ctgA 901 919 0.826879540532003,0.826879540532003
+ctgA 1001 1019 0.428264391396659,0.428264391396659
+ctgA 1101 1119 -0.0882786064717262,-0.0882786064717262
+ctgA 1201 1219 -0.580513008156313,-0.580513008156313
+ctgA 1301 1319 -0.91289603861164,-0.91289603861164
+ctgA 1401 1419 -0.993901956906654,-0.993901956906654
+ctgA 1501 1519 -0.801224790676895,-0.801224790676895
+ctgA 1601 1619 -0.387920558984219,-0.387920558984219
+ctgA 1701 1719 0.132202352755937,0.132202352755937
+ctgA 1801 1819 0.615921726468774,0.615921726468774
+ctgA 1901 1919 0.930039504416137,0.930039504416137
+ctgA 2001 2019 0.988059506793465,0.988059506793465
+ctgA 2101 2119 0.774005214886395,0.774005214886395
+ctgA 2201 2219 0.34681910129778,0.34681910129778
+ctgA 2301 2319 -0.175867902248536,-0.175867902248536
+ctgA 2401 2419 -0.650127523574896,-0.650127523574896
+ctgA 2501 2519 -0.945366563696042,-0.945366563696042
+ctgA 2601 2619 -0.980287334634812,-0.980287334634812
+ctgA 2701 2719 -0.745273974144339,-0.745273974144339
+ctgA 2801 2819 -0.305040291224202,-0.305040291224202
+ctgA 2901 2919 0.219189974282818,0.219189974282818
+ctgA 3001 3019 0.683063594104854,0.683063594104854
+ctgA 3101 3119 0.958847282055722,0.958847282055722
+ctgA 3201 3219 0.970600619811948,0.970600619811948
+ctgA 3301 3319 0.71508718178021,0.71508718178021
+ctgA 3401 3419 0.262665724548229,0.262665724548229
+ctgA 3501 3519 -0.262083959018097,-0.262083959018097
+ctgA 3601 3619 -0.714665612518583,-0.714665612518583
+ctgA 3701 3719 -0.970455331081526,-0.970455331081526
+ctgA 3801 3819 -0.959018280889002,-0.959018280889002
+ctgA 3901 3919 -0.683503793877429,-0.683503793877429
+ctgA 4001 4019 -0.219778160592474,-0.219778160592474
+ctgA 4101 4119 0.304466082686301,0.304466082686301
+ctgA 4201 4219 0.744871858736274,0.744871858736274
+ctgA 4301 4319 0.980168039762288,0.980168039762288
+ctgA 4401 4419 0.945562938664219,0.945562938664219
+ctgA 4501 4519 0.650585494129627,0.650585494129627
+ctgA 4601 4619 0.176461360584952,0.176461360584952
+ctgA 4701 4719 -0.346253571205695,-0.346253571205695
+ctgA 4801 4819 -0.773623338680308,-0.773623338680308
+ctgA 4901 4919 -0.987966438766777,-0.987966438766777
+ctgA 5001 5019 -0.930260871990585,-0.930260871990585
+ctgA 5101 5119 -0.61639657336978,-0.61639657336978
+ctgA 5201 5219 -0.132799924069858,-0.132799924069858
+ctgA 5301 5319 0.38736481184216,0.38736481184216
+ctgA 5401 5419 0.800863899493182,0.800863899493182
+ctgA 5501 5519 0.993835297491596,0.993835297491596
+ctgA 5601 5619 0.913141966452114,0.913141966452114
+ctgA 5701 5719 0.581003804007494,0.581003804007494
+ctgA 5801 5819 0.0888791236810795,0.0888791236810795
+ctgA 5901 5919 -0.427719512602322,-0.427719512602322
+ctgA 6001 6019 -0.826540339206424,-0.826540339206424
+ctgA 6101 6119 -0.997763153807204,-0.997763153807204
+ctgA 6201 6219 -0.894239655996039,-0.894239655996039
+ctgA 6301 6319 -0.544476309619657,-0.544476309619657
+ctgA 6401 6419 -0.044784738601126,-0.044784738601126
+ctgA 6501 6519 0.467238859047214,0.467238859047214
+ctgA 6601 6619 0.850602510646281,0.850602510646281
+ctgA 6701 6719 0.999742336443933,0.999742336443933
+ctgA 6801 6819 0.873590857634893,0.873590857634893
+ctgA 6901 6919 0.50688542994917,0.50688542994917
+ctgA 7001 7019 0.000602887030758908,0.000602887030758908
+ctgA 7101 7119 -0.505845668220208,-0.505845668220208
+ctgA 7201 7219 -0.873003419373278,-0.873003419373278
+ctgA 7301 7319 -0.999768979974307,-0.999768979974307
+ctgA 7401 7419 -0.851235899346026,-0.851235899346026
+ctgA 7501 7519 -0.468304581575409,-0.468304581575409
+ctgA 7601 7619 0.043580142003502,0.043580142003502
+ctgA 7701 7719 0.543464539388603,0.543464539388603
+ctgA 7801 7819 0.893699315464349,0.893699315464349
+ctgA 7901 7919 0.997843032362382,0.997843032362382
+ctgA 8001 8019 0.827218441309355,0.827218441309355
+ctgA 8101 8119 0.428809114528536,0.428809114528536
+ctgA 8201 8219 -0.0876780571755001,-0.0876780571755001
+ctgA 8301 8319 -0.580022001304441,-0.580022001304441
+ctgA 8401 8419 -0.912649778958282,-0.912649778958282
+ctgA 8501 8519 -0.993968255065378,-0.993968255065378
+ctgA 8601 8619 -0.801585390637186,-0.801585390637186
+ctgA 8701 8719 -0.388476165127704,-0.388476165127704
+ctgA 8801 8819 0.131604733390055,0.131604733390055
+ctgA 8901 8919 0.615446655696971,0.615446655696971
+ctgA 9001 9019 0.929817798797622,0.929817798797622
+ctgA 9101 9119 0.988152215687393,0.988152215687393
+ctgA 9201 9219 0.774386809762636,0.774386809762636
+ctgA 9301 9319 0.347384505330554,0.347384505330554
+ctgA 9401 9419 -0.17527437998892,-0.17527437998892
+ctgA 9501 9519 -0.64966931671649,-0.64966931671649
+ctgA 9601 9619 -0.945169845112828,-0.945169845112828
+ctgA 9701 9719 -0.980406273199548,-0.980406273199548
+ctgA 9801 9819 -0.745675818665582,-0.745675818665582
+ctgA 9901 9919 -0.305614388888252,-0.305614388888252
+ctgA 10001 10019 0.218601708303567,0.218601708303567
+ctgA 10101 10119 0.682623146057239,0.682623146057239
+ctgA 10201 10219 0.958675934707531,0.958675934707531
+ctgA 10301 10319 0.97074555575544,0.97074555575544
+ctgA 10401 10419 0.715508491127093,0.715508491127093
+ctgA 10501 10519 0.263247394606515,0.263247394606515
+ctgA 10601 10619 -0.261502098227572,-0.261502098227572
+ctgA 10701 10719 -0.714243783495441,-0.714243783495441
+ctgA 10801 10819 -0.970309689616982,-0.970309689616982
+ctgA 10901 10919 -0.959188931145217,-0.959188931145217
+ctgA 11001 11019 -0.683943745214962,-0.683943745214962
+ctgA 11101 11119 -0.220366267018746,-0.220366267018746
+ctgA 11201 11219 0.303891763483259,0.303891763483259
+ctgA 11301 11319 0.744469472587545,0.744469472587545
+ctgA 11401 11419 0.980048388625338,0.980048388625338
+ctgA 11501 11519 0.945758969945982,0.945758969945982
+ctgA 11601 11619 0.651043228214223,0.651043228214223
+ctgA 11701 11719 0.177054754782462,0.177054754782462
+ctgA 11801 11819 -0.345687915259853,-0.345687915259853
+ctgA 11901 11919 -0.773241181283175,-0.773241181283175
+ctgA 12001 12019 -0.987873011641156,-0.987873011641156
+ctgA 12101 12119 -0.930481901440504,-0.930481901440504
+ctgA 12201 12219 -0.616871196227395,-0.616871196227395
+ctgA 12301 12319 -0.133397447114619,-0.133397447114619
+ctgA 12401 12419 0.386808923903526,0.386808923903526
+ctgA 12501 12519 0.800502717217221,0.800502717217221
+ctgA 12601 12619 0.993768276844436,0.993768276844436
+ctgA 12701 12719 0.913387562390317,0.913387562390317
+ctgA 12801 12819 0.581494388679593,0.581494388679593
+ctgA 12901 12919 0.0894796085852885,0.0894796085852885
+ctgA 13001 13019 -0.427174478343574,-0.427174478343574
+ctgA 13101 13119 -0.82620083745591,-0.82620083745591
+ctgA 13201 13219 -0.997722670532666,-0.997722670532666
+ctgA 13301 13319 -0.89450933876326,-0.89450933876326
+ctgA 13401 13419 -0.544981897973607,-0.544981897973607
+ctgA 13501 13519 -0.0453870125923442,-0.0453870125923442
+ctgA 13601 13619 0.466705742943332,0.466705742943332
+ctgA 13701 13719 0.850285352482504,0.850285352482504
+ctgA 13801 13819 0.999728469607566,0.999728469607566
+ctgA 13901 13919 0.873884100529272,0.873884100529272
+ctgA 14001 14019 0.507405034549512,0.507405034549512
+ctgA 14101 14119 0.00120577384238478,0.00120577384238478
+ctgA 14201 14219 -0.505325511469513,-0.505325511469513
+ctgA 14301 14319 -0.87270922421956,-0.87270922421956
+ctgA 14401 14419 -0.999781756658628,-0.999781756658628
+ctgA 14501 14519 -0.851552129651776,-0.851552129651776
+ctgA 14601 14619 -0.468837187612361,-0.468837187612361
+ctgA 14701 14719 0.0429778198349343,0.0429778198349343
+ctgA 14801 14819 0.542958357879249,0.542958357879249
+ctgA 14901 14919 0.893428657896279,0.893428657896279
+ctgA 15001 15019 0.997882427613987,0.997882427613987
+ctgA 15101 15119 0.827557041415301,0.827557041415301
+ctgA 15201 15219 0.429353681799962,0.429353681799962
+ctgA 15301 15319 -0.0870774760106846,-0.0870774760106846
+ctgA 15401 15419 -0.579530783630345,-0.579530783630345
+ctgA 15501 15519 -0.912403187581549,-0.912403187581549
+ctgA 15601 15619 -0.994034191943674,-0.994034191943674
+ctgA 15701 15719 -0.801945699242987,-0.801945699242987
+ctgA 15801 15819 -0.389031630070668,-0.389031630070668
+ctgA 15901 15919 0.131007066189432,0.131007066189432
+ctgA 16001 16019 0.614971361227045,0.614971361227045
+ctgA 16101 16119 0.929595755215624,0.929595755215624
+ctgA 16201 16219 0.988244565414863,0.988244565414863
+ctgA 16301 16319 0.774768123170331,0.774768123170331
+ctgA 16401 16419 0.347949783098507,0.347949783098507
+ctgA 16501 16519 -0.174680794021833,-0.174680794021833
+ctgA 16601 16619 -0.649210873720956,-0.649210873720956
+ctgA 16701 16719 -0.94497278298608,-0.94497278298608
+ctgA 16801 16819 -0.980524855413266,-0.980524855413266
+ctgA 16901 16919 -0.746077392153944,-0.746077392153944
+ctgA 17001 17019 -0.306188375469783,-0.306188375469783
+ctgA 17101 17119 0.21801336286854,0.21801336286854
+ctgA 17201 17219 0.682182449894674,0.682182449894674
+ctgA 17301 17319 0.958504238906709,0.958504238906709
+ctgA 17401 17419 0.970890138859323,0.970890138859323
+ctgA 17501 17519 0.715929540406099,0.715929540406099
+ctgA 17601 17619 0.263828968981531,0.263828968981531
+ctgA 17701 17719 -0.260920142388146,-0.260920142388146
+ctgA 17801 17819 -0.713821694864108,-0.713821694864108
+ctgA 17901 17919 -0.970163695471254,-0.970163695471254
+ctgA 18001 18019 -0.959359232762341,-0.959359232762341
+ctgA 18101 18119 -0.684383447957544,-0.684383447957544
+ctgA 18201 18219 -0.220954293347872,-0.220954293347872
+ctgA 18301 18319 0.303317333823826,0.303317333823826
+ctgA 18401 18419 0.744066815844409,0.744066815844409
+ctgA 18501 18519 0.979928381267452,0.979928381267452
+ctgA 18601 18619 0.94595465747008,0.94595465747008
+ctgA 18701 18719 0.651500725662311,0.651500725662311
+ctgA 18801 18819 0.177648084625384,0.177648084625384
+ctgA 18901 18919 -0.345122133665854,-0.345122133665854
+ctgA 19001 19019 -0.772858742833902,-0.772858742833902
+ctgA 19101 19119 -0.987779225450561,-0.987779225450561
+ctgA 19201 19219 -0.930702592685557,-0.930702592685557
+ctgA 19301 19319 -0.617345594869105,-0.617345594869105
+ctgA 19401 19419 -0.133994921673036,-0.133994921673036
+ctgA 19501 19519 0.386252895370368,0.386252895370368
+ctgA 19601 19619 0.800141243980293,0.800141243980293
+ctgA 19701 19719 0.993700894989533,0.993700894989533
+ctgA 19801 19819 0.91363282633698,0.91363282633698
+ctgA 19901 19919 0.581984761994295,0.581984761994295
+ctgA 20001 20019 0.0900800609660932,0.0900800609660932
+ctgA 20101 20119 -0.42662928881852,-0.42662928881852
+ctgA 20201 20219 -0.825861035403859,-0.825861035403859
+ctgA 20301 20319 -0.99768182461307,-0.99768182461307
+ctgA 20401 20419 -0.894778696400663,-0.894778696400663
+ctgA 20501 20519 -0.545487288241457,-0.545487288241457
+ctgA 20601 20619 -0.0459892700866177,-0.0459892700866177
+ctgA 20701 20719 0.466172457204606,0.466172457204606
+ctgA 20801 20819 0.849967885263126,0.849967885263126
+ctgA 20901 20919 0.999714239397087,0.999714239397087
+ctgA 21001 21019 0.874177025790545,0.874177025790545
+ctgA 21101 21119 0.507924454721923,0.507924454721923
+ctgA 21201 21219 0.00180866021574464,0.00180866021574464
+ctgA 21301 21319 -0.504805171046737,-0.504805171046737
+ctgA 21401 21419 -0.872414711859773,-0.872414711859773
+ctgA 21501 21519 -0.999794169949471,-0.999794169949471
+ctgA 21601 21619 -0.851868050441484,-0.851868050441484
+ctgA 21701 21719 -0.469369623239746,-0.469369623239746
+ctgA 21801 21819 0.0423754820450979,0.0423754820450979
+ctgA 21901 21919 0.542451979019298,0.542451979019298
+ctgA 22001 22019 0.893157675591189,0.893157675591189
+ctgA 22101 22119 0.997921460162468,0.997921460162468
+ctgA 22201 22219 0.827895340726768,0.827895340726768
+ctgA 22301 22319 0.429898093013001,0.429898093013001
+ctgA 22401 22419 -0.0864768631955748,-0.0864768631955748
+ctgA 22501 22519 -0.579039355312569,-0.579039355312569
+ctgA 22601 22619 -0.91215626457107,-0.91215626457107
+ctgA 22701 22719 -0.994099767517573,-0.994099767517573
+ctgA 22801 22819 -0.802305716363335,-0.802305716363335
+ctgA 22901 22919 -0.389586953611214,-0.389586953611214
+ctgA 23001 23019 0.130409351371303,0.130409351371303
+ctgA 23101 23119 0.614495843231754,0.614495843231754
+ctgA 23201 23219 0.929373373750848,0.929373373750848
+ctgA 23301 23319 0.98833655594231,0.98833655594231
+ctgA 23401 23419 0.775149154970883,0.775149154970883
+ctgA 23501 23519 0.348514934396177,0.348514934396177
+ctgA 23601 23619 -0.174087144563029,-0.174087144563029
+ctgA 23701 23719 -0.648752194754925,-0.648752194754925
+ctgA 23801 23819 -0.944775377387424,-0.944775377387424
+ctgA 23901 23919 -0.980643081232865,-0.980643081232865
+ctgA 24001 24019 -0.746478694463463,-0.746478694463463
+ctgA 24101 24119 -0.306762250760167,-0.306762250760167
+ctgA 24201 24219 0.217424938191585,0.217424938191585
+ctgA 24301 24319 0.681741505777341,0.681741505777341
+ctgA 24401 24419 0.958332194715663,0.958332194715663
+ctgA 24501 24519 0.971034369071043,0.971034369071043
+ctgA 24601 24619 0.716350329464186,0.716350329464186
+ctgA 24701 24719 0.264410447461892,0.264410447461892
+ctgA 24801 24819 -0.260338091711345,-0.260338091711345
+ctgA 24901 24919 -0.713399346778001,-0.713399346778001
+ctgA 25001 25019 -0.970017348697407,-0.970017348697407
+ctgA 25101 25119 -0.959529185678474,-0.959529185678474
+ctgA 25201 25219 -0.684822901945355,-0.684822901945355
+ctgA 25301 25319 -0.221542239366122,-0.221542239366122
+ctgA 25401 25419 0.302742793916791,0.302742793916791
+ctgA 25501 25519 0.743663888653221,0.743663888653221
+ctgA 25601 25619 0.979808017732248,0.979808017732248
+ctgA 25701 25719 0.946150001165385,0.946150001165385
+ctgA 25801 25819 0.651957986307603,0.651957986307603
+ctgA 25901 25919 0.178241349898059,0.178241349898059
+ctgA 26001 26019 -0.344556226629346,-0.344556226629346
+ctgA 26101 26119 -0.772476023471494,-0.772476023471494
+ctgA 26201 26219 -0.98768508022908,-0.98768508022908
+ctgA 26301 26319 -0.930922945645528,-0.930922945645528
+ctgA 26401 26419 -0.617819769122481,-0.617819769122481
+ctgA 26501 26519 -0.134592347527942,-0.134592347527942
+ctgA 26601 26619 0.385696726444787,0.385696726444787
+ctgA 26701 26719 0.799779479913782,0.799779479913782
+ctgA 26801 26819 0.993633151951378,0.993633151951378
+ctgA 26901 26919 0.913877758202957,0.913877758202957
+ctgA 27001 27019 0.582474923773363,0.582474923773363
+ctgA 27101 27119 0.0906804806052454,0.0906804806052454
+ctgA 27201 27219 -0.426083944225323,-0.426083944225323
+ctgA 27301 27319 -0.825520933173783,-0.825520933173783
+ctgA 27401 27419 -0.997640616063263,-0.997640616063263
+ctgA 27501 27519 -0.895047728810343,-0.895047728810343
+ctgA 27601 27619 -0.545992480239513,-0.545992480239513
+ctgA 27701 27719 -0.0465915108650422,-0.0465915108650422
+ctgA 27801 27819 0.465639002024868,0.465639002024868
+ctgA 27901 27919 0.849650109103536,0.849650109103536
+ctgA 28001 28019 0.99969964581767,0.99969964581767
+ctgA 28101 28119 0.874469633312244,0.874469633312244
+ctgA 28201 28219 0.508443690277607,0.508443690277607
+ctgA 28301 28319 0.00241154593170571,0.00241154593170571
+ctgA 28401 28419 -0.50428464714101,-0.50428464714101
+ctgA 28501 28519 -0.872119882400963,-0.872119882400963
+ctgA 28601 28619 -0.999806219842322,-0.999806219842322
+ctgA 28701 28719 -0.852183661600323,-0.852183661600323
+ctgA 28801 28819 -0.469901888264038,-0.469901888264038
+ctgA 28901 28919 0.0417731288529262,0.0417731288529262
+ctgA 29001 29019 0.541945402992805,0.541945402992805
+ctgA 29101 29119 0.892886368647573,0.892886368647573
+ctgA 29201 29219 0.997960129993637,0.997960129993637
+ctgA 29301 29319 0.828233339120793,0.828233339120793
+ctgA 29401 29419 0.430442347969774,0.430442347969774
+ctgA 29501 29519 -0.0858762189484769,-0.0858762189484769
+ctgA 29601 29619 -0.578547716529735,-0.578547716529735
+ctgA 29701 29719 -0.911909010016595,-0.911909010016595
+ctgA 29801 29819 -0.994164981763242,-0.994164981763242
+ctgA 29901 29919 -0.802665441867374,-0.802665441867374
+ctgA 30001 30019 -0.390142135547497,-0.390142135547497
+ctgA 30101 30119 0.129811589152921,0.129811589152921
+ctgA 30201 30219 0.614020101883935,0.614020101883935
+ctgA 30301 30319 0.929150654484127,0.929150654484127
+ctgA 30401 30419 0.988428187236296,0.988428187236296
+ctgA 30501 30519 0.775529905025798,0.775529905025798
+ctgA 30601 30619 0.349079959018146,0.349079959018146
+ctgA 30701 30719 -0.173493431828281,-0.173493431828281
+ctgA 30801 30819 -0.648293279985113,-0.648293279985113
+ctgA 30901 30919 -0.944577628388612,-0.944577628388612
+ctgA 31001 31019 -0.980760950615372,-0.980760950615372
+ctgA 31101 31119 -0.746879725448277,-0.746879725448277
+ctgA 31201 31219 -0.307336014550815,-0.307336014550815
+ctgA 31301 31319 0.216836434486577,0.216836434486577
+ctgA 31401 31419 0.68130031386551,0.68130031386551
+ctgA 31501 31519 0.958159802196927,0.958159802196927
+ctgA 31601 31619 0.971178246338178,0.971178246338178
+ctgA 31701 31719 0.716770858148409,0.716770858148409
+ctgA 31801 31819 0.264991829836246,0.264991829836246
+ctgA 31901 31919 -0.259755946408727,-0.259755946408727
+ctgA 32001 32019 -0.712976739390632,-0.712976739390632
+ctgA 32101 32119 -0.969870649348633,-0.969870649348633
+ctgA 32201 32219 -0.959698789831842,-0.959698789831842
+ctgA 32301 32319 -0.685262107018665,-0.685262107018665
+ctgA 32401 32419 -0.222130104859792,-0.222130104859792
+ctgA 32501 32519 0.302168143970983,0.302168143970983
+ctgA 32601 32619 0.743260691160433,0.743260691160433
+ctgA 32701 32719 0.979687298063475,0.979687298063475
+ctgA 32801 32819 0.946345000960895,0.946345000960895
+ctgA 32901 32919 0.652415009983898,0.652415009983898
+ctgA 33001 33019 0.17883455038485,0.17883455038485
+ctgA 33101 33119 -0.34399019435602,-0.34399019435602
+ctgA 33201 33219 -0.772093023335059,-0.772093023335059
+ctgA 33301 33319 -0.987590576010932,-0.987590576010932
+ctgA 33401 33419 -0.931142960240324,-0.931142960240324
+ctgA 33501 33519 -0.618293718815172,-0.618293718815172
+ctgA 33601 33619 -0.13518972446219,-0.13518972446219
+ctgA 33701 33719 0.385140417328934,0.385140417328934
+ctgA 33801 33819 0.79941742514918,0.79941742514918
+ctgA 33901 33919 0.993565047754595,0.993565047754595
+ctgA 34001 34019 0.914122357899222,0.914122357899222
+ctgA 34101 34119 0.582964873838637,0.582964873838637
+ctgA 34201 34219 0.091280867284509,0.091280867284509
+ctgA 34301 34319 -0.425538444762198,-0.425538444762198
+ctgA 34401 34419 -0.825180530889296,-0.825180530889296
+ctgA 34501 34519 -0.997599044898223,-0.997599044898223
+ctgA 34601 34619 -0.895316435894515,-0.895316435894515
+ctgA 34701 34719 -0.546497473784151,-0.546497473784151
+ctgA 34801 34819 -0.0471937347087195,-0.0471937347087195
+ctgA 34901 34919 0.465105377598017,0.465105377598017
+ctgA 35001 35019 0.849332024119238,0.849332024119238
+ctgA 35101 35119 0.999684688874618,0.999684688874618
+ctgA 35201 35219 0.874761922988011,0.874761922988011
+ctgA 35301 35319 0.508962741027838,0.508962741027838
+ctgA 35401 35419 0.00301443077113541,0.00301443077113541
+ctgA 35501 35519 -0.503763939941528,-0.503763939941528
+ctgA 35601 35619 -0.871824735950293,-0.871824735950293
+ctgA 35701 35719 -0.999817906332802,-0.999817906332802
+ctgA 35801 35819 -0.852498963013576,-0.852498963013576
+ctgA 35901 35919 -0.470433982491772,-0.470433982491772
+ctgA 36001 36019 0.0411707604773582,0.0411707604773582
+ctgA 36101 36119 0.541438629983896,0.541438629983896
+ctgA 36201 36219 0.892614737164045,0.892614737164045
+ctgA 36301 36319 0.997998437093437,0.997998437093437
+ctgA 36401 36419 0.828571036474523,0.828571036474523
+ctgA 36501 36519 0.430986446472459,0.430986446472459
+ctgA 36601 36619 -0.0852755434877088,-0.0852755434877088
+ctgA 36701 36719 -0.57805586746054,-0.57805586746054
+ctgA 36801 36819 -0.911661424007995,-0.911661424007995
+ctgA 36901 36919 -0.994229834656976,-0.994229834656976
+ctgA 37001 37019 -0.803024875624353,-0.803024875624353
+ctgA 37101 37119 -0.390697175677724,-0.390697175677724
+ctgA 37201 37219 0.129213779751557,0.129213779751557
+ctgA 37301 37319 0.613544137356508,0.613544137356508
+ctgA 37401 37419 0.92892759749641,0.92892759749641
+ctgA 37501 37519 0.988519459263516,0.988519459263516
+ctgA 37601 37619 0.775910373196683,0.775910373196683
+ctgA 37701 37719 0.349644856759043,0.349644856759043
+ctgA 37801 37819 -0.17289965603339,-0.17289965603339
+ctgA 37901 37919 -0.647834129578325,-0.647834129578325
+ctgA 38001 38019 -0.944379536061519,-0.944379536061519
+ctgA 38101 38119 -0.980878463517946,-0.980878463517946
+ctgA 38201 38219 -0.747280484962623,-0.747280484962623
+ctgA 38301 38319 -0.30790966663318,-0.30790966663318
+ctgA 38401 38419 0.216247851967423,0.216247851967423
+ctgA 38501 38519 0.680858874319544,0.680858874319544
+ctgA 38601 38619 0.957987061413159,0.957987061413159
+ctgA 38701 38719 0.971321770608431,0.971321770608431
+ctgA 38801 38819 0.717191126305919,0.717191126305919
+ctgA 38901 38919 0.265573115893276,0.265573115893276
+ctgA 39001 39019 -0.259173706691886,-0.259173706691886
+ctgA 39101 39119 -0.712553872855609,-0.712553872855609
+ctgA 39201 39219 -0.969723597478254,-0.969723597478254
+ctgA 39301 39319 -0.959868045160799,-0.959868045160799
+ctgA 39401 39419 -0.685701063017834,-0.685701063017834
+ctgA 39501 39519 -0.22271788961521,-0.22271788961521
+ctgA 39601 39619 0.301593384195272,0.301593384195272
+ctgA 39701 39719 0.742857223512596,0.742857223512596
+ctgA 39801 39819 0.979566222305013,0.979566222305013
+ctgA 39901 39919 0.946539656785734,0.946539656785734
+ctgA 40001 40019 0.652871796525078,0.652871796525078
+ctgA 40101 40119 0.179427685870145,0.179427685870145
+ctgA 40201 40219 -0.343424037051613,-0.343424037051613
+ctgA 40301 40319 -0.771709742563807,-0.771709742563807
+ctgA 40401 40419 -0.987495712830468,-0.987495712830468
+ctgA 40501 40519 -0.931362636389977,-0.931362636389977
+ctgA 40601 40619 -0.618767443774911,-0.618767443774911
+ctgA 40701 40719 -0.13578705225865,-0.13578705225865
+ctgA 40801 40819 0.384583968225014,0.384583968225014
+ctgA 40901 40919 0.799055079818084,0.799055079818084
+ctgA 41001 41019 0.993496582423937,0.993496582423937
+ctgA 41101 41119 0.91436662533687,0.91436662533687
+ctgA 41201 41219 0.583454612012034,0.583454612012034
+ctgA 41301 41319 0.0918812207856598,0.0918812207856598
+ctgA 41401 41419 -0.424992790627422,-0.424992790627422
+ctgA 41501 41519 -0.824839828674128,-0.824839828674128
+ctgA 41601 41619 -0.997557111133059,-0.997557111133059
+ctgA 41701 41719 -0.895584817555511,-0.895584817555511
+ctgA 41801 41819 -0.547002268691819,-0.547002268691819
+ctgA 41901 41919 -0.0477959413987577,-0.0477959413987577
+ctgA 42001 42019 0.464571584118009,0.464571584118009
+ctgA 42101 42119 0.849013630425847,0.849013630425847
+ctgA 42201 42219 0.999669368573369,0.999669368573369
+ctgA 42301 42319 0.87505389471161,0.87505389471161
+ctgA 42401 42419 0.509481606783953,0.509481606783953
+ctgA 42501 42519 0.0036173145149015,0.0036173145149015
+ctgA 42601 42619 -0.503243049637554,-0.503243049637554
+ctgA 42701 42719 -0.871529272615042,-0.871529272615042
+ctgA 42801 42819 -0.999829229416663,-0.999829229416663
+ctgA 42901 42919 -0.85281395456664,-0.85281395456664
+ctgA 43001 43019 -0.470965905729547,-0.470965905729547
+ctgA 43101 43119 0.0405683771373384,0.0405683771373384
+ctgA 43201 43219 0.540931660176769,0.540931660176769
+ctgA 43301 43319 0.892342781239334,0.892342781239334
+ctgA 43401 43419 0.998036381447947,0.998036381447947
+ctgA 43501 43519 0.828908432665215,0.828908432665215
+ctgA 43601 43619 0.431530388323292,0.431530388323292
+ctgA 43701 43719 -0.0846748370315997,-0.0846748370315997
+ctgA 43801 43819 -0.577563808283757,-0.577563808283757
+ctgA 43901 43919 -0.911413506635259,-0.911413506635259
+ctgA 44001 44019 -0.994294326175203,-0.994294326175203
+ctgA 44101 44119 -0.803384017503629,-0.803384017503629
+ctgA 44201 44219 -0.391252073800153,-0.391252073800153
+ctgA 44301 44319 0.128615923384498,0.128615923384498
+ctgA 44401 44419 0.613067949822471,0.613067949822471
+ctgA 44501 44519 0.928704202868774,0.928704202868774
+ctgA 44601 44619 0.988610371990796,0.988610371990796
+ctgA 44701 44719 0.776290559345248,0.776290559345248
+ctgA 44801 44819 0.350209627413543,0.350209627413543
+ctgA 44901 44919 -0.172305817394175,-0.172305817394175
+ctgA 45001 45019 -0.647374743701449,-0.647374743701449
+ctgA 45101 45119 -0.944181100478148,-0.944181100478148
+ctgA 45201 45219 -0.980995619897873,-0.980995619897873
+ctgA 45301 45319 -0.747680972860835,-0.747680972860835
+ctgA 45401 45419 -0.308483206798754,-0.308483206798754
+ctgA 45501 45519 0.215659190848055,0.215659190848055
+ctgA 45601 45619 0.680417187299892,0.680417187299892
+ctgA 45701 45719 0.957813972427147,0.957813972427147
+ctgA 45801 45819 0.971464941829636,0.971464941829636
+ctgA 45901 45919 0.717611133783957,0.717611133783957
+ctgA 46001 46019 0.266154305421701,0.266154305421701
+ctgA 46101 46119 -0.258591372772452,-0.258591372772452
+ctgA 46201 46219 -0.71213074732663,-0.71213074732663
+ctgA 46301 46319 -0.969576193139719,-0.969576193139719
+ctgA 46401 46419 -0.960036951603826,-0.960036951603826
+ctgA 46501 46519 -0.686139769783315,-0.686139769783315
+ctgA 46601 46619 -0.223305593418733,-0.223305593418733
+ctgA 46701 46719 0.301018514798568,0.301018514798568
+ctgA 46801 46819 0.742453485856362,0.742453485856362
+ctgA 46901 46919 0.979444790500868,0.979444790500868
+ctgA 47001 47019 0.946733968569148,0.946733968569148
+ctgA 47101 47119 0.653328345765115,0.653328345765115
+ctgA 47201 47219 0.180020756138357,0.180020756138357
+ctgA 47301 47319 -0.342857754921908,-0.342857754921908
+ctgA 47401 47419 -0.77132618129705,-0.77132618129705
+ctgA 47501 47519 -0.987400490722168,-0.987400490722168
+ctgA 47601 47619 -0.931581974014641,-0.931581974014641
+ctgA 47701 47719 -0.619240943829511,-0.619240943829511
+ctgA 47801 47819 -0.13638433070021,-0.13638433070021
+ctgA 47901 47919 0.38402737933528,0.38402737933528
+ctgA 48001 48019 0.798692444052197,0.798692444052197
+ctgA 48101 48119 0.993427755984289,0.993427755984289
+ctgA 48201 48219 0.914610560427116,0.914610560427116
+ctgA 48301 48319 0.583944138115545,0.583944138115545
+ctgA 48401 48419 0.0924815408904855,0.0924815408904855
+ctgA 48501 48519 -0.424446982019324,-0.424446982019324
+ctgA 48601 48619 -0.824498826652114,-0.824498826652114
+ctgA 48701 48719 -0.997514814783015,-0.997514814783015
+ctgA 48801 48819 -0.895852873695781,-0.895852873695781
+ctgA 48901 48919 -0.547506864779039,-0.547506864779039
+ctgA 49001 49019 -0.048398130716271,-0.048398130716271
+ctgA 49101 49119 0.464037621778865,0.464037621778865
+ctgA 49201 49219 0.848694928139091,0.848694928139091
+ctgA 49301 49319 0.99965368491949,0.99965368491949
+ctgA 49401 49419 0.875345548376914,0.875345548376914
+ctgA 49501 49519 0.51000028735736,0.51000028735736
+ctgA 49601 49619 0.00422019694387214,0.00422019694387214
+ctgA 49701 49719 -0.502721976418416,-0.502721976418416
+ctgA 49801 49819 -0.871233492502601,-0.871233492502601
diff -r 000000000000 -r e8475d0195fe tmp2/circos/data/links-0.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tmp2/circos/data/links-0.txt Wed Mar 01 22:47:20 2017 -0500
@@ -0,0 +1,21 @@
+ctgA 0 500 ctgA 1000 1500
+ctgA 2500 3000 ctgA 3500 4000
+ctgA 5000 5500 ctgA 6000 6500
+ctgA 7500 8000 ctgA 8500 9000
+ctgA 10000 10500 ctgA 11000 11500
+ctgA 12500 13000 ctgA 13500 14000
+ctgA 15000 15500 ctgA 16000 16500
+ctgA 17500 18000 ctgA 18500 19000
+ctgA 20000 20500 ctgA 21000 21500
+ctgA 22500 23000 ctgA 23500 24000
+ctgA 25000 25500 ctgA 26000 26500
+ctgA 27500 28000 ctgA 28500 29000
+ctgA 30000 30500 ctgA 31000 31500
+ctgA 32500 33000 ctgA 33500 34000
+ctgA 35000 35500 ctgA 36000 36500
+ctgA 37500 38000 ctgA 38500 39000
+ctgA 40000 40500 ctgA 41000 41500
+ctgA 42500 43000 ctgA 43500 44000
+ctgA 45000 45500 ctgA 46000 46500
+ctgA 47500 48000 ctgA 48500 49000
+ctgA 50000 50500 ctgA 51000 51500
diff -r 000000000000 -r e8475d0195fe unified-histogram.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/unified-histogram.py Wed Mar 01 22:47:20 2017 -0500
@@ -0,0 +1,143 @@
+#!/usr/bin/env python
+from BCBio import GFF
+import wiggle
+import sys
+import logging
+logging.basicConfig(level=logging.INFO)
+log = logging.getLogger()
+
+
+MODE = sys.argv[1]
+
+# Pair up (file, extension) pairs from sys.argv
+files = zip(sys.argv[2:][0::2], sys.argv[2:][1::2])
+
+# Our output data structure. This could be much more efficient.
+data = {}
+
+
+def bed(idx, path):
+ # chrom - The name of the chromosome (e.g. chr3, chrY, chr2_random) or scaffold (e.g. scaffold10671).
+ # chromStart - The starting position of the feature in the chromosome or scaffold. The first base in a chromosome is numbered 0.
+ # chromEnd - The ending position of the feature in the chromosome or scaffold. The chromEnd base is not included in the display of the feature. For example, the first 100 bases of a chromosome are defined as chromStart=0, chromEnd=100, and span the bases numbered 0-99.
+ # name - Defines the name of the BED line. This label is displayed to the left of the BED line in the Genome Browser window when the track is open to full display mode or directly to the left of the item in pack mode.
+ # score - A score between 0 and 1000. If the track line useScore attribute is set to 1 for this annotation data set, the score value will determine the level of gray in which this feature is displayed (higher numbers = darker gray). This table shows the Genome Browser's translation of BED score values into shades of gray:
+ # strand - Defines the strand - either '+' or '-'.
+ # thickStart - The starting position at which the feature is drawn thickly (for example, the start codon in gene displays). When there is no thick part, thickStart and thickEnd are usually set to the chromStart position.
+ # thickEnd - The ending position at which the feature is drawn thickly (for example, the stop codon in gene displays).
+ # itemRgb - An RGB value of the form R,G,B (e.g. 255,0,0). If the track line itemRgb attribute is set to "On", this RBG value will determine the display color of the data contained in this BED line. NOTE: It is recommended that a simple color scheme (eight colors or less) be used with this attribute to avoid overwhelming the color resources of the Genome Browser and your Internet browser.
+
+ with open(path, 'r') as handle:
+ for line in handle:
+ lineData = line.strip().split()
+ chrom = lineData[0]
+ chromStart = lineData[1]
+ chromEnd = lineData[2]
+
+ if chrom not in data:
+ data[chrom] = {}
+
+ for i in xrange(chromStart, chromEnd):
+ if i not in data[chrom]:
+ data[chrom][i] = {}
+
+ data[chrom][i][idx] = lineData[5]
+
+
+# Handlers
+def gff3(idx, path):
+ for record in GFF.parse(path):
+ if len(record.features) == 0:
+ continue
+
+ if record.id not in data:
+ data[record.id] = {}
+
+ for feature in record.features:
+ if 'score' in feature.qualifiers:
+ for i in xrange(feature.location.start, feature.location.end):
+ if i not in data[record.id]:
+ data[record.id][i] = {}
+
+ data[record.id][i][idx] = feature.qualifiers['score'][0]
+
+
+def wig(idx, path):
+ walker = wiggle.Wiggle()
+ with open(path, 'r') as handle:
+ for region, position, value in walker.walk(handle):
+ if region not in data:
+ data[region] = {}
+
+ if position not in data[region]:
+ data[region][position] = {}
+
+ data[region][position][idx] = value
+
+
+if __name__ == '__main__':
+ mode_tiles_possible = True
+
+ for idx, (file_path, file_type) in enumerate(files):
+ log.info("Processing %s.%s", file_path, file_type)
+
+ if file_type in globals():
+ func = globals()[file_type]
+ func(idx, file_path)
+
+ if file_type == 'wig':
+ mode_tiles_possible = False
+
+ if MODE == 'tile' and not mode_tiles_possible:
+ raise Exception("You requested a 'tile' plot with wig data, which is impossible")
+
+ # Max number of files
+ max_idx = range(len(files))
+
+ serialized_values = None
+ region_start, region_end = (None, None)
+
+ for genome in data:
+ for position in sorted(data[genome]):
+ values = [
+ '' if x not in data[genome][position] else data[genome][position][x]
+ for x in max_idx
+ ]
+ if serialized_values is None:
+ serialized_values = values
+ if region_start is None:
+ region_start = position
+ region_end = position
+
+ if values == serialized_values:
+ region_end = position
+ else:
+ if MODE == 'histogram':
+ # histogram
+ # hs4 0 1999999 5.0000,3.0000,1.0000,19.0000
+ print genome, region_start, region_end, ','.join(values)
+ elif MODE == 'heatmap':
+ # heatmap
+ # hs1 2000000 3999999 0.0000 id=hs4
+ # hs1 4000000 5999999 2.0000 id=hs1
+ # hs1 4000000 5999999 0.0000 id=hs2
+ # hs1 4000000 5999999 0.0000 id=hs3
+ # hs1 4000000 5999999 0.0000 id=hs4
+ # hs1 6000000 7999999 4.0000 id=hs2
+ for x in max_idx:
+ if x in data[genome][position]:
+ print genome, region_start, region_end, data[genome][position][x], 'id=hm%s' % x
+ else:
+ print genome, region_start, region_end, 0.0, 'id=hm%s' % x
+ elif MODE == 'line':
+ # multiple=False
+ print genome, region_start, region_end, data[genome][position][0]
+ elif MODE == 'scatter':
+ # multiple=False
+ print genome, region_start, region_end, data[genome][position][0]
+
+ # Update start of next array
+ region_start = position
+ region_end = position
+ # And update with new array
+ serialized_values = values
diff -r 000000000000 -r e8475d0195fe unified-tiles.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/unified-tiles.py Wed Mar 01 22:47:20 2017 -0500
@@ -0,0 +1,71 @@
+#!/usr/bin/env python
+from BCBio import GFF
+import sys
+import logging
+logging.basicConfig(level=logging.INFO)
+log = logging.getLogger()
+
+
+# Pair up (file, extension) pairs from sys.argv
+files = zip(sys.argv[1:][0::2], sys.argv[1:][1::2])
+
+
+# Handlers
+def bed(idx, path):
+ # chrom - The name of the chromosome (e.g. chr3, chrY, chr2_random) or scaffold (e.g. scaffold10671).
+ # chromStart - The starting position of the feature in the chromosome or scaffold. The first base in a chromosome is numbered 0.
+ # chromEnd - The ending position of the feature in the chromosome or scaffold. The chromEnd base is not included in the display of the feature. For example, the first 100 bases of a chromosome are defined as chromStart=0, chromEnd=100, and span the bases numbered 0-99.
+ # name - Defines the name of the BED line. This label is displayed to the left of the BED line in the Genome Browser window when the track is open to full display mode or directly to the left of the item in pack mode.
+ # score - A score between 0 and 1000. If the track line useScore attribute is set to 1 for this annotation data set, the score value will determine the level of gray in which this feature is displayed (higher numbers = darker gray). This table shows the Genome Browser's translation of BED score values into shades of gray:
+ # strand - Defines the strand - either '+' or '-'.
+ # thickStart - The starting position at which the feature is drawn thickly (for example, the start codon in gene displays). When there is no thick part, thickStart and thickEnd are usually set to the chromStart position.
+ # thickEnd - The ending position at which the feature is drawn thickly (for example, the stop codon in gene displays).
+ # itemRgb - An RGB value of the form R,G,B (e.g. 255,0,0). If the track line itemRgb attribute is set to "On", this RBG value will determine the display color of the data contained in this BED line. NOTE: It is recommended that a simple color scheme (eight colors or less) be used with this attribute to avoid overwhelming the color resources of the Genome Browser and your Internet browser.
+
+ with open(path, 'r') as handle:
+ for line in handle:
+ lineData = line.strip().split()
+ chrom = lineData[0]
+ chromStart = lineData[1]
+ chromEnd = lineData[2]
+
+ yield (chrom, chromStart, chromEnd, lineData[4], lineData[6], lineData[5], lineData[9])
+
+
+def gff3(idx, path):
+ for record in GFF.parse(path):
+ if len(record.features) == 0:
+ continue
+
+ for feature in sorted(record.features, key=lambda x: x.location.start):
+ yield (
+ record.id,
+ feature.location.start,
+ feature.location.end,
+ feature.id or feature.qualifiers.get('Name', [None])[0],
+ feature.location.strand,
+ feature.qualifiers.get('score', [0.0])[0],
+ feature.qualifiers.get('color', [None])[0]
+ )
+
+
+if __name__ == '__main__':
+ for idx, (file_path, file_type) in enumerate(files):
+ log.info("Processing %s.%s", file_path, file_type)
+
+ if file_type in globals():
+ func = globals()[file_type]
+ for item in func(idx, file_path):
+ # multiple=False
+ # hs1 10292899 10301003 id=Conrad_993
+ # hs1 10297766 10301003 id=Conrad_994
+ lineExtra = [
+ 'strand=%s' % item[4],
+ 'score=%s' % item[5],
+ ]
+ if item[3] is not None:
+ lineExtra.append('id=%s' % item[3])
+ if item[6] is not None:
+ lineExtra.append('color=%s' % item[6])
+
+ print item[0], item[1], item[2], ','.join(lineExtra)
diff -r 000000000000 -r e8475d0195fe wiggle.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/wiggle.py Wed Mar 01 22:47:20 2017 -0500
@@ -0,0 +1,55 @@
+class Wiggle:
+
+ def fixedStepParser(self, line):
+ value = line.strip()
+ start_position = self.stepIdx * self.parserConfig['step'] + self.parserConfig['start']
+ stop_position = start_position + self.parserConfig['span'] - 1
+ self.stepIdx += 1
+
+ for position in xrange(start_position, stop_position):
+ yield (self.parserConfig['chrom'], position, value)
+
+ def variableStepParser(self, line):
+ (start, value) = line.strip().split()
+ start = int(start)
+ start_position = start
+ stop_position = start + self.parserConfig['span']
+
+ for position in xrange(start_position, stop_position):
+ yield (self.parserConfig['chrom'], position, value)
+
+ def walk(self, handle):
+
+ parser = None
+ for line in handle:
+ if line.startswith('track'):
+ continue
+ elif line.startswith('fixedStep'):
+ parser = self.fixedStepParser
+ lineData = line.split()
+ fields = {x.split('=')[0]: x.split('=')[1] for x in lineData[1:]}
+ self.parserConfig = fields
+
+ for numField in ('step', 'start', 'span'):
+ if numField in self.parserConfig:
+ self.parserConfig[numField] = int(self.parserConfig[numField])
+ self.stepIdx = 0
+ elif line.startswith('variableStep'):
+ parser = self.variableStepParser
+ lineData = line.split()
+ fields = {x.split('=')[0]: x.split('=')[1] for x in lineData[1:]}
+ # Default value
+ if 'span' not in fields:
+ fields['span'] = 1
+ self.parserConfig = fields
+
+ for numField in ('span',):
+ if numField in self.parserConfig:
+ self.parserConfig[numField] = int(self.parserConfig[numField])
+
+ self.stepIdx = 0
+ elif len(line.strip()) == 0:
+ continue
+ else:
+ for data in parser(line):
+ yield data
diff -r 000000000000 -r e8475d0195fe wiggle.pyc
Binary file wiggle.pyc has changed