Exemple #1
0
    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)
Exemple #2
0
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
Exemple #3
0
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)
Exemple #4
0
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)
Exemple #5
0
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
Exemple #6
0
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)
Exemple #7
0
    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'
Exemple #8
0
 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)
Exemple #9
0
 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
Exemple #10
0
 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