Repository 'fasta_filter_by_id'
hg clone https://testtoolshed.g2.bx.psu.edu/repos/peterjc/fasta_filter_by_id

Changeset 4:a9142939d718 (2017-02-03)
Previous changeset 3:d05fadb1c7b5 (2013-04-12) Next changeset 5:f7bdd8923fe6 (2017-02-03)
Commit message:
v0.0.5 - galaxy_sequence_utils dependency and other cleanups
added:
test-data/blastp_four_human_vs_rhodopsin.tabular
test-data/four_human_proteins.fasta
test-data/four_human_proteins_filter_a.fasta
test-data/four_human_proteins_filter_b.fasta
tools/fasta_filter_by_id/README.rst
tools/fasta_filter_by_id/fasta_filter_by_id.py
tools/fasta_filter_by_id/fasta_filter_by_id.xml
tools/fasta_filter_by_id/tool_dependencies.xml
removed:
tools/fasta_tools/fasta_filter_by_id.py
tools/fasta_tools/fasta_filter_by_id.txt
tools/fasta_tools/fasta_filter_by_id.xml
b
diff -r d05fadb1c7b5 -r a9142939d718 test-data/blastp_four_human_vs_rhodopsin.tabular
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/blastp_four_human_vs_rhodopsin.tabular Fri Feb 03 05:15:12 2017 -0500
b
@@ -0,0 +1,6 @@
+sp|P08100|OPSD_HUMAN gi|57163783|ref|NP_001009242.1| 96.55 348 12 0 1 348 1 348 0.0  701
+sp|P08100|OPSD_HUMAN gi|3024260|sp|P56514.1|OPSD_BUFBU 84.80 342 51 1 1 341 1 342 0.0  619
+sp|P08100|OPSD_HUMAN gi|283855846|gb|ADB45242.1| 94.82 328 17 0 11 338 1 328 0.0  653
+sp|P08100|OPSD_HUMAN gi|283855823|gb|ADB45229.1| 94.82 328 17 0 11 338 1 328 0.0  631
+sp|P08100|OPSD_HUMAN gi|223523|prf||0811197A 93.10 348 23 1 1 348 1 347 0.0  673
+sp|P08100|OPSD_HUMAN gi|12583665|dbj|BAB21486.1| 82.16 342 60 1 1 341 1 342 0.0  599
b
diff -r d05fadb1c7b5 -r a9142939d718 test-data/four_human_proteins.fasta
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/four_human_proteins.fasta Fri Feb 03 05:15:12 2017 -0500
b
@@ -0,0 +1,61 @@
+>sp|Q9BS26|ERP44_HUMAN Endoplasmic reticulum resident protein 44 OS=Homo sapiens GN=ERP44 PE=1 SV=1
+MHPAVFLSLPDLRCSLLLLVTWVFTPVTTEITSLDTENIDEILNNADVALVNFYADWCRF
+SQMLHPIFEEASDVIKEEFPNENQVVFARVDCDQHSDIAQRYRISKYPTLKLFRNGMMMK
+REYRGQRSVKALADYIRQQKSDPIQEIRDLAEITTLDRSKRNIIGYFEQKDSDNYRVFER
+VANILHDDCAFLSAFGDVSKPERYSGDNIIYKPPGHSAPDMVYLGAMTNFDVTYNWIQDK
+CVPLVREITFENGEELTEEGLPFLILFHMKEDTESLEIFQNEVARQLISEKGTINFLHAD
+CDKFRHPLLHIQKTPADCPVIAIDSFRHMYVFGDFKDVLIPGKLKQFVFDLHSGKLHREF
+HHGPDPTDTAPGEQAQDVASSPPESSFQKLAPSEYRYTLLRDRDEL
+>sp|Q9NSY1|BMP2K_HUMAN BMP-2-inducible protein kinase OS=Homo sapiens GN=BMP2K PE=1 SV=2
+MKKFSRMPKSEGGSGGGAAGGGAGGAGAGAGCGSGGSSVGVRVFAVGRHQVTLEESLAEG
+GFSTVFLVRTHGGIRCALKRMYVNNMPDLNVCKREITIMKELSGHKNIVGYLDCAVNSIS
+DNVWEVLILMEYCRAGQVVNQMNKKLQTGFTEPEVLQIFCDTCEAVARLHQCKTPIIHRD
+LKVENILLNDGGNYVLCDFGSATNKFLNPQKDGVNVVEEEIKKYTTLSYRAPEMINLYGG
+KPITTKADIWALGCLLYKLCFFTLPFGESQVAICDGNFTIPDNSRYSRNIHCLIRFMLEP
+DPEHRPDIFQVSYFAFKFAKKDCPVSNINNSSIPSALPEPMTASEAAARKSQIKARITDT
+IGPTETSIAPRQRPKANSATTATPSVLTIQSSATPVKVLAPGEFGNHRPKGALRPGNGPE
+ILLGQGPPQQPPQQHRVLQQLQQGDWRLQQLHLQHRHPHQQQQQQQQQQQQQQQQQQQQQ
+QQQQQQHHHHHHHHLLQDAYMQQYQHATQQQQMLQQQFLMHSVYQPQPSASQYPTMMPQY
+QQAFFQQQMLAQHQPSQQQASPEYLTSPQEFSPALVSYTSSLPAQVGTIMDSSYSANRSV
+ADKEAIANFTNQKNISNPPDMSGWNPFGEDNFSKLTEEELLDREFDLLRSNRLEERASSD
+KNVDSLSAPHNHPPEDPFGSVPFISHSGSPEKKAEHSSINQENGTANPIKNGKTSPASKD
+QRTGKKTSVQGQVQKGNDESESDFESDPPSPKSSEEEEQDDEEVLQGEQGDFNDDDTEPE
+NLGHRPLLMDSEDEEEEEKHSSDSDYEQAKAKYSDMSSVYRDRSGSGPTQDLNTILLTSA
+QLSSDVAVETPKQEFDVFGAVPFFAVRAQQPQQEKNEKNLPQHRFPAAGLEQEEFDVFTK
+APFSKKVNVQECHAVGPEAHTIPGYPKSVDVFGSTPFQPFLTSTSKSESNEDLFGLVPFD
+EITGSQQQKVKQRSLQKLSSRQRRTKQDMSKSNGKRHHGTPTSTKKTLKPTYRTPERARR
+HKKVGRRDSQSSNEFLTISDSKENISVALTDGKDRGNVLQPEESLLDPFGAKPFHSPDLS
+WHPPHQGLSDIRADHNTVLPGRPRQNSLHGSFHSADVLKMDDFGAVPFTELVVQSITPHQ
+SQQSQPVELDPFGAAPFPSKQ
+>sp|P06213|INSR_HUMAN Insulin receptor OS=Homo sapiens GN=INSR PE=1 SV=4
+MATGGRRGAAAAPLLVAVAALLLGAAGHLYPGEVCPGMDIRNNLTRLHELENCSVIEGHL
+QILLMFKTRPEDFRDLSFPKLIMITDYLLLFRVYGLESLKDLFPNLTVIRGSRLFFNYAL
+VIFEMVHLKELGLYNLMNITRGSVRIEKNNELCYLATIDWSRILDSVEDNYIVLNKDDNE
+ECGDICPGTAKGKTNCPATVINGQFVERCWTHSHCQKVCPTICKSHGCTAEGLCCHSECL
+GNCSQPDDPTKCVACRNFYLDGRCVETCPPPYYHFQDWRCVNFSFCQDLHHKCKNSRRQG
+CHQYVIHNNKCIPECPSGYTMNSSNLLCTPCLGPCPKVCHLLEGEKTIDSVTSAQELRGC
+TVINGSLIINIRGGNNLAAELEANLGLIEEISGYLKIRRSYALVSLSFFRKLRLIRGETL
+EIGNYSFYALDNQNLRQLWDWSKHNLTITQGKLFFHYNPKLCLSEIHKMEEVSGTKGRQE
+RNDIALKTNGDQASCENELLKFSYIRTSFDKILLRWEPYWPPDFRDLLGFMLFYKEAPYQ
+NVTEFDGQDACGSNSWTVVDIDPPLRSNDPKSQNHPGWLMRGLKPWTQYAIFVKTLVTFS
+DERRTYGAKSDIIYVQTDATNPSVPLDPISVSNSSSQIILKWKPPSDPNGNITHYLVFWE
+RQAEDSELFELDYCLKGLKLPSRTWSPPFESEDSQKHNQSEYEDSAGECCSCPKTDSQIL
+KELEESSFRKTFEDYLHNVVFVPRKTSSGTGAEDPRPSRKRRSLGDVGNVTVAVPTVAAF
+PNTSSTSVPTSPEEHRPFEKVVNKESLVISGLRHFTGYRIELQACNQDTPEERCSVAAYV
+SARTMPEAKADDIVGPVTHEIFENNVVHLMWQEPKEPNGLIVLYEVSYRRYGDEELHLCV
+SRKHFALERGCRLRGLSPGNYSVRIRATSLAGNGSWTEPTYFYVTDYLDVPSNIAKIIIG
+PLIFVFLFSVVIGSIYLFLRKRQPDGPLGPLYASSNPEYLSASDVFPCSVYVPDEWEVSR
+EKITLLRELGQGSFGMVYEGNARDIIKGEAETRVAVKTVNESASLRERIEFLNEASVMKG
+FTCHHVVRLLGVVSKGQPTLVVMELMAHGDLKSYLRSLRPEAENNPGRPPPTLQEMIQMA
+AEIADGMAYLNAKKFVHRDLAARNCMVAHDFTVKIGDFGMTRDIYETDYYRKGGKGLLPV
+RWMAPESLKDGVFTTSSDMWSFGVVLWEITSLAEQPYQGLSNEQVLKFVMDGGYLDQPDN
+CPERVTDLMRMCWQFNPKMRPTFLEIVNLLKDDLHPSFPEVSFFHSEENKAPESEELEME
+FEDMENVPLDRSSHCQREEAGGRDGGSSLGFKRSYEEHIPYTHMNGGKKNGRILTLPRSN
+PS
+>sp|P08100|OPSD_HUMAN Rhodopsin OS=Homo sapiens GN=RHO PE=1 SV=1
+MNGTEGPNFYVPFSNATGVVRSPFEYPQYYLAEPWQFSMLAAYMFLLIVLGFPINFLTLY
+VTVQHKKLRTPLNYILLNLAVADLFMVLGGFTSTLYTSLHGYFVFGPTGCNLEGFFATLG
+GEIALWSLVVLAIERYVVVCKPMSNFRFGENHAIMGVAFTWVMALACAAPPLAGWSRYIP
+EGLQCSCGIDYYTLKPEVNNESFVIYMFVVHFTIPMIIIFFCYGQLVFTVKEAAAQQQES
+ATTQKAEKEVTRMVIIMVIAFLICWVPYASVAFYIFTHQGSNFGPIFMTIPAFFAKSAAI
+YNPVIYIMMNKQFRNCMLTTICCGKNPLGDDEASATVSKTETSQVAPA
b
diff -r d05fadb1c7b5 -r a9142939d718 test-data/four_human_proteins_filter_a.fasta
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/four_human_proteins_filter_a.fasta Fri Feb 03 05:15:12 2017 -0500
b
@@ -0,0 +1,2 @@
+>sp|P08100|OPSD_HUMAN Rhodopsin OS=Homo sapiens GN=RHO PE=1 SV=1
+MNGTEGPNFYVPFSNATGVVRSPFEYPQYYLAEPWQFSMLAAYMFLLIVLGFPINFLTLYVTVQHKKLRTPLNYILLNLAVADLFMVLGGFTSTLYTSLHGYFVFGPTGCNLEGFFATLGGEIALWSLVVLAIERYVVVCKPMSNFRFGENHAIMGVAFTWVMALACAAPPLAGWSRYIPEGLQCSCGIDYYTLKPEVNNESFVIYMFVVHFTIPMIIIFFCYGQLVFTVKEAAAQQQESATTQKAEKEVTRMVIIMVIAFLICWVPYASVAFYIFTHQGSNFGPIFMTIPAFFAKSAAIYNPVIYIMMNKQFRNCMLTTICCGKNPLGDDEASATVSKTETSQVAPA
b
diff -r d05fadb1c7b5 -r a9142939d718 test-data/four_human_proteins_filter_b.fasta
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/four_human_proteins_filter_b.fasta Fri Feb 03 05:15:12 2017 -0500
b
@@ -0,0 +1,6 @@
+>sp|Q9BS26|ERP44_HUMAN Endoplasmic reticulum resident protein 44 OS=Homo sapiens GN=ERP44 PE=1 SV=1
+MHPAVFLSLPDLRCSLLLLVTWVFTPVTTEITSLDTENIDEILNNADVALVNFYADWCRFSQMLHPIFEEASDVIKEEFPNENQVVFARVDCDQHSDIAQRYRISKYPTLKLFRNGMMMKREYRGQRSVKALADYIRQQKSDPIQEIRDLAEITTLDRSKRNIIGYFEQKDSDNYRVFERVANILHDDCAFLSAFGDVSKPERYSGDNIIYKPPGHSAPDMVYLGAMTNFDVTYNWIQDKCVPLVREITFENGEELTEEGLPFLILFHMKEDTESLEIFQNEVARQLISEKGTINFLHADCDKFRHPLLHIQKTPADCPVIAIDSFRHMYVFGDFKDVLIPGKLKQFVFDLHSGKLHREFHHGPDPTDTAPGEQAQDVASSPPESSFQKLAPSEYRYTLLRDRDEL
+>sp|Q9NSY1|BMP2K_HUMAN BMP-2-inducible protein kinase OS=Homo sapiens GN=BMP2K PE=1 SV=2
+MKKFSRMPKSEGGSGGGAAGGGAGGAGAGAGCGSGGSSVGVRVFAVGRHQVTLEESLAEGGFSTVFLVRTHGGIRCALKRMYVNNMPDLNVCKREITIMKELSGHKNIVGYLDCAVNSISDNVWEVLILMEYCRAGQVVNQMNKKLQTGFTEPEVLQIFCDTCEAVARLHQCKTPIIHRDLKVENILLNDGGNYVLCDFGSATNKFLNPQKDGVNVVEEEIKKYTTLSYRAPEMINLYGGKPITTKADIWALGCLLYKLCFFTLPFGESQVAICDGNFTIPDNSRYSRNIHCLIRFMLEPDPEHRPDIFQVSYFAFKFAKKDCPVSNINNSSIPSALPEPMTASEAAARKSQIKARITDTIGPTETSIAPRQRPKANSATTATPSVLTIQSSATPVKVLAPGEFGNHRPKGALRPGNGPEILLGQGPPQQPPQQHRVLQQLQQGDWRLQQLHLQHRHPHQQQQQQQQQQQQQQQQQQQQQQQQQQQHHHHHHHHLLQDAYMQQYQHATQQQQMLQQQFLMHSVYQPQPSASQYPTMMPQYQQAFFQQQMLAQHQPSQQQASPEYLTSPQEFSPALVSYTSSLPAQVGTIMDSSYSANRSVADKEAIANFTNQKNISNPPDMSGWNPFGEDNFSKLTEEELLDREFDLLRSNRLEERASSDKNVDSLSAPHNHPPEDPFGSVPFISHSGSPEKKAEHSSINQENGTANPIKNGKTSPASKDQRTGKKTSVQGQVQKGNDESESDFESDPPSPKSSEEEEQDDEEVLQGEQGDFNDDDTEPENLGHRPLLMDSEDEEEEEKHSSDSDYEQAKAKYSDMSSVYRDRSGSGPTQDLNTILLTSAQLSSDVAVETPKQEFDVFGAVPFFAVRAQQPQQEKNEKNLPQHRFPAAGLEQEEFDVFTKAPFSKKVNVQECHAVGPEAHTIPGYPKSVDVFGSTPFQPFLTSTSKSESNEDLFGLVPFDEITGSQQQKVKQRSLQKLSSRQRRTKQDMSKSNGKRHHGTPTSTKKTLKPTYRTPERARRHKKVGRRDSQSSNEFLTISDSKENISVALTDGKDRGNVLQPEESLLDPFGAKPFHSPDLSWHPPHQGLSDIRADHNTVLPGRPRQNSLHGSFHSADVLKMDDFGAVPFTELVVQSITPHQSQQSQPVELDPFGAAPFPSKQ
+>sp|P06213|INSR_HUMAN Insulin receptor OS=Homo sapiens GN=INSR PE=1 SV=4
+MATGGRRGAAAAPLLVAVAALLLGAAGHLYPGEVCPGMDIRNNLTRLHELENCSVIEGHLQILLMFKTRPEDFRDLSFPKLIMITDYLLLFRVYGLESLKDLFPNLTVIRGSRLFFNYALVIFEMVHLKELGLYNLMNITRGSVRIEKNNELCYLATIDWSRILDSVEDNYIVLNKDDNEECGDICPGTAKGKTNCPATVINGQFVERCWTHSHCQKVCPTICKSHGCTAEGLCCHSECLGNCSQPDDPTKCVACRNFYLDGRCVETCPPPYYHFQDWRCVNFSFCQDLHHKCKNSRRQGCHQYVIHNNKCIPECPSGYTMNSSNLLCTPCLGPCPKVCHLLEGEKTIDSVTSAQELRGCTVINGSLIINIRGGNNLAAELEANLGLIEEISGYLKIRRSYALVSLSFFRKLRLIRGETLEIGNYSFYALDNQNLRQLWDWSKHNLTITQGKLFFHYNPKLCLSEIHKMEEVSGTKGRQERNDIALKTNGDQASCENELLKFSYIRTSFDKILLRWEPYWPPDFRDLLGFMLFYKEAPYQNVTEFDGQDACGSNSWTVVDIDPPLRSNDPKSQNHPGWLMRGLKPWTQYAIFVKTLVTFSDERRTYGAKSDIIYVQTDATNPSVPLDPISVSNSSSQIILKWKPPSDPNGNITHYLVFWERQAEDSELFELDYCLKGLKLPSRTWSPPFESEDSQKHNQSEYEDSAGECCSCPKTDSQILKELEESSFRKTFEDYLHNVVFVPRKTSSGTGAEDPRPSRKRRSLGDVGNVTVAVPTVAAFPNTSSTSVPTSPEEHRPFEKVVNKESLVISGLRHFTGYRIELQACNQDTPEERCSVAAYVSARTMPEAKADDIVGPVTHEIFENNVVHLMWQEPKEPNGLIVLYEVSYRRYGDEELHLCVSRKHFALERGCRLRGLSPGNYSVRIRATSLAGNGSWTEPTYFYVTDYLDVPSNIAKIIIGPLIFVFLFSVVIGSIYLFLRKRQPDGPLGPLYASSNPEYLSASDVFPCSVYVPDEWEVSREKITLLRELGQGSFGMVYEGNARDIIKGEAETRVAVKTVNESASLRERIEFLNEASVMKGFTCHHVVRLLGVVSKGQPTLVVMELMAHGDLKSYLRSLRPEAENNPGRPPPTLQEMIQMAAEIADGMAYLNAKKFVHRDLAARNCMVAHDFTVKIGDFGMTRDIYETDYYRKGGKGLLPVRWMAPESLKDGVFTTSSDMWSFGVVLWEITSLAEQPYQGLSNEQVLKFVMDGGYLDQPDNCPERVTDLMRMCWQFNPKMRPTFLEIVNLLKDDLHPSFPEVSFFHSEENKAPESEELEMEFEDMENVPLDRSSHCQREEAGGRDGGSSLGFKRSYEEHIPYTHMNGGKKNGRILTLPRSNPS
b
diff -r d05fadb1c7b5 -r a9142939d718 tools/fasta_filter_by_id/README.rst
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/fasta_filter_by_id/README.rst Fri Feb 03 05:15:12 2017 -0500
b
@@ -0,0 +1,112 @@
+Obsolete
+========
+
+This tool is now obsolete, having been replaced by a more general version
+covering the FASTA, FASTQ and SFF sequence formats in a single tool. You
+should only install this tool if you need to support existing workflows
+which used it.
+
+
+Galaxy tool to filter FASTA sequences by ID
+===========================================
+
+This tool is copyright 2010-2017 by Peter Cock, The James Hutton Institute
+(formerly SCRI, Scottish Crop Research Institute), UK. All rights reserved.
+See the licence text below (MIT licence).
+
+This tool is a short Python script (using the Galaxy library functions) which
+divides a FASTA file in two, those sequences with or without an ID present in
+the specified column(s) of a tabular file. Example uses include filtering based
+on search results from a tool like NCBI BLAST, TMHMM or SignalP.
+
+There are just two files to install:
+
+* fasta_filter_by_id.py (the Python script)
+* fasta_filter_by_id.xml (the Galaxy tool definition)
+
+The suggested location is next to the similarly named fasta_filter_by_length.py
+and fasta_filter_by_length.xml files which are included with Galaxy, i.e.
+in the Galaxy folder tools/fasta_tools
+
+You will also need to modify the tools_conf.xml file to tell Galaxy to offer
+the tool. The suggested location is next to the fasta_filter_by_length.xml
+entry. Simply add the line:
+
+<tool file="fasta_tools/fasta_filter_by_id.xml" />
+
+That's it.
+
+
+History
+=======
+
+======= ======================================================================
+Version Changes
+------- ----------------------------------------------------------------------
+v0.0.1  - Initial version (not publicly released)
+v0.0.2  - Allow both, just pos or just neg output files
+v0.0.3  - Include FASTA in tool name
+v0.0.4  - Deprecated, marked as hidden in the XML
+v0.0.5  - Explicit dependency on ``galaxy_sequence_utils``.
+        - Citation information (Cock et al. 2013).
+        - Explicitly record version via ``<version_command>``.
+======= ======================================================================
+
+
+Developers
+==========
+
+This script and other tools for filtering FASTA, FASTQ and SFF files were
+initially developed on the following hg branches:
+http://bitbucket.org/peterjc/galaxy-central/src/tools
+http://bitbucket.org/peterjc/galaxy-central/src/fasta_filter
+
+It is now under GitHub https://github.com/peterjc/pico_galaxy/
+
+For pushing a release to the test or main "Galaxy Tool Shed", use the following
+Planemo commands (which requires you have set your Tool Shed access details in
+``~/.planemo.yml`` and that you have access rights on the Tool Shed)::
+
+    $ planemo shed_update -t testtoolshed --check_diff tools/fasta_filter_by_id/
+    ...
+
+or::
+
+    $ planemo shed_update -t toolshed --check_diff tools/fasta_filter_by_id/
+    ...
+
+To just build and check the tar ball, use::
+
+    $ planemo shed_upload --tar_only tools/fasta_filter_by_id/
+    ...
+    $ tar -tzf shed_upload.tar.gz
+    tools/fasta_filter_by_id/README.rst
+    tools/fasta_filter_by_id/fasta_filter_by_id.py
+    tools/fasta_filter_by_id/fasta_filter_by_id.xml
+    tools/fasta_filter_by_id/tool_dependencies.xml
+    test-data/four_human_proteins.fasta
+    test-data/blastp_four_human_vs_rhodopsin.tabular
+    test-data/four_human_proteins_filter_a.fasta
+    test-data/four_human_proteins_filter_b.fasta
+
+
+Licence (MIT/BSD style)
+=======================
+
+Permission to use, copy, modify, and distribute this software and its
+documentation with or without modifications and for any purpose and
+without fee is hereby granted, provided that any copyright notices
+appear in all copies and that both those copyright notices and this
+permission notice appear in supporting documentation, and that the
+names of the contributors or copyright holders not be used in
+advertising or publicity pertaining to distribution of the software
+without specific prior permission.
+
+THE CONTRIBUTORS AND COPYRIGHT HOLDERS OF THIS SOFTWARE DISCLAIM ALL
+WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL THE
+CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT
+OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
+OR PERFORMANCE OF THIS SOFTWARE.
b
diff -r d05fadb1c7b5 -r a9142939d718 tools/fasta_filter_by_id/fasta_filter_by_id.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/fasta_filter_by_id/fasta_filter_by_id.py Fri Feb 03 05:15:12 2017 -0500
[
@@ -0,0 +1,95 @@
+#!/usr/bin/env python
+"""Filter a FASTA file with IDs from a tabular file, e.g. from BLAST.
+
+NOTE - This script is now OBSOLETE, having been replaced by a new verion
+which handles FASTA, FASTQ and SFF all in one.
+
+Takes five command line options, tabular filename, ID column numbers
+(comma separated list using one based counting), input FASTA filename, and
+two output FASTA filenames (for records with and without the given IDs).
+
+If either output filename is just a minus sign, that file is not created.
+This is intended to allow output for just the matched (or just the non-matched)
+records.
+
+Note in the default NCBI BLAST+ tabular output, the query sequence ID is
+in column one, and the ID of the match from the database is in column two.
+Here sensible values for the column numbers would therefore be "1" or "2".
+
+This tool is copyright 2010-2017 by Peter Cock, The James Hutton Institute
+(formerly SCRI, Scottish Crop Research Institute), UK. All rights reserved.
+See accompanying text file for licence details (MIT license).
+"""
+import sys
+
+if "-v" in sys.argv or "--version" in sys.argv:
+    print "v0.0.5"
+    sys.exit(0)
+
+from galaxy_utils.sequence.fasta import fastaReader, fastaWriter
+
+# Parse Command Line
+try:
+    tabular_file, cols_arg, in_file, out_positive_file, out_negative_file = sys.argv[1:]
+except ValueError:
+    sys.exit("Expected five arguments, got %i:\n%s" % (len(sys.argv)-1, " ".join(sys.argv)))
+try:
+    columns = [int(arg)-1 for arg in cols_arg.split(",")]
+except ValueError:
+    sys.exit("Expected list of columns (comma separated integers), got %s" % cols_arg)
+
+# Read tabular file and record all specified identifiers
+ids = set()
+handle = open(tabular_file, "rU")
+if len(columns) > 1:
+    # General case of many columns
+    for line in handle:
+        if line.startswith("#"):
+            # Ignore comments
+            continue
+        parts = line.rstrip("\n").split("\t")
+        for col in columns:
+            ids.add(parts[col])
+    print "Using %i IDs from %i columns of tabular file" % (len(ids), len(columns))
+else:
+    # Single column, special case speed up
+    col = columns[0]
+    for line in handle:
+        if not line.startswith("#"):
+            ids.add(line.rstrip("\n").split("\t")[col])
+    print "Using %i IDs from tabular file" % (len(ids))
+handle.close()
+
+# Write filtered FASTA file based on IDs from tabular file
+reader = fastaReader(open(in_file, "rU"))
+if out_positive_file != "-" and out_negative_file != "-":
+    print "Generating two FASTA files"
+    positive_writer = fastaWriter(open(out_positive_file, "w"))
+    negative_writer = fastaWriter(open(out_negative_file, "w"))
+    for record in reader:
+        # The [1:] is because the fastaReader leaves the > on the identifer.
+        if record.identifier and record.identifier.split()[0][1:] in ids:
+            positive_writer.write(record)
+        else:
+            negative_writer.write(record)
+    positive_writer.close()
+    negative_writer.close()
+elif out_positive_file != "-":
+    print "Generating matching FASTA file"
+    positive_writer = fastaWriter(open(out_positive_file, "w"))
+    for record in reader:
+        # The [1:] is because the fastaReader leaves the > on the identifer.
+        if record.identifier and record.identifier.split()[0][1:] in ids:
+            positive_writer.write(record)
+    positive_writer.close()
+elif out_negative_file != "-":
+    print "Generating non-matching FASTA file"
+    negative_writer = fastaWriter(open(out_negative_file, "w"))
+    for record in reader:
+        # The [1:] is because the fastaReader leaves the > on the identifer.
+        if not record.identifier or record.identifier.split()[0][1:] not in ids:
+            negative_writer.write(record)
+    negative_writer.close()
+else:
+    sys.exit("Neither output file requested")
+reader.close()
b
diff -r d05fadb1c7b5 -r a9142939d718 tools/fasta_filter_by_id/fasta_filter_by_id.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/fasta_filter_by_id/fasta_filter_by_id.xml Fri Feb 03 05:15:12 2017 -0500
[
@@ -0,0 +1,95 @@
+<tool id="fasta_filter_by_id" name="Filter FASTA by ID" version="0.0.5" hidden="true">
+    <description>from a tabular file</description>
+    <requirements>
+        <requirement type="package" version="1.0.1">galaxy_sequence_utils</requirement>
+    </requirements>
+    <version_command interpreter="python">fasta_filter_by_id.py --version</version_command>
+    <command interpreter="python">
+fasta_filter_by_id.py $input_tabular $columns $input_fasta
+#if $output_choice_cond.output_choice=="both"
+ $output_pos $output_neg
+#elif $output_choice_cond.output_choice=="pos"
+ $output_pos -
+#elif $output_choice_cond.output_choice=="neg"
+ - $output_neg
+#end if
+    </command>
+    <inputs>
+        <param name="input_fasta" type="data" format="fasta" label="FASTA file to filter on the identifiers"/>
+        <param name="input_tabular" type="data" format="tabular" label="Tabular file containing FASTA identifiers"/>
+        <param name="columns" type="data_column" data_ref="input_tabular" multiple="True" numerical="False" label="Column(s) containing FASTA identifiers" help="Multi-select list - hold the appropriate key while clicking to select multiple columns">
+            <validator type="no_options" message="Pick at least one column"/>
+        </param>
+        <conditional name="output_choice_cond">
+            <param name="output_choice" type="select" label="Output positive matches, negative matches, or both?">
+                <option value="both">Both positive matches (ID on list) and negative matches (ID not on list), as two FASTA files</option>
+                <option value="pos">Just positive matches (ID on list), as a single FASTA file</option>
+                <option value="neg">Just negative matches (ID not on list), as a single FASTA file</option>
+            </param>
+            <!-- Seems need these dummy entries here, compare this to indels/indel_sam2interval.xml -->
+            <when value="both" />
+            <when value="pos" />
+            <when value="neg" />
+        </conditional>
+    </inputs>
+    <outputs>
+        <data name="output_pos" format="fasta" label="With matched ID">
+            <filter>output_choice_cond["output_choice"] != "neg"</filter>
+        </data>
+        <data name="output_neg" format="fasta" label="Without matched ID">
+            <filter>output_choice_cond["output_choice"] != "pos"</filter>
+        </data>
+    </outputs>
+    <tests>
+        <test>
+            <param name="input_fasta" value="four_human_proteins.fasta" ftype="fasta" />
+            <param name="input_tabular" value="blastp_four_human_vs_rhodopsin.tabular" ftype="tabular" />
+            <param name="columns" value="1" />
+            <param name="output_choice" value="both" />
+            <output name="output_pos" file="four_human_proteins_filter_a.fasta" ftype="fasta" />
+            <output name="output_neg" file="four_human_proteins_filter_b.fasta" ftype="fasta" />
+        </test>
+        <test>
+            <param name="input_fasta" value="four_human_proteins.fasta" ftype="fasta" />
+            <param name="input_tabular" value="blastp_four_human_vs_rhodopsin.tabular" ftype="tabular" />
+            <param name="columns" value="1" />
+            <param name="output_choice" value="pos" />
+            <output name="output_pos" file="four_human_proteins_filter_a.fasta" ftype="fasta" />
+        </test>
+        <test>
+            <param name="input_fasta" value="four_human_proteins.fasta" ftype="fasta" />
+            <param name="input_tabular" value="blastp_four_human_vs_rhodopsin.tabular" ftype="tabular" />
+            <param name="columns" value="1" />
+            <param name="output_choice" value="neg" />
+            <output name="output_neg" file="four_human_proteins_filter_b.fasta" ftype="fasta" />
+        </test>
+    </tests>
+    <help>
+
+**Deprecated**
+
+This tool is now obsolete, and should not be used in future. It has been
+replaced by a more general version covering FASTA, FASTQ and SFF in one
+single tool.
+
+**What it does**
+
+By default it divides a FASTA file in two, those sequences with or without an
+ID present in the tabular file column(s) specified. You can opt to have a
+single output file of just the matching records, or just the non-matching ones.
+
+Note that the order of sequences in the original FASTA file is preserved.
+Also, if any sequences share an identifier, duplicates are not removed.
+
+**Example Usage**
+
+Given a FASTA file of proteins you might run a signal peptide search (e.g.
+via the SignalP wrapper for Galaxy), then filtered these tabular results to
+select just those with a signal peptide. You could then use this tool to get
+a FASTA file of only the proteins with predicted signal peptides.
+
+    </help>
+    <citations>
+        <citation type="doi">10.7717/peerj.167</citation>
+    </citations>
+</tool>
b
diff -r d05fadb1c7b5 -r a9142939d718 tools/fasta_filter_by_id/tool_dependencies.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/fasta_filter_by_id/tool_dependencies.xml Fri Feb 03 05:15:12 2017 -0500
b
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<tool_dependency>
+    <package name="galaxy_sequence_utils" version="1.0.1">
+        <repository changeset_revision="c38bd3fe9da6" name="package_galaxy_sequence_utils_1_0_1" owner="iuc" toolshed="https://testtoolshed.g2.bx.psu.edu" />
+    </package>
+</tool_dependency>
b
diff -r d05fadb1c7b5 -r a9142939d718 tools/fasta_tools/fasta_filter_by_id.py
--- a/tools/fasta_tools/fasta_filter_by_id.py Fri Apr 12 06:34:51 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,86 +0,0 @@
-#!/usr/bin/env python
-"""Filter a FASTA file with IDs from a tabular file, e.g. from BLAST.
-
-Takes five command line options, tabular filename, ID column numbers
-(comma separated list using one based counting), input FASTA filename, and
-two output FASTA filenames (for records with and without any BLAST hits).
-If the either output filename is just a minus sign, that file is not created.
-This is intended to allow output for just the matched (or just the non-matched)
-records.
-
-Note in the default NCBI BLAST+ tabular output, the query sequence ID is
-in column one, and the ID of the match from the database is in column two.
-Here sensible values for the column numbers would therefore be "1" or "2".
-"""
-import sys
-from galaxy_utils.sequence.fasta import fastaReader, fastaWriter
-
-def stop_err( msg ):
-    sys.stderr.write( msg )
-    sys.exit()
-
-#Parse Command Line
-try:
-    tabular_file, cols_arg, in_file, out_positive_file, out_negative_file = sys.argv[1:]
-except ValueError:
-    stop_err("Expected five arguments, got %i:\n%s" % (len(sys.argv)-1, " ".join(sys.argv)))
-try:
-    columns = [int(arg)-1 for arg in cols_arg.split(",")]
-except ValueError:
-    stop_err("Expected list of columns (comma separated integers), got %s" % cols_arg)
-
-#Read tabular file and record all specified identifiers
-ids = set()
-handle = open(tabular_file, "rU")
-if len(columns)>1:
-    #General case of many columns
-    for line in handle:
-        if line.startswith("#"):
-            #Ignore comments
-            continue
-        parts = line.rstrip("\n").split("\t")
-        for col in columns:
-            ids.add(parts[col])
-    print "Using %i IDs from %i columns of tabular file" % (len(ids), len(columns))
-else:
-    #Single column, special case speed up
-    col = columns[0]
-    for line in handle:
-        if not line.startswith("#"):
-            ids.add(line.rstrip("\n").split("\t")[col])
-    print "Using %i IDs from tabular file" % (len(ids))
-handle.close()
-
-#Write filtered FASTA file based on IDs from BLAST file
-reader = fastaReader(open(in_file, "rU"))
-if out_positive_file != "-" and out_negative_file != "-":
-    print "Generating two FASTA files"
-    positive_writer = fastaWriter(open(out_positive_file, "w"))
-    negative_writer = fastaWriter(open(out_negative_file, "w"))
-    for record in reader:
-        #The [1:] is because the fastaReader leaves the > on the identifer.
-        if record.identifier and record.identifier.split()[0][1:] in ids:
-            positive_writer.write(record)
-        else:
-            negative_writer.write(record)
-    positive_writer.close()
-    negative_writer.close()
-elif out_positive_file != "-":
-    print "Generating matching FASTA file"
-    positive_writer = fastaWriter(open(out_positive_file, "w"))
-    for record in reader:
-        #The [1:] is because the fastaReader leaves the > on the identifer.
-        if record.identifier and record.identifier.split()[0][1:] in ids:
-            positive_writer.write(record)
-    positive_writer.close()
-elif out_negative_file != "-":
-    print "Generating non-matching FASTA file"
-    negative_writer = fastaWriter(open(out_negative_file, "w"))
-    for record in reader:
-        #The [1:] is because the fastaReader leaves the > on the identifer.
-        if not record.identifier or record.identifier.split()[0][1:] not in ids:
-            negative_writer.write(record)
-    negative_writer.close()
-else:
-    stop_err("Neither output file requested")
-reader.close()
b
diff -r d05fadb1c7b5 -r a9142939d718 tools/fasta_tools/fasta_filter_by_id.txt
--- a/tools/fasta_tools/fasta_filter_by_id.txt Fri Apr 12 06:34:51 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,74 +0,0 @@
-Galaxy tool to filter FASTA sequences by ID
-===========================================
-
-This tool is copyright 2010 by Peter Cock, SCRI, UK. All rights reserved.
-See the licence text below.
-
-This tool is a short Python script (using the Galaxy library functions) which
-divides a FASTA file in two, those sequences with or without an ID present in
-the specified column(s) of a tabular file. Example uses include filtering based
-on search results from a tool like NCBI BLAST, TMHMM or SignalP.
-
-There are just two files to install:
-
-* fasta_filter_by_id.py (the Python script)
-* fasta_filter_by_id.xml (the Galaxy tool definition)
-
-The suggested location is next to the similarly names fasta_filter_by_length.py
-and fasta_filter_by_length.xml files which are included with Galaxy, i.e.
-in the Galaxy folder tools/fasta_tools
-
-You will also need to modify the tools_conf.xml file to tell Galaxy to offer
-the tool. The suggested location is next to the fasta_filter_by_length.xml
-entry. Simply add the line:
-
-<tool file="fasta_tools/fasta_filter_by_id.xml" />
-
-That's it.
-
-
-History
-=======
-
-v0.0.1 - Initial verion (not publicly released)
-v0.0.2 - Allow both, just pos or just neg output files
-
-Developers
-==========
-
-These wrappers are currently being developed on the following hg branch:
-http://bitbucket.org/peterjc/galaxy-central/src/fasta_filter
-
-For making the "Galaxy Tool Shed" http://community.g2.bx.psu.edu/ tarball use
-the following command from the Galaxy root folder:
-
-tar -czf fasta_filter_by_id.tar.gz tools/fasta_tools/fasta_filter_by_id.*
-
-Check this worked:
-
-$ tar -tzf fasta_filter_by_id.tar.gz
-fasta_tools/fasta_filter_by_id.py
-fasta_tools/fasta_filter_by_id.txt
-fasta_tools/fasta_filter_by_id.xml
-
-
-Licence (MIT/BSD style)
-=======================
-
-Permission to use, copy, modify, and distribute this software and its
-documentation with or without modifications and for any purpose and
-without fee is hereby granted, provided that any copyright notices
-appear in all copies and that both those copyright notices and this
-permission notice appear in supporting documentation, and that the
-names of the contributors or copyright holders not be used in
-advertising or publicity pertaining to distribution of the software
-without specific prior permission.
-
-THE CONTRIBUTORS AND COPYRIGHT HOLDERS OF THIS SOFTWARE DISCLAIM ALL
-WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL THE
-CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT
-OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
-OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
-OR PERFORMANCE OF THIS SOFTWARE.
b
diff -r d05fadb1c7b5 -r a9142939d718 tools/fasta_tools/fasta_filter_by_id.xml
--- a/tools/fasta_tools/fasta_filter_by_id.xml Fri Apr 12 06:34:51 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,77 +0,0 @@
-<tool id="fasta_filter_by_id" name="Filter sequences by ID" version="0.0.2">
- <description>from a tabular file</description>
- <command interpreter="python">
-fasta_filter_by_id.py $input_tabular $columns $input_fasta
-#if $output_choice_cond.output_choice=="both"
- $output_pos $output_neg
-#elif $output_choice_cond.output_choice=="pos"
- $output_pos -
-#elif $output_choice_cond.output_choice=="neg"
- - $output_neg
-#end if
- </command>
- <inputs>
- <param name="input_fasta" type="data" format="fasta" label="FASTA file to filter on the identifiers"/>
- <param name="input_tabular" type="data" format="tabular" label="Tabular file containing FASTA identifiers"/>
- <param name="columns" type="data_column" data_ref="input_tabular" multiple="True" numerical="False" label="Column(s) containing FASTA identifiers" help="Multi-select list - hold the appropriate key while clicking to select multiple columns">
- <validator type="no_options" message="Pick at least one column"/>
- </param>
- <conditional name="output_choice_cond">
- <param name="output_choice" type="select" label="Output positive matches, negative matches, or both?">
- <option value="both">Both positive matches (ID on list) and negative matches (ID not on list), as two FASTA files</option>
- <option value="pos">Just positive matches (ID on list), as a single FASTA file</option>
- <option value="neg">Just negative matches (ID not on list), as a single FASTA file</option>
- </param>
- <!-- Seems need these dummy entries here, compare this to indels/indel_sam2interval.xml -->
- <when value="both" />
- <when value="pos" />
- <when value="neg" />
- </conditional>
- </inputs>
- <outputs>
- <data name="output_pos" format="fasta" label="With matched ID">
- <filter>output_choice_cond["output_choice"] != "neg"</filter>
- </data>
- <data name="output_neg" format="fasta" label="Without matched ID">
- <filter>output_choice_cond["output_choice"] != "pos"</filter>
- </data>
- </outputs>
- <tests>
- <!-- Can't get these unit tests to run, may be a Galaxy problem
- <test>
- <param name="input_fasta" value="four_human_proteins.fasta" ftype="fasta" />
- <param name="input_tabular" value="blastp_four_human_vs_rhodopsin.tabular" ftype="tabular" />
- <param name="columns" value="1" />
- <param name="output_choice" value="both" />
- <output name="output_pos" file="four_human_proteins_filter_a.fasta" ftype="fasta" />
- <output name="output_neg" file="four_human_proteins_filter_b.fasta" ftype="fasta" />
- </test>
- <test>
- <param name="input_fasta" value="four_human_proteins.fasta" ftype="fasta" />
- <param name="input_tabular" value="blastp_four_human_vs_rhodopsin.tabular" ftype="tabular" />
- <param name="columns" value="1" />
- <param name="output_choice" value="pos" />
- <output name="output_pos" file="four_human_proteins_filter_a.fasta" ftype="fasta" />
- </test>
- <test>
- <param name="input_fasta" value="four_human_proteins.fasta" ftype="fasta" />
- <param name="input_tabular" value="blastp_four_human_vs_rhodopsin.tabular" ftype="tabular" />
- <param name="columns" value="1" />
- <param name="output_choice" value="neg" />
- <output name="output_neg" file="four_human_proteins_filter_b.fasta" ftype="fasta" />
- </test>
- -->
- </tests>
- <help>
-
-**What it does**
-
-By default it divides a FASTA file in two, those sequences with or without an
-ID present in the tabular file column(s) specified. You can opt to have a
-single output file of just the matching records, or just the non-matching ones.
-
-Note that the order of sequences in the original FASTA file is preserved.
-Also, if any sequences share an identifier, duplicates are not removed.
-
- </help>
-</tool>