Created
December 13, 2015 16:19
-
-
Save lpenguin/c337982a81452da827b9 to your computer and use it in GitHub Desktop.
agil2ch
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from preproc.pipeline import Pipeline | |
from preproc.pipeline.heplers import extract_supplementary_files, match_samples_in_dir | |
from ...task import TaskDescription | |
from os.path import join, basename | |
from rpy2.robjects import packages as rpackages | |
import numpy as np | |
import pandas as pd | |
import re | |
from glob import glob | |
class Agilent2ChPipeline(Pipeline): | |
def run(self, task_description: TaskDescription, in_dir: str, out_dir: str): | |
suppl_files = [join(in_dir, basename(f)) for f in task_description.supplementary_files] | |
extract_supplementary_files(suppl_files, in_dir) | |
matched_samples = match_samples_in_dir_ch2(in_dir, [".txt.gz"], task_description.samples) | |
# [(file_name, accession), (file_name, accession)] | |
for file_name, accession in matched_samples: | |
data = process(file_name) | |
series_to_csv_compressed(data['channel1'], out_file) | |
series_to_csv_compressed(data['channel2'], out_file) | |
sample_names = glob(join(in_dir, '*.txt.gz')) | |
scan_upc = rpackages.importr('SCAN.UPC') | |
biobase = rpackages.importr('Biobase') | |
for sample_name in sample_names: | |
res = scan_upc.SCAN_TwoColor(sample_name) | |
exprs = pd.DataFrame(data=np.log2(np.array(biobase.exprs(res))), columns=['channel1', 'channel2']) | |
cleaned_sample_name = re.sub(r'(GSM\d+).*', '\1', sample_name) | |
exprs['channel1'].to_csv(join(out_dir, cleaned_sample_name+'_1'), header=None) | |
exprs['channel2'].to_csv(join(out_dir, cleaned_sample_name+'_2'), header=None) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment