Код: Выделить всё
#Make 1 library.csv for a pair of ATAC and RNA seq accession numbers
def read_rna_accession():
with open('rna_accessions.txt') as f:
samples = [sample for sample in f.read().split('\n') if len(sample) > 0] # Remove empty lines
return samples
def read_atac_accession():
with open('atac_accessions.txt') as f:
samples = [sample for sample in f.read().split('\n') if len(sample) > 0] # Remove empty lines
return samples
# Read ATAC and RNA accession IDs
atac_SRRs = read_atac_accession()
rna_SRRs = read_rna_accession()
# Define all rule for generating libraries.csv
rule all:
input:
expand("{atac_srr}_{rna_srr}_libraries.csv", atac_srr=atac_SRRs, rna_srr=rna_SRRs)
# Rule to create libraries.csv
rule create_libraries_csv:
output:
"{atac_srr}_{rna_srr}_libraries.csv"
run:
atac_srr = wildcards.atac_srr
rna_srr = wildcards.rna_srr
with open(output[0], "w") as f:
f.write("fastqs,sample,library_type\n")
f.write(f"atac_seq/{atac_srr},{atac_srr},Chromatin Accessibility\n")
f.write(f"rna_seq/{rna_srr},{rna_srr},Gene Expression\n")
С имеющимся у меня кодом он генерирует его для всех возможных комбинаций номеров доступа atac_seq и rna_seq; Я хотел бы сгенерировать его последовательно, то есть первый SRR в списке номеров доступа atac соответствует первому элементу в SRR в списке номеров доступа rna; есть ли способ сделать это?
Подробнее здесь: https://stackoverflow.com/questions/786 ... -in-a-list