def __init__(self, *args, **kwargs): self.wrapped_instance = None self.requires_reads = kwargs.pop('requires_reads', False) self.upload_allowed = get_pangea_config('upload_allowed', True) self.download_only = get_pangea_config('download_only', False) self.name_is_uuid = get_pangea_config('name_is_uuid') self.data_kind = get_pangea_config('data_kind') self.endpoint = get_pangea_config('pangea_endpoint', PANGEA_URL) self.knex = Knex(self.endpoint) self.pipeline_module = None user = get_pangea_config('user') if user: User(self.knex, user, get_pangea_config('password')).login() if self.name_is_uuid: self.org_name = None self.grp_name = None self.grp = None else: self.org_name = get_pangea_config('org_name') self.grp_name = get_pangea_config('grp_name') org = Organization(self.knex, self.org_name).get() self.grp = org.sample_group(self.grp_name).get() self.wrapped_instance = self.wrapped_type(*args, **kwargs)
def get_pangea_group(org_name, grp_name, email=None, password=None, endpoint='https://pangea.gimmebio.com'): knex = Knex() if email and password: User(knex, email, password).login() org = Organization(knex, org_name).get() grp = org.sample_group(grp_name).get() return grp
def run_sample(email, password, outdir, group, fasterq_exc, mash_exc, sample_name): knex = Knex() User(knex, email, password).login() org = Organization(knex, 'MegaGenome').get() grp = org.sample_group(group).get() sample = grp.sample(sample_name).get() makedirs(outdir, exist_ok=True) process_sample(sample, outdir=outdir, fasterq_exc=fasterq_exc, mash_exc=mash_exc)
def cli_process_tag(log_level, endpoint, email, password, tag_name, strict): logging.basicConfig( level=log_level, format='%(levelname)s: %(message)s', ) knex = Knex(endpoint) if email and password: User(knex, email, password).login() tag = Tag(knex, tag_name).get() for pangea_group in tag.get_sample_groups(): logger.info(pangea_group) process_group(pangea_group, strict=strict)
def create_test_sample(): timestamp = int(time()) knex = Knex(PANGEA_ENDPOINT) User(knex, PANGEA_USER, PANGEA_PASS).login() org = Organization(knex, 'MetaSUB Consortium').get() lib = org.sample_group('CAP2 Test Sandbox').get() sample = lib.sample(f'CAP2 Test Sample {timestamp}').create() reads_ar = sample.analysis_result('raw::raw_reads').create() r1 = reads_ar.field('read_1').create() r1.upload_file(RAW_READS_1) r2 = reads_ar.field('read_2').create() r2.upload_file(RAW_READS_2) return sample
def run_sample(email, password, outdir, fasterq_exc, mash_exc): knex = Knex() User(knex, email, password).login() tag = Tag(knex, 'MegaGenome').get() samples = list(tag.get_random_samples()) shuffle(samples) for sample in samples: try: click.echo(sample.name, err=True) makedirs(outdir, exist_ok=True) process_sample(sample, outdir=outdir, fasterq_exc=fasterq_exc, mash_exc=mash_exc) except Exception as e: if not isinstance(e, HTTPError): continue click.echo(f'failed {sample.name}', err=True)
def __init__(self, sample_name, email, password, endpoint, org_name, grp_name, kind='short_read', knex=None, sample=None, name_is_uuid=False): if not knex: knex = Knex(endpoint) User(knex, email, password).login() self.sample = sample if self.sample is None: if name_is_uuid: self.sample = sample_from_uuid(knex, sample_name) else: org = Organization(knex, org_name).get() grp = org.sample_group(grp_name).get() self.sample = grp.sample(sample_name).get() self.kind = kind self.name = sample_name self.sra = f'downloaded_data/{self.name}.sra' self.r1 = f'downloaded_data/{self.name}.R1.fq.gz' self.r2 = None try: if self.has_reads(): if self.kind == 'short_read': self.kind = 'single_short_read' if self.is_paired(): self.kind = 'paired_short_read' if self.kind == 'paired_short_read': self.r2 = f'downloaded_data/{self.name}.R2.fq.gz' self.cap_sample = Sample(self.name, self.r1, self.r2, kind=self.kind) except CAPSampleError: self.kind = 'undetermined'
def __init__(self, work_order_uuid, email, password, endpoint): self.knex = Knex(endpoint) User(self.knex, email, password).login() self.wop = WorkOrderProto.from_uuid(self.knex, work_order_uuid)
def __init__(self, tag_name, email, password, endpoint): self.knex = Knex(endpoint) User(self.knex, email, password).login() self.tag = Tag(self.knex, tag_name).get() self.name = tag_name
def __init__(self, grp_name, email, password, endpoint, org_name): self.knex = Knex(endpoint) User(self.knex, email, password).login() org = Organization(self.knex, org_name).get() self.grp = org.sample_group(grp_name).get() self.name = grp_name