mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Merge pull request #7246 from davebx/csv_tsv_converters
Add converters between tabular and CSV.
This commit is contained in:
@@ -85,8 +85,12 @@
|
||||
<converter file="interval_to_tabix_converter.xml" target_datatype="tabix" depends_on="bgzip"/>
|
||||
<converter file="bed_gff_or_vcf_to_bigwig_converter.xml" target_datatype="bigwig"/>
|
||||
</datatype>
|
||||
<datatype extension="csv" type="galaxy.datatypes.tabular:CSV" display_in_upload="true"/>
|
||||
<datatype extension="tsv" type="galaxy.datatypes.tabular:TSV" display_in_upload="true"/>
|
||||
<datatype extension="csv" type="galaxy.datatypes.tabular:CSV" display_in_upload="true">
|
||||
<converter file="csv_to_tabular.xml" target_datatype="tabular"/>
|
||||
</datatype>
|
||||
<datatype extension="tsv" type="galaxy.datatypes.tabular:TSV" display_in_upload="true">
|
||||
<converter file="tabular_to_csv.xml" target_datatype="csv"/>
|
||||
</datatype>
|
||||
<datatype extension="intermine_tabular" type="galaxy.datatypes.tabular:TSV" subclass="true" display_in_upload="true">
|
||||
<display file="intermine/intermine_simple.xml"/>
|
||||
</datatype>
|
||||
@@ -326,7 +330,9 @@
|
||||
<datatype extension="sra" type="galaxy.datatypes.binary:Sra" mimetype="application/octet-stream" display_in_upload="true" description="A binary file archive format from the NCBI Sequence Read Archive with a '.sra' file extension." description_url="http://www.ncbi.nlm.nih.gov/books/n/helpsra/SRA_Overview_BK/#SRA_Overview_BK.4_SRA_Data_Structure"/>
|
||||
<datatype extension="svg" type="galaxy.datatypes.xml:GenericXml" mimetype="image/svg+xml" subclass="true"/>
|
||||
<datatype extension="taxonomy" type="galaxy.datatypes.tabular:Taxonomy" display_in_upload="true"/>
|
||||
<datatype extension="tabular" type="galaxy.datatypes.tabular:Tabular" display_in_upload="true" description="Any data in tab delimited format (tabular)." description_url="https://wiki.galaxyproject.org/Learn/Datatypes#Tabular_.28tab_delimited.29"/>
|
||||
<datatype extension="tabular" type="galaxy.datatypes.tabular:Tabular" display_in_upload="true" description="Any data in tab delimited format (tabular)." description_url="https://wiki.galaxyproject.org/Learn/Datatypes#Tabular_.28tab_delimited.29">
|
||||
<converter file="tabular_to_csv.xml" target_datatype="csv"/>
|
||||
</datatype>
|
||||
<datatype extension="twobit" type="galaxy.datatypes.binary:TwoBit" mimetype="application/octet-stream" display_in_upload="true"/>
|
||||
<datatype extension="sqlite" type="galaxy.datatypes.binary:SQlite" mimetype="application/octet-stream" display_in_upload="true"/>
|
||||
<datatype extension="gemini.sqlite" type="galaxy.datatypes.binary:GeminiSQLite" mimetype="application/octet-stream" display_in_upload="true"/>
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
<tool id="csv_to_tabular" name="Convert CSV to tabular" version="1.0.0">
|
||||
<description></description>
|
||||
<command>python '$__tool_directory__/tabular_csv.py' -o '$tabular' -i '$csv'</command>
|
||||
<inputs>
|
||||
<param format="csv" name="csv" type="data" label="Choose file with comma-separated values"/>
|
||||
</inputs>
|
||||
<outputs>
|
||||
<data format="tabular" name="tabular"/>
|
||||
</outputs>
|
||||
<help>
|
||||
</help>
|
||||
</tool>
|
||||
@@ -0,0 +1,44 @@
|
||||
#!/usr/bin/env python
|
||||
"""
|
||||
Uses the python csv library to convert to and from tabular
|
||||
|
||||
usage: %prog [--from-tabular] -i in_file -o out_file
|
||||
"""
|
||||
|
||||
import argparse
|
||||
import csv
|
||||
|
||||
|
||||
def main():
|
||||
usage = "Usage: %prog [options]"
|
||||
parser = argparse.ArgumentParser(usage=usage)
|
||||
parser.add_argument('-f', '--from-tabular', action='store_true', default=False, dest='fromtabular')
|
||||
parser.add_argument('-i', '--input', type=str, dest='input')
|
||||
parser.add_argument('-o', '--output', type=str, dest='output')
|
||||
args = parser.parse_args()
|
||||
input_fname = args.input
|
||||
output_fname = args.output
|
||||
if args.fromtabular:
|
||||
convert_to_csv(input_fname, output_fname)
|
||||
else:
|
||||
convert_to_tsv(input_fname, output_fname)
|
||||
|
||||
|
||||
def convert_to_tsv(input_fname, output_fname):
|
||||
with open(input_fname, 'rb') as csvfile:
|
||||
with open(output_fname, 'wb') as ofh:
|
||||
reader = csv.reader(csvfile)
|
||||
for line in reader:
|
||||
ofh.write('\t'.join(line) + '\n')
|
||||
|
||||
|
||||
def convert_to_csv(input_fname, output_fname):
|
||||
with open(input_fname, 'rb') as tabfile:
|
||||
with open(output_fname, 'wb') as ofh:
|
||||
writer = csv.writer(ofh, delimiter=',')
|
||||
for line in tabfile.readlines():
|
||||
writer.writerow(line.strip().split('\t'))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,12 @@
|
||||
<tool id="tabular_to_csv" name="Convert tabular to CSV" version="1.0.0">
|
||||
<description></description>
|
||||
<command>python '$__tool_directory__/tabular_csv.py' --from-tabular -i '$tabular' -o '$csv'</command>
|
||||
<inputs>
|
||||
<param format="tsv,tabular" name="tabular" type="data" label="Choose file with tab-separated values"/>
|
||||
</inputs>
|
||||
<outputs>
|
||||
<data format="csv" name="csv"/>
|
||||
</outputs>
|
||||
<help>
|
||||
</help>
|
||||
</tool>
|
||||
Reference in New Issue
Block a user