Mercurial > repos > gga > apollo_feat_from_gff3
comparison 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 | 
   comparison
  equal
  deleted
  inserted
  replaced
| 15:18217f8862ef | 16:12ebb583b8a3 | 
|---|---|
| 14 | 14 | 
| 15 if __name__ == '__main__': | 15 if __name__ == '__main__': | 
| 16 parser = argparse.ArgumentParser(description='Script to export data from Apollo via web services') | 16 parser = argparse.ArgumentParser(description='Script to export data from Apollo via web services') | 
| 17 CnOrGuess(parser) | 17 CnOrGuess(parser) | 
| 18 parser.add_argument('--gff', type=argparse.FileType('w')) | 18 parser.add_argument('--gff', type=argparse.FileType('w')) | 
| 19 parser.add_argument('--gff_with_fasta', action='store_true') | |
| 19 parser.add_argument('--fasta_pep', type=argparse.FileType('w')) | 20 parser.add_argument('--fasta_pep', type=argparse.FileType('w')) | 
| 20 parser.add_argument('--fasta_cds', type=argparse.FileType('w')) | 21 parser.add_argument('--fasta_cds', type=argparse.FileType('w')) | 
| 21 parser.add_argument('--fasta_cdna', type=argparse.FileType('w')) | 22 parser.add_argument('--fasta_cdna', type=argparse.FileType('w')) | 
| 22 parser.add_argument('--vcf', type=argparse.FileType('w')) | 23 parser.add_argument('--vcf', type=argparse.FileType('w')) | 
| 23 parser.add_argument('--json', type=argparse.FileType('w')) | 24 parser.add_argument('--json', type=argparse.FileType('w')) | 
| 25 parser.add_argument('--die', action='store_true') | |
| 24 parser.add_argument('email', help='User Email') | 26 parser.add_argument('email', help='User Email') | 
| 25 args = parser.parse_args() | 27 args = parser.parse_args() | 
| 26 | 28 | 
| 27 wa = get_apollo_instance() | 29 wa = get_apollo_instance() | 
| 28 | 30 | 
| 37 all_orgs = wa.organisms.get_organisms() | 39 all_orgs = wa.organisms.get_organisms() | 
| 38 if 'error' in all_orgs: | 40 if 'error' in all_orgs: | 
| 39 all_orgs = [] | 41 all_orgs = [] | 
| 40 all_orgs = [org['commonName'] for org in all_orgs] | 42 all_orgs = [org['commonName'] for org in all_orgs] | 
| 41 | 43 | 
| 44 def error(message): | |
| 45 if args.die: | |
| 46 raise Exception(message) | |
| 47 else: | |
| 48 print(message) | |
| 49 | |
| 42 org_data = [] | 50 org_data = [] | 
| 43 for org_cn in org_cns: | 51 for org_cn in org_cns: | 
| 44 if org_cn not in all_orgs: | 52 if org_cn not in all_orgs: | 
| 45 raise Exception("Could not find organism %s" % org_cn) | 53 raise Exception("Could not find organism %s" % org_cn) | 
| 46 | 54 | 
| 48 if not orgs: | 56 if not orgs: | 
| 49 raise Exception("You do not have read permission on organism %s" % org_cn) | 57 raise Exception("You do not have read permission on organism %s" % org_cn) | 
| 50 | 58 | 
| 51 org = wa.organisms.show_organism(org_cn) | 59 org = wa.organisms.show_organism(org_cn) | 
| 52 | 60 | 
| 53 uuid_gff = wa.io.write_downloadable(org['commonName'], 'GFF3', export_gff3_fasta=True, sequences=seqs) | 61 # Fetch all the refseqs | 
| 54 if 'error' in uuid_gff or 'uuid' not in uuid_gff: | 62 realSeqs = wa.organisms.get_sequences(org['id']) | 
| 55 raise Exception("Apollo failed to prepare the GFF3 file for download: %s" % uuid_gff) | |
| 56 args.gff.write(wa.io.download(uuid_gff['uuid'], output_format="text")) | |
| 57 | 63 | 
| 58 time.sleep(1) | 64 # We'll loop over them individually for decreased memory pressure | 
| 65 for sequence in realSeqs['sequences']: | |
| 66 print("Downloading", sequence) | |
| 59 | 67 | 
| 60 uuid_vcf = wa.io.write_downloadable(org['commonName'], 'VCF', sequences=seqs) | 68 try: | 
| 61 if 'error' in uuid_vcf or 'uuid' not in uuid_vcf: | 69 uuid_gff = wa.io.write_downloadable(org['commonName'], 'GFF3', export_gff3_fasta=args.gff_with_fasta, sequences=[sequence['name']]) | 
| 62 raise Exception("Apollo failed to prepare the VCF file for download: %s" % uuid_vcf) | 70 if 'error' in uuid_gff or 'uuid' not in uuid_gff: | 
| 63 args.vcf.write(wa.io.download(uuid_vcf['uuid'], output_format="text")) | 71 error("Apollo failed to prepare the GFF3 file for download: %s" % uuid_gff) | 
| 72 args.gff.write(wa.io.download(uuid_gff['uuid'], output_format="text")) | |
| 73 time.sleep(1) | |
| 74 except Exception as e: | |
| 75 error(e) | |
| 64 | 76 | 
| 65 time.sleep(1) | 77 try: | 
| 78 uuid_vcf = wa.io.write_downloadable(org['commonName'], 'VCF', sequences=[sequence['name']]) | |
| 79 if 'error' in uuid_vcf or 'uuid' not in uuid_vcf: | |
| 80 error("Apollo failed to prepare the VCF file for download: %s" % uuid_vcf) | |
| 81 args.vcf.write(wa.io.download(uuid_vcf['uuid'], output_format="text")) | |
| 82 time.sleep(1) | |
| 83 except Exception as e: | |
| 84 error(e) | |
| 66 | 85 | 
| 67 uuid_fa = wa.io.write_downloadable(org['commonName'], 'FASTA', sequences=seqs, seq_type='cdna') | 86 try: | 
| 68 if 'error' in uuid_fa or 'uuid' not in uuid_fa: | 87 uuid_fa = wa.io.write_downloadable(org['commonName'], 'FASTA', sequences=[sequence['name']], seq_type='cdna') | 
| 69 raise Exception("Apollo failed to prepare the cdna FASTA file for download: %s" % uuid_fa) | 88 if 'error' in uuid_fa or 'uuid' not in uuid_fa: | 
| 70 args.fasta_cdna.write(wa.io.download(uuid_fa['uuid'], output_format="text")) | 89 error("Apollo failed to prepare the cdna FASTA file for download: %s" % uuid_fa) | 
| 90 args.fasta_cdna.write(wa.io.download(uuid_fa['uuid'], output_format="text")) | |
| 91 time.sleep(1) | |
| 92 except Exception as e: | |
| 93 error(e) | |
| 71 | 94 | 
| 72 time.sleep(1) | 95 try: | 
| 96 uuid_fa = wa.io.write_downloadable(org['commonName'], 'FASTA', sequences=[sequence['name']], seq_type='cds') | |
| 97 if 'error' in uuid_fa or 'uuid' not in uuid_fa: | |
| 98 error("Apollo failed to prepare the cds FASTA file for download: %s" % uuid_fa) | |
| 99 args.fasta_cds.write(wa.io.download(uuid_fa['uuid'], output_format="text")) | |
| 100 time.sleep(1) | |
| 101 except Exception as e: | |
| 102 error(e) | |
| 73 | 103 | 
| 74 uuid_fa = wa.io.write_downloadable(org['commonName'], 'FASTA', sequences=seqs, seq_type='cds') | 104 try: | 
| 75 if 'error' in uuid_fa or 'uuid' not in uuid_fa: | 105 uuid_fa = wa.io.write_downloadable(org['commonName'], 'FASTA', sequences=[sequence['name']], seq_type='peptide') | 
| 76 raise Exception("Apollo failed to prepare the cds FASTA file for download: %s" % uuid_fa) | 106 if 'error' in uuid_fa or 'uuid' not in uuid_fa: | 
| 77 args.fasta_cds.write(wa.io.download(uuid_fa['uuid'], output_format="text")) | 107 error("Apollo failed to prepare the file for download: %s" % uuid_fa) | 
| 108 args.fasta_pep.write(wa.io.download(uuid_fa['uuid'], output_format="text")) | |
| 109 time.sleep(1) | |
| 110 except Exception as e: | |
| 111 error(e) | |
| 78 | 112 | 
| 79 time.sleep(1) | 113 org_data.append(org) | 
| 80 | |
| 81 uuid_fa = wa.io.write_downloadable(org['commonName'], 'FASTA', sequences=seqs, seq_type='peptide') | |
| 82 if 'error' in uuid_fa or 'uuid' not in uuid_fa: | |
| 83 raise Exception("Apollo failed to prepare the file for download: %s" % uuid_fa) | |
| 84 args.fasta_pep.write(wa.io.download(uuid_fa['uuid'], output_format="text")) | |
| 85 | |
| 86 org_data.append(org) | |
| 87 | 114 | 
| 88 args.json.write(json.dumps(org_data, indent=2)) | 115 args.json.write(json.dumps(org_data, indent=2)) | 
