comparison extract_tables.py @ 15:d85e35a36715 draft

Uploaded
author ieguinoa
date Thu, 24 Sep 2020 10:14:41 +0000
parents 436da36c6114
children d7a88a8a8f5f
comparison
equal deleted inserted replaced
14:436da36c6114 15:d85e35a36715
14 14
15 studies_table = open(pathlib.Path(args.out_path) / 'studies.tsv', 'w') 15 studies_table = open(pathlib.Path(args.out_path) / 'studies.tsv', 'w')
16 studies_table.write('\t'.join(['alias','status','accession','title','study_type','study_abstract','pubmed_id','submission_date']) + '\n') 16 studies_table.write('\t'.join(['alias','status','accession','title','study_type','study_abstract','pubmed_id','submission_date']) + '\n')
17 17
18 samples_table = open(pathlib.Path(args.out_path) / 'samples.tsv', 'w') 18 samples_table = open(pathlib.Path(args.out_path) / 'samples.tsv', 'w')
19 samples_table.write('\t'.join(['alias','status','accession','title','scientific_name','taxon_id','sample_description','submission_date']) + '\n')
20 19
21 experiments_table = open(pathlib.Path(args.out_path) / 'experiments.tsv', 'w') 20 experiments_table = open(pathlib.Path(args.out_path) / 'experiments.tsv', 'w')
22 experiments_table.write('\t'.join(['alias','status','accession','title','study_alias','sample_alias','design_description','library_name','library_strategy','library_source','library_selection','library_layout','insert_size','library_construction_protocol','platform','instrument_model','submission_date'])+ '\n') 21 experiments_table.write('\t'.join(['alias','status','accession','title','study_alias','sample_alias','design_description','library_name','library_strategy','library_source','library_selection','library_layout','insert_size','library_construction_protocol','platform','instrument_model','submission_date'])+ '\n')
23 22
24 runs_table = open(pathlib.Path(args.out_path) / 'runs.tsv', 'w') 23 runs_table = open(pathlib.Path(args.out_path) / 'runs.tsv', 'w')
25 runs_table.write('\t'.join(['alias','status','accession','experiment_alias','file_name','file_format','file_checksum','submission_date'])+ '\n') 24 runs_table.write('\t'.join(['alias','status','accession','experiment_alias','file_name','file_format','file_checksum','submission_date'])+ '\n')
26 25
27 action = 'add' 26 action = 'add'
27 viral_submission = False
28 for study_index, study in enumerate(studies_dict): 28 for study_index, study in enumerate(studies_dict):
29 study_alias = 'study_'+str(study_index) 29 study_alias = 'study_'+str(study_index)
30 studies_table.write('\t'.join([study_alias,action,'ENA_accession',study['title'], study['type'],study['abstract'],study['pubmed_id'],'ENA_submission_data'])) 30 studies_table.write('\t'.join([study_alias,action,'ENA_accession',study['title'], study['type'],study['abstract'],study['pubmed_id'],'ENA_submission_data']))
31 if "geo_location" in study['samples'][0].keys(): # sample belongs to a viral sample
32 samples_table.write('\t'.join(['alias','status','accession','title','scientific_name','taxon_id','sample_description','collection_date','geographic_location','host_common_name','host_subject_id','host_health_state','host_sex','host_scientific_name','collector_name','collecting_institution','isolate','submission_date']) + '\n')
33 else:
34 samples_table.write('\t'.join(['alias','status','accession','title','scientific_name','taxon_id','sample_description','submission_date']) + '\n')
31 for sample_index,sample in enumerate(study['samples']): 35 for sample_index,sample in enumerate(study['samples']):
32 sample_alias = 'sample_'+str(sample_index) 36 sample_alias = 'sample_'+str(sample_index)
33 samples_table.write('\t'.join([sample_alias,action,'ena_accession',sample['title'],sample['tax_name'], sample['tax_id'],sample['description'],'ENA_submission_date'])+ '\n') 37 if "geo_location" in sample.keys(): # sample belongs to a viral sample
38 if sample['collector_name'] == '':
39 sample['collector_name'] = 'unknown'
40 samples_table.write('\t'.join([sample_alias,action,'ena_accession',sample['title'],sample['tax_name'], sample['tax_id'],sample['description'],sample['collection_date'],sample['geo_location'],sample['host_common_name'],sample['host_subject_id'],sample['host_health_state'],sample['host_sex'],sample['host_scientific_name'],sample['collector_name'],sample['collecting_institution'],sample['isolate'],'ENA_submission_date'])+ '\n')
41 else:
42 samples_table.write('\t'.join([sample_alias,action,'ena_accession',sample['title'],sample['tax_name'], sample['tax_id'],sample['description'],'ENA_submission_date'])+ '\n')
34 for exp_index,exp in enumerate(sample['experiments']): 43 for exp_index,exp in enumerate(sample['experiments']):
35 exp_alias = 'experiment_'+str(exp_index)+'_'+str(sample_index) 44 exp_alias = 'experiment_'+str(exp_index)+'_'+str(sample_index)
36 lib_alias = 'library_'+str(exp_index)+'_'+str(sample_index) 45 lib_alias = 'library_'+str(exp_index)+'_'+str(sample_index)
37 experiments_table.write('\t'.join([exp_alias,action,'accession_ena',exp['title'],study_alias,sample_alias,exp['experiment_design'],lib_alias,exp['library_strategy'],exp['library_source'],exp['library_selection'],exp['library_layout'],exp['insert_size'],exp['library_construction_protocol'],exp['platform'],exp['instrument_model'],'submission_date_ENA']) + '\n') 46 experiments_table.write('\t'.join([exp_alias,action,'accession_ena',exp['title'],study_alias,sample_alias,exp['experiment_design'],lib_alias,exp['library_strategy'],exp['library_source'],exp['library_selection'],exp['library_layout'].lower(),exp['insert_size'],exp['library_construction_protocol'],exp['platform'],exp['instrument_model'],'submission_date_ENA']) + '\n')
38 run_index = 0 47 run_index = 0
39 # exp['runs'] is a list of lists 48 # exp['runs'] is a list of lists
40 for run in exp['runs']: 49 for run in exp['runs']:
41 run_index += 1 50 run_index += 1
42 run_alias = '_'.join(['run',str(exp_index),str(sample_index),str(run_index)]) 51 run_alias = '_'.join(['run',str(exp_index),str(sample_index),str(run_index)])
43 for file_entry in run: 52 for file_entry in run:
44 file_format = 'fastq.gz' if os.path.splitext(file_entry)[-1] == '.gz' else 'fastq.bz2' 53 file_format = 'fastq'
45 runs_table.write('\t'.join([run_alias,action,'ena_run_accession',exp_alias,file_entry,file_format,'file_checksum','submission_date_ENA']) + '\n') 54 runs_table.write('\t'.join([run_alias,action,'ena_run_accession',exp_alias,file_entry,file_format,'file_checksum','submission_date_ENA']) + '\n')
46 55
47 studies_table.close() 56 studies_table.close()
48 samples_table.close() 57 samples_table.close()
49 experiments_table.close() 58 experiments_table.close()