Mercurial > repos > gga > apollo_feat_from_gff3
diff export.py @ 16:12ebb583b8a3 draft
"planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit 1f9a5502a7423c78d862e81537b7646c9f4da5d9"
author | gga |
---|---|
date | Fri, 10 Dec 2021 09:52:37 +0000 |
parents | bb562d95b6cd |
children |
line wrap: on
line diff
--- a/export.py Tue Jun 08 09:14:38 2021 +0000 +++ b/export.py Fri Dec 10 09:52:37 2021 +0000 @@ -16,11 +16,13 @@ parser = argparse.ArgumentParser(description='Script to export data from Apollo via web services') CnOrGuess(parser) parser.add_argument('--gff', type=argparse.FileType('w')) + parser.add_argument('--gff_with_fasta', action='store_true') parser.add_argument('--fasta_pep', type=argparse.FileType('w')) parser.add_argument('--fasta_cds', type=argparse.FileType('w')) parser.add_argument('--fasta_cdna', type=argparse.FileType('w')) parser.add_argument('--vcf', type=argparse.FileType('w')) parser.add_argument('--json', type=argparse.FileType('w')) + parser.add_argument('--die', action='store_true') parser.add_argument('email', help='User Email') args = parser.parse_args() @@ -39,6 +41,12 @@ all_orgs = [] all_orgs = [org['commonName'] for org in all_orgs] + def error(message): + if args.die: + raise Exception(message) + else: + print(message) + org_data = [] for org_cn in org_cns: if org_cn not in all_orgs: @@ -50,39 +58,58 @@ org = wa.organisms.show_organism(org_cn) - uuid_gff = wa.io.write_downloadable(org['commonName'], 'GFF3', export_gff3_fasta=True, sequences=seqs) - if 'error' in uuid_gff or 'uuid' not in uuid_gff: - raise Exception("Apollo failed to prepare the GFF3 file for download: %s" % uuid_gff) - args.gff.write(wa.io.download(uuid_gff['uuid'], output_format="text")) + # Fetch all the refseqs + realSeqs = wa.organisms.get_sequences(org['id']) - time.sleep(1) + # We'll loop over them individually for decreased memory pressure + for sequence in realSeqs['sequences']: + print("Downloading", sequence) - uuid_vcf = wa.io.write_downloadable(org['commonName'], 'VCF', sequences=seqs) - if 'error' in uuid_vcf or 'uuid' not in uuid_vcf: - raise Exception("Apollo failed to prepare the VCF file for download: %s" % uuid_vcf) - args.vcf.write(wa.io.download(uuid_vcf['uuid'], output_format="text")) + try: + uuid_gff = wa.io.write_downloadable(org['commonName'], 'GFF3', export_gff3_fasta=args.gff_with_fasta, sequences=[sequence['name']]) + if 'error' in uuid_gff or 'uuid' not in uuid_gff: + error("Apollo failed to prepare the GFF3 file for download: %s" % uuid_gff) + args.gff.write(wa.io.download(uuid_gff['uuid'], output_format="text")) + time.sleep(1) + except Exception as e: + error(e) - time.sleep(1) + try: + uuid_vcf = wa.io.write_downloadable(org['commonName'], 'VCF', sequences=[sequence['name']]) + if 'error' in uuid_vcf or 'uuid' not in uuid_vcf: + error("Apollo failed to prepare the VCF file for download: %s" % uuid_vcf) + args.vcf.write(wa.io.download(uuid_vcf['uuid'], output_format="text")) + time.sleep(1) + except Exception as e: + error(e) - uuid_fa = wa.io.write_downloadable(org['commonName'], 'FASTA', sequences=seqs, seq_type='cdna') - if 'error' in uuid_fa or 'uuid' not in uuid_fa: - raise Exception("Apollo failed to prepare the cdna FASTA file for download: %s" % uuid_fa) - args.fasta_cdna.write(wa.io.download(uuid_fa['uuid'], output_format="text")) - - time.sleep(1) + try: + uuid_fa = wa.io.write_downloadable(org['commonName'], 'FASTA', sequences=[sequence['name']], seq_type='cdna') + if 'error' in uuid_fa or 'uuid' not in uuid_fa: + error("Apollo failed to prepare the cdna FASTA file for download: %s" % uuid_fa) + args.fasta_cdna.write(wa.io.download(uuid_fa['uuid'], output_format="text")) + time.sleep(1) + except Exception as e: + error(e) - uuid_fa = wa.io.write_downloadable(org['commonName'], 'FASTA', sequences=seqs, seq_type='cds') - if 'error' in uuid_fa or 'uuid' not in uuid_fa: - raise Exception("Apollo failed to prepare the cds FASTA file for download: %s" % uuid_fa) - args.fasta_cds.write(wa.io.download(uuid_fa['uuid'], output_format="text")) - - time.sleep(1) + try: + uuid_fa = wa.io.write_downloadable(org['commonName'], 'FASTA', sequences=[sequence['name']], seq_type='cds') + if 'error' in uuid_fa or 'uuid' not in uuid_fa: + error("Apollo failed to prepare the cds FASTA file for download: %s" % uuid_fa) + args.fasta_cds.write(wa.io.download(uuid_fa['uuid'], output_format="text")) + time.sleep(1) + except Exception as e: + error(e) - uuid_fa = wa.io.write_downloadable(org['commonName'], 'FASTA', sequences=seqs, seq_type='peptide') - if 'error' in uuid_fa or 'uuid' not in uuid_fa: - raise Exception("Apollo failed to prepare the file for download: %s" % uuid_fa) - args.fasta_pep.write(wa.io.download(uuid_fa['uuid'], output_format="text")) + try: + uuid_fa = wa.io.write_downloadable(org['commonName'], 'FASTA', sequences=[sequence['name']], seq_type='peptide') + if 'error' in uuid_fa or 'uuid' not in uuid_fa: + error("Apollo failed to prepare the file for download: %s" % uuid_fa) + args.fasta_pep.write(wa.io.download(uuid_fa['uuid'], output_format="text")) + time.sleep(1) + except Exception as e: + error(e) - org_data.append(org) + org_data.append(org) args.json.write(json.dumps(org_data, indent=2))