All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.charite.compbio.jannovar.cmd.download.DownloadCommand Maven / Gradle / Ivy

package de.charite.compbio.jannovar.cmd.download;

import com.google.common.collect.Lists;
import de.charite.compbio.jannovar.JannovarException;
import de.charite.compbio.jannovar.cmd.CommandLineParsingException;
import de.charite.compbio.jannovar.cmd.JannovarCommand;
import de.charite.compbio.jannovar.data.JannovarData;
import de.charite.compbio.jannovar.data.JannovarDataSerializer;
import de.charite.compbio.jannovar.datasource.DataSourceFactory;
import de.charite.compbio.jannovar.datasource.DatasourceOptions;
import de.charite.compbio.jannovar.impl.util.PathUtil;
import net.sourceforge.argparse4j.inf.Namespace;

/**
 * Implementation of download step in Jannovar.
 *
 * @author Manuel Holtgrewe
 */
public final class DownloadCommand extends JannovarCommand {

	private JannovarDownloadOptions options;

	public DownloadCommand(String argv[], Namespace args) throws CommandLineParsingException {
		this.options = new JannovarDownloadOptions();
		this.options.setFromArgs(args);
	}

	/**
	 * Perform the downloading.
	 */
	@Override
	public void run() throws JannovarException {
		System.err.println("Options");
		System.err.println(options.toString());

		DatasourceOptions dsOptions = new DatasourceOptions(options.getHttpProxy(),
			options.getHttpsProxy(), options.getFtpProxy(), options.isReportProgress());

		DataSourceFactory factory =
			new DataSourceFactory(dsOptions, Lists.reverse(options.dataSourceFiles));
		for (String name : options.getDatabaseNames()) {
			System.err.println("Downloading/parsing for data source \"" + name + "\"");
			JannovarData data = factory.getDataSource(name).getDataFactory().build(options.getDownloadDir(),
				options.isReportProgress(), options.getGeneIdentifiers());
			final String filename;
			if (options.getOutputFile() == null || options.getOutputFile().isEmpty()) {
				filename = PathUtil.join(options.getDownloadDir(),
					name.replace('/', '_').replace('\\', '_') + ".ser");
			} else {
				filename = options.getOutputFile();
			}
			JannovarDataSerializer serializer = new JannovarDataSerializer(filename);
			serializer.save(data);
		}
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy