本文整理汇总了Python中qiita_db.data.PreprocessedData.submitted_to_insdc_status方法的典型用法代码示例。如果您正苦于以下问题:Python PreprocessedData.submitted_to_insdc_status方法的具体用法?Python PreprocessedData.submitted_to_insdc_status怎么用?Python PreprocessedData.submitted_to_insdc_status使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qiita_db.data.PreprocessedData
的用法示例。
在下文中一共展示了PreprocessedData.submitted_to_insdc_status方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_submitted_to_insdc_status
# 需要导入模块: from qiita_db.data import PreprocessedData [as 别名]
# 或者: from qiita_db.data.PreprocessedData import submitted_to_insdc_status [as 别名]
def test_submitted_to_insdc_status(self):
"""submitted_to_insdc_status works correctly"""
# False case
pd = PreprocessedData(1)
self.assertEqual(pd.submitted_to_insdc_status(), 'submitting')
# True case
pd = PreprocessedData(2)
self.assertEqual(pd.submitted_to_insdc_status(), 'not submitted')
示例2: test_insdc_status
# 需要导入模块: from qiita_db.data import PreprocessedData [as 别名]
# 或者: from qiita_db.data.PreprocessedData import submitted_to_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')
示例3: post
# 需要导入模块: from qiita_db.data import PreprocessedData [as 别名]
# 或者: from qiita_db.data.PreprocessedData import submitted_to_insdc_status [as 别名]
def post(self, preprocessed_data_id):
# make sure user is admin and can therefore actually submit to EBI
if User(self.current_user).level != 'admin':
raise HTTPError(403, "User %s cannot submit to EBI!" %
self.current_user)
submission_type = self.get_argument('submission_type')
if submission_type not in ['ADD', 'MODIFY']:
raise HTTPError(403, "User: %s, %s is not a recognized submission "
"type" % (self.current_user, submission_type))
msg = ''
msg_level = 'success'
preprocessed_data = PreprocessedData(preprocessed_data_id)
state = preprocessed_data.submitted_to_insdc_status()
if state == 'submitting':
msg = "Cannot resubmit! Current state is: %s" % state
msg_level = 'danger'
elif state == 'success' and submission_type == "ADD":
msg = "Cannot resubmit! Current state is: %s, use MODIFY" % state
msg_level = 'danger'
else:
channel = self.current_user
job_id = submit(channel, submit_to_ebi, int(preprocessed_data_id),
submission_type)
self.render('compute_wait.html', user=self.current_user,
job_id=job_id, title='EBI Submission',
completion_redirect='/compute_complete/%s' % job_id)
return
self.display_template(preprocessed_data_id, msg, msg_level)
示例4: test_update_insdc_status
# 需要导入模块: from qiita_db.data import PreprocessedData [as 别名]
# 或者: from qiita_db.data.PreprocessedData import submitted_to_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')
示例5: submit_EBI
# 需要导入模块: from qiita_db.data import PreprocessedData [as 别名]
# 或者: from qiita_db.data.PreprocessedData import submitted_to_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):
#.........这里部分代码省略.........