本文整理汇总了Python中qiita_db.data.PreprocessedData.update_insdc_status方法的典型用法代码示例。如果您正苦于以下问题:Python PreprocessedData.update_insdc_status方法的具体用法?Python PreprocessedData.update_insdc_status怎么用?Python PreprocessedData.update_insdc_status使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qiita_db.data.PreprocessedData
的用法示例。
在下文中一共展示了PreprocessedData.update_insdc_status方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_insdc_status
# 需要导入模块: from qiita_db.data import PreprocessedData [as 别名]
# 或者: from qiita_db.data.PreprocessedData import update_insdc_status [as 别名]
def test_insdc_status(self):
ppd = PreprocessedData(1)
# verifying current value
self.assertEqual(ppd.submitted_to_insdc_status(), 'submitting')
# changing value and then verifying new value
ppd.update_insdc_status('failed')
self.assertEqual(ppd.submitted_to_insdc_status(), 'failed')
# checking failure
with self.assertRaises(ValueError):
ppd.update_insdc_status('not a valid status')
示例2: test_update_insdc_status
# 需要导入模块: from qiita_db.data import PreprocessedData [as 别名]
# 或者: from qiita_db.data.PreprocessedData import update_insdc_status [as 别名]
def test_update_insdc_status(self):
"""Able to update insdc status"""
pd = PreprocessedData(1)
self.assertEqual(pd.submitted_to_insdc_status(), 'submitting')
pd.update_insdc_status('failed')
self.assertEqual(pd.submitted_to_insdc_status(), 'failed')
pd.update_insdc_status('success', 'foo', 'bar')
self.assertEqual(pd.submitted_to_insdc_status(), 'success')
self.assertEqual(pd.ebi_study_accession, 'foo')
self.assertEqual(pd.ebi_submission_accession, 'bar')
with self.assertRaises(ValueError):
pd.update_insdc_status('not valid state')
with self.assertRaises(ValueError):
pd.update_insdc_status('success', 'only one accession')
示例3: submit_EBI
# 需要导入模块: from qiita_db.data import PreprocessedData [as 别名]
# 或者: from qiita_db.data.PreprocessedData import update_insdc_status [as 别名]
def submit_EBI(preprocessed_data_id, action, send, fastq_dir_fp=None):
"""Submit a preprocessed data to EBI
Parameters
----------
preprocessed_data_id : int
The preprocesssed data id
action : %s
The action to perform with this data
send : bool
True to actually send the files
fastq_dir_fp : str, optional
The fastq filepath
Notes
-----
If fastq_dir_fp is passed, it must not contain any empty files, or
gzipped empty files
"""
preprocessed_data = PreprocessedData(preprocessed_data_id)
preprocessed_data_id_str = str(preprocessed_data_id)
study = Study(preprocessed_data.study)
sample_template = SampleTemplate(study.sample_template)
prep_template = PrepTemplate(preprocessed_data.prep_template)
investigation_type = None
new_investigation_type = None
status = preprocessed_data.submitted_to_insdc_status()
if status in ("submitting", "success"):
raise ValueError("Cannot resubmit! Current status is: %s" % status)
if send:
# If we intend actually to send the files, then change the status in
# the database
preprocessed_data.update_insdc_status("submitting")
# we need to figure out whether the investigation type is a known one
# or if we have to submit a "new_investigation_type" to EBI
current_type = prep_template.investigation_type
ena_ontology = Ontology(convert_to_id("ENA", "ontology"))
if current_type in ena_ontology.terms:
investigation_type = current_type
elif current_type in ena_ontology.user_defined_terms:
investigation_type = "Other"
new_investigation_type = current_type
else:
# This should never happen
raise ValueError(
"Unrecognized investigation type: '%s'. This term "
"is neither one of the official terms nor one of the "
"user-defined terms in the ENA ontology"
)
if fastq_dir_fp is not None:
# If the user specifies a FASTQ directory, use it
# Set demux_samples to None so that MetadataTemplate.to_file will put
# all samples in the template files
demux_samples = None
else:
# If the user does not specify a FASTQ directory, create one and
# re-serialize the per-sample FASTQs from the demux file
fastq_dir_fp = mkdtemp(prefix=qiita_config.working_dir)
demux = [path for _, path, ftype in preprocessed_data.get_filepaths() if ftype == "preprocessed_demux"][0]
# Keep track of which files were actually in the demux file so that we
# can write those rows to the prep and samples templates
demux_samples = set()
with open_file(demux) as demux_fh:
for samp, iterator in to_per_sample_ascii(demux_fh, list(sample_template)):
demux_samples.add(samp)
sample_fp = join(fastq_dir_fp, "%s.fastq.gz" % samp)
wrote_sequences = False
with gzopen(sample_fp, "w") as fh:
for record in iterator:
fh.write(record)
wrote_sequences = True
if not wrote_sequences:
remove(sample_fp)
output_dir = fastq_dir_fp + "_submission"
samp_fp = join(fastq_dir_fp, "sample_metadata.txt")
prep_fp = join(fastq_dir_fp, "prep_metadata.txt")
sample_template.to_file(samp_fp, demux_samples)
prep_template.to_file(prep_fp, demux_samples)
# Get specific output directory and set filepaths
get_output_fp = partial(join, output_dir)
study_fp = get_output_fp("study.xml")
sample_fp = get_output_fp("sample.xml")
experiment_fp = get_output_fp("experiment.xml")
run_fp = get_output_fp("run.xml")
submission_fp = get_output_fp("submission.xml")
if not isdir(output_dir):
#.........这里部分代码省略.........